|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Lisp. Установка символа "*" в верхний индекс в размерах.
автоматизация и организация черчения
Sterlitamak
Регистрация: 17.11.2009
Сообщений: 135
|
||
Просмотров: 2132
|
|
||||
Совет: приучайте себя подробно комментировать код. Пройдет месяц-другой, сами не разберетесь в нем. Я бы может и помог чем, но без комментариев даже не хочется пробовать.
Вторая сверху гифка: http://howto.memcrab.com/2013/03/2.html ![]()
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
автоматизация и организация черчения Регистрация: 17.11.2009
Sterlitamak
Сообщений: 135
|
Хорошо постараюсь прокомментировать. А я то думал, что комментарии нужны только новичкам, у профи все уже в голове
![]() Прокомментирую первое условие, дальше все по аналогии. Повторю вопрос, как заставить неограниченное число "*************" помещаться в верхний индекс? У меня получилось только в ед. экземляре. Код:
__________________
слесарь САПР |
|||
![]() |
|
||||
автоматизация и организация черчения Регистрация: 17.11.2009
Sterlitamak
Сообщений: 135
|
Уж слишком большое разнообразие получается кодов. Охватить все на моем уровне не представляется возможным.
kacugu, так ведь все размеры будут иметь этот суффикс, нужно делать 2 разм. стиля, один с суффиксом, один без, люди будут путаться. А так нажал кнопку и все снежинки в чертеже приобрели верхний индекс. Если получится в размерах, "*" хочу менять и в выносках и в тексте. Пример сохранен в 2007й версии. ----- добавлено через ~15 мин. ----- ciril, спасибо за помощь, правда не работает, но я понял смысл, ты обрабатывашь выражение "*\\S*`**" столько раз сколько оно встречается, да этой частный случай. А еще могут быть случаи когда в строке имеется и "*\\S*`**" и "*`**" и "*\\H0.*x;\\S`**" и еще много чего. Например размер в котором имеется и просто "*" и она же и в дробной части и как допуск, т.е. в размере много разных "*".
__________________
слесарь САПР |
|||
![]() |
|
||||
автоматизация и организация черчения Регистрация: 17.11.2009
Sterlitamak
Сообщений: 135
|
ciril, к сожалению ничего не происходит, но смысл я уловил.
твой код меняет размер изображенный на рисунке "Размер.2", а мне нужно чтобы еще он работал и с рисунком "Размер.1"
__________________
слесарь САПР |
|||
![]() |
|
||||
автоматизация и организация черчения Регистрация: 17.11.2009
Sterlitamak
Сообщений: 135
|
ciril,
да, чтобы все абсолютно * приобрели верхний индекс. Других снежинок не должно быть в чертеже. Т.е. на примере, верхний размер должен превратиться в нижний при срабатывании лиспа. Возможно такое?
__________________
слесарь САПР |
|||
![]() |
|
||||
автоматизация и организация черчения Регистрация: 17.11.2009
Sterlitamak
Сообщений: 135
|
Добрый день! Пишу запоздалый ответ, но все же возможно для кого-то тема имеет актуальность.
Спасибо ciril, за подсказанные идеи. Снова долго сидел над лиспом, родил некий полуфабрикат, который в большинстве случаев удовлетворяет моим потребностям. Особо экзотические случаи расположения символа "*" пропустил, запретив работу лиспа, а в большинстве стандартных случаев - работает. Так и не смог добиться работы лиспа когда код dxf допустим такой (1 . "gfgfg<>\\S*****,\\/\\/ffy*^*f\\/*22;") Выкладываю сие творение, не судите строго, не программист, но думаю ведь приятно нажатием одной кнопки помещать во всех размерах символ "*" в верхний индекс. Возможно, кто-то найдет ошибки и(или) оптимизирует код. Код:
__________________
слесарь САПР |
|||
![]() |
|
||||
САПР Регистрация: 29.09.2011
СПб
Сообщений: 283
|
По поводу оптимизации тяжело что-то с уверенностью сказать, так как неизвестно какой последовательностью машинных команд интерпретируется каждая функция лиспа, а все остальное - дело вкуса и стиля программирования.
Лично я бы убрал присвоение счетчику значение -1 (setq i -1) и включил его в repeat, типа Код:
![]() |
|||
![]() |