СтатьиnanoCAD BIM Конструкции 22 → Первое знакомство с nanoCAD Конструкторский BIM. Параметрические объекты

Первое знакомство с nanoCAD Конструкторский BIM. Параметрические объекты

Первое знакомство с nanoCAD Конструкторский BIM. Параметрические объекты

Исследуем одну из возможностей комплекса nanoCAD Конструкторский BIM: разработку параметрических узлов соединения металлоконструкций.

Летом прошлого года компания «Нанософт» представила новый многообещающий продукт nanoCAD Конструкторский BIM. Первая версия выпущена в режиме «альфа-доступа» или «раннего доступа» — то есть с предоставлением заинтересованным пользователям бесплатной годовой полнофункциональной лицензии с последующим сбором предложений по улучшению функционала программы.

Поскольку оценка и анализ средств автоматизации проектирования входят в мои прямые должностные обязанности, остаться в стороне от столь масштабного мероприятия я просто не мог. И вот программное обеспечение получено и установлено, выполнены несложные процедуры лицензирования, теперь можно начинать знакомство с возможностями отечественного конструкторского BIM-продукта.

В этом обзоре рассматривается лишь узкий аспект комплекса Конструкторский BIM, а именно возможность разработки параметрических узлов соединения металлоконструкций. Это направление выбрано не случайно — многолетний опыт внедрения и эксплуатации различных САПР выработал у автора глубокое убеждение, что успешность подобных программных продуктов во многом определяется доступностью средств создания разного рода библиотек объектов, с помощью которых можно расширить возможности программы, ускорить процесс проектирования и вообще несколько скрасить суровые будни проектировщика, избавив его от тех или иных рутинных операций. В различных САПР такие объекты называются по-разному: в AutoCAD это могут быть, к примеру, многовидовые блоки, в AutoCAD Architecture задача решается с помощью стилей архитектурных объектов, в AutoCAD MEP существуют библиотеки оборудования, в Revit — семейства и т.д. В nanoCAD также предусмотрен класс объектов, которые так и называются: параметрические объекты. Именно с ними нам сегодня и предстоит первое знакомство.

Параметрические объекты в nanoCAD создаются и редактируются с помощью специального инструмента — редактора параметрических элементов (рис. 1.2). Вызвать редактор можно соответствующим инструментом с панели Узлы и решения вкладки BIM-конструктор (рис. 1.1).

Рис. 1 1 - кнопка вызова редактора параметрических элементов; 2 - окно редактора Рис. 1
1 — кнопка вызова редактора параметрических элементов;
2 — окно редактора

В качестве объекта для моделирования хотелось бы рассмотреть узел жесткого крепления колонны. Статья, посвященная созданию семейства такого узла для Revit (рис. 2), была опубликована во втором номере журнала «САПР и графика» за 2019 год. И сейчас, разрабатывая аналогичный объект в nanoCAD, мы сможем сравнить возможности создания новых конструкторских объектов в двух системах BIM-моделирования — хорошо знакомой зарубежной и новой отечественной.

Рис. 2. Узел жесткого крепления колонны в проекте Revit Рис. 2. Узел жесткого крепления колонны в проекте Revit

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

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

Очевидно, что основные элементы узла мы будем создавать с помощью команд группы 3D Примитив. Начнем с опорной плиты как наиболее простого элемента.

Геометрически опорная плита представляет собой параллелепипед, и проще всего было бы использовать соответствующий 3D-примитив, но самый простой путь не всегда самый правильный. Дело в том, что базовой точкой 3D-примитива Параллелепипед является один из его узлов — такова уж особенность этого подобъекта. А по мнению автора, куда удобнее, если точкой вставки опорной плиты будет геометрический центр ее нижней грани.

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

Контур можно строить инструментами Полилиния, Прямоугольник по 2 точкам, Прямоугольник по 3 точкам и т.п. — это не принципиально. Самое главное, чтобы он был построен объектом типа Полилиния (рис. 3). Импорт в 3D Примитив контура, построенного, скажем, с помощью отрезков, попросту невозможен.

Рис. 3. Контур опорной плиты в пространстве модели Рис. 3. Контур опорной плиты в пространстве модели

Предположим, что габариты плиты по умолчанию составляют 750×450×30 мм. Соответственно, строим прямоугольник шириной 750 и высотой 450 мм.

