Рекламодатель: ЗАО «Топ Системы»

ИНН 7726601967 ОГРН 1087746953557

Рекламодатель: ООО «ЛС-Технологии»

ИНН 7807258360 ОГРН 1227800102375

Рекламодатель:
ООО «С3Д Лабс»

ИНН 7715938849 ОГРН 1127747049209

6 - 2020

Создание параметрических объектов в программе nanoCAD Конструкторский BIM


Татьяна Толстова, тестировщик, отдел тестирования ПО, CSoft Development

В рамках этой статьи мы последовательно создадим необходимую нам геометрию нового объекта в программе nanoCAD Конструкторский BIM, наложим на него парамет­ризацию с помощью универсального Мастера функций, а также научимся контролировать информационные параметры объекта, добавим «ручки» для визуального управления его геометрией и многое другое.

Работа проектировщика — это процесс, требующий, с одной стороны, следования нормам, ГОСТам и инструкциям, а с другой — создания новых элементов и конструкций под «нестандартные» проекты.

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

В этой статье мы предлагаем вам ознакомиться с инструментом программы nanoCAD Конструкторский BIM, который позволяет решить эти задачи, — Редактором параметрического оборудования.

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

Процесс создания параметрического объекта в программе nanoCAD Конструкторский BIM поэтапно рассматривается на примере вентиляционного блока.

Построим блок по имеющемуся чертежу (рис. 1).

Рис. 1. Чертеж вентиляционного блока

Рис. 1. Чертеж вентиляционного блока

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

Рис. 2. Расположение команд Создать параметрический объект 
и Редактор параметрического элемента

Рис. 2. Расположение команд Создать параметрический объект
и Редактор параметрического элемента

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

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

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

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

Рис. 4. Маркер системы координат

Рис. 4. Маркер системы координат

Рис. 5. Вставка 3D-примитивов

Рис. 5. Вставка 3D-примитивов

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

Правой кнопкой мыши (ПКМ) щелкаем по 3D и в открывшемся меню выбираем 3D Примитив -> Параллелепипед (рис. 5).

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

Сразу же стоит сделать еще один шаг, который позже позволит нам избежать путаницы с созданными примитивами, а именно задать имена примитивов. Для этого в пункте Имя свойств примитива BOX укажем: Тело объекта (рис. 6).

Рис. 6. Изменение имени объекта

Рис. 6. Изменение имени объекта

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

В окне Редактора параметрического оборудования выделим пункт 3D, а затем в вертикальной панели инструментов, расположенной с левой стороны, выберем Свойства (рис. 7).

Рис. 7. Свойства на вертикальной панели инструментов

Рис. 7. Свойства на вертикальной панели инструментов

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

Далее добавим параметры для объекта. Для этого на правой вертикальной панели выбираем Добавить параметры из списка (рис. 8).

Рис. 8. Параметры объекта

Рис. 8. Параметры объекта

В открывшемся окне видим список всех параметров и для удобства выбора сворачиваем его, щелкнув по кнопке «+/­»
(рис. 9).

Рис. 9. Кнопка сворачивания/разворачивания списка параметров

Рис. 9. Кнопка сворачивания/разворачивания списка параметров

Рис. 10. Геометрические свойства примитивов

Рис. 10. Геометрические свойства примитивов

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

Для нашего объекта задаем длину 800, высоту 1200 и ширину 400. Нажимаем ОК.

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

В открывшемся окне Мастера функций выбираем команду запроса к текущему элементу (рис. 11).

Рис. 11. Окно Мастера функций

Рис. 11. Окно Мастера функций

Выбираем параметр Длина, нажимаем ОК, а затем снова ОК.

В поле чертежа видим, что длина построенного элемента изменилась (рис. 12), а напротив свойства Длина появился значок fx, указывающий, что значение параметра определяется по формуле.

Аналогичным образом создаем связь для высоты и ширины объекта.

Рис. 12. Изменившийся элемент в поле чертежа

Рис. 12. Изменившийся элемент в поле чертежа

Создание внутренних вырезов

Приступим к созданию внутренних вырезов и начнем с большого центрального сквозного выреза.

Центральный вырез

Для выреза создаем еще один 3D BOX Параллелепипед, который по умолчанию располагается в начале координат. Зададим его имя: Вырез центральный. Далее для большей наглядности сначала изменим размер, а затем и координаты объекта.

