9 апреля 2010 г.

Express'овская команда BLOCKREPLACE и динамические блоки

При попытке заменить одни динамические блоки другими, у вас могут возникнуть такие проблемы:

И, как следствие, - ноль блоков будет заменено. Дело в том, что изменяя динамический блок за ручки, Автокад создает для каждого такого измения свой служебный блок. Многие наверняка замечали при выполнении команды PURGE в пункте Blocks непонятные блоки вроде *D115, *U107 и т.п. Вот это те самые служебные блоки, которые Автокад использует для отображения динамики. Заметьте, что имя служебного блока начинается со звездочки, которую не любит команда BLOCKREPLACE. При изменении исходного динамического блока за любую из динамических ручек, блок получает новое имя (*D115, *U107  и т.п.), хотя в свойствах имя блока остается прежним.

Решение проблемы я нашел такое: перед операцией замены нужно сбросить все заменяемые блоки, сделав им reset командой RESETBLOCK. Блоки при этом получат свое оригинальное имя и их смело можно будет заменять. Знаю, геморно, но уж лучше так чем вручную....

4 комментария:

  1. Анонимный19 апреля, 2010 03:54

    а не проще ли через ТулПаллетс заменить блоки?

    ОтветитьУдалить
  2. Хм.... я не знаю такого способа... Расскажите, пожалуйста!

    ОтветитьУдалить
  3. Я так понимаю речь идет о Redefine Block? - ПКМ о иконке блока в TP

    ОтветитьУдалить
  4. Я так и понял. Этим способом действительно можно добиться требуемого результата...

    ОтветитьУдалить