|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,425
|
Mozgunov, а запрашиваемые объекты точно пересекаются?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Начинающий проектировщик Регистрация: 07.02.2008
Санкт-Петербург
Сообщений: 443
![]() |
Да. Точно пересекаются.
_______________________ Дима_ Выдаёт (<Имя объекта: 7efab390> <Имя объекта: 7efab410>), но ошибки нет уже. Листинг команд: Код:
Последний раз редактировалось Mozgunov, 15.07.2009 в 23:20. |
|||
![]() |
|
||||
Начинающий проектировщик Регистрация: 07.02.2008
Санкт-Петербург
Сообщений: 443
![]() |
Выполняется функция но ничего не возвращает. Перезапустил autocad попробовал снова. Вот что получилось:
Код:
![]() Цитата:
|
|||
![]() |
|
||||
Начинающий проектировщик Регистрация: 07.02.2008
Санкт-Петербург
Сообщений: 443
![]() |
Проблема в том что я не умею пользоваться функциями
![]() Если вызывать функцию (intersect obj1 obj2) то возвращается три списка (точки пересечения полилиний) Я делал так: Код:
|
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
удалено
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
(intersect) возращает nil если объекты не пересекаються, (что возращает команда (setq rez (Intersect obj1 obj2)), то и лежит в rez. Проверить можно, например (list rez).
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Начинающий проектировщик Регистрация: 07.02.2008
Санкт-Петербург
Сообщений: 443
![]() |
Дима_, Всё работает прекрасно!!! Я проверел вызывав функцию через командную строку () . Я про то, что в том виде в котором я записал скрипт последний результат вычисления это не присваивание переменной rez списка, а что-то другое, вообщем мне ещё разбираться и разбираться, даже с вашей вункцией.... А так всё работает! Большое спасибо за грамотный и своевременный ответ!
|
|||
![]() |
|
||||
А если не двух полилиний, а множества полилиний, у которых нужно найти точки пересечения?
В идеале получить либо множество примитивов-точек в точках пересечений, либо вставить блоки в них. Список координат этих точек тоже неплохо. Offtop: Мне мерещится, что нечто подобное я на форуме уже видел, но найти пока не получается. |
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
АлексЮстасу, Уточни задачу. Есть набор, состоящий из полилиний. Нужно найти точки пересечения полилиний каждой с каждой? И просто вывести список всех возможных точек? Если несколько полилиний пересекаются в одной точке, то в результирующем списке точка пересечения должна присутствовать только один раз или нет?
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 17.06.2013 в 01:09. |
|||
![]() |
|
||||
Цитата:
|
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
3 команды: POLYBLOCK и POLYPOINT и POLYPOINTVX . Об описании блока и режиме отображения точек нужно позаботиться заранее и самостоятельно
Использовал ф-цию all-pt из поста выше. Она рекурсивная. Надеюсь, количество обрабатываемых полилиний будет в разумных для нее (рекурсии) пределах Отличие POLYPOINT от POLYPOINTVX. POLYPOINT - ставит точки во всех пересечениях полилиний POLYPOINTVX - не ставит точки в точках общих вершин выбранных полилиний (см. пост #40) Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 31.08.2023 в 18:17. |
|||
![]() |
|
||||
Цитата:
Цитата:
Пардон за невежество, это лисп? И как указать, что именно этот блок (если их в файле несколько описано разных)? Сейчас POLYBLOCK отвечает: Цитата:
![]() Последний раз редактировалось АлексЮстасу, 17.06.2013 в 02:12. |
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
АлексЮстасу,
Добавил в #37 указание в начало кода.
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Инвентаризация з/у Регистрация: 30.03.2006
Брянск
Сообщений: 20
|
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Тела пересекаются, как нарисовать контур пересечения | BM60 | AutoCAD | 12 | 08.09.2008 11:09 |
координаты вершин выбранной полилинии на VB? как получить | ssv22 | Программирование | 5 | 17.07.2008 00:01 |
как получить путь к сетевому текстовому файлу | Victorovich | Программирование | 3 | 30.06.2008 15:47 |
Объединение двух 3D полилиний | Рyslan | AutoCAD | 12 | 22.05.2008 13:14 |