пятница, 12 апреля 2013 г.

Динамический шаблон основной надписи


Доброго времени суток!

В вашем распоряжении находится универсальный шаблон со штампом, заполняемым автоматически из AutoCAD Electrical. В шаблоне есть возможность выбирать формат листа и настраивать отображение.

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

Многострочные атрибуты переносятся автоматически на следующую строку, если текст выходит за ширину соответствующей рамки.

Автоматическое заполнение атрибутов утилитой Electrical происходит в блоке HID_MAIN_BLOCK, находящимся в начале координат (это маленький прямоугольник в правом нижнем углу ШТАМПА - слишком маленький )) )

Основной штамп MAIN_BLOCK забирает значения с маленького блока полями, это связано с тем что Electrical не обновляет многострочные атрибуты и не работает с динамическими блоками (ГЛОБАЛЬНАЯ ПРОБЛЕМА!).

Таким образом, при перемещении ШТАМПА в другой чертеж (если надо скопировать вручную), не забывайте забирать его "мозг" (HID_MAIN_BLOCK).

Поля жестко привязаны к вхождению блока HID_MAIN_BLOCK, поэтому при любой махинации с блоком MAIN_BLOCK (переделать под себя) придется заново переназначать поля.

AutoCAD ставит прочерки в пустые поля, поэтому, если какое - либо поле не заполняется, то в описаниях задавайте невидимый символ - его десятичный код 255 по таблице ASCII (просто наберите на клавиатуре Alt+255, то есть нажмите Alt и наберите на малой клавиатуре 255, должен появиться невидимый символ). После этого вместо прочерков будет этот невидимый символ.

В блоке HID_MAIN_BLOCK присутствует атрибут WD_TB, если кто-то захочет использовать файл .wdt, то просто удалите атрибут WD_TB. Кстати, при попытке править данный атрибут в ручную автокад выдаст ошибку, что в нем слишком длинный текст, для этого нужно просто использовать функцию "Настройка основной надписи" из меню «Проект».

В данный шаблон можно добавлять собственные слои, стили и использовать по умолчанию для проектов.

Файл default_wdtitle.wdl нужен для описания соответствия атрибутов и его необходимо поместить либо в папку по умолчанию, либо переименовать и помещать в каждый проект, где ИМЯ_ПРОЕКТА_wdtitle.wdl.

Расположение соответствующих атрибутов на ШТАМПе показано в документе «Образец для заполнения.pdf».
 

Для интеграции данного шаблона в проект AutoCAD Electrical необходимо выполнить следующее:

1) разместить шаблон в папку для шаблонов по умолчанию;

2) создать новый проект в ACADE (например PROJECT.wdp);

3) Добавить файл описаний default_wdtitle.wdl в папку по умолчанию или в папку с проектом, где нужно переименовать файл по шаблону: ИМЯ_ПРОЕКТА_wdtitle.wdl (например, PROJECT_wdtitle.wdl);

4) выбрать пункт "Описания" для проекта и занести соответствующие данные;

5) создать новый чертеж для проекта и в качестве шаблона выбрать этот шаблон;

6) в свойствах чертежа задать описание чертежа, лист - Описание 1

7) основная надпись вновь созданного чертежа заполняется автоматически, а вот в любой другой момент можно:

- выполнить команду "Обновить блок заголовка" и выбрать там все необходимые значения (когда нажимаете "выбрать все", то та часть, которую не видно не выбирается, поэтому обязательно выбирайте все необходимые пункты для обновления основной надписи, после этого можно нажать сохранить и в следующий раз выбирать не придется);

8) нажимаете кнопку "сохранить" (только после сохранения значения полей обновляются) и смотрите результат.

9) для того чтобы выбрать необходимый формат, нужно выбрать блок штампа и нажать на рукоятку выбора на этом блоке (стрелка вниз), также там можно выбрать другой рукояткой способы отображения (первый лист - атрибут ЛИСТОВ видимый, последующий лист - атрибут ЛИСТОВ невидимый);

10) можно приступать к рисованию :)

Если возникнут какие-либо вопросы или предложения по улучшению данного шаблона - пишите на e'mail, указанный ниже.

Буду рад помочь и обсудить шаблон с вами.

Удачи! 

