Solo AutoCAD. Статья третья
Динамические блоки оформления
В этой статье мы с вами поговорим о создании стандартных блоков оформления. Эта тема представляется очень важной для решения поставленной нами задачи «Solo AutoCAD» просто потому, что именно для оформления чаще всего применяются сторонние программы.
До появления 2006-й версии возможности AutoCAD по созданию блоков оформления были весьма ограниченны. С появлением динамических блоков AutoCAD стал способен создавать оформительские блоки, не уступающие по функционалу и удобству использования объектам программ, специализирующихся на оформлении чертежей. А экономия денег и то, что результат будет таким, как нравится вам, должно помочь преодолеть трудности, возникающие при создании динамических блоков оформления.
Есть еще один плюс, который с самого начала неочевиден. Дело в том, что динамические блоки представляют собой совершенный механизм адаптации AutoCAD для решения различных специальных задач. А лучшего способа научиться их разрабатывать, чем создать коллекцию оформительских блоков, нет. Поэтому можно рассматривать создание оформительских блоков просто как учебу.
При изложении статьи я рассчитываю на то, что пользователь уже умеет создавать, упорядочивать и синхронизировать атрибуты, знаком с азами создания динамических блоков. Также надо учитывать, что модификаторы динамического блока — это лишь параметрически задаваемые команды редактирования. Поэтому необходимо четко представлять себе работу команд редактирования: перемещения, растягивания, зеркала и др.
Вообще, если у вас не получается что-то при работе с модификаторами (например, модификатор ведет себя не так, как вы от него ожидаете) — просто попробуйте сделать эти действия обычными командами редактирования. Причина неприятностей, возможно, будет выявлена очень быстро.
Наш первый блок
В качестве первого блока мы выберем блок высотной отметки. По моему мнению, из всех оформительских блоков он один из самых характерных. Так что тот, кто создаст его, без проблем создаст и остальные. Начнем с двух вещей: с вычерчивания основы блока и ответа на вопрос, что должен уметь блок.
В общем случае надо аккуратно вычертить основу блока и согласовать ее со всеми ведущими специалистами. Она должна устраивать всех. Мы в таком случае брали классический учебник графики (например, Русскевича) и перерисовывали, внося правки по вкусу. Блок для оформления чертежей должен быть аннотативным. Поэтому вычерчиваем его в масштабе 1 мм = 1 единица AutoCAD.
Не надо бояться того, что процесс вычерчивания «красивого» блока может занять значительное время. В конце концов это нужно сделать только раз. Красивая, в моем понимании, основа будущего блока изображена на рис. 1.
Рис. 1
Надо сказать, что я не настаиваю, что он понравится всем. Оформление — весьма тонкое дело.
Теперь о функционале. Блок отметки должен уметь делать следующее:
- отражаться по вертикали и горизонтали (рис. 2);
- менять свою общую высоту, длину полочки и положение текста на ней (рис. 3);
- показывать как непосредственно введенную пользователем отметку, так и самостоятельно рассчитывать величину отметки, интерпретируя свою координату как высотную отметку.
Рис. 2
Рис. 3
Для начала на основании вычерченных примитивов создаем блок «Высотная отметка» и входим в редактор динамических блоков. Дальше двигаемся по шагам.
Шаг 1
Создаем атрибуты. Два наверху полочки, равной высоты и положения, для отображения введенной и измеренной отметки. Нижний, меньшей высоты, для пояснений (рис. 4). Для корректной обработки атрибутов их свойство «Фиксированное положение» (в группе «Разное») должно быть выставлено в «Да» (рис. 5).
Рис. 4
Рис. 5
Незафиксированными атрибутами модификаторы манипулировать не будут. При попытке указать на такие атрибуты как на объекты для работы модификаторов они попросту будут проигнорированы.
Шаг 2
Теперь создаем точечный параметр, который будет управлять положением атрибутов и полочки блока (рис. 6). Называем его «Положение полочки». В свойствах точечного параметра выставляем параметры как на рис. 7. Теперь этот модификатор является скрытым и готовым к действиям по цепочке (то есть он может подчиниться команде другого модификатора).
Рис. 6
Рис. 7
Рис. 8
Переходим на вкладку «Операции» и выбираем операцию «Перемещение» (рис. 8). Параметр — «Положение полочки», только что созданный нами. Объекты действия — созданные нами три атрибута и горизонтальная полочка (рис. 9).
Рис. 9
Шаг 3
Следующий шаг — модификатор, управляющий отступом текста на полочке. Создаем линейный параметр (рис. 10) от начала полочки приблизительно до нижнего правого угла атрибутов на полке. Выставляем его параметры как на рис. 11. Должно получиться приблизительно как на рис. 12.
Рис. 10
Рис. 11
Рис. 12
Теперь выбираем операцию «Растянуть» (рис. 13). Параметр — «Отступ текста». Точка параметра, которую необходимо связать с операцией, — вторая. Эта та точка, где впоследствии будет стрелочка. Рамка команды «Растянуть» должна охватывать атрибуты. Объекты операции — атрибуты. После всех действий кликаем в иконку созданного действия. Получиться должно приблизительно как изображено на рис. 14. Обратите внимание: полочка не введена в список модифицируемых объектов.
Рис. 13
Рис. 14
Шаг 4
Теперь создадим модификатор, увеличивающий длину полочки. Для этого создаем линейный параметр от начала до конца полочки. Поскольку процесс создания был уже описан, подробно на нем останавливаться не будем. Назовем параметр «Величина полочки». Навешиваем на этот параметр действие «Растянуть». После окончания и выделения операции на экране появится изображение, показанное на рис. 15. Обратите внимание: выделена только полочка.
Рис. 15
После этого шага нажимаем кнопку «Тестировать блок» и тестируем блок. Кликаем по ручкам операций, проверяем. В полном соответствии с тезисами Брукса система должна выращиваться и на каждом шаге проверяться.
Немного дополнительных действий. Созданные в п. 2 и п. 3 модификаторы надо добавить для движения модификатором общего положения полочки (то есть параметру «Положение полочки»). Для этого кликаем правой кнопкой мыши на значке операции и производим в меню действия, изображенные на рис. 16.
Рис. 16
После этого включаем в выборку операции над полочкой и их параметры, как это изображено на рис. 17.
Рис. 17
Шаг 5
Работаем с высотой полочки. Добавляем линейный параметр для высоты расположения полочки. Называем «Высота полочки». Создаем операцию «Растянуть». Объекты — вертикальная линия и «Положение полочки». После создания блок должен выглядеть как на рис. 18.
Рис. 18
Обратите внимание на область действия команды «Растянуть» и на объекты, на которые распространяются действие команды «Вертикальная линия» и параметр «Положение полочки».
При тестировании блок должен выполнять действия, изображенные на рис. 19.
Рис. 19
Шаг 6
Теперь займемся горизонтальным отражением. Добавляем ось отражения (рис. 20) по горизонтальной линии внизу блока (рис. 21).
Рис. 20
Рис. 21
С выбором объектов для этой операции не всё так просто. Дело в том, что при отражении атрибуты должны не просто формально отзеркалиться, а переместиться, чтобы отметки всегда были сверху, а комментарий снизу. Поэтому команду на зеркальное отображение мы дадим не примитивам, а точке «Положение полочки», которая, зеркалясь, передвинет атрибуты требуемым нам образом.
Создаем операцию «Отражение» (рис. 22). Выбираем примитивы для действия: засечка, вертикальная черточка, «Положение полочки», «Высота полочки» (рис. 23).
Рис. 22
Рис. 23
При тестировании блок должен выполнять действия, изображенные на рис. 24.
Рис. 24
Шаг 7
Теперь вертикальное отражение. Добавляем ось. Для действия «Отражение» выделяем все примитивы, кроме «Положение полочки» (рис. 25).
Рис. 25
При тестировании блок должен выполнять действия, изображенные на рис. 26.
Рис. 26
Шаг 8
Теперь добавим состояния видимости. Как мы решили в самом начале, у блока будет два состояния: для отображения значения, введенного пользователем, и для измеренного. Назовем их «Введенное значение» и «Измеренное значение». Добавим параметр «Видимость» (рис. 27) и вставим его, как показано на рис. 28.
Рис. 27
Рис. 28
Теперь задаем два состояния видимости (рис. 29).
Рис. 29
Переключаем состояния (рис. 30) и кнопками, изображенными на рис. 31, отключаем один из двух атрибутов, лишний для каждого состояния. Результатом будут два состояния блока, изображенные на рис. 32 и 33.
Рис. 30
Рис. 31
Рис. 32
Рис. 33
Шаг 9
Для того чтобы блок мог измерять отметку, нам надо будет прибегнуть к помощи объекта «Поле» (Field). Для его вставки применяется горячая клавиша <Ctrl+F>. Переходим в состояние «Измеренное значение» и делаем двойной клик по атрибуту «Отметка1». Получаем окно, изображенное на рис. 34.
Рис. 34
В строке «По умолчанию» нажимаем <Ctrl+F>. Появляется окно «Поле». В нем выбираем подкатегорию полей «Объекты», имя поля «Формула». После чего кликаем в поле «Формула» (рис. 35).
Рис. 35
Попав в поле «Формула», опять нажимаем <Ctrl+F>, чтобы ввести в формулу координату Y блока (в плоском черчении координата Y используется для высоты). Выполняем действия, показанные на рис. 36. Нажимаем ОК. Фрагмент окна с результатом показан на рис. 37.
Рис. 36
Рис. 37
В поле «Формула» после текста InsertionPoint добавляем «/1000» и нажимаем кнопку «Вычислить». В углу окна появляется группа форматирования результата. Форматируем его. Устанавливаем десятичный формат, три знака после запятой и значок «,» как разделитель. Нажимаем ОК. Выходим в окно редактирования определения атрибута. Опять нажимаем ОК.
После перехода в режим проверки выбираем вид «измеренное», переносим блок вверх на 1000. Результат должен быть таким, как на рис. 38.
Рис. 38
Шаг 10
Придаем блоку аннотативность. Все оформительские блоки должны быть аннотативными, поскольку в таком случае AutoCAD сможет управлять ими сам. Для придания аннотативности заходим в редактор блоков. Следим, чтобы ничего не было выделено. При этом в панели свойств будут отображаться свойства блока. Меняем их так, как изображено на рис. 39.
Рис. 39
Сохраняем блок, выходим из редактора блока. Вставляем созданный нами блок в чертеж. Теперь можно поработать с ним. Пример применения показан на рис. 40.
Поздравляю вас! Вы являетесь обладателем полнофункционального блока высотной отметки.
Рис. 40
Остальные блоки
Теперь, когда мы умеем делать блоки, попробуем сделать постановку задач на остальные оформительские блоки:
- штамп согласования (напомню, что блок штампа основной надписи мы создали на первом занятии) изображен на рис. 41;
Рис. 41
- блок рамок (рис. 42) — можно сделать этот блок просто многовидовым либо параметризовать линии рамок;
Рис. 42
- к имеющемуся блоку высотной отметки на разрезе добавим блок высотной отметки на плане (рис. 43);
Рис. 43
- блок обозначения изменений (рис. 44);
Рис. 44
- блоки осей — оси бывают новые, существовавшие, стыковочные, дополнительные и внесистемные (то есть не находящиеся в общей для здания системе координат). У меня получилось восемь состояний (рис. 45);
Рис. 45
- блок обозначения узла — он может иметь два состояния (рис. 46);
Рис. 46
- блок подписи разреза с возможностью применения для подписей планов (рис. 47);
Рис. 47
- лидер по сложности для самостоятельной проработки — блок обозначения разреза (рис. 48).
Рис. 48
Пользователь, который дойдет до конца этого списка, да еще создаст себе нормальные размерные стили, больше никогда не будет нуждаться в каких бы то ни было программах для оформления. Кроме того, такой пользователь приобретет способность адаптации AutoCAD к своим нуждам и сможет существенно повысить скорость и безошибочность своей работы.
В заключение хочу заметить, что далее по мере надобности мы будем создавать динамические блоки, требуемые для решения тех или иных практических нужд.
Объем данной статьи не позволяет полностью привести весь алгоритм работы, но созданные блоки для удобства можно вынести из шаблона, разместив их в отдельном файле на общем сетевом устройстве и создав на них ссылки на общих для всех инструментальных палитрах. Это очень удобно. Результат изображен на рис. 49.
Рис. 49