| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
24.10.2007, 17:05 | #1 | |
vla-GetBoundingBox
Москва
Регистрация: 21.12.2006
Сообщений: 110
|
||
Просмотров: 8604
|
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
1.Так лучше?
Код:
2. На почившем в бозе autocad.ru Евгений Елпанов выкладывал такую ф-цию. Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Любая ф-ция автолиспа возвращает результат. Что-то типа зхо-вывода. А princ без аргументов печатает "пусто". Поэтому рекомендуется команды заканчивать (princ), чтобы не пугать пользователей, выполнивших команду чем-то типа
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
И в то же время не пытаться сделать на LISP то, что гораздо удобнее делать в Delphi. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Тяжело в начале, до тех пор, пока будешь себя ловить на том, что 1+1 хочешь записать как (1 + 1), а не (+ 1 1). Хотя надо признать, что работая с Автокадом и Лиспом с 1990 года, относительно недавно раскрыл для себя в полной мере потенциал функций lambda, mapcar и apply, в результате чего изменился стиль программирования и, наверное, я ближе стал к пониманию "Мира Лиспа". Хотя до таких колоссов как Michael Puckett далеко.
Если ты поймешь как работает этот пример, станешь на порядок ближе к пониманию сущности лиспа. Код:
Вот страничка Michael Puckett. Там много хороших примеров. Удачи в освоении этого интересного языка.
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 19.09.2015 в 07:27. |
|||
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Безотносительно логики кода (она, как всегда, безупречна), вопрос: а asel не надо очищать? Я-то обычно иду через ssget....
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
После использования, вобщем - нет, можно и не очищать, если не предполагаются какие-то дальнейшие манипуляции, где потребуется пустой набор. Собственно и перед использованием, это скорее перестраховка, но просто уже привык так делать всегда, когда использую активный набор. |
|||
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
Код:
Цитата:
|
|||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
В результате работы функции (vla-GetBoundingBox) мы получаем 2 крайние точки габаритного контейнера. Но правильно ли мы трактуем эти точки, строя по ним прямоугольник?
Вот простейшая программа: Код:
Почему так происходит? Аналогичный результат происходит и при использовании приведенных в этой теме программ. Кстати, программа Alaspher вообще работает 1 или 2 раза и вырубается. Последний раз редактировалось Profan, 23.01.2017 в 07:18. |
|||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Если эти операции произвести вручную: задать угол поворота блока = 0, получить габаритный прямоугольник, повернуть его на исходный угол и получить новый габаритный прямоугольник, то именно так и получается. (Неужели AutoCAD именно так и делает? И зачем?)
Но вот есть задача: Имеется несколько разных объектов, в том числе и повернутый блок. Необходимо построить габаритный прямоугольник для всех этих объектов. Как это корректно выполнить? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
trir, Profan, вы про что?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 18.12.2010
Сообщений: 5,057
|
Цитата:
Код:
|
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как по координатам из метода GetBoundingBox уменьшить размер | disintegrator | Программирование | 8 | 26.10.2005 23:35 |