|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Помогите с лиспом преобразования в vlax-объект
Регистрация: 26.12.2013
Сообщений: 283
|
||
Просмотров: 4663
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Чего?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 26.12.2013
Сообщений: 283
|
![]() Возможно есть путь проще. Полная задача: тут. В текущий момент мне надо найти какие линии имеют общую точку(с условием, что можно будет погрешность задавать) т.е. составить "карту метро", а потом добавить "станции" в виде блоков и искать короткий путь между выбранными блоками. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Сложный фильтр - это всего лишь сложный фильтр. Используй группировку с OR, AND - ИМХО самое то будет. Подробнее - справка по ssget и примеры для него.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 26.12.2013
Сообщений: 283
|
Я так понял список нужного мне не даст- а так хотелось хранить все примитивы по группам.
Поясните мне как новичку: Что быстрее: фильтр или OR, AND? Фильтр занимает меньше строк кода и кажется, что работает быстрее(не проверял конечно). Ну вот к примеру на OR, AND: Код:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
"Неправильно ты, дядя Федор, бутерброд ешь" (с)
Тебе кто мешает сформировать набор таким образом Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
entget убери и будет тебе ename
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 26.12.2013
Сообщений: 283
|
То, что надо!!! Спасибо!
Вопрос один еще не закрыт: 1) Что быстрее: фильтр или OR, AND? Просто мне кажется, что OR, AND будет проверять каждый примитив, а список нет. Хотя набор их 30 000 объектов составлялся достаточно долго. Получается любой метод будет перебирать все примитивы не зависимо от того какое условие ставить первым т.е. "искать в слое линию или линию в слое" В модели больше 500 000 примитивов. Из них надо найти 20 примерно. В любом случае завтра поэкспериментирую. Возможно добавить машинное время для сравнение?-есть код |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
|
|||
![]() |
|
||||
Регистрация: 26.12.2013
Сообщений: 283
|
Кулик Алексей aka kpblc.
Помоги еще раз. В определении объектов на пересечение ошибка у меня. Надо найти пересечение всех блоки из набора со всеми линиями из другого набора. Если не пересекаются, то выдать ошибку (это недопустимо в чертеже). Если пересекаются, то составить список (карту/дерево) к этому списку я буду добавлять все линии и в конце еще один блок. Дальше длину пути сравнивать, если есть альтернативные, то спрашивать какой выбрать. Код:
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
Регистрация: 26.12.2013
Сообщений: 283
|
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
По-моему, vla-intersectwith глубоко параллельно на видимость объектов. Дело в другом: пересекаться могут несоставные объекты (отрезки, дуги, полилинии). Тексты, таблицы, размеры, блоки, внешние ссылки - это отдельная песня, не всегда гарантирующая нормальный результат.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 26.12.2013
Сообщений: 283
|
Мне особо не важны эти моменты. У меня будут в основном прямоугольные блоки. Даже, если появятся тексты рядом с блоком- сделаю такие блоки или подвод линии так, что бы погрешность в расстоянии была наименьшей. Сей час мне надо просто получить информацию: если пересечения есть, то добавить в список (скорее всего с ключами), если нет то обработать дальше или выдать ошибку, что пользователь допустил ошибку.
И такая проблема меня мучает: запустил приложение или функцию один два раза - все хорошо. Но вскоре ни одна функция не выдает результата в командной строке- приходится новый чертеж создавать. В чем причина? как устранять? |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Объединение дуг, линий в единый объект, Как объединить? | Vladimir.P | AutoCAD | 41 | 25.01.2015 08:03 |
Помогите отклассифицировать проектируемый объект. | Clod | Прочее. Архитектура и строительство | 4 | 28.01.2012 20:59 |
Помогите расценить объект | Варюшенков Д.Е. | Разное | 8 | 02.04.2010 16:24 |
Помогите преобразовать каркас спиральной канавки в твердотельный объект... | Sota | AutoCAD | 12 | 06.01.2010 09:33 |
Помогите создать не AutoCAD-овский ARX объект | Caduser | AutoCAD | 5 | 24.09.2004 07:59 |