Найти в Дзене

Инструкция по созданию пользовательских проемов в nanoCAD BIM Строительство на примере окна

С выходом на рынок nanoCAD BIM Строительство - BIM/ТИМ-решения на Платформе nanoCAD для проектирования архитектурной и конструктивной частей зданий/сооружений в *.dwg-среде, у пользователей появились широкие возможности создания различных типов проемов: двери, окна, специальные проемы. В продукте заложена высокая степень параметризации элементов библиотеки, а управление геометрическими и атрибутивными свойствами осуществляется с помощью отдельного инструмента «Проем». Однако активные пользователи часто спрашивают, каким образом можно создать свой пользовательский проем, которого нет в базовой библиотеке элементов? В ходе этой статьи мы пошагово разберем все этапы создания пользовательского проема на примере окна в форме трапеции. Для того чтобы работать с параметризацией объектов библиотеки, необходимы базовые навыки работы с Редактором параметрического оборудования и Менеджером библиотек стандартных элементов. Разработку параметрического проема можно выполнять несколькими способами: О
Оглавление

С выходом на рынок nanoCAD BIM Строительство - BIM/ТИМ-решения на Платформе nanoCAD для проектирования архитектурной и конструктивной частей зданий/сооружений в *.dwg-среде, у пользователей появились широкие возможности создания различных типов проемов: двери, окна, специальные проемы.

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

Однако активные пользователи часто спрашивают, каким образом можно создать свой пользовательский проем, которого нет в базовой библиотеке элементов? В ходе этой статьи мы пошагово разберем все этапы создания пользовательского проема на примере окна в форме трапеции.

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

Рис. 1 Пример разработанных проемов.
Рис. 1 Пример разработанных проемов.

Разработку параметрического проема можно выполнять несколькими способами:

  • на основе какого-либо готового библиотечного проема, удаляя лишние объекты и создавая свои. Однако в таком случае легко запутаться во взаимосвязях и параметрах. Этот вариант применим лишь для совсем точечных корректировок элементов проема;
  • можно поступить лучше и в качестве подосновы использовать готовый пустой проем с вкладки Проем специального типа из библиотеки, который содержит в себе лишь вырезающую часть. Далее добавить видимую группу со своим наполнением. В качестве наполнения помимо параметрических объектов, можно так же использовать импортируемую графику в обменных форматах, которые поддерживает Платформа nanoCAD;
  • мы же будем использовать объект параметрический из dwg файла, содержащего все необходимые базовые параметры, однако всю параметрическую графику и многие информационные атрибуты нужно создавать с нуля. На примере этого файла будет описано создание окна трапециевидной формы. Этот способ более детально описывает механику работы проемов и позволит пользователю углубиться в процесс пополнения библиотеки собственными объектами.

1. Работа со свойствами и добавление дочерних элементов

Открываем dwg файл Opening_template.dwg и по ПКМ открываем Свойства элемента:

Рис. 2 Шаблон заготовка проема.
Рис. 2 Шаблон заготовка проема.

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

Корневым (root) элементом является Окно трапециевидное, а Рама и Заполнение — подчиненные элементы (child). Структура и порядок объектов являются важной составляющей, о которой нужно подумать заранее, так как синтаксис кода при параметризации будет это учитывать.

Рис. 3 Структура проема
Рис. 3 Структура проема

Теперь перейдем к наполнению элементов новыми свойствами. Часть перечисленных свойств являются обязательными для корректной работы проема, их можно изучить в шаблоне выше. Часть свойств будет добавлена для удобства при параметризации объекта. Часть свойств добавится автоматически при смене категории объекта с Оборудование на Проем, но об этом поговорим в главе Добавление проема в БД.

Рис. 4 Добавление параметров из списка
Рис. 4 Добавление параметров из списка

Рис. 5 Добавление параметров из списка
Рис. 5 Добавление параметров из списка

Список параметров, которые нужно добавить для наших элементов.

Окно трапециевидное:

AEC_PART_TYPE (Тип конструкции) – для экспорта в IFC.

DIM_DEPTH (Глубина) – задает глубину заложения.

OPENING_PANEL_TYPE (Тип панели) – задает тип отображения фасадного вида, если он необходим.

OPENING_LINES_ISVISIBLE (Показывать линии открывания (1=Да/0=Нет)) – указывает направление открывания на фасадном виде.