Теперь можно переходить к процессу создания 3D-примитива. В контекстном меню выбираем команду Тело выдавливания (рис. 4).

Рис. 4. Контекстное меню редактора параметрического оборудования. В группе 3D Примитив выбран пункт Тело выдавливания Рис. 4. Контекстное меню редактора параметрического оборудования. В группе 3D Примитив выбран пункт Тело выдавливания

Результат выполнения команды представлен на рис. 5. По умолчанию тело выдавливания представляет собой цилиндр (рис. 5.1). Цилиндр нам не нужен, мы уже подготовили контур будущей плиты, поэтому смело очищаем объект от содержимого. Для этого в редакторе параметрических элементов открываем узел EXTRUSION (рис. 5.2) — так по умолчанию называется тело; выделяем подчиненный ему элемент ARC (рис. 5.3) — этот подэлемент характеризует контур объекта. Вызываем контекстное меню и удаляем основу геометрии цилиндра командой Удалить подобъект (рис. 5.4).

Рис. 5. Очистка элемента Тело выдавливания 1 - элемент в пространстве модели; 2 - имя элемента в редакторе параметрического объекта; 3 - подобъект-контур; 4 - команда удаления подобъекта Рис. 5. Очистка элемента Тело выдавливания
1 — элемент в пространстве модели;
2 — имя элемента в редакторе параметрического объекта;
3 — подобъект-контур;
4 — команда удаления подобъекта

Добавляем к элементу EXTRUSION нашу геометрию. Выбрав элемент в редакторе, вызовем контекстное меню и выполним команду 2D Примитив Выбрать 2D Профиль (рис. 6).

Рис. 6. Импорт профиля из модели Рис. 6. Импорт профиля из модели

Далее следует стандартная процедура выбора контура в пространстве модели. Затем nanoCAD попросит указать базовую точку (укажем геометрический центр ранее построенного прямоугольника) и базовую ось (укажем ось X). В пространстве модели получаем 3D-модель опорной плиты.

Отредактируем свойства подобъекта EXTRUSION: в свойство Имя введем имя подобъекта (Плита_опорная), а в свойство Высота — высоту выдавливания (30 мм). Таким образом, мы получили первый из подобъектов нашего параметрического узла — прямоугольную плиту размерами 750×450×30 мм, с именем Плита_опорная (рис. 7).

Рис. 7 1 - подобъект Плита_опорная в редакторе параметрического оборудования; 2 - линии контура подобъекта; 3 - свойства подобъекта; 4 - геометрия подобъекта в окне модели Рис. 7
1 — подобъект Плита_опорная в редакторе параметрического оборудования;
2 — линии контура подобъекта;
3 — свойства подобъекта;
4 — геометрия подобъекта в окне модели

Рассмотрим созданный объект поподробнее. Для начала раскроем подобъект Плита_опорная (рис. 7.1). Он также имеет подчиненные объекты — линии контура объекта выдавливания (рис. 7.2). Каждая из линий имеет собственный набор свойств — правда, этот набор представляется мне далеко не полным (рис. 8). Из геометрических атрибутов линейного объекта в окне свойств представлена только координата начальной точки. А ведь, к примеру, в нашем случае очень полезным оказалось бы такое свойство линии, как Длина. Надеюсь, в следующих версиях набор свойств будет расширен, а пока будем работать с тем, что есть.

Рис. 8. Свойства линейного объекта Рис. 8. Свойства линейного объекта

Эти свойства нам нужно будет параметризовать. Других у нас просто нет. Сначала порассуждаем. У нас четыре линейных объекта. Начальные точки линий одновременно являются угловыми точками контура опорной плиты. Нам предстоит создать параметры, описывающие длину, ширину и толщину плиты, чтобы в дальнейшем управлять ее размерами. О толщине скажем чуть позже, а вот с параметрами длины и ширины нам нужно будет связывать именно значения координат угловых точек.

Начнем с создания набора параметров. Для этого в редакторе параметрического оборудования предусмотрен специальный (причем весьма интересный и удобный) инструмент — редактор параметров.

Редактор вызывается с помощью кнопки Свойства на инструментальной панели редактора параметрического оборудования (рис. 9).

Рис. 9. Инструмент Свойства редактора параметрического оборудования Рис. 9. Инструмент Свойства редактора параметрического оборудования

