30/07/2014
Разница между командой _.explode и vla-explode
Попробую расписать варианты разбивания примитивов AutoCAD'a командными и ActiveX-методами. Не рассматривается вопрос разбивания набора примитивов: для такого вопроса сначала надо будет выбирать способ разбивания исходного элемента. Также можно посмотреть тему на dwg.ru - там предостаточно информации :)Фактически на моей практике возможны использования двух вариантов: либо команда _.explode, либо vla-explode.
В принципе, их поведение очень и очень похоже: оба варианта способны "расколошматить" и полинию, и блок; для обоих вариантов критично состояние слоя для примитива. Но вот, например, твердые тела и штриховки (спасибо Евгению Елпанову) vla-explode обработать не сможет (проверял на AutoCAD 2014, 2015). При обработке блоков оба метода подчиняются правилам, задаваемым системной переменной EXPLMODE (за подробностями добро пожаловать в справку). Оба варианта не обработают блок с разными масштабами по разным осям (т.н. NUS - nonuniformly scaled - блоки), если внутри него есть твердые тела.
Понятно, что _.explode сработает только в текущем пространстве, а vla-explode можно "натравить" и на вложенные блоки и примитивы. Но это не единственное отличие этих методов...
Во-первых, _.explode после успешного выполнения уничтожает исходный объект, а vla-explode оставляет его на месте. Т.е. после применения vla-explode потребуется либо vla-erase, либо entdel, либо _.erase - ну или что там больше понравится :)
Во-вторых, в случае невозможности разбития объекта команда _.explode просто выдаст сообщение в командную строку о невозможности разбития объекта, а вот vla-explode сгенерирует ошибку.
Если все сказанное свести воедино, то получим табличку примерно такого вида:
Команда _.explode | vla-explode | |
Разбивание полилиний | Да | Да |
Разбивание блоков в соответствии с EXPLMODE | Да | Да |
Разбивание твердых тел | Да | Нет | Разбивание штриховок | Да | Нет |
Разбивание NUS-блоков с твердыми телами в составе блока | Нет | Нет |
Требует дополнительных действий по удалению исходного объекта | Нет | Да |
Требуется дополнительная обработка ошибок | Нет | Да |
Автор: Алексей Кулик.
Обсуждение: http://adn-cis.org/forum/index.php?topic=880
Опубликовано 30.07.2014Отредактировано 04.08.2014 в 22:52:44