Использование параметрических узлов в программе nanoCAD BIM Конструкции упрощает процесс моделирования, но при создании таких узлов многие не знают, с чего начать, процесс кажется трудоемким и сложным.
Чтобы доказать обратное, предложим алгоритм, который делает формирование узлов по-настоящему увлекательным и интересным занятием. Его можно сравнить с собиранием кубика Рубика: на первый взгляд, задача почти невыполнима, но, зная алгоритм, мастера собирают его с закрытыми глазами за несколько секунд.
Алгоритм создания параметрического узла предлагаю рассмотреть в виде схемы (рис. 1).
Для примера выбран узел примыкания балки покрытия к колонне под проектным (неизвестным) углом и с элементами жесткости каркаса в виде распорок (рис. 2).
Определение основных элементов узла
Основные элементы проектного узла – колонна, балка, распорка 1 и распорка 2 (рис. 3). Важно учитывать последовательность элементов.
Моделирование основных элементов (определение условий создания узла)
Моделируем в пространстве модели nanoCAD BIM Конструкции основные элементы (рис. 4) в соответствии с исходными данными, определяя условия создания узла.
Исходные данные для моделирования:
???? колонна и балка – двутавровым сечением, распорки из гнутого профиля;
???? точка привязки профиля колонны по центру сечения, точка привязки профиля балки по середине верхней полки, точка привязки профиля распорок по середине верха сечения;
???? балка примыкает со стороны полки колонны под проектным (неизвестным) углом;
???? оси распорок расположены перпендикулярно стенке сечения колонны и на 150 мм ниже верха колонны.
Важно! Если изменился хотя бы один пункт исходных данных, это уже другой параметрический узел.
Геометрические размеры сечений основных элементов и угол примыкания балки – главные параметры для создания остальных элементов узла.
Создание объекта «Узел»
В nanoCAD BIM Конструкции командой Создать узел (рис. 5) создаем параметрический объект, выполняем следующие действия:
✅ последовательно назначаем основные элементы: колонну, балку, распорку 1 и распорку 2 (рис. 6);
✅ определяем базовую точку. Допускается назначить ее самостоятельно, но рекомендую использовать режим «Авто»: система назначит базовую точку узла на пересечении осей центра тяжести сечений основных элементов, и эта точка будет «нулевой» для построения всех остальных элементов.
Узел создается по преднастроенному шаблону с определенным количеством информационных атрибутов, которые считываются с системных параметров выбранных элементов (рис. 7). Эти системные параметры нужны при создании связей и геометрических зависимостей для построения элементов соединения основных элементов в узле. В свойствах узла параметрического объекта профиль 1 – это первый элемент, выбранный при создании узла (колонна), профиль 2 – второй выбранный элемент (балка), профили 3 и 4 – третий и четвертый выбранные элементы (соответственно распорка 1 и распорка 2).
Важно! Впоследствии вносить изменения в расположение элементов структуры внутри узла недопустимо.
Дальнейшая работа будет выполняться в Редакторе параметрического объекта, который вызывается командой Редактировать параметрический объект (рис. 8). Для ознакомления с принципами работы в Редакторе рекомендую обратиться к пятому разделу тест-драйва nanoCAD BIM Конструкции.
В Редакторе параметрического объекта формируется структура с группами (рис. 9).
Первой группе присвоим имя «Элементы» – в нее мы будем добавлять элементы узла.
Вторая группа содержит информационные параметры профиля 1, присвоим ей имя «Колонна».
Третья группа включает информационные параметры профиля 2, присвоим ей имя «Балка».
Четвертая группа содержит информационные параметры профиля 3, присвоим этой группе имя «Распорка_1».
Пятая группа содержит информационные параметры профиля 4, этой группе присвоим имя «Распорка_2».
Порядок расположения групп в структуре Редактора параметрического объекта не важен. Важно сохранить количество групп, сформированных при создании узла. В каждой группе (в зависимости от узла проектирования) может быть свое количество вложений: параметров, примитивов, групп.
Создание элементов узла
Проектный узел состоит из пластин, монтажных болтов, сварных швов – элементов, разных по составу и геометрическим размерам, но создаваемых по одной методике. Также в состав узла входят «невидимые» элементы, которые отвечают за подрезку и вырезы основных элементов. Создание этих элементов в нашей статье не рассматривается, но и они частично выполняются по методике, которая будет рассмотрена ниже.
Для представления методики выбрана торцевая пластина (рис. 10). Опишем методику по шагам выполнения.
Исходные данные: торцевая пластина толщиной 20 мм (переменный информационный атрибут), пластина крепится с торца к колонне заводской сварным швом, колонна с торца обрезана плоскостью под углом примыкания балки к колонне.
Шаг 1: создание примитива по форме элемента
В группе Элементы Редактора параметрического объекта создаем группу «Пластина_1» (для каждого элемента узла создается отдельная группа), а в ней – 3D-примитив по геометрической форме как элемент «Торцевая пластина» (рис. 11).
По геометрии торцевая пластина представляет собой в проектном узле параллелепипед. Создаем 3D-примитив «BOX» (рис. 12).
3D-примитив «ВОХ» создается в «нулевой» точке узла (это точка создается при формировании узла командой Создать узел) с базовой геометрией 100х100х100.
Шаг 2: создание информационных атрибутов элемента
В свойствах параметрического объекта создаем элемент и наполняем его пользовательскими информационными атрибутами.
Сделать это можно классическим способом (создать элемент и поочередно добавлять нужные атрибуты), но я предлагаю сэкономить время и создать свойства через создание пластины и ее добавление к параметрическому объекту с помощью команды Добавить объект к другому объекту (рис. 13).
Создаем в пространстве модели пластину с прямоугольной геометрией. В свойствах объекта пластины уже имеется перечень необходимых атрибутов и параметров (рис. 14).
Далее командой Добавить объект к другому объекту выполняем действия из командной строки, пластина переносится в структуру параметрического объекта (рис. 15). Затем пластину можно удалить, при этом в свойствах узла она остается.
Мы добавили пластину к параметрическому объекту, она появилась в его структуре. Далее в описании методики этот элемент представлен не будет и, как уже сказано, его можно удалить (рис. 16). Существует вариант продолжать работу над параметризацией этого элемента как элемента узла, но, на мой взгляд, это более трудоемкий процесс, а я хотела бы остановиться на простых способах.
Шаг 3: параметризация геометрических размеров с основными элементами
В окне Свойства параметра объекта связываем геометрические размеры созданного элемента и накладываем информационные зависимости его длины, ширины, высоты от геометрических системных параметров основных элементов.
Анализируем геометрические размеры пластины: толщина 20 мм – это редактируемый параметр, длина равна высоте сечения профиля колонны, ширина равна ширине сечения профиля колонны.
В свойствах пластины значения параметров длины и ширины связываем (параметризируем) со значениями параметров основных элементов (рис. 17-18).
Эти параметры пластины становятся недоступны для редактирования с помощью «ручек».
В окне Мастера функций появились новые обозначения: «parent» и «child». Они необходимы для того чтобы определить принадлежность информационного атрибута элементу иерархической структуры параметрического объекта. По структуре «parent» – это первый образующий, родительский элемент, а «child» – подчиненный элемент, который структурно входит в состав другого элемента. При наличии в одном элементе нескольких «child» к их обозначению добавляется порядковый номер в скобках (рис. 19) – поэтому в свойствах параметрического объекта очень важно сохранять структуру.
Шаг 4: параметризация примитива с информационными атрибутами элемента
В Редакторе параметрического объекта связываем геометрические размеры ранее созданного примитива с геометрическими размерами сформированного элемента – в свойствах узла, через запрос к структуре элемента (параметрического объекта) – (рис. 20).
Высота «ВОХ» равна толщине пластины (рис. 21), длина – длине пластины (рис. 22), а ширина – ширине пластины (рис. 23).
В узле создан 3D-примитив «ВОХ» проектных размеров.
Шаг 5: пространственно-геометрическое позиционирование элемента
Пространственно-геометрическое позиционирование пластины – это определение координат Х, Y, Z базовой точки, направления и ориентации элемента, выполняемое в Редакторе параметрического объекта (рис. 24).
В Редакторе параметрического объекта командами поворота относительно осей Х, Y, Z (рис. 25) поворачиваем пластину в базовой точке так, чтобы при назначении координат базовой точки относительно «нулевой» точки узла пластина приняла в узле необходимое положение.
На виде узла сверху в плоскости ХY (рис. 26) геометрически определяем для пластины значение координат Х, Y относительно «нулевой» точки узла.
В Редакторе параметрического оборудования выполняем параметризацию так, как показано на рис. 27.
Важно! Пространственно-геометрическое позиционирование элемента выполняется для группы «Пластина_1», а не для примитива «BOX».
На виде узла сбоку в плоскости ХZ (рис. 28) геометрически определяем для пластины координату Z относительно «нулевой» точки узла. Координата Z зависит от высоты сечения балки (Hб), высоты (толщины) пластины (Нпл), высоты сечения колонны (Нк).
Напоминаю, что «нулевая» точка узла определилась автоматически при создании узла (см. выше, раздел «Создание объекта “Узел”») на пересечении осей центра тяжести сечения основных элементов, а это значит, что координаты этой точки всегда пересчитываются от выбранного профиля балки и колонны.
Для вычисления координаты Z вспомним формулы тригонометрического соотношения сторон в прямоугольном треугольнике (рис. 29).
В узле (рис. 30) видим, что расстояние Z = Z1 - Z2 - Z3.
Рассмотрим три прямоугольных треугольника (1) (2) (3) и определим требуемые значения Z1, Z2 и Z3.
В треугольнике (1) Z1 равно половине высоты сечения балки, деленной на косинус проектного угла:
В треугольнике (2) Z2 равно высоте (толщине) пластины, деленной на косинус проектного угла:
В треугольнике (3) Z3 равно половине сечения колонны, умноженной на тангенс проектного угла:
По чертежу и соотношению сторон и углов треугольников мы вывели формулу для определения координаты Z.
В Редакторе параметрического объекта выполняем в соответствии с формулой параметризацию координат Z (рис. 31).
Таким образом мы определили базовую точку вставки торцевой пластины относительно «нулевой» точки узла. Далее определяем направление и ориентацию в пространстве.
Пластина должна быть повернута на проектный угол. Направление и ориентация в пространстве задаются в Редакторе параметрического объекта в виде координат, которые сложно определить с первого взгляда. Напоминаю, что мы продолжаем редактировать группу «Пластина_1».
Для определения координат выберем следующую последовательность действий:
✅ определяем ось в «нулевой» точке узла, вокруг которой будет поворот. В проектном узле это ось Оx;
✅ командами поворота относительно оси Ох поворачиваем пластину на «ложный» угол 10 градусов. На рис. 32 показаны изменения в значениях координат и поворот пластины;
✅ параметризируем измененные значения координат как показано на рис. 33-36. Все значения координат – это величины, вычисляемые через синус или косинус проектного угла.
Торцевая пластина узла находится в проектном положении (см. рис. 24).
Шаг 6: проверка работоспособности параметризации
Для проверки работоспособности параметризации созданного элемента необходимо внести изменения в геометрические размеры сечений основных элементов и значение угла примыкания балки к колонне.
Изменение сечения колонны. Выбираем (выделяем) колонну и в диалоговом окне Создание металлической колонны изменяем ее сечение (рис. 37). Пластина изменила геометрические размеры и осталась в том же положении. Вывод: «работает».
Изменение сечения балки. Выбираем (выделяем) балку и в диалоговом окне Создание металлической балки изменяем ее сечение (рис. 38). Пластина осталась на том же уровне, изменилось только положение «нулевой» точки узла. Вывод: «работает».
Изменение проектного угла. В свойствах балки увеличиваем значение атрибута «Z точка конца» на 150 мм (рис. 39). Угол поменялся, пластина и колонна изменили положение. Вывод: «работает».
Изменение толщины торцевой пластины. В свойствах параметрического объекта меняем толщину пластины_1 на 30 мм (рис. 40). Пластина изменила толщину и сохранила положение в соответствии с исходными данными. Вывод: «работает».
Для проверки работоспособности каждого созданного элемента узла мы проверяем в элементе все изменяемые атрибуты, то есть те информационные атрибуты, которые участвуют в параметризации. Если на каком-либо из этапов проверки необходимые условия не выполняются, следует вернуться к параметризации элементов (см. шаг 3).
Остальные элементы проектного узла, пластины, монтажные болты, сварные швы и другие элементы создаем по вышеизложенной методике.
Когда созданы все элементы узла (рис. 41), вернемся к нашему алгоритму (см. рис. 1).
Сохранение узла в библиотеке стандартных компонентов
В nanoCAD BIM Конструкции командой Добавить объект в библиотеку (рис. 42) добавляем узел в библиотеку стандартных компонентов, выполняем действия из командной строки.
После выполнения команды узел появляется в библиотеке (окно Узлы и готовые решения) – в категории Несгруппированные элементы. Далее этому объекту можно добавить графическое изображение и переместить в подходящую категорию (рис. 43).
Представленный алгоритм – это личный опыт создания параметрических узлов в nanoCAD BIM Конструкции 22. На мой взгляд, использование этого алгоритма, особенно на начальном этапе работы с программой, намного упрощает процесс создания параметрических узлов.
Евгения Донехно,
технический специалист по направлению
строительства и архитектуры
ООО «Центр программных решений»
Комментарии (4)
AlexXYZ
00.00.0000 00:00Весьма сомнительный способ создания конструкции. Особенно учитывая явный ввод формул из sin и cos. Конечно, это очень похоже на углы эйлеры, но заставлять пользователя вводить их руками - ну, так себе развлечение. Получается, что помимо предлагаемого инструмента, требуется приложение учебника по матанализу. Хотелось бы видеть что-то попроще и поудобнее.
alnite
00.00.0000 00:00+1Интересная статья для непосвященных. Хотя, по сравнению с Fusion 360 например, "параметризация" выглядит как-то перегруженно всякими окошками/табличками/списками. Ну и, для непосвященных опять же, в качестве постскриптума интересно было бы увидеть как такие узлы использовать в проекте (ну вот например, "построить" ангар из таких колонн-балок-распорок).
PTM
Вот интересно, насколько это интересно IT'шникам..?. ну инженеру- такое себе... инженеру кмд может быть, при условии, что он это не знает и работатет в вашей программе.
Можете пояснить?
sys_Arch
IT'шникам сие необходимо для разработки / совершенствования / документирования API, CAD программы, для автоматизированного выбора / построения / изменения подобных узлов, через работу внешнего алгоритма
Hey "CHAT GPT" ! спроектируй мне Ангар, ... и далее список пожеланий и ограничений к Ангару
Ибо некоторые CAD имеют столь неудобный API, что никакие python / wrappers / etc не помогают. Так что ждем jn bniybrjd (binary) API, сразу нативный для Chat / Voice / Gesture GPT. То есть с выходом не линейно-рекурсивных текстовых макрос(ов), а сразу несколько конкурирующих бинарных потоков, задающих и изменяющих элементы узла.