Документация
CAM и G-код
Создавайте траектории инструмента, отправляйте программы станка, воспроизводите выполненные ЧПУ и проверяйте доказательства, прикрепленные к каждому результату.
Автоматически переведено с английского. Смотреть оригинал на английском
От геометрии к программе
@cadcamfun/core раскрывает производственную функциональность под cam. Генераторы операций преобразуют геометрию и параметры обработки в движения траектории инструмента. Посты превращают машинно-нейтральную программу в текст контроллера. Адаптер генератора также поддерживает запросы фрезерного, токарного станка и 3D-принтера, используемые в форме приложения.
Собственное производственное ядро добавляет упорядоченный конвейер: подготовьте деталь и ресурсы, спланируйте или примите операции, вычислите данные резки, сгенерируйте движение, создайте одну программу ЧПУ, воспроизведите эту ЧПУ независимо и прикрепите доказательства. Сгенерированный текст, проанализированная программа и проверенный производственный артефакт — это разные выходные данные с разными гарантиями.
import { cam } from "@cadcamfun/core"
const post = cam.getPost("fanuc")
if (post === undefined) throw new Error("Post is unavailable")
const nc = post.emit(program, { decimals: 3, tolerance: 0.01 }) Представление траектории инструмента
Программа содержит упорядоченные траектории инструмента, каждая из которых связана с идентификатором инструмента и списком перемещений. Координаты указаны в миллиметрах, подача резки — в миллиметрах в минуту, а продолжительность — в секундах. Глубина резания является отрицательной Z относительно вершины заготовки в обычных рабочих координатах. Сообщения преобразуют выходные единицы без изменения соглашения о домене.
Ходы Rapid, Linear, Arc, Dwell, Comment, Cycle, и Orient. Центры дуг — это абсолютные координаты XY; пост вычисляет смещения I/J относительно контроллера. Совпадение координат начала и конца XY означает полный круг. Цикл сохраняет намерение сверления, выдержки, прорезания или стружколомания с помощью плоскости отвода и подачи.
Вращающиеся поля при линейных и быстрых перемещениях выражают одновременное движение осей; Orient выражает индексированное позиционирование. Эти угловые поля используют градусы. Диалект, который не может поддерживать вращательное движение, отвергает такую программу вместо того, чтобы отказаться от ее вращательных полей.
Операции и API генератора
Библиотека операций включает в себя профиль, карман, сверление, торцовку, гравировку, обработку поверхности, остаточную обработку, нарезание резьбы, снятие фасок, адаптивную обработку и многоосную генерацию. Каждая операция предоставляет свой контракт параметров и функцию чистой генерации. Размеры инструмента, пределы глубины, зазор, подачи и геометрия должны удовлетворять правилам проверки операции.
POST /api/toolpaths/generate принимает настройки генератора, геометрию и дополнительные функции принтера и возвращает их gcode, cycles, warnings, stats, programи обычно генерирует доказательства. Действительный запрос, который не может сгенерировать программу, возвращает 400 с указанием причины; неожиданный сбой вычислений становится 500. Генерация не сохраняет траекторию инструмента.
/api/toolpaths/suggest получает управляемые элементами параметры, обратную связь, статистику резания, текст операции и предупреждения. /api/toolpaths/parse интерпретирует предоставленный G-код в ходы программы и статистику. Предложения и синтаксический анализ не устанавливают, что программа безопасна или геометрически правильна.
Диалекты контроллера
Встроенный реестр реализует generic, fanuc, grbl, и haas. linuxcnc является признанным идентификатором сообщения, не реализованным в этом реестре; getPost может вернуть неопределенное значение. Решите и проверьте сообщение перед его вызовом.
Сообщения используют общий эмиттер с фиксированным десятичным форматированием, очисткой комментариев, сменой инструментов, обработкой дуг, дополнительной нумерацией строк и расширением цикла. По умолчанию используются три десятичных знака, включенные постоянные циклы, дуги IJK, заголовок включен и допуск 0.01 мм. Неподдерживаемые форматы дуг возвращаются к поддерживаемым формам и линеаризации диалекта.
toolNumbers сопоставляет идентификаторы инструментов с явными карманами положительных целых чисел. Несопоставленные инструменты используют нумерацию при первом использовании, избегая при этом занятых номеров. retractBeforeToolChange является добровольным; он поднимает Z в наивысшее достигнутое положение программы перед сменой инструмента. Выпуск подпрограммы также является добровольным и зависит от поддержки диалектов. Перед использованием в производстве просмотрите выходные данные выбранного контроллера и конфигурацию машины.
Повторяющиеся траектории инструмента могут быть созданы как подпрограммы. Траектория инструмента считается квалифицируемой, если после ее перемещения позиционирования ее движение представляет собой движение другой траектории, преобразованное в пределах 5 × 10⁻⁶ мм, с теми же типами перемещения, подачами и ощущениями дуги. Каждой группе необходимо как минимум шесть движений тела, и в общей сложности они должны сохранить не менее двенадцати движений. Траектории с постоянными циклами или вращающимися словами никогда не являются кандидатами (packages/core/src/cam/post/subprograms.ts).
Собственные уровни производства и выпуска
POST /api/toolpaths/manufacture принимает CamKernelRequest, снимок САПР версии 1 с идентификацией, материалом, дополнительным станком, заготовкой, инструментами, операциями, контролем качества и смещением детали. Отсутствующие операции вызывают планировщик; отсутствующие инструменты используют набор резаков по умолчанию. Неподдерживаемые входные данные, неизвестный материал или инструмент, геометрия пустой детали, недопустимый материал и незапланированная работа приводят к явным проблемам.
Ядро рассчитывает подачу для каждой операции, скорость шпинделя, зацепление, оценку мощности и усилия, предупреждения, время и удаляемый объем. Он выкладывает одну программу и самостоятельно интерпретирует выдаваемый ею NC. Артефакт сохраняет программу, фрезы, текст ЧПУ, статистику запасов, результаты операций, идентификационные данные, претензии и проблемы.
release это blocked, preview, или verified-program. Серьезные сбои или пустой выпуск кадра ЧПУ. Проверка требует подтверждения соответствующих претензий; Текущее правило выпуска разрешает неподдерживаемые доказательства перемещения машины, но при этом помечает программу как проверенную. Прежде чем решить, относятся ли доказательства к предполагаемой машине, проверьте каждую претензию, включая статусы «неподдерживаемая» и «неразрешенная».
Претензии касаются режимов резания, ограничений станка, завершенных операций, быстрого зазора, зазора держателя, строжки, удаления материала, повтора ЧПУ, перемещения станка и зазора станка. Доказательства привязаны к NC артефакта и его источнику. Редактирование ЧПУ или изменение исходной настройки делает это соединение недействительным, если задание не будет оценено повторно.
Проверка повтора и ее ограничения
POST /api/toolpaths/verify воспроизводит либо G-код, либо программу для заготовки, выровненной по оси. Предоставьте ровно один источник движения, инструмент и границы заготовки. Дополнительные приспособления представляют собой конверты, выровненные по осям; дополнительные целевые тела или сетки позволяют сравнивать зарезы и остатки. Отсутствующие размеры канавки, хвостовика, вылета или державки оставляют соответствующие проверки немоделированными.
Верификатор выбирает движение в поле высоты и возвращает проблемы, статистику удаления, длину зацепления/воздушного разреза и предварительный просмотр изображения. Допуск по умолчанию составляет 0.05 мм. Разрешение по умолчанию зависит от диаметра фрезы и может быть увеличено в соответствии с вычислительным бюджетом; ResolutionCoarsened сообщает, что изменения. Разрешение сетки ограничивает геометрические доказательства, которые может поддерживать результат.
Результат с ok: true не имеет проблем с серьезностью ошибок. Без цели невозможно обеспечить точность готовой детали; без приспособлений или геометрии держателя невозможно установить их зазор. Встроенные в ядро повторные и машинные проверки добавляют доказательства, относящиеся к захваченному заданию, в то время как автономная проверка отражает только предоставленный им запрос.
Карта реализации
cam/ir.ts владеет ходами и программными контрактами; operations/ владеет генераторами стратегий; post/ владеет контроллером выбросов; generator/ адаптирует настройки приложения и парсит текст; model/ строит геометрию детали; verify/ владеет высотным повтором; kernel/ владеет организацией производства и доказательствами. setup.ts и indexing.ts обеспечить проверку рабочего кадра и преобразования индексированных таблиц.
Сохранение документов, проверка доступа к чертежам и сохранение исходных данных относятся к дополнительным службам. Видеть Настройки для портативных операционных документов и проверок на постоянство.
Глубины, высоты, подачи и настройки по умолчанию
Параметры работы сердечника отличают положительную глубину резания от абсолютных плоскостей Z. totalDepth и stepdown требуются положительные конечные длины; глубина 5 мм с шагом вниз 2 мм обеспечивает проходы на 2, 4 и 5 мм ниже верха. Значения по умолчанию применяются только в том случае, если поле отсутствует, поэтому явно разрешенный ноль сохраняется.
| Поле | По умолчанию / единица измерения | Значение |
|---|---|---|
clearanceHeight | 10 мм | Плоскость, используемая для четкого быстрого позиционирования. |
safeHeight | 5 мм | Высота входа/выхода рабочей подачи. |
retractHeight | 2 мм | Высота парковки между проездами; ноль может быть действительным. |
feed / plungeFeed | 800 / 300 мм/мин | Позитивная резка и погружная подача. |
spindleRpm / coolant | 10,000 / off | Шпиндель на рабочем уровне и назначение СОЖ. |
Высота должна соответствовать зазору ≥ безопасному ≥ втягиванию. Значениями профиля по умолчанию являются наружная компенсация, направление подъема, нулевой припуск на чистовую обработку, прямой ввод, отключение дуги и допуск 0.01 мм. Угол наклона по умолчанию равен 3° и принимает значения 0.1–45°; шаг спирали по умолчанию равен 1 мм на оборот. Заявленная сторона и допуск перемещают траекторию центра инструмента, а не изменяют исходный контур.
Это чистые настройки по умолчанию. Настройки генератора приложений и собственные данные процесса ядра, полученные из материала, представляют собой отдельные уровни параметров; не допускайте одинаковых имен полей или значений по умолчанию для них.
Источник: packages/core/src/cam/params.ts и operations/profile.ts.
Для резьбофрезерования используются базовые высоты профиля 68-1 ISO: 0.54127 × шаг для внутренней резьбы и 0.61343 × шаг для внешней резьбы (packages/core/src/cam/operations/thread.ts). Средство просмотра траектории инструмента предполагает 500 мм/мин для перемещений резания без подачи и 1,000 мм/мин для ускорений при синхронизации анимации; это предположения о воспроизведении, а не оценки машины.
Воспроизведение небольшой программы ЧПУ
В этом примере в памяти вырезается прямая прорезь шириной 4 мм и глубиной 3 мм в стандартной модели 40 × 40 × 10 мм. Он использует тот же основной верификатор, который используется конечной точкой HTTP, без сохранения траектории.
import { cam } from "@cadcamfun/core"
const report = cam.verify.verifyToolpath({
gcode: "G21\nG90\nG0 X-10 Y0 Z5\nG0 Z0\nG1 Z-3 F200\nG1 X10 F400\nG0 Z5\nM30",
stock: { minX: -20, maxX: 20, minY: -20, maxY: 20, minZ: -10, maxZ: 0 },
tool: { kind: "endmill", diameter: 4 },
fixtures: [], tolerance: 0.05, resolution: 0.25
})
console.log(report.ok) // true for this stock/tool model
console.log(report.stats.removedVolume)
console.log(report.issues) Изменение погружения на G0 Z-3 производит RapidInMaterial находка. Добавление короткой длины резания или размеров державки может привести к появлению выводов о хвостовике/держателе, которые не удалось проверить в исходном запросе. Предоставление целевой геометрии добавляет сравнение готовых деталей; этот пример не делает никаких заявлений о цели или приборах.
Верификатор закладывает в бюджет не более 2,500,000 ячеек сетки и 3,000,000 образцов пути с рабочим бюджетом 80,000,000. Запросы могут быть более грубыми, чтобы соответствовать этим ограничениям. Предварительный просмотр имеет пониженную дискретизацию для отображения, поэтому его пиксели не являются вторым, более точным результатом проверки.
Источник: packages/core/src/cam/verify/verify.ts и verify/verify.test.ts.
При воспроизведении текста, вызывающего подпрограммы, интерпретатор следует M98 вложенность до восьми уровней и прекращение развертывания на 2,000,000 строках, поэтому большое количество повторений не может исчерпать память (packages/core/src/cam/subprogram-text.ts).
Чтение неудачного артефакта или предварительный просмотр артефакта
Проблема ядра включает в себя tag, severity, stage, message, and optional operation ID, NC line, and point. Follow that stage to the input that caused it: preparation checks stock/material/tools; planning selects strategies; cutting-data checks process limits; generation creates motion; posting writes the controller format; replay/evidence checks the resulting bytes.
NoSuitableToolилиUnknownTool: проверьте выбранный внутренний диаметр фрезы и пределы геометрии, включая диаметр, длину канавки, вылет и поставляемую библиотеку фрез.RapidInStockилиHolderCollision: найдите указанную операцию/точку и проверьте вход, втягивание, запас и зазор держателя/стола. Увеличение подачи резания не устраняет небезопасный порог.Gouge: проверка стороны контура, верхнего/нижнего уровня, припуска на чистовую обработку и целевой геометрии. Ядро проверяет внутренний профиль внешней части как реальный сбой воспроизведения.RemainingStock: проверьте недоступные углы, радиус инструмента, стратегию отделки и разрешение проверки, прежде чем интерпретировать оставшийся объем.ReplayMismatch: рассматривать опубликованное движение и его заявленный IR как противоречивые и восстанавливать из захваченного задания.
Предварительные настройки машин представляют собой типичные классы, а не измеренные машины. Доступные идентификаторы предустановок моментальных снимков: vmc-standard, haas-vf2, hsc-mill, desktop-mill, и cnc-router. Первый является значением по умолчанию. Проверяйте фактическое перемещение машины и данные зазора, а не делайте выводы по отображаемому имени предустановки.
Источник: packages/core/src/cam/kernel/execute.ts, machines.ts, и kernel.test.ts; поля выпуска проводов находятся в packages/api/src/cam-kernel.ts.
Создайте карман и опубликуйте его
Уровень CAM представляет собой конвейер чистых функций: геометрия и параметры переходят в операцию, операция возвращает результат. Toolpath перемещений промежуточного представления (IR), Program группирует траектории инструмента, а постпроцессор превращает программу в текст, специфичный для диалекта. До публикации ничего не известно о словах G-кода, поэтому одна и та же траектория инструмента может быть задана для GRBL, Fanuc, Haas или общего диалекта.
import { cam } from "@cadcamfun/core"
const tool = { id: "t6", name: "6 mm flat end mill", kind: "endmill",
diameter: 6, flutes: 3, maxRpm: 18000 }
// 60 × 40 × 10 mm block; its top face is at origin.z (Z = 0)
const stock = { x: 60, y: 40, z: 10, origin: { x: 0, y: 0, z: 0 },
material: "aluminium-6061" }
const params = new cam.PocketParams({
name: "Pocket 30x20",
totalDepth: 3, // mm below the stock top
stepdown: 1.5, // two levels: -1.5 and -3.0
entry: "ramp", // default is "helix"
})
const ring = [{ x: 15, y: 10 }, { x: 45, y: 10 }, { x: 45, y: 30 }, { x: 15, y: 30 }]
const pocket = cam.generatePocket(params, ring, tool, stock)
const program = { name: "pocket-demo", units: "mm", workOffset: "G54",
toolpaths: [pocket] }
const gcode = cam.getPost("grbl")!.emit(program)
console.log(gcode) (PROGRAM: pocket-demo)
(UNITS: MM)
(WORK OFFSET: G54)
(OP 1: Pocket 30x20 | T1 [t6] | S10000 | F300-800)
G21 G90 G17 G94
G54
(OPERATION: Pocket 30x20)
(TOOL T1)
M3 S10000
(Pocket: Pocket 30x20)
G0 X30.000 Y21.000 Z10.000
Z5.000
Z2.000
Z1.000
G1 X36.000 Z0.732 F300
Y19.000 Z0.643
X24.000 Z0.107
Y21.000 Z0.018
X30.000 Z-0.250
X36.000 Z-0.518
Y19.000 Z-0.607
X24.000 Z-1.143
Y21.000 Z-1.232
X30.000 Z-1.500
...
(the second level repeats the ramp from Z-1.500 to Z-3.000)
...
X18.000
Y27.000
G0 Z2.000
Z10.000
M5
M2 Чтение вывода сверху: в комментариях к заголовку перечислены программа, единицы измерения, смещение нулевой точки и сводка по каждой операции (номер инструмента, идентификатор, скорость шпинделя и диапазон подачи). G21 G90 G17 G94 выбирает миллиметры, абсолютные координаты, плоскость XY и подачу в минуту. В GRBL нет устройства смены инструмента, поэтому первый инструмент объявляется как комментарий, а последующие изменения инструмента становятся (CHANGE TO TOOL Tn) с последующим M0. The pocket starts with rapids down through clearance (10), safe (5), and retract (2) heights, then ramps at the 300 mm/min plunge feed. Once the ramp reaches depth it switches to the 800 mm/min cutting feed. The program ends with M5 (остановка шпинделя) и M2.
Сообщается о пустой геометрии, а не пропускается автоматически
Если регион не является закрытой границей, операция выдает комментарий (nothing to cut: no closed boundary) и никакого движения. Передайте точки звонка как { x, y } объекты. Найдите в сгенерированных программах этот комментарий, если операция не приводит к сокращениям.
Параметры работы и значения по умолчанию
Класс параметров каждой операции расширяет одни и те же общие поля. Высоты представляют собой абсолютные значения Z и должны обеспечивать зазор ≥ безопасный ≥ втягивание; схема отвергает все остальное. Глубины – это положительные расстояния ниже вершины запаса; последний проход обрезан totalDepth.
| Общее поле | По умолчанию | Значение |
|---|---|---|
id, name | operation, Operation | Личность указана в комментариях и резюме. |
clearanceHeight | 10 | Высота для перемещений между операциями. |
safeHeight | 5 | Высота для перемещения между регионами. |
retractHeight | 2 | Высота перед погружением/подачей. |
totalDepth | необходимый | Положительная глубина ниже вершины акции. |
stepdown | необходимый | Положительная глубина за проход. |
feed | 800 | Режущая подача, мм/мин. |
plungeFeed | 300 | Подача на врезание и врезание, мм/мин. |
spindleRpm | 10000 | Скорость шпинделя. |
coolant | off | Режим охлаждающей жидкости. |
| Операция | Определенные поля (по умолчанию) |
|---|---|
Pocket | stepover 40 (% диаметра, 1–100), allowance 0, finishPass лОЖЬ, climb истинный, entry helix | ramp | plunge, order insideOut | outsideIn, helixPitch 1, helixRadius 0 (= радиус инструмента), rampAngle 3° (0.1–45), tolerance 0.01, toolCentre лОЖЬ. |
Profile | side outside | inside | onLine, climb истинный, allowance 0, leadIn direct | ramp | helix | arc, helixPitch 1, helixRadius 0, leadRadius 2, rampAngle 3°, tabs [] (каждая вкладка: position 0–1 по пути, width, height), arcFit лОЖЬ, tolerance 0.01. |
Drill | Нет stepdown или feed. peck 0 (один штрих), chipBreak лОЖЬ, dwell 0 с. В циклах пролистывания сохраняется зазор 0.5 мм выше последней глубины, а отвод стружки составляет 0.5 мм. |
Face | stepover 60, overshoot 0 (= радиус инструмента + 1 мм), alongX истинный, tolerance 0.01. |
Engrave | tolerance 0.01. |
Thread | Фрезерование резьбы; глубина профиля 0.54127 × шаг внутренний и 0.61343 × шаг внешний. |
Adaptive, отдых, поверхность, фаска, многоосный | Дальнейшие стратегии, экспортированные из того же модуля; фаска добавляет tipOffset 0.2 и lead 1. |
Создайте параметры с помощью new cam.PocketParams({ ... }) (или соответствующий класс), чтобы применялись значения по умолчанию и ограничения проверялись один раз. Каждая операция также экспортируется как пара, например cam.Pocket = { Params, generate }, для кода, который отправляет по типу операции.
Постпроцессоры и параметры вывода
Посты регистрируются по ID в cam.posts и посмотрел вверх с cam.getPost(id). linuxcnc ID зарезервирован, но не реализован, поэтому getPost("linuxcnc") возвращает undefined. Проверьте это, прежде чем звонить emit.
| Почта | Стандартные циклы | Единица пребывания | Поворотные оси | Смена инструмента | Рамка программы |
|---|---|---|---|---|---|
generic | да | секунды | да | Tn M6 | никто |
grbl | нет (расширено до ходов) | секунды | отказался | прокомментируй, тогда M0 пауза | никто |
fanuc | да | миллисекунды | да | Tn M6 + G43 Hn | % / O####, подпрограммы |
haas | да | миллисекунды | да, G234 TCP | Tn M6 + G43 Hn | % / O####, подпрограммы |
Все четыре принимают дуги как ijk или radius; linearize всегда возможно. Программа, движения которой содержат углы поворота, отклоняется GRBL, а не теряет углы молча.
| опция эмиссии | По умолчанию | Effect |
|---|---|---|
decimals | 3 | Цифры после запятой. |
lineNumbers | выключенный | { start, step } пишет N-слов, например N10, N20. |
useCannedCycles | true | Выпускайте циклы сверления там, где они есть в диалекте. |
arcMode | ijk | ijk, radius, или linearize. |
header | true | Напишите описательный заголовок комментария. |
tolerance | 0.01 | Допуск хорды, когда дуги линеаризованы. |
toolNumbers | заказ на первое использование | Карта идентификатора инструмента с карусельным карманом. Отсутствующие записи сохраняют нумерацию при первом использовании, не сталкиваясь с явными карманами. |
retractBeforeToolChange | выключенный | Поднимите Z до наивысшей точки, достигнутой перед сменой инструмента. |
stamp | отсутствующий | Штамп заголовка. Оставьте это для детерминированного вывода. |
subprograms | выключенный | Запишите повторяющиеся, преобразованные траектории инструмента один раз как инкрементальную подпрограмму (Fanuc и Haas). |
const text = cam.getPost("fanuc")!.emit(program, { lineNumbers: { start: 10, step: 10 } })
// %
// O1000
// (PROGRAM: POCKET-DEMO) comments are upper-cased
// ...
// N10 G21 G90 G17 G94 G40 G49 G80
// N20 G54
// N30 T1 M6
// N40 G43 H1
// N50 M3 S10000 По умолчанию байт-идентично
Параметры, изменяющие выходные данные (отвод смены инструмента, подпрограммы, штампы), по умолчанию отключены, поэтому повторное создание сохраненного запроса создает идентичный текст. cam/gcode шаг рабочего процесса использует это для обнаружения устаревших программ.
Перед отправкой программы на машину
- Подтвердите заготовку: размер, начало минимального угла и то, что ее верхняя грань находится на
origin.z. Каждая глубина измеряется от этой грани. - Проверьте высоту относительно креплений. Зазор, безопасная высота и высота отвода представляют собой абсолютные значения Z в рабочем смещении.
- Выберите публикацию для фактического контроллера и подтвердите, что она реализована (
getPostвернул сообщение). - Переиграйте программу с проверкой и прочтите каждый выпуск. Не воспринимайте отсутствие комментария об ошибке как доказательство.
- Если текст ЧПУ редактировался вручную, создайте заново или повторно проверьте. Доказательства, вычисленные для исходного текста, больше не применяются.
- Пробный прогон на станке над деталью с уменьшенной коррекцией подачи, как и в любой новой программе.
Сгенерированный код не является гарантией машины
Ядро и сообщения проверяют геометрию, ограничения и правила диалекта, о которых они знают. Они не знают ваших приспособлений, длины инструмента или состояния машины. Проверенная программа — это доказательство, а не гарантия безопасного распила.
Заявления о доказательствах собственного ядра
Помимо генераторов, показанных выше, собственное ядро возвращает артефакт с десятью утверждениями. Каждый из них passed, failed, unsupported или unresolved, со строкой подробностей. Уровень выпуска суммирует их: blocked, preview или verified-program.
| Требовать | Пример статуса | Деталь, возвращаемая ядром |
|---|---|---|
cutting-data | прошедший | Каждая операция выполняется с использованием данных резания, рассчитанных для ацеталя POM-C (Дельрин) и его фрезы. |
machine-limits | прошедший | Скорость шпинделя, подача, мощность, крутящий момент и отклонение фрезы в пределах допустимых значений. |
operations-complete | прошедший | Создано 3 операций; каждая запланированная функция имеет операцию |
no-rapid-in-stock | прошедший | Никакое быстрое движение не затрагивает акции, как это было воспроизведено. |
holder-clearance | прошедший | Хвостовик и держатель не касаются заготовки (воспроизведение поля высоты по оси 3) |
no-gouge | прошедший | Никаких надрезов ниже детали, превышающей 0.030 мм (одна ячейка бокового провиса). |
material-removed | прошедший | Воспроизведенный материал соответствует детали в пределах 0.110 мм. |
nc-replay | прошедший | Интерпретация движений 3035 NC независимо от сообщения; размеры совпадают в пределах 2.0e-3 мм |
machine-travel | неподдерживаемый | На машине не настроены ограничения перемещения. |
machine-clearance | прошедший | 3035 ход проверен; держатель и хвостовик остаются на расстоянии не менее 6,500 мм от стола. |
Строки представляют собой реальный результат для заготовки POM в собственном руководстве по производству: операции 3, линии ЧПУ 3071, выпуск verified-program. Машинный пост артефакта также может быть linuxcnc в схеме, но пост LinuxCNC не реализован, поэтому в пресетах он не используется.