Чтобы наш объект был параметризован, свяжем размеры будущего выреза с общими габаритными размерами блока. Из чертежа мы знаем, что толщина стенки вентиляционного блока — 50 мм, длина выреза составляет половину габаритной длины, а по высоте вырез будет сквозным, то есть на всю высоту детали.

Вновь используем Мастер функций для задания свойств.

Для ширины выреза задаем значение ширины блока: 100 мм (по 50 мм для каждой стороны) — [DIM_WIDTH]­100.

Для задания длины выреза вычитаем из длины блока длины крайних вырезов и толщину стенок: [DIM_LENGTH]­400.

Для указания высоты задаем значение высоты блока: [DIM_HEIGHT].

Полученный результат показан на рис. 13.

Рис. 13. Результат изменения размеров выреза

Рис. 13. Результат изменения размеров выреза

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

Рис. 14. Координаты базовой точки примитива

Рис. 14. Координаты базовой точки примитива

Зададим координаты через Мастер функций и формулы:

для координаты X введем значение 200;

для координаты Y — значение 50;

координату Z оставляем равной 0.

Мы задали геометрические размеры и расположили Вырез_центральный в необходимом нам месте. Следующим шагом вычтем его из основного тела. Для этого щелкаем ПКМ по Вырезу и в открывшемся меню выбираем Вычесть подобъект (рис. 15).

Рис. 15. Вычитание примитива

Рис. 15. Вычитание примитива

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

Результат представлен на рис. 16.

Рис. 16. Центральный вырез

Рис. 16. Центральный вырез

Создание крайних верхних вырезов

Левый верхний вырез

Теперь нам предстоит создать крайние верхние вырезы. Начинаем с левого:

  • вновь создаем 3D­примитив Параллелепипед;
  • присваиваем ему имя Вырез_верхний_крайний_Л.

В нашей модели крайний вырез имеет глубину 500 мм и длину 100 мм, а ширина должна обеспечивать толщину стенки 50 мм.

Назначаем геометрические размеры:

  • высота: 500;
  • длина: 100;
  • ширина: [DIM_WIDTH]­100 (указывается через Мастер функций).

Полученный результат представлен на рис. 17.

Рис. 17. Результат изменения геометрических размеров примитива

Рис. 17. Результат изменения геометрических размеров примитива

Зададим координаты базовой точки через Мастер функций, что позволит нам при изменении габаритных размеров блока быть уверенными, что вырез останется на своем месте:

  • X­координата: 50;
  • Y­координата: 50;
  • Z­координата: [DIM_HEIGHT]­500 (высота ­500).

Вычитаем созданный вырез.

Результат показан на рис. 18.

Рис. 18. Результат построения левого верхнего выреза

Правый верхний вырез

Создадим аналогичный вырез с правой стороны блока. Чтобы упростить создание элемента, воспользуемся командой Копировать подобъект на вертикальной панели Редактора параметрического оборудования (рис. 19):

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

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

  • щелчком левой кнопки мыши выделяем Вырез_верхний_крайний_Л;
  • нажимаем кнопку Копировать подобъект;
  • переименовываем созданный примитив: присваиваем ему имя Вырез_верхний_крайний_П;
  • изменяем только X­координату базовой точки:
  • X­координата: [DIM_LENGTH]­50­100, где 50 — это толщина стенки, 100 — длина выреза (в этом случае мы не можем просто указать какое­либо конечное значение координаты по X, так как длина блока может меняться и нам необходима привязка к габаритным размерам).
  • Остальные координаты оставляем без изменений;
  • снимаем выделение с выреза и получаем результат, представленный на рис. 20.

Рис. 20. Результат построения правого верхнего выреза

Рис. 20. Результат построения правого верхнего выреза

Создание внутренних вырезов

Приступим к созданию внутренних вырезов.

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

Рис. 21. Геометрия внутреннего выреза блока

Рис. 21. Геометрия внутреннего выреза блока

Левый внутренний вырез

Чтобы не запутаться в большом количестве построенных примитивов, создадим группу объектов. Для этого ПКМ щелкаем на 3D, после чего выбираем пункт Группа (рис. 22).

Рис. 22. Создание группы в Редакторе параметрического оборудования

Рис. 22. Создание группы в Редакторе параметрического оборудования

По аналогии с примитивами группе также можно дать имя. Назовем созданную группу Вырез_внутренний_Л.

Для наполнения группы объектами есть два способа: первый — это переместить в группу уже созданные примитивы, а второй — создавать примитивы непосредственно внутри группы. Чтобы это сделать, щелкаем ПКМ на нашей группе и точно так же, как ранее в теле построения, добавляем необходимые нам примитивы.

