Блоки, _.draworder и …

...и некоторые известные, но не очень очевидные моменты.

Иногда очень хочется, чтобы порядок следования примитивов внутри блока был строго определенным. Самый живой пример - применение маскировки.

При этом иногда вроде бы все сделано "как надо", в библиотечном файле все работает как надо, а вот в любом другом файле, куда был импортирован такой блок - творится черт-те что.

На самом деле все очень просто. Нередко при создании блока маскировка создается "в последних рядах", и потом с помощью команды _.draworder помещается "за всеми объектами". Так вот, при работе в текущем файле этот метод прокатывает на ура, но при импорте блока в новый файл этот порядок "слетает".

Конечно, можно зайти в редактор блоков и все подправить руками, но рано или поздно это будет не сделано.

Выход только один: в результирующем блоке примитивы должны следовать один за другим. В этом же порядке они и будут обрабатываться в новых файлах, куда этот блок будет вставляться.

Допустим, мы создаем блок (для упрощения ситуации рассматриваю вариант с обычным, нединамическим блоком) с маскировкой, которая частично перекрывает пару примитивов (круг и дугу). Поверх маскировки показывается атрибут, отрезок и полилиния.

История создания блока такова, что маскировка создана в последнюю очередь. Что надо сделать?

Выбираем объекты, которые должны лежать "над" маскировкой и копируем (обратите внимание - именно копируем!) куда-нибудь в сторону. Я обычно включаю режим ORTHO (F8) и указываю направление, например, вверх, расстояние - по ситуации. Исходные объекты - удаляем. Копии перемещаем обратно. Сохраняем блок, сохраняем файл.

Все, блок приведен в "божеский" вид :)

P.S. Все описанное многократно проверено на блоках и только на них. Внешние ссылки, хотя и являются с точки зрения AutoCAD "почти блоками", ведут себя по-другому: там порядок отображения примитивов не слетает и обрабатывается вполне корректно (по крайней мере у меня было именно так).

Размещено в AutoCAD · Метки:



Комментарии

Есть 3 коммент. к “Блоки, _.draworder и …”
  1. Владимир пишет:

    Алексей, приветствую!
    Недавно столкнулся с вышеописанной проблемой, да больно так :(((
    Сделал библиотеку блоков (штук 200) все с маскировкой, все динамические, у большинства два параметра видимости.
    Ну и конечно, при использовании на стороне все поплыло... Маскировка поверх всего. Попробовал исправить один блок как ты советуешь - все получается. НО. По сути блоки нужно создавать заново. При замене примитивов вся динамика слетает к чертям.
    Вопрос такой - а нельзя ли процесс лечения немного автоматизировать? Облиспить так сказать?

  2. Кулик Алексей aka kpblc пишет:

    Мысля есть, но у меня завал - и по работе, и подготовка к AUR2014 :( да и игрался с этим я достаточно давно... Попробую повоевать, но результата не обещаю.

  3. Владимир пишет:

    Ок. Спасибо заранее. Желаю успехов!

Поделитесь своим мнением


Я не робот.