Итак, перед нами окно редактора параметров — диалог Параметры (рис. 10).

Рис. 10. Диалог Параметры. Цифрами обозначены инструменты Создать подчиненный объект (1) и Добавить параметр из списка (2) Рис. 10. Диалог Параметры. Цифрами обозначены инструменты Создать подчиненный объект (1) и Добавить параметр из списка (2)

Элементы параметрического объекта, к параметрам которых нам необходимо будет обращаться, являются подчиненными объектами. Пока у нас только один такой объект — опорная плита. Добавим ее с помощью соответствующего инструмента (рис. 10.1). После этого выделим созданный подобъект в дереве и перейдем к созданию параметров (рис. 10.2).

В следующем диалоге (рис. 11) отметим флажками имена нужных нам параметров. Для нашего случая это параметры Длина, Ширина и Толщина из группы Размеры.

Рис. 11. Выбор параметров подчиненного объекта Рис. 11. Выбор параметров подчиненного объекта

Отмеченные параметры добавляются к списку диалога Параметры. Теперь у нас есть возможность задать им численные значения (рис. 12).

Рис. 12. Параметры подчиненного объекта Рис. 12. Параметры подчиненного объекта

Прежде чем продолжить работу, необходимо четко понять, что свойства графического примитива, доступные в панели свойств (см. рис. 7), и параметры, созданные с помощью редактора параметров, — не одно и то же. И чтобы управлять геометрией объектов с помощью параметров, нам предстоит еще связать одно с другим. Сделать это нам поможет Мастер функций (рис. 14) — многофункциональный инструмент, обеспечивающий создание расчетных формул высокой сложности. В данном случае именно Мастер функций позволит нам построить набор формул для расчета геометрических параметров опорной плиты.

Запустить его можно для любого свойства подобъекта с помощью кнопки вызова, расположенной рядом с полем значения свойства (рис. 13).

Рис. 13. Кнопка вызова Мастера функций Рис. 13. Кнопка вызова Мастера функций

Итак, мы выбрали одну из линий контура и вызвали Мастер функций для свойства X-координата, чтобы связать его значение с параметром Длина.

При первом запуске редактор функций пуст (рис. 14.1). В процессе описания функции именно в него будут вводиться ее аргументы, операторы и т.п. А обращаться к параметрам объекта и подобъектов мы будем с помощью инструментов Добавить параметр (рис. 14.2) и Добавить запрос к текущему элементу (рис. 14.3).

Рис. 14. Окно Мастера функций 1 - редактор функций; 2 - инструмент Добавить параметр; 3 - инструмент Добавить запрос к текущему элементу Рис. 14. Окно Мастера функций
1 — редактор функций;
2 — инструмент Добавить параметр;
3 — инструмент Добавить запрос к текущему элементу

Сейчас нам как раз необходимо обратиться к параметрам текущего элемента (опорной плиты), поэтому смело жмем кнопку, отмеченную на рис. 14 цифрой 3.

Открывается новый диалог, Запрос к структуре элемента, где нужно просто раскрыть дерево параметров и выбрать нужную ветку (рис. 15). Выберем параметр Длина.

Рис. 15. Выбор параметров подобъекта Рис. 15. Выбор параметров подобъекта

Закрываем диалог Запрос к структуре элемента кнопкой ОК. В окне Мастера функций остается строка child.[DIM_LENGTH]. Прямо в текстовом поле редактора допишем ее до следующей формулы:


child.[DIM_LENGTH]*(-1)/2

С помощью этой формулы мы связали X-координату точки с длиной опорной плиты, и теперь при изменении длины начальная точка всегда будет сдвигаться влево по оси X на расстояние, равное половине длины плиты.

Аналогично поступим со свойством Y-координата, задав ему значение


child.[DIM_WIDTH]/2

Теперь в панели свойств свойства X-координата и Y-координата обозначены значком функции (рис. 16), свидетельствующим о том, что значения этих свойств имеют расчетный характер.

Рис. 16. Обозначения рассчитываемых свойств Рис. 16. Обозначения рассчитываемых свойств

Выделим в редакторе объект Плита_опорная и, по аналогии с описанной процедурой, свяжем свойство Высота с параметром Толщина.

Теперь размеры опорной плиты будут изменяться в зависимости от значений связанных с ними параметров.

