Использование параметрических узлов в программе nanoCAD BIM Конструкции упрощает процесс моделирования, но при создании таких узлов многие не знают, с чего начать, процесс кажется трудоемким и сложным.

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

Алгоритм создания параметрического узла предлагаю рассмотреть в виде схемы (рис. 1).

 Рис. 1. Алгоритм создания параметрического узла
 Рис. 1. Алгоритм создания параметрического узла

Для примера выбран узел примыкания балки покрытия к колонне под проектным (неизвестным) углом и с элементами жесткости каркаса в виде распорок (рис. 2).

Рис. 2. Пример узла
Рис. 2. Пример узла

Определение основных элементов узла

Основные элементы проектного узла – колонна, балка, распорка 1 и распорка 2 (рис. 3). Важно учитывать последовательность элементов.

Рис. 3. Элементы узла
Рис. 3. Элементы узла

Моделирование основных элементов (определение условий создания узла)

Моделируем в пространстве модели nanoCAD BIM Конструкции основные элементы (рис. 4) в соответствии с исходными данными, определяя условия создания узла.

Исходные данные для моделирования:

???? колонна и балка – двутавровым сечением, распорки из гнутого профиля;
???? точка привязки профиля колонны по центру сечения, точка привязки профиля балки по середине верхней полки, точка привязки профиля распорок по середине верха сечения;
???? балка примыкает со стороны полки колонны под проектным (неизвестным) углом;
???? оси распорок расположены перпендикулярно стенке сечения колонны и на 150 мм ниже верха колонны.

Рис. 4. Общий вид основных элементов
Рис. 4. Общий вид основных элементов

Важно! Если изменился хотя бы один пункт исходных данных, это уже другой параметрический узел.

Геометрические размеры сечений основных элементов и угол примыкания балки – главные параметры для создания остальных элементов узла.

Создание объекта «Узел»

В nanoCAD BIM Конструкции командой Создать узел (рис. 5) создаем параметрический объект, выполняем следующие действия:

✅ последовательно назначаем основные элементы: колонну, балку, распорку 1 и распорку 2 (рис. 6);
✅ определяем базовую точку. Допускается назначить ее самостоятельно, но рекомендую использовать режим «Авто»: система назначит базовую точку узла на пересечении осей центра тяжести сечений основных элементов, и эта точка будет «нулевой» для построения всех остальных элементов.

Рис. 5. Команда Создать узел
Рис. 5. Команда Создать узел
Рис. 6. Последовательность действий, при выполнении команды Создать узел
Рис. 6. Последовательность действий, при выполнении команды Создать узел

Узел создается по преднастроенному шаблону с определенным количеством информационных атрибутов, которые считываются с системных параметров выбранных элементов (рис. 7). Эти системные параметры нужны при создании связей и геометрических зависимостей для построения элементов соединения основных элементов в узле. В свойствах узла параметрического объекта профиль 1 – это первый элемент, выбранный при создании узла (колонна), профиль 2 – второй выбранный элемент (балка), профили 3 и 4 – третий и четвертый выбранные элементы (соответственно распорка 1 и распорка 2).

Важно! Впоследствии вносить изменения в расположение элементов структуры внутри узла недопустимо.

Рис. 7. Свойства элемента «Узел»
Рис. 7. Свойства элемента «Узел»

Дальнейшая работа будет выполняться в Редакторе параметрического объекта, который вызывается командой Редактировать параметрический объект (рис. 8). Для ознакомления с принципами работы в Редакторе рекомендую обратиться к пятому разделу тест-драйва nanoCAD BIM Конструкции.

Рис. 8. Команда Редактировать параметрический объект
Рис. 8. Команда Редактировать параметрический объект

В Редакторе параметрического объекта формируется структура с группами (рис. 9).

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

Первой группе присвоим имя «Элементы» – в нее мы будем добавлять элементы узла.

Вторая группа содержит информационные параметры профиля 1, присвоим ей имя «Колонна».

Третья группа включает информационные параметры профиля 2, присвоим ей имя «Балка».

Четвертая группа содержит информационные параметры профиля 3, присвоим этой группе имя «Распорка_1».

Пятая группа содержит информационные параметры профиля 4, этой группе присвоим имя «Распорка_2».

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

Создание элементов узла

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

Для представления методики выбрана торцевая пластина (рис. 10). Опишем методику по шагам выполнения.

Рис. 10. Торцевая пластина
Рис. 10. Торцевая пластина

