Как быстро преобразовать в отрезки десятки тысяч полилиний при помощи LISP - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как быстро преобразовать в отрезки десятки тысяч полилиний при помощи LISP

Как быстро преобразовать в отрезки десятки тысяч полилиний при помощи LISP

Ответ
Поиск в этой теме
Непрочитано 19.07.2014, 14:44
Как быстро преобразовать в отрезки десятки тысяч полилиний при помощи LISP
Влад-и-мир
 
Регистрация: 19.07.2014
Сообщений: 9

Имеется чертеж в котором надо преобразовать в отрезки несколько десятков тысяч полилиний.
Единственный язык программирования, которым владею - LISP.
Единственный способ, который знаю - (command"_explode")
Проблема в том, что в автокаде команду можно применить сразу к набору данных, содержащих полилинии, и тогда она работает моментально, а в программе так не получается, только в цикле по одному примитиву. В результате процесс затягивается до получаса..
Чертежи формируются в сторонних организациях. Выполнить преобразование над набором полилиний вручную нежелательно, т.к. получению этого набора предшествуют программные действия, и после преобразования программа продолжает работу.
Просмотров: 5607
 
Непрочитано 22.07.2014, 12:28
#21
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


По моему опыту у автодеска "нет проблем" с ответственностью перед юзерами (простыми словами им что до факто, что до юре - одинакого фиолетово) - весь вопрос насколько глубоко она интегрированна в автокаде и когда они решать переписать затрагивающий ее модуль - то есть дадут отделу разработку новую спецификацию - и скажут - надо чтоб работало (а про QAFLAGS они могут даже и не знать - т.к. те кто ее реализовывал уже не факт, что там-же работают).
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 22.07.2014, 13:43
#22
Влад-и-мир


 
Регистрация: 19.07.2014
Сообщений: 9


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Правильно. Потому что далеко не факт что надо "разбивать" все и вся. Хочешь - замени _:L на _X, и добавь обработку блокированных и замороженных слоев.
Executing time : 14.49882984161377 sec. Тоже вполне приемлемо на фоне циклического использования Explode, где время в районе двух десятков минут. "Свой" вариант не пускал, там явно меньше секунды.
Обработку слоев предпочитаю делать вручную. Она редко требуется, но может содержать нюансы, которые в программе можно упустить.
Видимо пока оставлю "Свой" вариант, а твой оставлю в запасе - он понадобится, если вдруг Автодеск отключит взаимодействие Explode c Qaflags.

----- добавлено через ~18 мин. -----
Цитата:
Сообщение от Влад-и-мир Посмотреть сообщение
Итак, промежуточный итог
Окончательный итог: проверено на А2002, А2008 и А2014 (что было под рукой). Во всех случаях код из #17 работает менее секунды. Преобразованные в линии полилинии становятся последними примитивами в чертеже. Обнуление draworderctl не исключает необходимости использования qaflags.
Очень интересный вариант предложил Кулик Алексей aka kpblc, но он остается только в запасе - на случай подвохов со стороны Autodesk, которые вполне возможны, как считаем мы с Дима_ , поскольку вариант от VVA и Do$ уже включен в программу.
Спасибо всем, особенно VVA, Do$ и Кулик Алексей aka kpblc

Последний раз редактировалось Влад-и-мир, 22.07.2014 в 14:27.
Влад-и-мир вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как быстро преобразовать в отрезки десятки тысяч полилиний при помощи LISP



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19