|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Определение сопряжённых сегментов с выделенным
Воронеж
Регистрация: 26.06.2007
Сообщений: 151
|
||
Просмотров: 3318
|
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
Это интересный вариант, только у меня два вопроса:
1. Выбирать необходимо только первый или последний сегмент? Почему нельзя любой? При попытке указания другого сегмента происходит объединение только части сегментов. 2. На что влияет fuzz? У меня при значении 0 всё нормально работает - так можно ли её вообще убрать из программы? |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
1.Так было задумано. Для любого см CSS CSP из # 69
2. На точность прилегания вершин объединяемых примитивов друг к другу. Если уверен, что всегда будет абсолютно точное совпадения начала/конца, то можно и убрать.
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
Есть ли смысл у строки
(setq ss (ssget "_I") ss nil ss (ssget "_X" '((0 . "ARC,LINE,*POLYLINE")))) ? Почему не (setq ss (ssget "_X" '((0 . "ARC,LINE,*POLYLINE")))) ? Как-то запутанно всё =) Также непонятно, как может использоваться переменная pt, если её сделали nil: Код:
Последний раз редактировалось Tonic, 28.03.2008 в 11:11. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Цитата:
ss nil - эта привычка выработалась со времен 10 Автокада, когда одновременно открытых наборов могло быть не больше 5. Сейчас их намного больше, но число все равно конечно. Цитата из хелпа, выделение мое Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
Всё равно не понимаю:
(setq ss (ssget "_I") ss nil ss (ssget "_X" '((0 . "ARC,LINE,*POLYLINE")))) в итоге всё равно переменной ss присваивается набор дуг и линий, так зачем создавать набор из подсвеченных примитивов и сразу же его удалять? |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Посмотри в справке, что делает (ssget "_I") .
Я таким образом избавляюсь от предварительно выбранных объектов
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
"I" - текущий набор из объектов, отмеченных с помощью ручек.
Значит, сначала присваиваем набору ss один выделенный примитив, затем тут же обнуляем набор, а потом создаём набор из всех дуг и линий, включая выделенный примитив. Зачем такая последовательность, если ничего не изменится, если написать просто (setq ss (ssget "_X" '((0 . "ARC,LINE,*POLYLINE"))))? |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Все не так. Но можешь заменить как ты хочешь. Тоже будет работать
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
Всё не так, а как? Интересно же =)
Ну я и планировал оставить всё только самое необходимое и упростить, а всё так запутанно, что это сделать не так просто. Например, неясен смысл функций mip:get-last-ss и mip:mark, все конструкции замысловаты =) P.S. Какая версия программы самая лучшая? №69, №74 или последняя? Чем они отличаются и какая стабильней работает? |
|||
![]() |
|
|||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Ничего себе кусочки. Нумерация сверху
1. Чистый выход из cond. Если ни одно условие выше не ИСТИНА, то T - вернет ИСТИНУ 2. Преобразование набора примитивов в список примитивов. Удалить из списка элементов все элементы, которые являются списками. Смотри возврат ф-ции ssnamex 3. Добавляем ln в начало списка chain_list 4. Цитата:
Цитата:
Цитата:
в нацу цепочку chain_list. Устанавливаем новую точку-шаблон на несовпадающий начало или конец чего-мы-тим-нашли (ln) И циклим (см. выше) Цитата:
5,6,7 - Нужно, чтобы подсветить результат грипсами
__________________
Как использовать код на Лиспе читаем здесь |
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Изучи непременно, откроешь новую страницу в программировании.
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Почитай здесь про mapcar и lambda
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |