|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
LISP. Выделение блоков с динамическими свойствами
Отопление и вентиляция
Москва
Регистрация: 31.10.2008
Сообщений: 445
|
||
Просмотров: 3409
|
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Ну как минимум убрать 2-х кратное повторение преобразования перевода ename->vla (переведи а потом фильтруй). Можно конечно и вобще в одну операцию это делать, но выйгрыш в данном случае будет не большой.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Отопление и вентиляция Регистрация: 31.10.2008
Москва
Сообщений: 445
|
я это понимаю, но как это сделать в одной операции не приходит в голову.
|
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Код:
з.з.ы пяток процентов к скорости можно добавить заменив ' на function.
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 15.02.2012 в 23:41. |
|||
![]() |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Composter, у меня есть такое предложение. Формировать набор не из всех вхождений блоков на чертеже с помощью (ssget '((0 . "INSERT"))), а сначала пройтись по определениям блоков и узнать имена динамических (обычно кол-во вхождений блоков намного больше чем определений), потом только сформировать набор с чертежа по вхождениям с именами дин. блоков и именами типа *U* и уже среди них проверить какие действительно являются динамическими. Такой вариант должен работать быстрее если среди всех вхождений много обычных, а не динамических блоков, так как мы их заранее отсеиваем, конечно если основная масса блоков динамические, то такой вариант будет наоборот работать дольше.
Код:
__________________
cadtools |
|||
![]() |
|
||||
Отопление и вентиляция Регистрация: 31.10.2008
Москва
Сообщений: 445
|
на счет количества блоков, на текущем моем чертеже их около 1500 из них динамических 600.на счет определенных имен,это вполне возможно(хоть их и около 30). и фильтр (cons 2 (strcat ss "`*U*")) не прокатывает если сделать _resetblock , то его текущее имя будет такое же как и vla-get-EffectiveName, и тогда он не попадет в этот список.
жаль по 360 паре не получается отсеивать ,и вот это тоже не прокатывает Код:
Последний раз редактировалось Composter, 16.02.2012 в 22:09. |
|||
![]() |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Как это не попадает, попадает, его имя будет в строке ss, которое сформировано из имен определений блоков.
__________________
cadtools |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Может чего с компьютером не то? Такие порядки как не "обзамеряй" должен делать на счет раз (только что проверил на старом ноутбуке) - боюсь не туда смотрите.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Очистка рисунка от "пустых" блоков | Makswell | Готовые программы | 15 | 26.10.2022 15:24 |
LISP. Нормализация блоков текущего файла. | Кулик Алексей aka kpblc | Готовые программы | 82 | 06.07.2016 20:38 |
LISP / AutoCAD2008 / Как программно снять выделение у примитивов, не используя sssetfirst | TararykovDG | LISP | 7 | 14.01.2011 10:48 |
Тормозит команда расчленения набора блоков | batmax | Программирование | 4 | 31.08.2010 17:37 |
Быстрое выделение одинаковых блоков. | Mikhail | AutoCAD | 24 | 17.02.2005 09:37 |