OPENING_DIRECTION (Направление открывания) - задает тип отображения фасадного вида, если он необходим. В нашем примере окно будет глухое, однако вы учитываете этот параметр при разработке своего окна.

OPENING_SIDE (Сторона открывания) – аналогично параметру выше.

DIM_HEIGHT1 (Высота 1) – высота меньшей боковой части трапеции.

Рама:

DIM_THICKNESS1 (Толщина1) – толщина рамы по оси Z.

BUILD_MATERIAL_ID (Идентификатор материала) – Идентификатор и Имя материла для его идентификации в Базе материалов. Оба параметра необходимы для визуального отображения и штриховок при сечении объекта призмой.

BUILD_MATERIAL (Имя материала).

Заполнение:

OPENING_PANEL_VISIBILITY (Прозрачность заполнения) - Прозрачность отображения стекла. Особенно актуально для публикации объектов и получения фотореалистичных изображений в CADLib Модель и Архив.

BUILD_MATERIAL_ID (Идентификатор материала) – Идентификатор и Имя материла для его идентификации в Базе материалов. Оба параметра необходимы для визуального отображения и штриховок при сечении объекта призмой.

BUILD_MATERIAL (Имя материала).

После добавления всех перечисленных параметров необходимо их заполнить согласно скриншотам ниже:

Рис. 6 Значение корневого элемента
Рис. 6 Значение корневого элемента

Отдельно остановимся на параметре Описание параметров проема. Его значение определяет доступные для редактирования параметры из инструмента Проем.

Для корректного отображения таблицы параметров необходимо соблюдать следующий синтаксис:Форма;[PARAMETER]= Отображаемое имя, ед. изм;[PARAMETER2] и тд.
Формы на данный момент следующие Rect, Cirle, Arc. На что влияет форма и влияет ли вовсе, пока информации нет, возможно это сделано для удобства при разработке, так как стандартные проемы создавались путем написания кода.

Значение для ввода.

« Rect;[DIM_WIDTH]=Ширина проема, мм;[DIM_HEIGHT]=Высота проема, мм;[DIM_HEIGHT1]=Высота проема_нижняя, мм «

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

Рис. 7 Отображения параметров в инструменте Проем
Рис. 7 Отображения параметров в инструменте Проем

Вернемся к параметрам Идентификатор и Имя материла, они будут считываться с элемента Рама, именно так реализовано в стандартных окнах. Для этого кликнем на параметр Идентификатор материала, затем Редактировать комментарий – Вставить функцию.

Рис. 8 Вставка функции в параметр
Рис. 8 Вставка функции в параметр

Далее Добавить запрос к текущему элементу - Рама – Идентификатор материала/child.[BUILD_MATERIAL]. Затем жмем трижды «ОК», после того как у элемента Рама, данный параметр будет заполнен, он отобразится и у Родительского элемента Окно трапециевидное. Аналогично проделываем с параметром Имя материала.

Рис. 9 Вставка функции в параметр
Рис. 9 Вставка функции в параметр

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

Рис. 10 Параметры Рамы
Рис. 10 Параметры Рамы
Рис. 11 Параметры Заполнения
Рис. 11 Параметры Заполнения

Работа по атрибутивному наполнению закончена. Можем приступить к моделированию самого объекта, используя функционал Редактора параметрического оборудования – EditParamEquipment. Запускаем команду и выбираем наш объект – заготовку.

2. Создание рамы

После открытия Редактора параметрического оборудования, мы можем увидеть его структуру и содержание.

Рис. 12 Окно редактора
Рис. 12 Окно редактора

Изначально у заготовки присутствуют две переменные VAR_OPENING_POS_Y и VAR_OBJECT_POS_Y, они отвечают за расположение проема в стене и их менять мы не будем.

Также присутствуют две группы: Видимая часть и OPENNING. Первая отвечает за видимый нами объект. Вторая же группа вырезает объем из стены, на которую применяется вставленный проем.

3. Видимая часть

Пока будем работать в 1-ой группе и создадим несколько подгрупп для дальнейшей работы и присвоим им имена: Рама, Стекло, Фасадный вид. Исходный BOX можем удалить, он нам не понадобится.

Рис. 13 Создание групп
Рис. 13 Создание групп

В подгруппе Рама создадим Тело выдавливания - Extrusion.

Рис. 14 Создание Тела выдавливания
Рис. 14 Создание Тела выдавливания

