Тема: Позиции на чертеже

У меня есть некоторая прописка в lsp,которая не хочет работать(((Что не так?
(defun c:count ()
(setq f (getint "\nEnter value for first point :"))
(initget (+ 1 2 3)) ;check user input
(setq n f) ;define first number
(setq n (1+ n)) ;define next number
)
(setvar "cmdecho" cmd)
(princ)
)

Re: Позиции на чертеже

А моя "прописка в lsp" фунциклирует:

;Program for typing integers
;with increase value by one
;Created by German Genin
(defun c:count ()
(setq cmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
  (setq f (getint "\nEnter value for first point :"))
  (initget (+ 1 2 4)) ;check user input
  (setq n f) ;define first number
  (while ;cycle
    (setq fpoint (getpoint "\nEnter first point :"))
    (command "text" fpoint "" "" n)
    (setq n (1+ n)) ;define next number
  )
(setvar "cmdecho" cmd)
  (princ)
)

Re: Позиции на чертеже

У меня общий лисп на вставку блоков и на позиции,может это мешает выполнять задачу???
Т.е. я вставляю блок при помощи кнопки пользователя, с которой связана команда,позволяющая вставку,прописанная в лиспе,там же есть программка на проставление позиций,но они не проставляются..............попробовала версию Алекса............тоже ничего(((

Re: Позиции на чертеже

Хотел бы спросить, чтобы помочь.
1. Что вы пытаетесь вводить с помощью
(getint "\nEnter value for first point :"))
координаты точки или целое число?
2. Какие задачи должна выполнять Ваша функция (логика).
3. Что конкретно не работает (не запускается, не принимает введенные значения, не циклится, не передает аргументы, останавливается на вставке, что-то другое...)

Re: Позиции на чертеже

А может быть у Вас, Мария, стоит фиксированная высота текста?

Re: Позиции на чертеже

Я пытаюсь ввести номер позиции (целое число) при вставке блока..............т.е. вставляю блок.........далее идет проверка атрибутов..............далее,по моему соображению........номер позиции...........и так с каждой новой вставкой,но номера по нарастанию............не 1...1...1,а по порядку...........и если блоки одинаковы (что определяет атрибут),то нумерация должна идентифицируется!

Re: Позиции на чертеже

Т.е. ...........должна идентифицироваться!

Re: Позиции на чертеже

чем идентифицируется? Блоком?

Re: Позиции на чертеже

1. initget должен каждый раз предшествовать getinit.
2. Битовый флаг должен быть не (+ 1 2 3), а (+ 1 2 4), чтобы не разрешать пустой ввод. Когда Вы пишите (+1 2 3),
система воспринимает это как (+2 4).
Дальше не совсем понятно.
Как мне показалось Вы хотите автоматизировать процесс нумерации значений некоторого атрибута некоторой вставки некоторого блока и начинаете с ручного ввода целого числа.
С каждой вставкой Вы хотите увеличить значение некоторого атрибута на единицу. Если имя вставляемого блока идентично вставленному ранее, то Вам надо посмотреть какое у его атрибута было последнее значение, добавить единицу и в новой вставке присвоить атрибуту это значение? Так? Или Вы что-то другое вкладываете в понятие идентификации.
Или Вы сохраняете оочередной номер в глобальной переменной? А то, что реально существует в вставках Вас не интересует.
А как Вы поступаете с нумерацией, если какую-то вставку с заданным значением атрибута приходится удалять?

Re: Позиции на чертеже

Задача-присвоить каждому,вставляемому блоку(а вернее его атрибуту) порядковый номер,если блоки имеют одинаковые атрибуты необходимо,чтобы порядковый номер идентифицировался (т.е.был таким же,как у аналогичного).Если блок удален (к примеру я на 10 позиции,а удаляю позицию 5),то необходимо пересмотреть порядковые номера(т.е. я окажусь на 9 позиции).
Объясню поподробнее.......на примере xls (для четкости),Если Вы вводите столбец с нумерацией,то в первой строке ставите 1,следующая строка А1+1,следущая А2+1 и т.д.В случае удаления строки нумерация обновляется и порядковые номера пересматриваются.
Вот что-то подобное надо сделать по присвоениям номеров атрибутам.

Re: Позиции на чертеже

Программно такая задача несложная, но, на мой взгляд, неверная в принципе. Подозреваю, что это делается для составления спецификаций. Сразу будут вопросы, что если:
1. Специфицируемый объект нарисован не этой замечательной программой, а другой, или просто в Автокаде?
2. Если пользователь стер его обычной командой,  а не той, которая перенумеровывает атрибуты?
3. Если объект вообще не нарисован, но должен включаться?

и т.д.

Re: Позиции на чертеже

Изначально предполагается,что все объекты и атрибуты есть,формирование спецификации осуществляется только на существующие объекты.
Я не поняла......что значит-специальная и обычная команды???

Re: Позиции на чертеже

> Изначально
предполагается,что все объекты и атрибуты есть

Это только программист предполагает. А Бог и Юзер располагают. На самом деле все будет не так, как предполагается. А в действительности будет не так, как "на самом деле".

Обычная - команда стандартного Автокада - ERASE, например. Ее может применить хоть кто, хоть к чему.

Специальная - навписанная вами. Которая что-то делает дополнительно, например считает или переименовывает атрибуты. А вы думаете, что Юзер будет непременно только ей пользоваться. А наивный ГИП будет думать, что "машина все правильно сосчитала". Но наивных ГИПОв мало.

Re: Позиции на чертеже

Много воды.........и не байта информации!!!
При чем здесь ГИП............ГАП и т.п.............я пользователь..............технолог......................нарисовала по наменклатуре оборудование,которое раставляю..............сделала пользовательскую панель..........прописала для нее лисп....................на каждой моделе есть марка..........в виде атрибутов...........по ним выгружается текстовый файл............по текстовому файлу формируется спецификация в xls,для этого прописан специальный макрос!
Мне нужно...........чтобы блокам (атрибутам) присваивались позиции в каде!!!
Вопрос не понятен???Или это сделать нельзя???

Re: Позиции на чертеже

Мария, Вам не стыдно так выражаться? Вы на конференции, а не в лесу. И если Вас хотят предостеречь от необдуманных действий это совсем не означает, что Вы не получили никакой информации.
Теперь опять по сути вопроса. Присвоение порядковых номеров - дело простое. Вопрос не в этом. Где Вы собираетесь хранить эти номера (только ли в атрибутах или еще где-нибудь: Вам ведь нужен счетчик не на один сеанс. Или Вы будете опрашивать всю базу данных рисунка? Или хранить присвоенные номера в каком-то файле?). Далее. Каким образом предполагается перенумерация, если просходит удаление вставки блока с атрибутом и его порядковым номером. А ведь таких удалений может быть много и они могут быть не по порядку следования Ваших порядковых номеров. Например, Ваш последний номер был 25, а удалили Вы 1, 5 и 10 й номера. Какая дальнейшая логика простановки порядковых номеров. Следующими будут 25,26 27... или 1,5 и 10? Далее. А если кто-то вслез в атрибут и изменил его номер на другой. Кто будет отслеживать эти изменения и их блокировать, если в этом есть необходимость? Или Вы создаете такой рисунок, куда можно только вставлять блоки, а никаких изменений делать  нельзя ни при каких обстоятельставх?
И прежде, чем отвечать, подумайте, может быть лучше помолчать и подумать.

Re: Позиции на чертеже

Спасибо за замечание,но по-моему я не выражалась,а в лесу обычно орут)))
К теме..........после долгих раздумий,молчаний,и опять раздумий!
Я спросила,как раз о возможности создания некой программки,которая могла бы после удаления пересмотреть нумерацию!
А под "просто",что имется ввиду?

Re: Позиции на чертеже

Простите.............имеется)))))А то еще скажете,что безграмотная как в поле!