Исходные данные: торцевая пластина толщиной 20 мм (переменный информационный атрибут), пластина крепится с торца к колонне заводской сварным швом, колонна с торца обрезана плоскостью под углом примыкания балки к колонне.

Шаг 1: создание примитива по форме элемента

В группе Элементы Редактора параметрического объекта создаем группу «Пластина_1» (для каждого элемента узла создается отдельная группа), а в ней – 3D-примитив по геометрической форме как элемент «Торцевая пластина» (рис. 11).

Рис. 11. Команды создания группы и 3D-примитива
Рис. 11. Команды создания группы и 3D-примитива

По геометрии торцевая пластина представляет собой в проектном узле параллелепипед. Создаем 3D-примитив «BOX» (рис. 12).

Рис. 12. Создание 3D-примитива «ВОХ»
Рис. 12. Создание 3D-примитива «ВОХ»

3D-примитив «ВОХ» создается в «нулевой» точке узла (это точка создается при формировании узла командой Создать узел) с базовой геометрией 100х100х100.

Шаг 2: создание информационных атрибутов элемента

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

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

Рис. 13. Команда Добавить объект к другому объекту
Рис. 13. Команда Добавить объект к другому объекту

Создаем в пространстве модели пластину с прямоугольной геометрией. В свойствах объекта пластины уже имеется перечень необходимых атрибутов и параметров (рис. 14).

Рис. 14. Создание пластины в пространстве модели и свойства элемента пластины
Рис. 14. Создание пластины в пространстве модели и свойства элемента пластины

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

Рис.15. Окно Свойства объекта «Узел»
Рис.15. Окно Свойства объекта «Узел»

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

Рис. 16. Команда удаления элемента (подобъекта)
Рис. 16. Команда удаления элемента (подобъекта)

Шаг 3: параметризация геометрических размеров с основными элементами

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

Анализируем геометрические размеры пластины: толщина 20 мм – это редактируемый параметр, длина равна высоте сечения профиля колонны, ширина равна ширине сечения профиля колонны.

В свойствах пластины значения параметров длины и ширины связываем (параметризируем) со значениями параметров основных элементов (рис. 17-18).

Рис. 17. Параметризация длины пластины в свойствах параметрического объекта
Рис. 17. Параметризация длины пластины в свойствах параметрического объекта
Рис. 18. Параметризация ширины пластины в свойствах параметрического объекта
Рис. 18. Параметризация ширины пластины в свойствах параметрического объекта

Эти параметры пластины становятся недоступны для редактирования с помощью «ручек».

В окне Мастера функций появились новые обозначения: «parent» и «child». Они необходимы для того чтобы определить принадлежность информационного атрибута элементу иерархической структуры параметрического объекта. По структуре «parent» – это первый образующий, родительский элемент, а «child» – подчиненный элемент, который структурно входит в состав другого элемента. При наличии в одном элементе нескольких «child» к их обозначению добавляется порядковый номер в скобках (рис. 19) – поэтому в свойствах параметрического объекта очень важно сохранять структуру.

Рис. 19. Пример иерархической структуры параметрического объекта
Рис. 19. Пример иерархической структуры параметрического объекта

Шаг 4: параметризация примитива с информационными атрибутами элемента

В Редакторе параметрического объекта связываем геометрические размеры ранее созданного примитива с геометрическими размерами сформированного элемента – в свойствах узла, через запрос к структуре элемента (параметрического объекта) – (рис. 20).

Рис. 20. Связь между размерами пластины с геометрией «ВОХ»
Рис. 20. Связь между размерами пластины с геометрией «ВОХ»

Высота «ВОХ» равна толщине пластины (рис. 21), длина – длине пластины (рис. 22), а ширина – ширине пластины (рис. 23).

Рис. 21. Параметризация высоты «ВОХ» в Редакторе параметрического объекта
Рис. 21. Параметризация высоты «ВОХ» в Редакторе параметрического объекта
Рис. 22. Параметризация длины «ВОХ» в Редакторе параметрического объекта
Рис. 22. Параметризация длины «ВОХ» в Редакторе параметрического объекта
Рис. 23. Параметризация ширины «ВОХ» в Редакторе параметрического объекта
Рис. 23. Параметризация ширины «ВОХ» в Редакторе параметрического объекта

В узле создан 3D-примитив «ВОХ» проектных размеров.

Шаг 5: пространственно-геометрическое позиционирование элемента