В Теле выдавливания – Extrusion, создаем 4 отрезка. Поочередно ПКМ – 2D Примитив – Отрезок.
Примитив ARC, который создается автоматически, при создании Extrusion, можно удалить.

Рис. 15 Создание отрезков
Рис. 15 Создание отрезков

Координаты точек, задающих наш проем будут следующие:

Отрезок_1 X=0 Y=0

Отрезок_2 X=0 Y=[DIM_HEIGHT]

Отрезок_3 X=[DIM_WIDTH] Y=[DIM_HEIGHT1]

Отрезок_4 X=[DIM_WIDTH] Y=0

Назначать параметры будем аналогично, как мы делали с материалами, используя запрос к структуре элемента. Параметры Высоты и Ширины, указанные выше, берутся у Родительского элемента.

Рис. 16 Параметризация точек отрезков
Рис. 16 Параметризация точек отрезков

В операции Extrusion задаём Высоту и Y координату базовой точки - child.[DIM_THICKNESS], параметр задаем с дочернего элемента Рама.
Также позиционируем Extrusion.

Направление X=1; Y=0; Z=0

Ориентация X=0; Y= -1; Z=0

Для тех, кто хочет более детально ознакомиться с тем, как Задавать ориентацию и положение объектов, рекомендую изучить статью моего коллеги на habr раздел Параметризация ориентации примитивов объекта с помощью «ручек» положения.

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

Рис. 17 Промежуточный результат
Рис. 17 Промежуточный результат

Затем копируем уже имеющийся Extrusion и вставляем в группу Рамма. Данная операция будет вычитающей, и тем самым мы создадим контур проема. Чтобы контур рамы был одинаковый со всех сторон, нам необходимо произвести несколько расчетных манипуляций, в ходе которых создадим несколько вспомогательных переменных.

Рис. 18 Зоны неравномерного смещения
Рис. 18 Зоны неравномерного смещения
Рис. 19 Треугольники в которых нужно найти смещения
Рис. 19 Треугольники в которых нужно найти смещения

Создаем 3 вспомогательных переменных, в которых произведем нужные расчеты. При желании можете рассчитать это самостоятельно по тригонометрическим формулам, либо воспользоваться готовыми значениями:

УголА = «deg(asin((([DIM_WIDTH]/ (Triang.Gyp([DIM_WIDTH], ([DIM_HEIGHT]-[DIM_HEIGHT1])))))))»

Дельта = «child.[DIM_THICKNESS1]/(cos(rad(((90-УголА)))))»

Смещение = «Triang.CatA(child.[DIM_THICKNESS1], УголА, 1)»

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

Рис. 20 Вспомогательные переменные
Рис. 20 Вспомогательные переменные

Теперь возвращаемся во 2-ой Extrusion и задаем смещение у отрезков следующим образом.

Отрезок_1:

X= child.[DIM_THICKNESS1]

Y= child.[DIM_THICKNESS1]

Отрезок_2:

X= child.[DIM_THICKNESS1]

Y=[DIM_HEIGHT]- Дельта - Смещение

Отрезок_3:

X= [DIM_WIDTH]-child.[DIM_THICKNESS1]

Y= [DIM_HEIGHT1]- Дельта + Смещение

Отрезок_4:

X= [DIM_WIDTH]-child.[DIM_THICKNESS1]

Y= child.[DIM_THICKNESS1]
После этого можно задать данному
Extrusion вычитание, ПКМ – Вычесть подобъект.
Важно, чтобы вычитающее тело, было вторым в иерархии группы.

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

После применения вычитания у 2-го Extrusion, появится перед названием и прорисуется контур нашей рамы.

Рис. 22 Полученная рама
Рис. 22 Полученная рама

На этом мы закончим создание рамы и перейдем к остеклению, так как окно будет глухое - без створок. Однако при создании своего окна, вы можете создавать створки, импосты и завязывать это всё возможностями редактора параметрического оборудования.

4. Создание стекла

Копируем 2-ой Extrusion в группу Стекло, так как его контур полностью нам подходит. После этого стоит не забыть нажать еще раз ПКМ – Вычесть подобъект, чтобы отменить вычитание.

Для того чтобы стекло имело свое визуальное отображение и штриховку, необходимо переопределить для него родительские элемент. Сделать это можно следующим образом: ПКМ по группе Стекло – Выбрать – Заполнение.
Затем то же самое нужно сделать и для 2-го Extrusion.