Чтобы упростить построение, сделаем еще один шаг: изменим прозрачность уже построенных объектов. Для этого:

  • переходим в панель Свойства платформы nanoCAD (рис. 23). Вызвать панель можно сочетанием клавиш Ctrl+1;
  • выделяем в поле чертежа построенный нами блок;
  • переходим в пункт Прозрачность и устанавливаем значение 70.

Рис. 23. Панель Свойства платформы nanoCAD

Рис. 23. Панель Свойства платформы nanoCAD

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

Для создания внутреннего выреза:

  • создаем внутри группы 3D­параллелепипед, это будет основное тело выреза;
  • устанавливаем геометрические размеры:
    • высота: [DIM_HEIGHT]­650 (500 — высота верхнего выреза + 150 — расстояние между вырезами),
    • длина: 100,
    • ширина: [DIM_WIDTH]­100 (толщина стенки 50 мм × 2).

Что касается координат базовой точки, то при работе с группой есть два варианта. Первый — это, как и ранее, задавать для каждого создаваемого объекта свои координаты. Второй — задать координаты непосредственно элементу Group; таким образом, если позже нам понадобится изменить расположение данной «сборки» элементов, мы сможем это сделать только для группы, а не для каждого элемента в отдельности.

Выберем второй вариант и продолжим создавать геометрию выреза.

Следующим созданным примитивом будет «Клин». Щелкаем ПКМ по нашей группе, выбираем 3D­примитив Клин. Присваиваем ему имя Клин1:

  • в пространстве модели появился клин, однако для корректного расположения нам необходимо его повернуть;
  • выполним поворот с помощью вертикальной панели инструментов и команд поворота по осям (рис. 24);
  • в данном случае нам необходимо повернуть клин по оси Y на ­90° (направление поворота задано по часовой стрелке).
  • На вертикальной панели выбираем значок с координатой Y, перемещаем курсор в пространство чертежа либо в командную строку и вводим с клавиатуры значение ­90. Клин повернулся необходимым нам образом;
  • зададим габаритные размеры согласно чертежу:
    • высота: 150,
    • длина: 150,
    • ширина: [DIM_WIDTH]­100;
  • зададим координаты базовой точки:
    • X­координата: 150,
    • Y­координата: 0,
    • Z­координата: [DIM_HEIGHT]­650.

Рис. 24. Команды поворота на вертикаль­ной панели инструментов

Рис. 24. Команды поворота на вертикаль­ной панели инструментов

Рис. 25. Результат построения клина для внутреннего выреза

Рис. 25. Результат построения клина для внутреннего выреза

Результат построения показан на рис. 25.

Следующим шагом создадим клин для нижнего скоса выреза:

  • уже знакомым нам образом создаем в группе новый клин;
  • называем его Клин2;
  • поворачиваем Клин2 по оси Y на 180°;
  • задаем необходимые размеры:
    • высота: 15,
    • длина: 50,
    • ширина: 170;
  • координаты базовой точки:
    • X­координата: 150,
    • Y­координата: [DIM_WIDTH]/2­85­50 (так как нам важно, чтобы этот клин всегда располагался по центру блока, делим ширину блока пополам и вычитаем половину ширины клина (85), а затем толщину стенки (50)),
    • Z­координата: [DIM_HEIGHT]­650.

Создадим клин, ограничивающий верх отверстия:

  • создаем в группе новый клин;
  • называем его Клин3;
  • поворачиваем Клин3 по оси Y на ­90°;
  • задаем габаритные размеры:
    • высота: 50,
    • длина: 50,
    • ширина: 170;
  • координаты базовой точки:
    • X­координата: 150,
    • Y­координата: [DIM_WIDTH]/2­85­50,
    • Z­координата: [DIM_HEIGHT]­500­50 (500 — высота верхнего выреза, 50 — высота клина).

Результат построения представлен на рис. 26.

Рис. 26. Результат построения (1)

Рис. 26. Результат построения (1)

Создадим два бокса, которые будут ограничивать вырез, созданный самым первым клином:

  • создаем в группе новый бокс;
  • присваиваем ему имя Бокс1;
  • задаем габаритные размеры:
    • высота: 150,
    • длина: 50,
    • ширина: [DIM_WIDTH] /2­85­50;
  • координаты базовой точки:
    • X­координата: 100,
    • Y­координата: 0,
    • Z­координата: [DIM_HEIGHT]­500­150;
  • вычитаем созданный бокс;
  • создаем еще один бокс;
  • присваиваем ему имя Бокс2;
  • указываем габаритные размеры:
    • высота: 150,
    • длина: 50,
    • ширина: [DIM_WIDTH] /2­85­50;
  • координаты базовой точки:
    • X­координата: 100,
    • Y­координата: [DIM_WIDTH]/2+85­50,
    • Z­координата: [DIM_HEIGHT]­500­150;
  • вычитаем бокс.

