|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
AutoLISP. Как получить координаты двух соседних вершин выбранного фрагмента полилинии?
ПенсионЭр
Регистрация: 26.06.2009
Сообщений: 361
|
||
Просмотров: 5726
|
|
||||
ПенсионЭр Регистрация: 26.06.2009
Сообщений: 361
|
gomer, а без них? Только на автолиспе. Я пока его осваиваю.
Или подскажи, пожалуйста, где почитать про эти функции. Мне, по большому счету, надо всего-ничего: ткнуть курсором во фрагмент полилинии и поставить рядом с ним MTEXT из двух строк: 1-я: угол поворота и 2-я: длина фрагмента. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Пример
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 18.04.2015 в 22:58. Причина: заменил point на pt1 |
|||
![]() |
|
||||
ПенсионЭр Регистрация: 26.06.2009
Сообщений: 361
|
VVA, спасибо за помошь. Сам - ну очень долго искал бы, как заменить "d" на знак градуса.
Теперь о работе программы: После ввода в ком.строке сразу выдает ошибку: "; ошибка: неверный тип аргумента: symbolp nil" После удаления строк, связанных с привязкой (я их закомментировал), программа стала работать, но правильно только с отрезками. А с полилинией – отстает «на пол-такта»: вставляет значения не указанного фрагмента, а предыдущего (не по начертанию, а по временной хронологии). Например, указываю последовательно 3-й, 9-й, 7-й, 5-й, 16-й фрагменты. Программа выводит на экран значения 3-го, 3-го, 9-го, 7-го, 5-го фрагментов. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Без анализа кода:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
MrBrown,
В моем примере, да и у Алексея так же, есть описка в коде. Переменную point нужно заменить на pt1 Цитата:
PS У себя в #7 поправил
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 18.04.2015 в 22:57. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Обращаю внимание - в этом коде ненадежным участком является entsel. Пока указывается отрезок или "тонкая" полилиния, всё нормально. А если указать на полилинию с "физической" шириной (width), да ещё "широкую", то будет сбой. И не надо думать, что "у меня такого не бывает".
Для универсальности и надежности лучше разбивать задачу на отдельные функции. Например у меня функция ru-get-point-on-ent гарантированно возвращает список (примитив точка) в любых условиях. Но, если записать всё "в куче" то перед entsel установить Код:
Код:
|
|||
![]() |
|
||||
ПенсионЭр Регистрация: 26.06.2009
Сообщений: 361
|
Кулик Алексей aka kpblc, После исправления VVA (#10) и отключения всех трёх строк, связанных с привязкой, работает как надо.
С активацией этих строк (05, 40, 65) выдаёт ошибку: ; ошибка: неверный тип аргумента: symbolp nil Вопрос: обязательно ли в данной программе включать эти строки? Меня устраивает и так. ShaggyDoc, спасибо за предупреждение о толщине полилиний. Большое спасибо всем за помощь! Вопрос к модераторам: может быть стоит как-то переименовать тему? Мне показалось, что существующее название темы не соответствует содержанию постов. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Охота - переименовывай, кто мешает-то? Тот факт, что тема "свернула" не туда - это отдельная песня.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Autolisp: как получить последний ввод (команду, координаты точек)? | studentarh | LISP | 52 | 04.12.2024 12:15 |
Помогите вытащить из полилинии все координаты вершин | Zaghim | Программирование | 20 | 29.08.2021 17:43 |
Линии электрических соединений | Shoorup | Программирование | 23 | 07.02.2015 15:13 |
Как получить координаты вершин линии в полярной системе координат? | krusty | AutoCAD | 6 | 05.07.2011 10:16 |
координаты вершин выбранной полилинии на VB? как получить | ssv22 | Программирование | 5 | 17.07.2008 00:01 |