|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как взорвать все блоки на листах разом.
Регистрация: 27.06.2013
Сообщений: 58
|
||
Просмотров: 30893
|
|
||||
Регистрация: 27.06.2013
Сообщений: 58
|
|
|||
![]() |
|
||||
Регистрация: 27.06.2013
Сообщений: 58
|
|
|||
![]() |
|
||||
Регистрация: 08.11.2014
Сообщений: 15
|
Цитата:
Насчет сразу в модели и в листах, я не уверен, что такое возможно. |
|||
![]() |
|
||||
Регистрация: 27.06.2013
Сообщений: 58
|
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Не все так просто. Сначала по нормальному файл надо сохранить в особую папку для выдачи (чтобы случайно не выдать внешникам рабочие варианты чертежей), потом обработать ссылки и т.д (смотрим шапку темы). Вроде есть методы преобразования динблоков в статику (никогда не использовал)-т.е., возможно, не обязательно все расчленять. А под конец еще почистить чертеж и проверку сделать. В коде лишь перебирает листы в активном чертеже. И вполне возможно, что это надо делать через Active-X.
А если чертежей много и собраны через подшивку? в общем вещь индивидуальная.. zmejsan, В принципе, выше все написал. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
Если руками - то ИМХО через экспортирование листов в модель и последующим burst. И то не факт, что получится красиво
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Цитата:
Тогда предлагаю следующий алгоритм 1. LISP. Подготовка подосновы 2. BGCFT - Конвертирует все поля в обычный текст 3. BGBLALLDYN2S - Преобразовывает ВСЕ динамические блоки в статические
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 27.06.2013
Сообщений: 58
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
Регистрация: 27.06.2013
Сообщений: 58
|
Нет)) Так черчу только я. И на листах динамически сделаны рамки, условные обозначения и другая мелочь. А в модели я могу с помощью быстрый выбор выбрать все блоки и взорвать. Даже сделать макрос на кнопку-это не сложно. А вот в листах....
|
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
То ли из-за нелюбви взрывать блоки форумчане не хотят подсказать, то ли я чего-то не пойму, но ведь все решается одной строчкой. Я имею в виду выбор блоков на всем чертеже: и в модели, и в листах. Вот эта строчка:
Код:
![]() Последний раз редактировалось skkkk, 09.11.2014 в 14:11. |
|||
![]() |
|
||||
Регистрация: 27.06.2013
Сообщений: 58
|
Не совсем понял данной команды. Ввожу-выделяет блоки на листе, взрываю, а на другом листе все по прежнему. Она как бы показывает сколько есть блоков в файле но выделяет только те что видит. Подскажите возможно я делаю чтото не так
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
----- добавлено через ~4 мин. ----- Цитата:
А условные обозначения и прочая мелочь на листе - даже говорить не хочется) На листе должна быть рамка со штампом и видовые экраны, и все. имхо. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Ах вот в чем тут дело, а я думаю сижу тут, что самый умный
![]() ![]() |
|||
![]() |
|
||||
Регистрация: 27.06.2013
Сообщений: 58
|
Хорошая команда. Я не знал про нее. Подкрепил к кнопке перед взрывом и немного ускорило мне это. Спасибо!
|
|||
![]() |
|
||||
Инженер дорожник Регистрация: 22.10.2007
Израиль
Сообщений: 1,859
|
Вобще из конторы в которой не работают с блоками, а тех кто работае заставляют взрывать вместо того что бы хоть одну кнопку выучить и взрывать самому, заставляют автора взрывать блоки, бежать нужно, всёравно это будет не работа а мучение. У меня тут одна умная рвёт всё подряд, я стал закрывать блоки от возможности взрывать.
![]() |
|||
![]() |
|
||||
Регистрация: 27.06.2013
Сообщений: 58
|
Цитата:
![]() |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Offtop: Главное, помните - в первую очередь выгоняют из шаражек тех, кто не вписывается в общую корпоративную струю - чтобы не наводил смуту
![]() |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Вот, для всеобщего взрыва всех блоков во всех пространствах:
Код:
|
|||
![]() |
|
||||
Регистрация: 27.06.2013
Сообщений: 58
|
Друзья большое спасибо! Маленькая просьба. немогли бы собрать все в один файл и сказать как пользоваться. Я с лиспами вообще не лады(((
Еще просьба взрывать блоки с переводом отребутов в текст. И взорвать все таблицы как обычным взрывом. Т.е. упростить все до линий и текста. Большое спасибо! |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
skkkk, посмотри: команда burst обращается к внутренней функции burst-one. Так что можно и ее попробовать использовать по мере надобности.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
----- добавлено через ~41 мин. ----- Типа такого Код:
|
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
два варианта :
1. блоку "запрещено" взрываться (vla-get-explodable) 2. не равные коэффициенты по x y z + 3. В штатной команде есть много глюков и при большом кол-ве блоков может долго выполняться. см Express Tools Bugs ( Ошибки Express Tools ) еще полезная ссылка 4. Нюансы _EXPLODE (РАСЧЛЕНИТЬ)
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Отопление и вентиляция Регистрация: 31.10.2008
Москва
Сообщений: 445
|
еще немного советов.
после того как вам тут соберут лисп ,который будет все делать. далее закидываете в какую нить папку , создаете батник в нем пишете аля Код:
не забудьте добавить этот лисп в автозагрузку ну и в конце лиспа надо добавить Код:
|
|||
![]() |
|
|||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Да, именно их возвращает. Согласен, можно, забыл я об этой функции, просто такая конструкция в моих функциях получает список объектов любых словарей: не только список листов, но и список групп, фильтров слоев, стилей мультивыносок, мультилиний и т.д. Более универсально просто, а так, спасибо, учту.
Цитата:
Цитата:
Спасибо, Володь, тут все теперь предельно понятно. Кроме одного. Взрывать все-таки невзрываемые блоки или нет? Это к вопросу о Правильном Техническом Задании. Цитата:
![]() Ну это ты вообще... как шахматист. На несколько ходов вперёд ![]() ![]() В смысле связка _WMFOUT -> _WMFIN? Цитата:
zmejsan, а как продвигается тестирование лиспа из #29? Как работает? Медленно ли? А не быстрее ли с замененным burst.lsp из ссылок VVA в #34? Какие замечания и предложения кроме обработки таблиц? Сложно-то - не сложно, но когда от "Заказчика" не слышно обратной связи, то и делать вроде как нечего, не так ли? Может, вообще уже и не надо... |
||||
![]() |
|
||||
Регистрация: 27.06.2013
Сообщений: 58
|
skkkk, спасибо за старания! Я писал в посте #31, что я не умею пользоваться лиспами. Попробовал, но не заработало. Если не сложно сварганить готовый лисп и написать какую команду вводить для работы буду примного благодарен.
За труд СПАСИБО!!! |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
zmejsan, вроде по другим темам я понял, что это уже устаревшая информация, потому как лисп там шел на "ура"
![]() Ну, готовым бы я его не назвал, поскольку и но планирую "допилить" при выявлении замечаний и предложений. Однако взорвать взрываемые блоки на всех вкладках он уже должен суметь. P.S.: А может быть и такое, что Express Tools не установлены. Что пишет в комстроке? Последний раз редактировалось skkkk, 21.11.2014 в 23:35. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
Регистрация: 11.08.2007
Москва
Сообщений: 48
|
|
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
цитата из справки по команде _EXPLODE (РАСЧЛЕНИТЬ))
Цитата:
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
|
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Надо заменить на
Код:
Кстати, вспомнил, что немного это изящество не полностью соответствует изначальной задумке. Эта функция (layoutlist) возвращает только список листов, а в mapcar в данном случае собирает список, в котором есть еще и модель. Поэтому менять эти строки не нужно. |
|||
![]() |
|
||||
Регистрация: 16.10.2013
Сообщений: 395
|
понятно, спасибо
а как сделать объединение в лиспе следующих действий: 1) Выполнить команду BGCFT - Конвертирует все поля в обычный текст (из лиспа подосновы, была на форуме тема) 2) Выполнить команду BGBLALLDYN2S - Преобразовывает ВСЕ динамические блоки в статические (тоже от туда) 3) Выполнить команду ALLSPACESBURST - взрывает все блоки (лисп из темы) 4) Выполнить команду ОЧИСТИТЬ 5) Сохранить файл в этой же папке с добавлением к имени файла приписки типа "_взорв" |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Не иначе как для заказчика
![]()
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Цитата:
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 16.10.2013
Сообщений: 395
|
Уважаемые программисты, и автор кода VAA, подскажите, как в этот лисп еще добавить команду удаления слоя с подписями?
Слой с подписями при выполнении лиспа нужно выбрать (например, по аналогии с командой "слойудал"), если слой не выбран, то не удалять слои. Ну т.е. запускаем лисп, предлагается выбрать слой с подписями, выбираем его (или жмем Esc), дальше лисп как и был написан в предыдущем сообщении, т.е. взрываются блоки, чистится чертеж и сохраняется в отдельный файл Последний раз редактировалось posetitel, 15.11.2017 в 16:54. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 03.05.2023 в 13:08. Причина: добавлена c:explodeall |
|||
![]() |
|
||||
Регистрация: 16.10.2013
Сообщений: 395
|
Пишет "необрабатываемое исключение" С0000005 (Access Violation reading 0x0018) по адресу 25D0340Bh
автокад чуть ли не с фатальной ошибкой вылетает. При чем слой удалять необходимо перед выполнением предыдущего лиспа, иначе некоторе подписи бывают в блоке и они останутся в памяти чертежа, т.к. очистка уже выполнялась раньше. Я так понял здесь удаление слоя происходит в конце. Последний раз редактировалось posetitel, 15.11.2017 в 17:33. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
posetitel, Поставил в начало. Обновил #59
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 16.10.2013
Сообщений: 395
|
Команда: ARMAGEDON _-LAYER
Текущий слой: "0" Задайте параметр [?/Создать/Установить/Новый/переименоватЬ/Вкл/Откл/Цвет/Тип/вЕс/Прозрачность/Материал/пеЧать/Заморозить/Разморозить/Блок/рАзблок/Конфигурация/опИсание/соГласовать]: _Unlock Список имен слоев для разблокирования или <выбрать объекты>: Шаблон_Рамка_модель Задайте параметр [?/Создать/Установить/Новый/переименоватЬ/Вкл/Откл/Цвет/Тип/вЕс/Прозрачность/Материал/пеЧать/Заморозить/Разморозить/Блок/рАзблок/Конфигурация/опИсание/соГласовать]: Команда: _LAYDEL Выберите объект на слое для удаления или [Имя]: _NAME Введите имя слоя или [?]: Шаблон_Рамка_модель Выбранные слои: Шаблон_Рамка_модель. Выберите объект на слое, который требуется удалить, или [Имя/оТменить]: ******** ПРЕДУПРЕЖДЕНИЕ******** Имеется 4 определений блоков, которые вставляются на слой(и) для удаления. Блок(и) будут переопределены, а объекты, входящие в слой(и), будут удалены из определения(й) блока(ов). Сейчас произойдет удаление слоя "Шаблон_Рамка_модель" из этого чертежа. Продолжить? [Да/Нет] <Нет>: _Y Переопределение блока "Рамка_и_штамп_лист". Переопределение блока "Рамка_и_штамп_модель". Переопределение блока "*U4". Переопределение блока "*U5". Идет удаления слоя "Шаблон_Рамка_модель". Слои 1 удалены. Команда: ; ошибка: Возникло исключение: 0xC0000005 (Нарушение доступа) ; предупреждение: раскрутка пропущена для исключение дальше лисп не выполняется |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Судя по логу слой удалился. Поэтому сделай 2 кнопки (2 разные команды). Удаления слоя и чистки. и пользуйся старой версией
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Я имел в виду, что для заказчика порой многие слои не нужны. Разного рода вспомогательные и т.д. Более того, зачастую лишние слои даже "запрещены", а в файле куча ненужных слоев, которые вообще непонятно как удалить, искать объекты, в том числе внутри блоков, и т.д. Поэтому, программа по удалению определенного слоя не очень эффективна. Лучше - отключить все ненужное и поудалять это. А нужное - пообъединять с "разрешенными" слоями командой _LAYMRG
|
|||
![]() |
|
||||
Регистрация: 16.10.2013
Сообщений: 395
|
Новый код на рабочем месте протестирую.
Всегда удалял командой СЛОЙУДАЛ, при ее вызове слой выбирается мышкой, поэтому думал, что добавить одну команду в лисп будет несложно. Но раз появились такие сложности (заморозка всех слоев, потом удаление их), лисп не с первого раза заработал, то проще, действительно, по старинке. А вот лисп по взрыванию блоков, о чем собственно тема, взрывает только однократно, т.е. если в блоке есть еще один блок, то внутренний блок не расчленяется. Как сделать (какую команду скопировать), чтобы блоки взрывались хотя бы трижды? При этом, например, текст не распадался на отдельные буквы. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
|
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
posetitel, Попробуй в коде C:ALLSPACESBURST в строке №22 вместо (C:BURST) вписать (C:BGBLEXP)
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 01.10.2018
Сообщений: 2
|
туго с программированием. Можете подсказать куда в код дописать какие команды, что бы дополнительно взорвать блоки AutoDesk'ового СПДС, штриховки и Мтекст?
Забыл, еще по хорошему надо выделить все на чертеже и переместить на 0 слой с установкой цвета черного... Последний раз редактировалось Duero, 01.10.2018 в 15:00. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
А с какой целью это делать то? Зачем взрывать штриховки и мтексты?
|
|||
![]() |
|
||||
Регистрация: 01.10.2018
Сообщений: 2
|
Увы, есть программа на разработчиков которой я не могу ни как повлиять, а они использую древние компоненты, которые могут отображать только файл DWG 2007, и только в виде разбитых примитивов, если не разбить текст или штриховку, то чертеж может "разбегаться"
|
|||
![]() |
|
||||
Регистрация: 16.10.2013
Сообщений: 395
|
Пониму тему.
Подскажите, пожалуйста, как после удаления слоев в лисп добавить команды: 1) Сначала внедрить все ссылочные чертежи (вставленные и наложенные) в рабочий чертеж 2) Затем удалить неиспользуемые области подрезанных блоков (команда BGBLXCLIPEXP) 3) продолжить выполнение лиспа, т.е. чистку ненужных слоев и взрывание блоков |
|||
![]() |
|
||||
Регистрация: 12.03.2013
Сообщений: 611
|
Народ за ранее прошу прощения, за то что не прочитал все сообщения по этой теме, мож решение уже тут и есть - сориентируйте тогда пожалуйста
В чертеже есть много разных блоков. Во всех стоит запрет на расчленение. Нужно все разбить, но не очень удобно заходить в каждый блок и ставить расрешение на расчленение поштучно. Можно ли сразу каким нить лиспом, командой или переменной пакетно разом разрешить расчленение разных блоков |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 16.10.2013
Сообщений: 395
|
А можно сюда дописать еще команду, чтобы созданный чертеж (тот чертеж, который получился путем выполнения лиспа, с именем DWGNAME_взорв.dwg) закрылся и открылся исходный, в котором остались невзорванные блоки, неудаленные слои, ну т.е. изначальный чертеж DWGNAME.dwg ?
|
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Цитата:
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 16.10.2013
Сообщений: 395
|
Спасибо, лисп работает, но если можно, попрошу небольшую отладку:
после выполнения лиспа остается открытый взарванный чертеж и открывается нормальный рабочий чертеж. Если самому не закрыть взорванный, то повторно лисп не сработает. Доработка - это закрыть сохраненный взорванный чертеж. Идея то была как раз, чтобы когда выполнил всю работу с чертежом, сохранил его, взорвал для передачи, и тут как раз попалась на глаза досадная очепятка, вот чтобы не заходить заново в рабочий, просто еще разок взорвал, т.е. пересохранил прошлый взорванный и радуешься результату). Понимаю, что это уже будет правка исходной идеи кода, т.к. первоначально как раз и оставался открытым взорванный чертеж (вот как раз на нем если попадаются на глаза опечатки, начинается поиск исходника, повторное открытие и т.д.) |
|||
![]() |
|
||||
Взорвать
Saveas Undo
__________________
Мастерская СПДС |
||||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поменяли плоттер. Как заменить разом плоттер на всех листах, в параметрах листов, на другой плоттер? | Palomnic | AutoCAD | 5 | 14.12.2012 12:41 |
Динамические блоки при копировании перестают быть динамическими. | *Voland* | Динамические блоки | 11 | 04.07.2012 10:51 |
ЛИСП слои цвета преобразование | Gotch | LISP | 97 | 08.11.2011 10:22 |
Разбиение черечежа откоса на геологические блоки в VBA | Skyper | Программирование | 1 | 18.03.2010 08:54 |
Взорвать все блоки файла сразу | Red Nova | AutoCAD | 9 | 26.05.2009 11:16 |