Пространственно-геометрическое позиционирование пластины – это определение координат Х, Y, Z базовой точки, направления и ориентации элемента, выполняемое в Редакторе параметрического объекта (рис. 24).

Рис. 24. Пространственно-геометрическое позиционирование элемента пластины
Рис. 24. Пространственно-геометрическое позиционирование элемента пластины

В Редакторе параметрического объекта командами поворота относительно осей Х, Y, Z (рис. 25) поворачиваем пластину в базовой точке так, чтобы при назначении координат базовой точки относительно «нулевой» точки узла пластина приняла в узле необходимое положение.

Рис. 25. Команды поворота
Рис. 25. Команды поворота

На виде узла сверху в плоскости ХY (рис. 26) геометрически определяем для пластины значение координат Х, Y относительно «нулевой» точки узла.

Рис. 26. Вид узла сверху
Рис. 26. Вид узла сверху

В Редакторе параметрического оборудования выполняем параметризацию так, как показано на рис. 27.

Важно! Пространственно-геометрическое позиционирование элемента выполняется для группы «Пластина_1», а не для примитива «BOX».

Рис. 27. Параметризация координат X, Y в Редакторе параметрического объекта
Рис. 27. Параметризация координат X, Y в Редакторе параметрического объекта

На виде узла сбоку в плоскости ХZ (рис. 28) геометрически определяем для пластины координату Z относительно «нулевой» точки узла. Координата Z зависит от высоты сечения балки (Hб), высоты (толщины) пластины (Нпл), высоты сечения колонны (Нк).

Напоминаю, что «нулевая» точка узла определилась автоматически при создании узла (см. выше, раздел «Создание объекта “Узел”») на пересечении осей центра тяжести сечения основных элементов, а это значит, что координаты этой точки всегда пересчитываются от выбранного профиля балки и колонны.

Рис. 28. Вид узла сбоку
Рис. 28. Вид узла сбоку

Для вычисления координаты Z вспомним формулы тригонометрического соотношения сторон в прямоугольном треугольнике (рис. 29).

Рис. 29. Тригонометрическое соотношение
Рис. 29. Тригонометрическое соотношение

В узле (рис. 30) видим, что расстояние Z = Z1 - Z2 - Z3.

Рассмотрим три прямоугольных треугольника (1) (2) (3) и определим требуемые значения Z1, Z2 и Z3.

Рис. 30. Определение координаты Z
Рис. 30. Определение координаты Z

В треугольнике (1) Z1 равно половине высоты сечения балки, деленной на косинус проектного угла:

В треугольнике (2) Z2 равно высоте (толщине) пластины, деленной на косинус проектного угла:

В треугольнике (3) Z3 равно половине сечения колонны, умноженной на тангенс проектного угла:

По чертежу и соотношению сторон и углов треугольников мы вывели формулу для определения координаты Z.

В Редакторе параметрического объекта выполняем в соответствии с формулой параметризацию координат Z (рис. 31).

Рис. 31. Параметризация координат Z в Редакторе параметрического объекта
Рис. 31. Параметризация координат Z в Редакторе параметрического объекта

Таким образом мы определили базовую точку вставки торцевой пластины относительно «нулевой» точки узла. Далее определяем направление и ориентацию в пространстве.

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

Для определения координат выберем следующую последовательность действий:

✅ определяем ось в «нулевой» точке узла, вокруг которой будет поворот. В проектном узле это ось Оx;
✅ командами поворота относительно оси Ох поворачиваем пластину на «ложный» угол 10 градусов. На рис. 32 показаны изменения в значениях координат и поворот пластины;

Рис. 32. Положение пластины под «ложным» углом
Рис. 32. Положение пластины под «ложным» углом

✅ параметризируем измененные значения координат как показано на рис. 33-36. Все значения координат – это величины, вычисляемые через синус или косинус проектного угла.

Рис. 33. Направление «Y координата»
Рис. 33. Направление «Y координата»
Рис. 34. Направление «Z координата»
Рис. 34. Направление «Z координата»
Рис. 35. Ориентация «Y координата»
Рис. 35. Ориентация «Y координата»
Рис. 36. Ориентация «Z координата»
Рис. 36. Ориентация «Z координата»

Торцевая пластина узла находится в проектном положении (см. рис. 24).

Шаг 6: проверка работоспособности параметризации

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

Изменение сечения колонны. Выбираем (выделяем) колонну и в диалоговом окне Создание металлической колонны изменяем ее сечение (рис. 37). Пластина изменила геометрические размеры и осталась в том же положении. Вывод: «работает».

