С выходом на рынок nanoCAD BIM Строительство - BIM/ТИМ-решения на Платформе nanoCAD для проектирования архитектурной и конструктивной частей зданий/сооружений в *.dwg-среде, у пользователей появились широкие возможности создания различных типов проемов: двери, окна, специальные проемы.
В продукте заложена высокая степень параметризации элементов библиотеки, а управление геометрическими и атрибутивными свойствами осуществляется с помощью отдельного инструмента «Проем».
Однако активные пользователи часто спрашивают, каким образом можно создать свой пользовательский проем, которого нет в базовой библиотеке элементов? В ходе этой статьи мы пошагово разберем все этапы создания пользовательского проема на примере окна в форме трапеции.
Для того чтобы работать с параметризацией объектов библиотеки, необходимы базовые навыки работы с Редактором параметрического оборудования и Менеджером библиотек стандартных элементов.
Разработку параметрического проема можно выполнять несколькими способами:
- на основе какого-либо готового библиотечного проема, удаляя лишние объекты и создавая свои. Однако в таком случае легко запутаться во взаимосвязях и параметрах. Этот вариант применим лишь для совсем точечных корректировок элементов проема;
- можно поступить лучше и в качестве подосновы использовать готовый пустой проем с вкладки Проем специального типа из библиотеки, который содержит в себе лишь вырезающую часть. Далее добавить видимую группу со своим наполнением. В качестве наполнения помимо параметрических объектов, можно так же использовать импортируемую графику в обменных форматах, которые поддерживает Платформа nanoCAD;
- мы же будем использовать объект параметрический из dwg файла, содержащего все необходимые базовые параметры, однако всю параметрическую графику и многие информационные атрибуты нужно создавать с нуля. На примере этого файла будет описано создание окна трапециевидной формы. Этот способ более детально описывает механику работы проемов и позволит пользователю углубиться в процесс пополнения библиотеки собственными объектами.
1. Работа со свойствами и добавление дочерних элементов
Открываем dwg файл Opening_template.dwg и по ПКМ открываем Свойства элемента:
Добавляем два подчиненный элемента и по двойному клику на объект переименовываем согласно изображению ниже.
Корневым (root) элементом является Окно трапециевидное, а Рама и Заполнение — подчиненные элементы (child). Структура и порядок объектов являются важной составляющей, о которой нужно подумать заранее, так как синтаксис кода при параметризации будет это учитывать.
Теперь перейдем к наполнению элементов новыми свойствами. Часть перечисленных свойств являются обязательными для корректной работы проема, их можно изучить в шаблоне выше. Часть свойств будет добавлена для удобства при параметризации объекта. Часть свойств добавится автоматически при смене категории объекта с Оборудование на Проем, но об этом поговорим в главе Добавление проема в БД.
Список параметров, которые нужно добавить для наших элементов.
Окно трапециевидное:
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 (Имя материала).
После добавления всех перечисленных параметров необходимо их заполнить согласно скриншотам ниже:
Отдельно остановимся на параметре Описание параметров проема. Его значение определяет доступные для редактирования параметры из инструмента Проем.
Для корректного отображения таблицы параметров необходимо соблюдать следующий синтаксис:Форма;[PARAMETER]= Отображаемое имя, ед. изм;[PARAMETER2] и тд.
Формы на данный момент следующие Rect, Cirle, Arc. На что влияет форма и влияет ли вовсе, пока информации нет, возможно это сделано для удобства при разработке, так как стандартные проемы создавались путем написания кода.
Значение для ввода.
« Rect;[DIM_WIDTH]=Ширина проема, мм;[DIM_HEIGHT]=Высота проема, мм;[DIM_HEIGHT1]=Высота проема_нижняя, мм «
Как это будет выглядеть по итогам создания проема, можно увидеть на следующем скриншоте.
Вернемся к параметрам Идентификатор и Имя материла, они будут считываться с элемента Рама, именно так реализовано в стандартных окнах. Для этого кликнем на параметр Идентификатор материала, затем Редактировать комментарий – Вставить функцию.
Далее Добавить запрос к текущему элементу - Рама – Идентификатор материала/child.[BUILD_MATERIAL]. Затем жмем трижды «ОК», после того как у элемента Рама, данный параметр будет заполнен, он отобразится и у Родительского элемента Окно трапециевидное. Аналогично проделываем с параметром Имя материала.
Далее задаем параметры для элементов Рама и Заполнение аналогично, как на скриншотах ниже. Параметр Наименование можно не заполнять, это комментарий шаблона. Значения материалов подбираются из Базы материалов индивидуально пользователем.
Работа по атрибутивному наполнению закончена. Можем приступить к моделированию самого объекта, используя функционал Редактора параметрического оборудования – EditParamEquipment. Запускаем команду и выбираем наш объект – заготовку.
2. Создание рамы
После открытия Редактора параметрического оборудования, мы можем увидеть его структуру и содержание.
Изначально у заготовки присутствуют две переменные VAR_OPENING_POS_Y и VAR_OBJECT_POS_Y, они отвечают за расположение проема в стене и их менять мы не будем.
Также присутствуют две группы: Видимая часть и OPENNING. Первая отвечает за видимый нами объект. Вторая же группа вырезает объем из стены, на которую применяется вставленный проем.
3. Видимая часть
Пока будем работать в 1-ой группе и создадим несколько подгрупп для дальнейшей работы и присвоим им имена: Рама, Стекло, Фасадный вид. Исходный BOX можем удалить, он нам не понадобится.
В подгруппе Рама создадим Тело выдавливания - Extrusion.
В Теле выдавливания – Extrusion, создаем 4 отрезка. Поочередно ПКМ – 2D Примитив – Отрезок.
Примитив ARC, который создается автоматически, при создании Extrusion, можно удалить.
Координаты точек, задающих наш проем будут следующие:
Отрезок_1 X=0 Y=0
Отрезок_2 X=0 Y=[DIM_HEIGHT]
Отрезок_3 X=[DIM_WIDTH] Y=[DIM_HEIGHT1]
Отрезок_4 X=[DIM_WIDTH] Y=0
Назначать параметры будем аналогично, как мы делали с материалами, используя запрос к структуре элемента. Параметры Высоты и Ширины, указанные выше, берутся у Родительского элемента.
В операции Extrusion задаём Высоту и Y координату базовой точки - child.[DIM_THICKNESS], параметр задаем с дочернего элемента Рама.
Также позиционируем Extrusion.
Направление X=1; Y=0; Z=0
Ориентация X=0; Y= -1; Z=0
Для тех, кто хочет более детально ознакомиться с тем, как Задавать ориентацию и положение объектов, рекомендую изучить статью моего коллеги на habr раздел Параметризация ориентации примитивов объекта с помощью «ручек» положения.
По итогам проделанных действий должен получиться результат, как на скриншоте ниже.
Затем копируем уже имеющийся Extrusion и вставляем в группу Рамма. Данная операция будет вычитающей, и тем самым мы создадим контур проема. Чтобы контур рамы был одинаковый со всех сторон, нам необходимо произвести несколько расчетных манипуляций, в ходе которых создадим несколько вспомогательных переменных.
Создаем 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)»
Названия переменных могут отличаться главное, чтобы они совпадали во всем объекте и применялись ниже в структуре, чем находятся сами переменные.
Теперь возвращаемся во 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 вычитание, ПКМ – Вычесть подобъект.
Важно, чтобы вычитающее тело, было вторым в иерархии группы.
После применения вычитания у 2-го Extrusion, появится – перед названием и прорисуется контур нашей рамы.
На этом мы закончим создание рамы и перейдем к остеклению, так как окно будет глухое - без створок. Однако при создании своего окна, вы можете создавать створки, импосты и завязывать это всё возможностями редактора параметрического оборудования.
4. Создание стекла
Копируем 2-ой Extrusion в группу Стекло, так как его контур полностью нам подходит. После этого стоит не забыть нажать еще раз ПКМ – Вычесть подобъект, чтобы отменить вычитание.
Для того чтобы стекло имело свое визуальное отображение и штриховку, необходимо переопределить для него родительские элемент. Сделать это можно следующим образом: ПКМ по группе Стекло – Выбрать – Заполнение.
Затем то же самое нужно сделать и для 2-го Extrusion.
Далее задаем группе Стекло Y координату: parent.child.[DIM_THICKNESS]/2 +[DIM_THICKNESS]
Также задаем параметр Полупрозрачность: [OPENING_PANEL_VISIBILITY]
После этого переходим снова во 2-ой Extrusion и задаем ему следующую высоту: [DIM_THICKNESS]
5. Создание фасадного вида
Стандартные окна из поставки имеют Фасадный вид, который изменяется согласно виду открывания окна. В стандартных окнах меняется и тип открывания, и расположение ручки, вследствие чего существует несколько групп, каждая со своим видом и условием на отображение.
Для наших задач достаточно одной группы, так как окно глухое. Зададим условие на скрытие группы Фасадный вид в параметре Скрытый. Условие исходит от родительского объекта в параметре Показывать линии открывания (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 – половина длины перекрестия
Если у вас должно быть несколько фасадных видов открывания окна, то имеет смысл скопировать все подгруппы Фасадного вида у стандартного окна и перепроверить их параметрику на вашем объекте, в случае чего скорректировать ее.
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
Так как высота выдавливая у нас завязана на толщину стены, на которую накладывается проем, то сейчас мы не увидим результат этой операции. После добавления объекта в библиотеку и смены категории с Оборудования на Проем, эта операция начнет свою работу. Но эти действия мы сделаем немного позже, а пока контур можно проверить, переключаясь между линиями Extrusion.
7. Создание 2D представления
Так как все объекты nanoCAD BIM Строительство имеют многовидовое представление (multi-view), то предлагаю создать двухмерное представление (2D План) нашего проема.
Переключиться в режим отображения 2D План можно, кликнув ПКМ по иконке 3D в теле редактора параметрического объекта, затем в контекстном меню – Режим отображения - 2D План.
Для двухмерного представления нам так же понадобятся две переменные, которые будут позиционировать проем в теле стены:
VAR_OPENING_POS_Y
VAR_OPENING_POS_Y
Их нужно поочерёдно скопировать из вида 3D модель и добавить в тело редактора в вид 2D План:
Далее создаем группу Рама и задаем ей базовую точку Y координаты: [VAR_OBJECT_POS_Y]. Затем в группе Рама создаем 3 прямоугольника.
Затем задаем параметризацию прямоугольникам следующим образом:
Прямоугольник_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]
На этом наши манипуляции по созданию объекта закончены, далее будет описана процедура добавления объекта в библиотеку.
8. Добавление проема в БД
Для того, чтобы добавить объект в библиотеку нужно воспользоваться командой LCS_LIB_EXPORT - Добавить объект в библиотеку, а затем указать наш объект и нажать пробел.
Далее для работы нам понадобится бесплатное приложение Менеджер библиотеки стандартных элементов. Скачать его можно из личного кабинета на сайте nanocad.ru в разделе nanoCAD BIM Строительство – файлы для скачивания.
Затем открываем это приложение и подключаемся к нашей библиотеке: Файл – Открыть библиотеку. По умолчанию библиотека разворачивается на сервере PostrgreSQL. Чтобы войти в библиотеку выставляем Аутентификацию СУБД данные для входа по умолчанию: логин – postgres пароль - password
Все добавленные пользователем объекты будут отображаться отдельно у самого пользователя.
Далее нам необходимо сменить нашему окну системную категорию с Объект параметрический на Проем. Сделать это можно следующим образом:
1. Заходим на вкладку Свойства и нажимаем Редактировать объект.
2. В разделе категория необходимо выбрать Проемы и нажать ОК.
Затем мы можем добавить проем в миникаталог Окна и использовать, однако я предлагаю рассмотреть сценарий создания собственного миникаталога с отображением в инструменте Проем.
Для этого разворачиваем Все объекты – Панель «Узлы» - Проемы, люки, отверстия, ниши – ПКМ
Создать миникаталог и называем его Окна пользовательские:
Затем находим наше окно у пользователя Postgres, нажимаем ПКМ – Поместить объект в миникаталог и разворачиваем список, находим Окна пользовательские.
После данных манипуляций объект добавлен в миникаталог, и пользователь, создавший проем, сможет его использовать.
Если у вас развернута сетевая библиотека, в который вы являетесь Администратором, то необходимо нажать ПКМ по объекту – Изменить – Сделать объект стандартным. Лишь после этих действий объект станет доступен другим пользователям.
9. Применение нового проема
Теперь можем вернуться в nanoCAD BIM Строительство и вставить наш проем в заранее созданную стену.
Запускаем инструмент Проем, выбираем тип проема Окно. Так как мы в предыдущем шаге внесли изменения в библиотеку, то из этого окна можем обновить ее. После этого у нас появится дополнительная вкладка Окна пользовательские, содержащая наш новый проем.
Отдельно замечу, что то Описание параметров проема, которые мы задавали в самом начале (Рис. 6), пришло в наше диалоговое окно и в рамках этой таблицы можно управлять геометрией нашего окна.
При вставке данного окна оно ведет себя как штатный проем из библиотеки, просто с упрощенной параметризацией.
На данный момент ручки перемещения по габаритам проема задаются программно, и у пользователя нет возможности выставить их вручную.
В ходе данной статьи было рассмотрено создание окна трапециевидной формы, а также процесс добавления данного проема в библиотеку. Аналогичным способом можно создать любой другой проем, например, окно треугольной формы и комбинировать их с другими проемами.
Для получения файла с готовыми проемами, оставьте заявку по ссылке, и мы направим материалы на указанную электронную почту.
Смотрите запись вебинара "Создание пользовательского проёма в nanoCAD BIM Строительство", где мы подробно разбираем устройство новых архитектурных проёмов в nanoCAD BIM Строительство, доработку проёма и механизм добавления пользовательских проемов в библиотеку. Смотреть >>
Если вы еще не перешли на российские САПР, заполняйте заявку на бесплатный дистрибутив nanoCAD BIM Строительство по ссылке, и мы поможем Вам на всех этапах тестирования, а также окажем техническую поддержку в период эксплуатации лицензий.
По всем вопросам:
☎ 8 (800) 201-63-85
✉ cad@maxsoft.ru