|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
09.09.2017, 22:00 | #1 | |
Lisp для подсчета суммы округленных длин сегментов полилинии
Гомель
Регистрация: 09.09.2017
Сообщений: 19
|
||
Просмотров: 3921
|
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,095
|
Цитата:
Цитата:
Последний раз редактировалось kp+, 20.09.2017 в 14:37. |
|||
|
||||
Цитата:
Для решения специфической задачи мне пришлось обратится к Автолиспу через много лет, освежая так сказать память, я набрёл на этот форум и эту тему. Поскольку написание этого лиспа для меня являетя достаточно тривиальной задачей и как-то перекликнулось с моей. я решил вам помочь раз и навсегда) По сути: 1. Задаётся точность округления, 1 или 2, по пробелу, вводу 1. 2. Создаётся текстовый стиль Arial_Regular, при этом считается что файл шрифта Arial.ttf лежит в папке c:\Windows\Fonts 3. Создаётся слой "Polyline Length Text", для которого задаётся только цвет RGB 255 0 0, красный 4. Выбирается только полилиния 5. Создаётся текст в созданном слое и созданном стиле высотой 5. Текст перемещается в нужное место. Команда зацикленна, то есть прервать её можно по Esc. Название стиля, слоя. высоты текста и др. в соответствующих переменных. Удачи! |
||||
|
||||
|
||||
|
||||
Profan,
Profan, Ну не знаю... Лично мне идея с копипастом не нравится) И останов по пустому выбору если честно тоже. Хотел было функцию укоротить, но теперь уж ни к чему наверное) (defun Make_List_from_Set (set_Object / Set_Item Set_List) (setq Set_List '()) (vlax-for set_Item set_Object (setq Set_List (cons (cons (vlax-get set_Item 'Name) set_Item) Set_List)) ) Set_List ) |
||||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Остонов по Enter - стандартный останов. Если он еще срабатывает и по пустому указанию объекта - тем лучше. А выход из программы (цикла) по Esc вообще-то запускает обработчик ошибок. Это в текущей программе практически нет критических изменяемых системных переменных, но полно программ, в которых этих переменных много и их необходимо возвращать в исходные значения при аварийном выходе из программы (а таким выходом сплошь и рядом как раз является выход по Esc).
Использование буфера обмена для вставки текста в нужное место - не самый лучший вариант, особенно при удаленной работе с чертежами через Интернет. Зато текст "висит" на курсоре без отображения исходного текста и вставка его в чертеж аналогична вставке блока. Возможна другая процедура вставки текста (фрагмент кода в конце): Код:
Тот же фрагмент с использованием блока: Код:
Допускаю, что в целом код не оптимален, но если тебя, например, устраивает именно твой вариант, то меня как раз устраивает любой из моих вариантов. Если ты, конечно, не будешь категорически против. |
|||
|
||||
Цитата:
Категорически возражать я, конечно же не буду) |
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужен LISP для суммы длин отрезков линни | ilka_t | LISP | 219 | 10.09.2019 10:22 |
LISP. Как в ActiveX выдернуть координаты полилинии? Как задавать атребуты блока через LISP? | wpww | LISP | 31 | 16.08.2016 14:17 |
lisp: Длина по полилинии до точки | vosh | LISP | 19 | 15.07.2013 15:10 |
LISP для подсчета суммы длин линий | Kostinok | LISP | 18 | 26.04.2013 14:56 |
LISP. Как найти точку пересечения полилинии и сплайна или другой полилинии? | LastGraff | LISP | 11 | 09.09.2011 13:23 |