Рис. 23 Переопределение родительского элемента
Рис. 23 Переопределение родительского элемента

Далее задаем группе Стекло Y координату: parent.child.[DIM_THICKNESS]/2 +[DIM_THICKNESS]

Также задаем параметр Полупрозрачность: [OPENING_PANEL_VISIBILITY]

После этого переходим снова во 2-ой Extrusion и задаем ему следующую высоту: [DIM_THICKNESS]

Рис. 24 Промежуточный результат
Рис. 24 Промежуточный результат

5. Создание фасадного вида

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

Рис. 25 Стандартные группы фасадного вида у окон
Рис. 25 Стандартные группы фасадного вида у окон
Рис. 26 Виды открывания окон
Рис. 26 Виды открывания окон

Для наших задач достаточно одной группы, так как окно глухое. Зададим условие на скрытие группы Фасадный вид в параметре Скрытый. Условие исходит от родительского объекта в параметре Показывать линии открывания (1=да/0=Нет). Выражение выглядит следующим образом: 1-root.[OPENING_LINES_ISVISIBLE]

Далее создаем внутри группы Фасадный вид еще одну группу «+» и присваиваем ей Y координату : child.[DIM_THICKNESS]/2 + child(2).[DIM_THICKNESS]/2

Внутри группы «+» создаем два отрезка по двум точкам. Координаты следующие:

Отрезок_1 Базовая точка:

X= [DIM_WIDTH]/2 -50

Y= ([DIM_HEIGHT]+[DIM_HEIGHT1])/4

Отрезок_1 Вторая точка:

X= [DIM_WIDTH]/2 +50

Y= ([DIM_HEIGHT]+[DIM_HEIGHT1])/4

Отрезок_2 Базовая точка:

X= [DIM_WIDTH]/2

Y= ([DIM_HEIGHT]+[DIM_HEIGHT1])/4 -50

Отрезок_2 Вторая точка:

X= [DIM_WIDTH]/2

Y= ([DIM_HEIGHT]+[DIM_HEIGHT1])/4 +50

Где 50 – половина длины перекрестия

Рис. 27 Фасадный вид глухого окна
Рис. 27 Фасадный вид глухого окна

Если у вас должно быть несколько фасадных видов открывания окна, то имеет смысл скопировать все подгруппы Фасадного вида у стандартного окна и перепроверить их параметрику на вашем объекте, в случае чего скорректировать ее.

6. Создание вырезающей части (OPENING)

Теперь перейдем к вырезающей части нашего окна и обратимся в группу OPENING.

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

Отрезок_1 X=0 Y=0

Отрезок_2 X=0 Y= [DIM_WIDTH]

Отрезок_3 X=[DIM_HEIGHT1] Y=[DIM_WIDTH]

Отрезок_4 X=[DIM_HEIGHT] Y=0

Рис. 28 Промежуточный результат
Рис. 28 Промежуточный результат

Так как высота выдавливая у нас завязана на толщину стены, на которую накладывается проем, то сейчас мы не увидим результат этой операции. После добавления объекта в библиотеку и смены категории с Оборудования на Проем, эта операция начнет свою работу. Но эти действия мы сделаем немного позже, а пока контур можно проверить, переключаясь между линиями Extrusion.

7. Создание 2D представления

Так как все объекты nanoCAD BIM Строительство имеют многовидовое представление (multi-view), то предлагаю создать двухмерное представление (2D План) нашего проема.

Переключиться в режим отображения 2D План можно, кликнув ПКМ по иконке 3D в теле редактора параметрического объекта, затем в контекстном меню – Режим отображения - 2D План.

Рис. 29 Переключение режима отображения
Рис. 29 Переключение режима отображения

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

VAR_OPENING_POS_Y

VAR_OPENING_POS_Y

Их нужно поочерёдно скопировать из вида 3D модель и добавить в тело редактора в вид 2D План:

Рис. 30 Переменные окна в 2D План
Рис. 30 Переменные окна в 2D План

Далее создаем группу Рама и задаем ей базовую точку Y координаты: [VAR_OBJECT_POS_Y]. Затем в группе Рама создаем 3 прямоугольника.

Рис. 31 Создание прямоугольника.
Рис. 31 Создание прямоугольника.