Переходим к созданию других элементов узла. Начнем с траверс. Здесь ситуация посложнее. Во-первых, траверс в нашем узле целых две. Во-вторых, траверсы должны располагаться в продольном направлении плиты, на равном расстоянии от ее геометрического центра (см. рис. 2). Расстояние между траверсами определяется шириной сечения колонны. Соответственно, при необходимости это расстояние должно меняться.

Полагаю, тут разумнее всего использовать подэлемент Круговой массив. Он добавляется к структуре объекта с помощью команды МассивКруговой контекстного меню (рис. 17).

Рис. 17. Создание кругового массива Рис. 17. Создание кругового массива

Свойства массива зададим в соответствии с табл. 1.

Таблица 1. Свойства кругового массива

Свойство

Значение

Имя

Траверсы

Угол

180

X-координата

0

Y-координата

0

Z-координата

0

Уровней

1

Элементов

2

Массив траверс создан, но пока пуст. На следующем этапе необходимо создать подчиненный массиву элемент Траверса. Процедура создания траверсы мало чем отличается от процедуры создания опорной плиты: создание примитива Тело выдавливания, удаление контура по умолчанию, импорт контура из полилинии. Тем не менее одно, но существенное отличие все-таки есть. Для того чтобы создать элемент массива, контекстное меню необходимо вызывать при выделенном в редакторе элемента массиве Траверсы (рис. 18.1). Как выглядит созданный элемент, показано на рис. 18.2.

Рис. 18 1 - создание элемента кругового массива; 2 - элемент массива в окне редактора Рис. 18
1 — создание элемента кругового массива;
2 — элемент массива в окне редактора

Чтобы корректно расположить траверсы в пространстве, воспользуемся кнопками Повернуть по оси на панели инструментов редактора (рис. 19).

Рис. 19. Инструменты поворота подобъекта Рис. 19. Инструменты поворота подобъекта

Свойства подэлемента Траверса задаем на основе табл. 2.

Таблица 2. Свойства подэлемента Траверса

Свойство

Значение

Имя

Траверса

Высота

30

Базовая точка

X-координата

0

Y-координата

150

Z-координата

30

Как после всех этих операций будет выглядеть объект в пространстве модели, показано на рис. 20.

Рис. 20. Опорная плита с траверсами Рис. 20. Опорная плита с траверсами

Размеры траверсы будут регулироваться пятью параметрами: Высота, Толщина, Длина_подошвы, Вылет_консоли, Высота_фаски.

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

Рис. 21. Параметры объекта Траверса Рис. 21. Параметры объекта Траверса

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

Идентификация линий контура в редакторе, к сожалению, затруднена. Было бы куда удобнее, если бы при выделении линии в дереве она подсвечивалась в пространстве модели. Надеюсь, в дальнейшем разработчики обратят на это внимание. А пока в качестве идентификатора будем использовать комбинацию из свойств группы Точка: Координата X и Координата Y. И значения этих же свойств будем задавать с помощью формул, построенных в Мастере функций (табл. 3).

Таблица 3. Свойства линий контура элемента Траверса

Свойства группы Точка

Значение (формула) для свойства

X

Y

X-координата

Y-координата

-375

0

-1*child (2).[Длина_подошвы]/2

0

375

0

child (2).[Длина_подошвы]/2

-525

320

1*(child (2).[Длина_подошвы]/2+child (2).[Вылет_консоли])

child (2).[DIM_HEIGHT]

525

320

child (2).[Длина_подошвы]/2+child (2).[Вылет_консоли]

child (2).[DIM_HEIGHT]

-525

200

1*(child (2).[Длина_подошвы]/2+child (2).[Вылет_консоли])

child (2).[ВЫСОТА_ФАСКИ]

525

200

child (2).[Длина_подошвы]/2+child (2).[Вылет_консоли]

child (2).[ВЫСОТА_ФАСКИ]

Чтобы добавить к узлу анкерные плиты, нам также придется создать круговой массив, содержащий два подэлемента Плита_анкерная. Процедура эта в принципе не отличается от создания массива траверс — с той лишь разницей, что в свойство базовой точки Z-координата кругового массива мы поместим другую формулу:


child.[DIM_THICKNESS]+child(2).[DIM_HEIGHT],

