Программа СПДС GraphiCS появилась в уже довольно далеком 2000 году как приложение к графической платформе AutoCAD. Основными инструментами были объекты оформления по ГОСТ, такие как выноски, оси, отметки уровней, граничные штриховки. На тот момент основной задачей было кантрифицировать зарубежный AutoCAD к российским требованиям, касающимся оформления проектно-конструкторской документации. Со временем стали появляться объекты для ускорения процесса разработки чертежа. Так, в третьей версии уже были таблицы с возможностью получения автоматических отчетов. Чуть позже добавились параметрические объекты. На сегодняшний день функционал этих объектов пересекается с функционалом объектов графической платформы — статическими и динамическими блоками. Закономерен вопрос: какие и когда использовать? Чем один функционал лучше или хуже другого? Такое сравнение по основным пунктам сделано и опубликовано. Но разработчик, конечно же, всегда ратует за свое детище. А это взгляд односторонний, отзывы пользователя всегда беспристрастнее. Именно с пользовательской точкой зрения мы и предлагаем ознакомиться.

Светлана Капарова,
руководитель проекта СПДС
E-mail: kaparova@csoft.ru

Блоки AutoCAD и объекты СПДС GraphiCS не хотелось бы противопоставлять — у каждой из этих технологий есть свое применение, свои плюсы и минусы. Но в Интернете люди продолжают спорить, и в этих спорах сложность создания параметрических объектов СПДС GraphiCS сильно преувеличивается: объекты под свои задачи может и должен создавать любой пользователь, тем более что в СПДС GraphiCS для этого есть все необходимое.

Предлагаю разобраться и понять, настолько ли сложны параметрические объекты СПДС GraphiCS по сравнению с динамическими блоками AutoCAD и какие бонусы мы получим от их применения.

Основной аргумент, приводимый в пользу блоков, — это простота их создания и удобство использования в сравнении с параметрическими объектами СПДС GraphiCS.

Разберемся, так ли это на самом деле.

Очевидно, что статический блок, собранный по Ctrl+Shift+V вставкой из буфера обмена, может создать любой пользователь, но ценность такого блока и его отличие от группы примитивов только в том, что все блоки в чертеже могут быть переопределены — изменены простым редактированием любого вхождения этого блока. Однако статический блок — это просто набор примитивов, не более. Обычный копипаст. Можно добавить к нему атрибуты, но принципиально ничего не изменится. Блок статический, значения атрибутов необходимо заполнять вручную или вставлять, ссылаться полями на свойства объектов чертежа либо самого блока. Чтобы изменить графику блока, требуется вставлять другой блок и опять же вручную заполнять его свойства.

С выходом AutoCAD 2006 компания Autodesk сделала прорыв в этом направлении: появился динамический блок. Несомненно, это был огромный шаг вперед, и удобство использования блоков, можно сказать, возросло на порядок.

Тем не менее, блоки по-прежнему не могут взаимодействовать между собой, значения атрибутов приходится вводить вручную либо через формулы, которые любой неосторожный пользователь, редактируя свойства блока, может нечаянно «поломать».

В AutoCAD 2008 добавилась параметризация блоков. С автоматизацией стало получше, но в ущерб производительности. Любой, кто использует динамические блоки, знает, что блоки с большими таблицами свойств и многократными вхождениями таких блоков в чертеже приводят к значительному замедлению работы. Любое изменение параметров блока влечет заметные «подтормаживания» работы AutoCAD.

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

Проблема технологии блоков, как ни странно это звучит, в самих блоках. Изначально было задумано хорошо: информация о блоке включается в чертеж только один раз, все остальные вхождения этого блока — просто ссылки на родительский блок, они практически не занимают места в файле, не снижают производительность. Все это справедливо только для статических блоков. Динамический блок является ссылкой только до первого изменения вхождения, дальше это уже самостоятельный анонимный блок, который содержит все свойства, примитивы, таблицы параметров исходного блока… Отсюда и замедление регенерации чертежей, и увеличение их размера. Проверить сказанное легко: в пустой чертеж вставляем тысячу вхождений динамического блока, сохраняем и смотрим размер, а затем всем вхождениям меняем, ну, например, видимость и геометрию. После сохранения размер файла чертежа вырастет в несколько раз (во сколько именно — зависит от сложности динамического блока), соответственно упадет и производительность.

В компании Autodesk это понимают, применяя в вертикальных решениях на базе AutoCAD (например, в AutoCAD Electrical и аналогичных) только статические блоки. Их вставка осуществляется программным способом, а вся информация об объекте хранится вне чертежа в отдельной базе данных, значения из которой программно подтягиваются в форму при редактировании блока либо в спецификации и отчеты при их генерации.

