Автор называет болванку и то, что из неё убрать. Траекторию, проходы, обороты и подачу считает
платформа — из объёма детали, материала и инструмента в слоте. Текст программы одинаков для любого
станка, которому доступен род cut.
/lab/cad: код слева, деталь справа. Результат пересчитывается на каждое изменение.stock(200, 100, 50, 'aluminum'); // болванка: габарит и материал
face({ depth: 0.4 }); // база — ровный верх
pocket({ rect: [40, 20, 160, 80], depth: 12, tool: T9 });
drill({ points: [[20, 20], [180, 80]], depth: 14, tool: T4 });
chamfer({ size: 1, tool: T6 }); // край — последним (кромка верха) Порядок как на станке: база (face) → объём (pocket, contour) → отверстия → край (chamfer).
Размеры выражаются через param() и друг через друга — деталь остаётся параметрической.
| о чём | правило | следствие |
|---|---|---|
| координаты | X, Y — от ближнего левого угла болванки; Z = 0 — её верх, вглубь отрицательно | генератор ничего не прибавляет: место — в G54 и двойнике |
| заготовка | первый вызов — stock(W, H, T, материал); дальше только вычитание | pad, through, zOffset решают судьбу сквозного реза |
| инструмент | tool: T4 — ссылка на слот стола станка, а не диаметр | слот, которого нет в таблице, падает со списком того, что есть |
| шаги | одинаковые операции одной фрезой — один шаг и одна смена | порядок шагов = порядок M6 на станке |
Подробно, с ценой каждого нарушения — справочник «Операции реза».
Список порождён из реестра движков платформы (backend/src/aicnc/services/generators_registry.py :: list_generators()) — тот же, что отдаёт GET /api/generators.
| глагол | операция | что делает | движок |
|---|---|---|---|
| face | Торцовка | Снять ровный слой со всего верха заготовки, zig-zag. | python_face |
| Карман прямоугольный / круглый | Прямоугольник — zigzag, круг — спираль из центра. | python_pocket | |
| Зона (универсальная выборка) | Выборка между внешней границей и островами, с уклоном стенок. | python_zone_pocket | |
| terrain | Террасный карман (изолинии) | Несколько контуров на разных глубинах — террасы, режутся кольцами. | python_terrain_pocket |
| wallfinish | Чистовая стенка (waterline) | Финиш наклонной стенки сферической фрезой по Z-уровням. | python_pocket_wall_finish |
| drill | Сверловка списком точек | Peck-сверловка: заглубление шагами с подъёмом на чистку стружки. | python_drill |
| thread | Резьбофрезерование | Внутренняя резьба винтовой интерполяцией или вращением стола. | python_thread_mill |
| contour | Контур по полигону | Обход замкнутого контура снаружи, внутри или по центру. | python_contour |
| chamfer | Фаска по рёбрам | Скос рёбер V-битом, ширина следует из глубины и угла. | python_chamfer |
| fillet | Скругление кромки | Четверть тора вместо острого угла, только сферическая фреза. | python_edge_round |
| engrave | Гравировка V-битом | Ломаная на фиксированной глубине: маркировка, надписи. | python_engrave |
| turn | Точение профиля | Токарная: торцовка + черновые по уровням Ø + чистовой контур. | python_turn_profile |
| partOff | Отрезка | Токарная: отрезной резец режет пруток пе́ками в одной плоскости Z. | python_part_off |
| groove | Канавка | Токарная: канавочный резец врезается пе́ками до дна на участке оси. | python_groove |
Параметры, единицы, умолчания и границы каждого глагола — в справочнике.
index — поворот заготовки на следующую сторону у станков с поворотной осью — глагол лаборатории, а не движок: он меняет установку, а не снимает материал.
В программе tool: T4. Слот отвечает на пять вопросов сразу: диаметр, профиль кончика, вылет,
зубья и материал фрезы, номер для M6 T4 / G43 H4. Таблица инструмента — часть двойника,
второй правды нет.
Молчаливой подстановки нет: не назвали tool — работает явный путь «просто диаметр» с пометкой,
что профиль и вылет неизвестны. Умолчание Ø6 живёт только в показе меша, не в генерации.
До пуска: toolcheck() в программе и панель «Проверки перед пуском» меряют вылет
по моменту привода — только на серво, на виртуальных осях момента нет.
При отправке: слот без вылета с названным происхождением (паспорт, замер) блокирует отправку. Стенд без механики понижает отказ до замечания.
Выбирается один раз при создании программы, из каталога материалов. Режим, который автор
не назвал (rpm, feed), при сохранении считается по материалу, фрезе и станку;
названный явно — не оспаривается.
Обороты клампятся конвертом шпинделя из двойника — [SPINDLE_0] в конфиге, одинаково
на симуляции и на приводах.
Типы фрез, карточка инструмента, таблица слотов, исходы проверки вылета — справочник «Инструмент и навесное».
| шаг | что | где | что видно |
|---|---|---|---|
| 1 | создать | ПРОГРАММЫ → Обработка → «Новая программа»: станок и материал | окно «Новая CAD-программа»; «Открыть» ведёт в лабораторию |
| 2 | описать болванку | первая строка кода — stock(…) | справа появляется параллелепипед нужного габарита |
| 3 | добавить операции | глаголы из таблицы ниже; ⌘Z — шаг назад | 3D-результат пересчитывается на каждое изменение; отказ операции — строкой с причиной |
| 4 | назвать инструмент | tool: T<n> — слот стола станка | панель «Проверки перед пуском» — вылет, замер по моменту на серво |
| 5 | сохранить | «Сохранить как CAD-программу» → «Сохранить в эту программу» | карточка в списке «Программы обработки» |
Дальше — «От программы к станку»: установка, preflight, пуск, обратная связь. Кнопки и тексты отказов по шагам — руководство «Станки», шаги 5–8.
Программа-пример — не витрина, а вход приёмочного сценария: та же программа, которую человек видит
у породы, проходит preflight, пуск, базу и отправку, и сверяется числами с ответом железа.
Ниже — породы рода cut; полный список с текстом программ — в справочнике.
| порода | программа | смены инструмента | слово S | зрелость |
|---|---|---|---|---|
| mill-xyz | торцовка (общая фрезерная) | T1 → T2 | 12000 | серийный |
| mill-5axis-trunnion | три грани за один установ | T1 → T2 → T2 | 12000 | бета |
| mill-5axis-head | три грани за один установ | T1 → T2 → T2 | 12000 | бета |
| lathe-2axis | вал из прутка | T1 → T2 → T3 | 1200 | бета |
| laser-plotter | раскрой лучом | нет стола | 30 | бета |
| robot-linear-delta | контур дельтой | T1 | 12000 | R&D |
| wire-edm | контур проволокой | нет стола | — | R&D |
Все породы, текст каждой программы и числа ожидания — «Программы-примеры пород».