С уважением,

Дмитрий Чемерисов.


PS. Шаблон_Electrical.dwt и другие файлы можно скачать с сайта www.acade.ru, раздел «Обмен опытом» http://www.acade.ru/107/132/

6 комментариев:

  1. Дмитрий, доброго времени суток!
    Я занималась этой же проблемой у себя на работе, поэтому у меня к вам пара вопросов. Буду благодарна, если ответите.
    1. Вы говорите, что динамические блоки не работают в АСЕ. Но ваша реализация очень похожа как раз на их использование. (На самом деле работают).
    2. Я так поняла, вы при смене формата меняете только блок рамки? А если, например, понадобится другой штамп? Я имею в виду, что для вторых листов штамп имеет меньшую высоту. Также он разнится в формате А4, в зависимости от того, будет на листе чертеж или таблица.
    3. Шаблон со всеми форматами весит довольно много. Я также столкнулась с этой проблемой. Как вы считаете, есть ли способ как-то уменьшить его вес?

    Наталья

    ОтветитьУдалить
  2. Здравствуйте, Наталья.
    Отвечаю на Ваши вопросы:
    1. Про динамические блоки я не обманул. Дело в том что ACE действительно не хочет работать с динамическими блоками, в частности, обновлять атрибуты в них своей утилитой. Это скорее связано с тем, что динамический блок принимает имя *U.. после изменения его динамики. ACE обращается к имени блока, которое ему известно, а на самом деле там не оно, вот он и не видит этого вхождения блока на чертеже, и ,соответственно, не обновляет в нем атрибуты. Но если при обновлении основной надписи использовать метод с атрибутом WD_TB, то динамический блок обновится, так как этот атрибут ищется во всех вставленных в чертеж блоках и в *U... тоже. Однако есть проблема обновления многострочных атрибутов утилитой ACE. Они просто не хотят обновляться. Таким образом, пришлось выкручиваться. Я не использую динамически блок с утилитой обновления основной надписи с помощью ACE. Для этого на чертеже присутствует скрытый блок HID_MAIN_BLOCK (НЕ динамический и с однострочными атрибутами). Он обновляется, а в динамический блок MAIN_BLOCK данные забираются полями (уже в многострочные атрибуты).
    2. Что касается форматов, то этот шаблон создавался на основе моих работ, то есть маленький штамп мы не использовали в графической части проекта. Там есть первый лист и последующий, они отличаются тем, что в последующем листе скрывается атрибут ЛИСТОВ. А маленький штамп можно добавить в шаблон, однако придется переназначить все поля заново. И еще, так как в малом штампе не присутствует многострочных атрибутов, то можно создать отдельный шаблон с маленьким штампом, поместить в блок MAIN_BLOCK атрибут WD_TB c соответствующими записями, а скрытый блок удалить. Тогда можно обойтись и без полей, динамический блок будет обновляться. Но формулу для сквозной нумерации через поле все равно придется прописать.
    3. Шаблон, который лежит в разделе Обмен опытом на сайте dwg.ru занимает объем памяти 115 Кбайт. Это, я считаю, очень даже не много. Дело в том, что в динамическом блоке не хранятся все форматы, там используется операция Выбор. То есть, для каждого формата просто меняется высота и ширина в зависимости от выбранного значения (например, Format: A3 Высота: 297 Ширина: 420)
    Надеюсь после моего ответа все прояснилось.
    Если возникнут дополнительные вопросы, пишите, рад буду ответить.

    ОтветитьУдалить
  3. Спасибо большое! Все прояснилось, много полезного узнала!
    Я делала с динамическими блоками, но для изменения надписи приходилось их разбивать... теперь поняла, почему.

    Наталья.

    ОтветитьУдалить
  4. В файле default.wdt добавьте в строке BLOCK = Stamp,`*U*
    Где вместо Stamp имя Вашего блока основной надписи

    ОтветитьУдалить
    Ответы
    1. После запятой не должно быть пробела

      Удалить
    2. Алексей, строчка BLOCK = Stamp,`*U* устраняет проблему с определением имени блока при изменении динамики, но не решает проблему обновления многострочных атрибутов. AutoCAD Electrical не обновляет MText (название проекта в несколько строк).

      Удалить