Re: Позиции на чертеже

А почему безграмотные у нас могут быть (только) в поле:-)
Может я не понял всех Ваших выражений, но тогда не знаю как оценивать Ваши мно-о-о-оготочия, трижды восклицательные!!! и вопросительные знаки???, а также малопонятное ))))). Или это по-Вашему не несет никакой информации?
По делу. Трудно отвечать на вопрос, если Вы сами не знаете чего хотите.:-(( Сначала Вы спрашиваете почему Ваша прописка не работает. А мы даже не знаем с чем ее едят. Затем, когда с трудом делитесь с нами глобальной постановкой задачи, обижаетесь, что перед Вами ставят вполне обоснованные вопросы и запугивают проблемами. Но если Вы не знаете ответов на поставленные вопросы, то как мы можем подсказать что-то дельное?

Re: Позиции на чертеже

Когда Мария написала "пользователь..............технолог......................нарисовала по наменклатуре оборудование,которое раставляю..............", все стало ясно.

Особенность "технологов" в том, что они чаще всего именно "раставляют" оборудование. Примерно как в известном демонстрационном чертеже Аутодеск со столами и компьютерами.

Раньше они клеили бумажные темплеты пластилином, теперь "раставляют" блоки. Кто сотни позиций сложного технологического, кто столы, шкафы и стулья. (Замечу в скобках, что и срубают при этом "процент" весьма большой, и живут куда лучше, например, строителей, которым чертить ой сколько...). Есть, конечно еще и "процессы", и задания, но чаще всего от этого увиливают.

И большинство знакомых мне технологов даже не знают о существовании ГОСТ СПДС "Технология производства", по которому надо делать гораздо больше.

Именно как ГИП, который, по мнению Марии "причем здесь" (про ГАПов я не говорил, но раз она знает это слово, то явно столы расставляет), я постоянно пресекаю попытки автоматизированного составления таких спецификаций. Да еще варварскими методами.

Представьте, на план поставили лабораторный шкаф. Он попал в спецификацию. А сотня пробирок, бюреток, ступок и прочего внутри него где? Их ведь тоже надо заказать, купить, доставить, иначе объект не запустишь в эксплуатацию. А технологические подводки и прочие "мелочи"?

С "просто Марии" какой спрос, разбираться приходится ГИПу. Вот по этому я и не даю "ни байта" полезной информации по "перенумерации". Чтобы не потакать сомнительному занятию. Кому надо, напишет это легко без поисков в Интернет.

Re: Позиции на чертеже

Из моего опыта. Номер позиции на чертеже по моему весьма относителен. Поэтому я делал так. Не очень напрягаясь проставлял номера позиций предлагаемые счетчиком, и в спецификацию они уходили. Когда спецификация окончательно оформлялась, получались правильные номера. Специальный редактор позиций позволял подправить номер позиции чертежа на номер из спецификации. В окно редактора позиции чертежа попадали путем сканирования чертежа. Вроде работа понятна.

Re: Позиции на чертеже

По всей видимости,Выш опыт Doc был печален!Сочувствую!
1.Я не столы расставляю,как вы изволили выразиться,а делаю технологическую часть поектной документации!!!Причем,знаю все нормы и имею представления о ГОСТах,так как у меня строительное образование (МИСИ-ПГС)
2.Проектные организации,в составе которых я работала оставались мной довольны!!!
3.Относительно з/п-у меня ежемесечный оклад,так что о "шоколаде" говорить не приходиться.
4.Я обратилась за помощью,но похоже,у кого-то амбиции через край!Если бы мне надо было просто поболтать,я бы зашла в чат!!!
Извините за беспокойство,мистер вежливость!

Re: Позиции на чертеже

> Den-si
Закрывай этот флейм, от лиспа здесь уже ничего не осталось.