Далее расположим всю группу в нужной позиции. Для этого в свойствах группы Вырез_внутренний_Л укажем координаты базовой точки (X­координата: 50, Y­координата: 50). И вычтем теперь уже всю группу, чтобы получить вырез в теле модели.

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

Рис. 27. Результат построения (2)

Рис. 27. Результат построения (2)

Правый внутренний вырез

Создадим с помощью кнопки Копировать подобъект второй внутренний вырез:

  • выделяем группу Вырез_внутренний_Л;
  • нажимаем кнопку Копировать подобъект;
  • присваиваем новой группе имя Вырез_внутренний_П;
  • для удобства построения меняем координату X для группы на 1200;
  • также для большей наглядности вычтем группу;
  • разворачиваем группу и выделяем Клин1_1;
  • поворачиваем Клин1_1 по оси Y на 90°;
  • задаем координаты базовой точки:
    • X­координата: ­50,
    • остальные координаты — без изменений.

Результат построения представлен на рис. 28.

Рис. 28. Результат построения (3)

Рис. 28. Результат построения (3)

  • Выделяем Клин2_1 (для нижнего скоса выреза);
  • поворачиваем Клин2_1 по оси Y на ­90°;
  • изменяем размеры:
    • высота: 50,
    • длина: 15,
    • ширина: 170;
  • изменяем X­координату базовой точки:
    • X­координата: ­50;
  • выделяем Клин3_1, ограничивающий верх отверстия;
  • поворачиваем Клин3_1 по оси Y на 90°;
  • изменяем X­координату базовой точки:
    • X­координата: ­50.

Результаты прохождения последних семи шагов представлены на рис. 29.

Рис. 29. Результат построения (4)

Рис. 29. Результат построения (4)

  • Выделяем Бокс1_1;
  • изменяем X­координату базовой точки:
    • X­координата: ­50;
  • выделяем Бокс2_1;
  • изменяем X­координату базовой точки:
    • X­координата: ­50.

Результат построения показан на рис. 30.

Рис. 30. Результат построения (5)

Рис. 30. Результат построения (5)

  • Вычитаем всю группу;
  • изменяем X­координату базовой точки для группы:
    • X­координата: [DIM_LENGTH]­150.

Мы завершили создание внутренних вырезов блока. Получившийся результат представлен на рис. 31.

Рис. 31. Результат построения внутренних вырезов блока

Рис. 31. Результат построения внутренних вырезов блока

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

Создание наружных вырезов

Левый вырез

Создаем новую группу:

  • присваиваем новой группе имя Вырез_наружный_Л;
  • внутри группы создаем бокс;
  • задаем габаритные размеры бокса:
    • высота: 200,
    • длина: 20,
    • ширина: 120;
  • создаем клин;
  • присваиваем ему имя Клин_А;
  • указываем размеры:
    • высота: 10,
    • длина: 20,
    • ширина: 120;
  • координаты базовой точки:
    • X­координата: 0,
    • Y­координата: 0,
    • Z­координата: 200;
  • создаем клин;
  • присваиваем ему имя Клин_Б;
  • поворачиваем Клин_Б по оси Y на 90°;
  • задаем размеры:
    • высота: 20,
    • длина: 10,
    • ширина: 120;
  • создаем клин;
  • присваиваем ему имя Клин_В;
  • поворачиваем Клин_В по оси X на ­90°, а по оси Y на 180°;
  • задаем размеры:
    • высота: 10,
    • длина: 20,
    • ширина: 220;
  • координаты базовой точки:
    • X­координата: 20,
    • Y­координата: 10,
    • Z­координата: ­10;
  • вычитаем объект;
  • создаем клин;
  • присваиваем ему имя Клин_Г;
  • поворачиваем Клин_Г по оси X на 90°, а по оси Z на ­90°;
  • задаем размеры:
    • высота: 20,
    • длина: 10,
    • ширина: 220;
  • координаты базовой точки:
    • X­координата: 20,
    • Y­координата: 120,
    • Z­координата: ­10;
  • вычитаем объект;
  • вычитаем группу Вырез_наружный _Л;
  • задаем координаты базовой точки группы:
    • X­координата: 0,
    • Y­координата: [DIM_WIDTH]/2­60,
    • Z­координата: [DIM_HEIGHT]­300.