где child.[DIM_THICKNESS] - толщина опорной плиты, а child (2).[DIM_HEIGHT] - высота траверсы. Таким образом, анкерные плиты оказываются жестко привязаны к верхнему основанию траверсы.

Как и в случае с опорной плитой, добавим для анкерной плиты ее размеры (длину, ширину и толщину) с помощью редактора параметров. Кроме того, нам понадобятся параметры, описывающие положение и размер отверстий под анкерные болты: Диаметр_отверстия и Интервал_отверстий (рис. 22).

Рис. 22. Параметры анкерной плиты Рис. 22. Параметры анкерной плиты

И, как в двух предшествующих случаях, свяжем свойства линий контура с параметрами анкерной плиты (табл. 4).

Таблица 4. Свойства линий контура элемента Плита_анкерная

Свойства группы Точка

Значение (формула) для свойства

X

Y

X-координата

Y-координата

-80

225

-1*child (3).[DIM_WIDTH]/2

child (3).[DIM_LENGTH]/2

80

225

child (3).[DIM_WIDTH]/2

child (3).[DIM_LENGTH]/2

80

-225

child (3).[DIM_WIDTH]/2

-1*child (3).[DIM_LENGTH]/2

-80

-225

-1*child (3).[DIM_WIDTH]/2

-1*child (3).[DIM_LENGTH]/2

Теперь положение оконтуривающих линий анкерной плиты будет изменяться в зависимости от значения свойств Длина и Ширина этого подобъекта.

Похожим образом поступаем с координатами точки вставки анкерной плиты (табл. 5).

Таблица 5. Формулы параметризации точки вставки анкерной плиты

X-координата

-child (2).[Длина_подошвы]/2+child (2).[Вылет_консоли]-

child (3).[DIM_WIDTH]/2

Y-координата

0

Z-координата

0

Таким образом, геометрия параметрического узла приобретает вид, представленный на рис. 23.

Рис. 23. Параметрический узел в окне модели Рис. 23. Параметрический узел в окне модели

Осталось добавить отверстия под анкерные болты. Добавим к узлу еще один массив, на этот раз прямоугольный (ARRAY_RECT). Свойства массива зададим в соответствии с табл. 6.

Таблица 6. Свойства прямоугольного массива

Имя свойства

Значение (формула)

Общие

Имя

Гнезда

Базовая точка

X-координата

-1*(child (2).[Длина_подошвы]/2+child (2).[Вылет_консоли]-child (3).[DIM_WIDTH]/2)

Y-координата

-1*child (3).[Интервал_отверстий]/2

Z-координата

child (2).[DIM_HEIGHT]+child.[DIM_THICKNESS]

Количество

Столбцов

2

Уровней

1

Строк

2

Расстояние

Между столбцами

child (2).[Длина_подошвы]+child (2).[Вылет_консоли]*2-child (3).[DIM_WIDTH]

Между уровнями

0

Между строками

child (3).[Интервал_отверстий]

В массив поместим объект Цилиндр (CYLINDER), свойства которого установим так, как показано в табл. 7.

Таблица 7. Свойства прямоугольного массива

Имя свойства

Значение (формула)

Геометрия

Высота

child (3).[DIM_THICKNESS]

Радиус

child (3).[Диаметр_отверстия]/2

Чтобы отверстия вырезались из анкерной плиты, выделим в редакторе массив Гнезда и выполним команду контекстного меню Вычесть подобъект (рис. 24).

Рис. 24. Вычитание подобъекта Рис. 24. Вычитание подобъекта

Массив отметится в дереве значком «минус», а к параметрическому объекту (в редакторе) добавятся гнезда для анкерных болтов (рис. 25).

Рис. 25. Вид узла в пространстве модели Рис. 25. Вид узла в пространстве модели

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

Для многократного использования параметрического объекта его можно добавить в библиотеку Узлы и готовые решения. Для этого достаточно запустить инструмент Добавить объект в библиотеку (рис. 26.1). После того как объект выбран в пространстве модели, он помещается в библиотеку решений (рис. 26.2).

Рис. 26 1 - инструмент Добавить объект в библиотеку; 2 - параметрический объект в библиотеке решений Рис. 26
1 — инструмент Добавить объект в библиотеку;
2 — параметрический объект в библиотеке решений
Александр Коноваленко,
старший инженер по САПР,
ООО «Забайкалзолотопроект»