Спроектировать одну деталь — рутина на полчаса. Спроектировать тридцать-пятьдесят типоразмеров одного семейства — кабельные лотки, профили, кронштейны, фланцы — уже не конструирование, а механический труд: открыть, изменить три размера, экспортировать, переименовать, повторить пятьдесят раз. Параметрическая серия деталей по таблице переворачивает этот процесс: вы описываете геометрию один раз как параметрическую модель, готовите CSV со строками-типоразмерами — и получаете пакет готовых деталей, по каждой строке сразу STEP, STL, DXF и IFC. Ниже разбираем, как это устроено на примере кабельных лотков НЛ и что нужно, чтобы серия собралась с первого раза. Такую серию из CSV или PDF ГОСТа строит НейроИнженер.
Почему «семейство» — это боль, а не одна деталь
Возьмём кабельный лоток НЛ. Конструктивно это одна и та же деталь: П-образный профиль с перфорацией. Меняются всего четыре-пять чисел — ширина, высота борта, толщина листа, длина, иногда шаг перфорации. Но в сортаменте таких комбинаций десятки: НЛ5, НЛ10, НЛ20, НЛ40, каждый в нескольких ширинах и длинах. Получается матрица на 30-50 позиций, где геометрия идентична, а отличаются параметры.
В классическом CAD каждая позиция — это отдельный файл. Даже при идеальной параметрической модели в КОМПАС-3D или SolidWorks вы вручную проходите цикл: подставить размеры в таблицу переменных, перестроить, проверить, что ничего не развалилось, экспортировать в каждый нужный формат, аккуратно назвать файл по обозначению. На одну позицию уходит 5-10 минут даже у опытного человека. На полное семейство — рабочий день, иногда два. И это при условии, что модель уже есть; если её ещё надо построить — добавьте сверху.
Самое обидное в этой работе — она не творческая. Ошибиться легко (перепутать длину у двух соседних строк), а заметить ошибку трудно: файлы похожи как близнецы. Именно такие задачи и должны уходить в автоматизацию.
Идея: таблица → серия
Параметрическая модель — это деталь, описанная не координатами, а
формулами от параметров. Ширина лотка W, высота борта
H, толщина t, длина L — и вся
геометрия (днище, два борта, отбортовки, перфорация) пересчитывается
от этих чисел. Один раз построив такую модель кодом, вы получаете
«генератор»: подставь набор параметров — получи деталь.
CSV-таблица становится списком заданий. Каждая строка — один типоразмер, каждый столбец — один параметр. Движок читает таблицу, прогоняет параметрическую модель по каждой строке и складывает результат в именованный пакет файлов. Серия деталей по таблице из пятидесяти строк собирается за минуту вместо двух дней — потому что машине безразлично, прогнать модель один раз или пятьдесят.
Под капотом это параметрический CAD кодом — на CadQuery или похожем ядре поверх OpenCascade. О том, чем отличаются OpenSCAD, CadQuery и FreeCAD как инструменты такого подхода, есть отдельный разбор. НейроИнженер строит серию из таблицы автоматически: вы загружаете CSV типоразмеров, описываете деталь один раз — и получаете пакет на всё семейство.
Образец CSV: типоразмеры лотков НЛ
Хорошая таблица читается без пояснений. Колонки — параметры, строки — позиции, единицы зафиксированы (миллиметры), обозначение совпадает с тем, что пойдёт в имя файла. Вот как выглядит фрагмент сортамента НЛ:
| Обозначение | Ширина, мм | Высота борта, мм | Толщина, мм | Длина, мм |
|---|---|---|---|---|
| НЛ5-50 | 50 | 50 | 1.5 | 2000 |
| НЛ5-100 | 100 | 50 | 1.5 | 2000 |
| НЛ10-100 | 100 | 65 | 2.0 | 3000 |
| НЛ10-150 | 150 | 65 | 2.0 | 3000 |
| НЛ20-200 | 200 | 80 | 2.0 | 3000 |
| НЛ20-300 | 300 | 80 | 2.5 | 3000 |
| НЛ40-400 | 400 | 100 | 2.5 | 3000 |
| НЛ40-500 | 500 | 100 | 3.0 | 3000 |
Восемь строк здесь — это восемь готовых типоразмеров 3D моделей. В реальном сортаменте таких строк бывает за полсотни, но принцип не меняется: добавили строку — добавили деталь, ничего не перерисовывая.
Что на выходе по каждой строке
Главный смысл серийной генерации — отдать каждый типоразмер сразу во всех форматах, которые понадобятся на разных этапах. По одной строке таблицы движок выдаёт комплект:
| Формат | Для чего | Что внутри |
|---|---|---|
| STEP | Доработка и передача подрядчику | Параметрическая BRep-геометрия: грани, рёбра, точные размеры. Открывается в любом CAD. |
| STL | 3D-печать и быстрый просмотр | Триангулированная сетка для FFF-печати образца или просмотра в вьюере без CAD. |
| DXF | Чертёж и раскрой | Плоская развёртка или проекция — для лазерной резки листа, гибки, чертёжной документации. |
| IFC | BIM-модель проекта | Объект с классом и Property Set'ами: габариты, материал, обозначение. Импорт в Revit, Tekla, Navisworks. |
STEP — это «исходник» для конструктора: его можно открыть в КОМПАС-3D или Fusion 360 и доработать. STL — для тех, кому нужна физическая деталь или просто картинка. DXF — для производства листового профиля. IFC — для тех, кто собирает не деталь, а здание.
IFC: класс и Property Set для BIM
В BIM-проекте лоток — это информационный объект, а не голая геометрия. Поэтому при экспорте в IFC каждая деталь серии получает:
- Класс IFC. Кабельный лоток размечается как
IfcCableCarrierSegmentс предопределённым типомCABLELADDERSEGMENTилиCABLETRAYSEGMENT— и BIM-приложение понимает, что это инженерная сеть, а не абстрактныйIfcBuildingElementProxy. - Property Set'ы. В свойства объекта пишутся обозначение типоразмера, ширина, высота борта, толщина, длина, материал. Эти данные потом подхватывают спецификации и расчёты нагрузки кабеленесущих систем.
- Имя и тег. Совпадают с обозначением из таблицы, так что объект в модели опознаётся по тому же НЛ20-300, что и в сортаменте.
Как правильно построить цепочку из параметрической геометрии в размеченный IFC и что важно проверить при импорте в Revit — разобрано в материале STEP → IFC для Revit.
Как подготовить хорошую CSV
Качество серии на 90% определяется качеством таблицы. Несколько правил, которые экономят часы на разбор ошибок:
- Одна строка — одна деталь, один столбец — один параметр. Никаких объединённых ячеек, подзаголовков посреди данных, комментариев в случайных колонках. Таблица должна быть прямоугольной.
- Единицы — в шапке, не в ячейках. Пишите
«Ширина, мм», а в ячейке только число
200. Текст вроде «200 мм» или «2,5 mm» ломает парсинг. Десятичный разделитель — точка, не запятая. - Обозначение — первой колонкой и без спецсимволов.
Оно станет именем файла:
НЛ20-300.step. Уберите слэши, двоеточия, кавычки — то, что недопустимо в именах файлов. - Кодировка UTF-8. Кириллица в обозначениях ломается, если файл сохранён в Windows-1251. Excel по умолчанию любит cp1251 — выбирайте при сохранении «CSV UTF-8».
- Заголовки стабильны. Назвали колонку
width_mmили «Ширина, мм» — держите это имя для всей серии. Модель ссылается на параметр по имени столбца. - Проверьте крайние строки. Самый узкий и самый широкий типоразмер — это границы, на которых геометрия чаще всего «вылезает»: борт упирается в перфорацию, толщина превышает радиус гиба. Если крайние строки построились — середина почти наверняка тоже.
Подсказки по тому, как формулировать саму деталь, чтобы её однозначно понял генератор, собраны в статье об описании детали для ИИ.
Что параметризуется хорошо, а что нет
Серия по таблице работает идеально, когда вся матрица типоразмеров — это одна и та же топология с разными числами. И начинает ломаться, когда внутри семейства меняется сама конструкция.
Хорошо параметризуется
- Масштабирование размеров. Лоток шире, борт выше, лист толще — топология та же, граней столько же, просто другие значения. Это идеальный случай.
- Числовые признаки с предсказуемым эффектом. Шаг и диаметр перфорации, радиус гиба, длина — параметры, которые меняют геометрию плавно.
- Семейства профилей, фланцев, кронштейнов с постоянным набором конструктивных элементов: меняется размер, но не состав.
Плохо параметризуется
- Резкая смена топологии. Если у узких лотков два ребра жёсткости, а у широких — четыре, или добавляется средняя перегородка, это уже не один параметр, а ветвление логики. Решается либо условиями в модели («если W > 300 — добавить ребро»), либо разбиением на два семейства.
- Появление и исчезновение элементов. Крепёжные проушины, которых нет у мелких размеров, но есть у крупных — требуют условной логики, а не простой подстановки чисел.
- Нелинейные конструктивные скачки. Когда после определённой ширины меняется способ соединения секций или материал с листового на гнутый профиль — это граница семейства. Честнее сделать две таблицы и две модели, чем городить ветвления.
Практическое правило: если все строки таблицы можно построить одной формулой без «если», серия соберётся за минуту. Если в модели появляются развилки — это сигнал, что вы пытаетесь упаковать в одно семейство то, что на деле два.
Где это окупается
Граница рентабельности проходит примерно по пятой-десятой детали семейства. Один-два типоразмера быстрее нарисовать руками в привычном CAD. Но как только речь о полном сортаменте — лотки, короба, профили, серия фланцев под разные Ду — таблично-параметрический подход выигрывает на порядок и по времени, и по отсутствию ручных ошибок.
Сгенерированную серию удобно держать как готовый каталог: один раз собранные STEP/IFC/DXF лежат и переиспользуются в проектах без повторного моделирования. Как организовать такой каталог, описано в материале про библиотеку 3D-моделей деталей. А если сортамент обновился — меняете строки в CSV и перегенерируете только то, что изменилось.
Частые вопросы
Сколько строк выдержит одна таблица?
Практического потолка нет — серия из 50 строк собирается за минуту, из 500 за несколько минут, потому что время линейно растёт от числа позиций. Главное ограничение не в количестве строк, а в том, чтобы вся матрица описывалась одной параметрической моделью без ветвлений топологии. Если внутри сортамента есть конструктивный скачок, его лучше вынести в отдельную таблицу.
Что делать, если у части типоразмеров другая конструкция?
Два пути. Первый — добавить в модель условную логику: например, «при ширине больше 300 мм добавить среднее ребро жёсткости» — тогда таблица остаётся одна. Второй — разбить семейство на два: отдельная модель и отдельная CSV под каждую топологию. Второй путь честнее и надёжнее, когда отличий много: пытаться упаковать две разные конструкции в одну модель — частый источник ошибок.
Откуда в IFC берутся свойства, которых нет в таблице?
Геометрические свойства (габариты, толщина, длина) считаются прямо из модели и колонок CSV. Дополнительные — материал, класс IFC, предопределённый тип — задаются один раз на уровне семейства, а не в каждой строке. Поэтому в Property Set попадают и данные из таблицы, и общие атрибуты, размеченные при настройке генератора.
Можно ли потом доработать одну деталь из серии вручную?
Да. STEP по каждой строке — это полноценная параметрическая BRep-геометрия, она открывается в любом CAD и правится как обычная модель. Логика такая: серию строит генератор, а нестандартную позицию (например, лоток с вырезом под ввод) вы дорабатываете руками из готового STEP, не перерисовывая деталь с нуля.