Результат построения наружного выреза представлен на рис. 32.

Рис. 32. Результат построения наружного выреза

Рис. 32. Результат построения наружного выреза

Правый вырез

  • Копируем Вырез_наружный_Л с помощью команды Копировать подобъект;
  • изменяем имя группы на Вырез_наружный_П;
  • для большей наглядности задаем X­координату базовой точки 1100;
  • раскрываем группу, выделяем Клин_А1;
  • поворачиваем Клин_А1 по оси Y на ­90°;
  • задаем размеры:
    • высота: 20,
    • длина: 10,
    • ширина: 120;
  • изменяем координаты базовой точки:
  • X­координата: 20;
  • выделяем Клин_Б1;
  • поворачиваем Клин_Б1 по оси Y на 90°;
  • задаем размеры:
    • высота: 10,
    • длина: 20,
    • ширина: 120;
  • координаты базовой точки:
    • X­координата: 20,
    • Y­координата: 0,
    • Z­координата: 0;
  • выделяем Клин_В1;
  • поворачиваем Клин_В1 по оси Z на ­90°;
  • задаем размеры:
    • высота: 20,
    • длина: 10,
    • ширина: 220.
  • координаты базовой точки:
  • X­координата: 0;
  • выделяем Клин_Г1;
  • поворачиваем Клин_Г1 по оси Z на 90°;
  • задаем размеры:
    • высота: 10,
    • длина: 20,
    • ширина: 220;
  • координаты базовой точки:
    • X­координата: 0,
    • Y­координата: 120,
    • Z­координата: ­10;
  • изменяем только X­координату базовой точки группы Вырез_наружный_П:
    • X­координата: [DIM_LENGTH]­20.

Мы завершили создание параметризованной геометрии вентиляционного блока (рис. 33).

Рис. 33. Итоговая геометрия вентиляционного блока

Рис. 33. Итоговая геометрия вентиляционного блока

Для проверки того, что мы всё сделали правильно и получили запараметрированный объект, изменим габаритные размеры блока: укажем, например, длину 1000, высоту 1500 и ширину 600. В результате габаритные размеры блока изменились, однако внутренняя геометрия сохранила свои пропорции и расположение.

Создание «ручек» перемещения

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

Рис. 34. Создание «ручек»

Рис. 34. Создание «ручек»

Укажем координаты базовой точки:

  • для первой «ручки»:
    • X­координата: 0,
    • Y­координата: 0,
    • Z­координата: 0;
  • для второй «ручки»:
    • X­координата: [DIM_LENGTH],
    • Y­координата: 0,
    • Z­координата: 0;
  • для третьей «ручки»:
    • X­координата: 0,
    • Y­координата: [DIM_WIDTH],
    • Z­координата: 0;
  • для четвертой «ручки»:
    • X­координата: [DIM_LENGTH],
    • Y­координата: [DIM_WIDTH],
    • Z­координата: 0;
  • для пятой «ручки»:
    • X­координата: [DIM_LENGTH]/2,
    • Y­координата: [DIM_WIDTH]/2,
    • Z­координата: 0.

Мы создали «ручки» перемещения (рис. 35), с помощью которых в дальнейшем можно будет перемещать объект в поле чертежа.

Рис. 35. Вентиляционный блок с «ручками» перемещения

Рис. 35. Вентиляционный блок с «ручками» перемещения

При необходимости можно аналогичным образом создать другие виды «ручек».

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

***

Подведем итоги проделанной работы. Мы научились:

  • работать с Редактором параметрического оборудования, создавать новый объект и редактировать имеющийся;
  • создавать отдельные примитивы и их группы;
  • поворачивать примитивы и размещать их в нужном нам месте;
  • работать с Мастером функций для параметризации примитивов, групп и «ручек»;
  • задавать и изменять свойства параметрического объекта.

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

Приглашаем вас делиться успехами, задавать вопросы и оставлять пожелания на нашем форуме по адресу https://forum.nanocad.ru.

Регистрация | Войти

Мы в телеграм:

Рекламодатель:
ООО «Нанософт разработка»

ИНН 7751031421 ОГРН 5167746333838

Рекламодатель: ЗАО «Топ Системы»

ИНН 7726601967 ОГРН 1087746953557