Параметрические объекты СПДС GraphiCS лишены вышеперечисленных и многих других недостатков блоков AutoCAD, но имеют много бонусов, нереализуемых в блоках стандартными средствами без прикладного программирования VB, LISP и т.п.

Рассмотрим этот момент подробнее:

  • параметрический объект в отличие от блока хранит всю информацию вне чертежа, в отдельной базе данных программы. В чертеже хранится только видимая графика, атрибуты (свойства) и некоторая служебная информация. Ровно столько, сколько необходимо для корректного отображения и функционирования объекта. Как следствие, по сравнению с аналогичными по функционалу блоками параметрические объекты в разы меньше загружают чертеж и не замедляют регенерацию;

  • параметрическим объектам можно задавать практически неограниченное количество взаимозависимых параметров, видимостей — как внутри самого параметрического объекта, так и связей с другими объектами на чертеже (рис. 1). Основным ограничителем тут служит фантазия разработчика;

    Рис. 1 Рис. 1
  • параметрические объекты могут взаимодействовать между собой, причем не только на уровне геометрии и взаимного положения (геометрические зависимости), но и на уровне передачи пользовательских свойств (параметрические зависимости) (рис. 2);

    Рис. 2 Рис. 2
  • несмотря на то что параметрические объекты двумерны, им, тем не менее, можно задавать геометрию в плоскости проекции (виды). Кроме того, можно определить исполнение на чертеже: упрощенное, полное, разрез и т.п. (рис. 3);

    Рис. 3 Рис. 3
  • поддерживается гибкое управление маскировкой, наложением и перекрытием объектов. Пользователи, применяющие маскировку в блоках, знают, что она нередко выходит на передний план в самый неподходящий момент. Казалось бы, все настроил, но при следующем открытии чертежа все слетает и приходится начинать заново.

    Параметрические объекты лишены этого недостатка, в них можно однозначно через индексы задавать порядок перекрытия и объект с индексом (рис. 4). Например, ZOrder=100 всегда будет гарантированно перекрыт объектом с ZOrder=101 и сам перекроет ZOrder=99;

    Рис. 4 Рис. 4
  • интеллектуальная простановка размеров. Вы всегда можете быть уверены, что размер, установленный на параметрический объект средствами СПДС GraphiCS, будет иметь правильное значение вне зависимости от масштаба вставки объекта (рис. 5);

    Рис. 5 Рис. 5
  • гибко настраиваемые пользовательские формы. Характеристики объектов могут выбираться из выпадающих списков или таблиц данных (рис. 6). Риск ввести неверные значение или параметр сведен к минимуму;

    Рис. 6 Рис. 6
  • из параметрических объектов вы можете получить полноценную спецификацию (на составление которой затрачивается немалая часть времени, отведенного для проектирования) или другие табличные отчеты. DATAEXTRACTION (извлечение данных) AutoCAD может вести подсчет только количества вхождений, а из параметрических объектов в отчет включаются количество, длина, объем, масса — любые физические или технические параметры. А вы обрабатываете их в отчете нужным образом (рис. 7).

    Рис. 7 Рис. 7

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

Сколько человек в вашей компании могут собрать по-настоящему полноценный функциональный, интерактивный блок? Не поменять видимости, несколько параметров растяжения, массив и поворот, а чтобы атрибут — длина, зависел от масштаба, атрибуты блока автоматически формировались из нескольких параметров, и чтобы в итоге из этих блоков можно было получить полноценную спецификацию?

Не всем известно, что «интерактив», реализуемый продвинутыми пользователями в сложных и по-настоящему интересных динамических блоках, зачастую использует недокументированные функции AutoCAD, что со временем приведет к невозможности использовать и редактировать эти блоки в новых версиях AutoCAD.

Создание параметрических объектов значительно проще создания аналогичных по функционалу динамических блоков, а сам процесс прозрачнее. И результат предсказуем.

Проектировщиков порой отпугивает необходимость «программирования» параметрического объекта. На самом деле язык скриптов весьма прост, команд не очень много, написана подробная справка с примерами, к тому же в СПДС GraphiCS имеется мастер скриптов, который поможет обойтись вообще без программирования.

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

Не стоит думать, что если программа называется СПДС GraphiCS, то она предназначена только для строителей. Несмотря на то что в линейке компании-разработчика есть специализированные решения, объекты СПДС GraphiCS можно создавать для всех направлений проектирования и практически под все ситуации.

Ограничение здесь только одно — творческая фантазия инженера.

Андрей Разыграев,
инженер-конструктор
ООО «ЛУКОЙЛ-Волгограднефтепереработка»