Затем задаем параметризацию прямоугольникам следующим образом:

Прямоугольник_1:

Длина=[DIM_WIDTH]

Ширина=child.[DIM_THICKNESS]

Прямоугольник_2:

Длина= child.[DIM_THICKNESS1]

Ширина= child.[DIM_THICKNESS]

Прямоугольник_3:

Длина= child.[DIM_THICKNESS1]

Ширина= child.[DIM_THICKNESS]

Базовая точка Х координата= [DIM_WIDTH]-child.[DIM_THICKNESS1]

Рис. 32 Готовый двухмерный вид
Рис. 32 Готовый двухмерный вид

На этом наши манипуляции по созданию объекта закончены, далее будет описана процедура добавления объекта в библиотеку.

8. Добавление проема в БД

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

Рис. 33 Добавление объекта в библиотеку
Рис. 33 Добавление объекта в библиотеку

Далее для работы нам понадобится бесплатное приложение Менеджер библиотеки стандартных элементов. Скачать его можно из личного кабинета на сайте nanocad.ru в разделе nanoCAD BIM Строительство – файлы для скачивания.

Рис. 34 Дистрибутив Менеджера библиотек
Рис. 34 Дистрибутив Менеджера библиотек

Затем открываем это приложение и подключаемся к нашей библиотеке: Файл – Открыть библиотеку. По умолчанию библиотека разворачивается на сервере PostrgreSQL. Чтобы войти в библиотеку выставляем Аутентификацию СУБД данные для входа по умолчанию: логин – postgres пароль - password

Рис. 35 Данные для входа
Рис. 35 Данные для входа

Все добавленные пользователем объекты будут отображаться отдельно у самого пользователя.

Рис. 36 Расположение окна в библиотеке
Рис. 36 Расположение окна в библиотеке

Далее нам необходимо сменить нашему окну системную категорию с Объект параметрический на Проем. Сделать это можно следующим образом:

1. Заходим на вкладку Свойства и нажимаем Редактировать объект.

2. В разделе категория необходимо выбрать Проемы и нажать ОК.

Рис. 37 Смена категории объекта
Рис. 37 Смена категории объекта

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

Для этого разворачиваем Все объекты – Панель «Узлы» - Проемы, люки, отверстия, ниши – ПКМ

Создать миникаталог и называем его Окна пользовательские:

Рис. 38 Создание нового миникаталога
Рис. 38 Создание нового миникаталога

Затем находим наше окно у пользователя Postgres, нажимаем ПКМ – Поместить объект в миникаталог и разворачиваем список, находим Окна пользовательские.

Рис. 39 Добавление окна в миникаталог
Рис. 39 Добавление окна в миникаталог

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

Если у вас развернута сетевая библиотека, в который вы являетесь Администратором, то необходимо нажать ПКМ по объекту – Изменить – Сделать объект стандартным. Лишь после этих действий объект станет доступен другим пользователям.

9. Применение нового проема

Теперь можем вернуться в nanoCAD BIM Строительство и вставить наш проем в заранее созданную стену.

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

Отдельно замечу, что то Описание параметров проема, которые мы задавали в самом начале (Рис. 6), пришло в наше диалоговое окно и в рамках этой таблицы можно управлять геометрией нашего окна.

Рис. 40 Отображение нового проема в диалоговом окне
Рис. 40 Отображение нового проема в диалоговом окне

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

Рис. 41 Вставка окна
Рис. 41 Вставка окна

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

Рис. 42 Вид отображения 2D План
Рис. 42 Вид отображения 2D План
Рис. 43 Пример использования окон
Рис. 43 Пример использования окон

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

Для получения файла с готовыми проемами, оставьте заявку по ссылке, и мы направим материалы на указанную электронную почту.

Смотрите запись вебинара "Создание пользовательского проёма в nanoCAD BIM Строительство", где мы подробно разбираем устройство новых архитектурных проёмов в nanoCAD BIM Строительство, доработку проёма и механизм добавления пользовательских проемов в библиотеку. Смотреть >>

Если вы еще не перешли на российские САПР, заполняйте заявку на бесплатный дистрибутив nanoCAD BIM Строительство по ссылке, и мы поможем Вам на всех этапах тестирования, а также окажем техническую поддержку в период эксплуатации лицензий.

По всем вопросам:

☎ 8 (800) 201-63-85
cad@maxsoft.ru