Рис. 37. Изменение сечения колонны
Рис. 37. Изменение сечения колонны

Изменение сечения балки. Выбираем (выделяем) балку и в диалоговом окне Создание металлической балки изменяем ее сечение (рис. 38). Пластина осталась на том же уровне, изменилось только положение «нулевой» точки узла. Вывод: «работает».

Рис. 38. Изменение сечения балки
Рис. 38. Изменение сечения балки

Изменение проектного угла. В свойствах балки увеличиваем значение атрибута «Z точка конца» на 150 мм (рис. 39). Угол поменялся, пластина и колонна изменили положение. Вывод: «работает».

Рис. 39. Изменение проектного угла
Рис. 39. Изменение проектного угла

Изменение толщины торцевой пластины. В свойствах параметрического объекта меняем толщину пластины_1 на 30 мм (рис. 40). Пластина изменила толщину и сохранила положение в соответствии с исходными данными. Вывод: «работает».

Рис. 40. Изменение толщины торцевой пластины
Рис. 40. Изменение толщины торцевой пластины

Для проверки работоспособности каждого созданного элемента узла мы проверяем в элементе все изменяемые атрибуты, то есть те информационные атрибуты, которые участвуют в параметризации. Если на каком-либо из этапов проверки необходимые условия не выполняются, следует вернуться к параметризации элементов (см. шаг 3).

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

Рис. 41. Проектный узел
Рис. 41. Проектный узел

Когда созданы все элементы узла (рис. 41), вернемся к нашему алгоритму (см. рис. 1).

Сохранение узла в библиотеке стандартных компонентов

В nanoCAD BIM Конструкции командой Добавить объект в библиотеку (рис. 42) добавляем узел в библиотеку стандартных компонентов, выполняем действия из командной строки.

Рис. 42. Команда Добавить объект в библиотеку
Рис. 42. Команда Добавить объект в библиотеку

После выполнения команды узел появляется в библиотеке (окно Узлы и готовые решения) – в категории Несгруппированные элементы. Далее этому объекту можно добавить графическое изображение и переместить в подходящую категорию (рис. 43).

Рис. 43. Расположение узла в библиотеке
Рис. 43. Расположение узла в библиотеке

Представленный алгоритм – это личный опыт создания параметрических узлов в nanoCAD BIM Конструкции 22. На мой взгляд, использование этого алгоритма, особенно на начальном этапе работы с программой, намного упрощает процесс создания параметрических узлов.

Евгения Донехно,
технический специалист по направлению
строительства и архитектуры
ООО «Центр программных решений»

Комментарии (4)


  1. PTM
    00.00.0000 00:00

    Вот интересно, насколько это интересно IT'шникам..?. ну инженеру- такое себе... инженеру кмд может быть, при условии, что он это не знает и работатет в вашей программе.

    Можете пояснить?


    1. sys_Arch
      00.00.0000 00:00

      IT'шникам сие необходимо для разработки / совершенствования / документирования API, CAD программы, для автоматизированного выбора / построения / изменения подобных узлов, через работу внешнего алгоритма

      Hey "CHAT GPT" ! спроектируй мне Ангар, ... и далее список пожеланий и ограничений к Ангару

      Ибо некоторые CAD имеют столь неудобный API, что никакие python / wrappers / etc не помогают. Так что ждем jn bniybrjd (binary) API, сразу нативный для Chat / Voice / Gesture GPT. То есть с выходом не линейно-рекурсивных текстовых макрос(ов), а сразу несколько конкурирующих бинарных потоков, задающих и изменяющих элементы узла.


  1. AlexXYZ
    00.00.0000 00:00

    Весьма сомнительный способ создания конструкции. Особенно учитывая явный ввод формул из sin и cos. Конечно, это очень похоже на углы эйлеры, но заставлять пользователя вводить их руками - ну, так себе развлечение. Получается, что помимо предлагаемого инструмента, требуется приложение учебника по матанализу. Хотелось бы видеть что-то попроще и поудобнее.


  1. alnite
    00.00.0000 00:00
    +1

    Интересная статья для непосвященных. Хотя, по сравнению с Fusion 360 например, "параметризация" выглядит как-то перегруженно всякими окошками/табличками/списками. Ну и, для непосвященных опять же, в качестве постскриптума интересно было бы увидеть как такие узлы использовать в проекте (ну вот например, "построить" ангар из таких колонн-балок-распорок).