Перейти к содержанию
CADCAMFUN
Документы

Документация

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 мм ниже верха. Значения по умолчанию применяются только в том случае, если поле отсутствует, поэтому явно разрешенный ноль сохраняется.

ПолеПо умолчанию / единица измеренияЗначение
clearanceHeight10 ммПлоскость, используемая для четкого быстрого позиционирования.
safeHeight5 ммВысота входа/выхода рабочей подачи.
retractHeight2 ммВысота парковки между проездами; ноль может быть действительным.
feed / plungeFeed800 / 300 мм/минПозитивная резка и погружная подача.
spindleRpm / coolant10,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 или общего диалекта.

pocket.ts — полный, работоспособный с плюшкой
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)
Траектория кармана: 30 × 20 мм, глубина 3 мм, концевая фреза Ø6 Перетащите на орбиту · прокрутите, чтобы увеличить · перетащите вправо, чтобы панорамировать
The moves generated by the example below, drawn in machine coordinates. Dashed amber lines are rapids (G0); green lines are feed moves (G1). Watch the ramp entry spiral down at the start of each 1.5 mm level, then the offset rings work outward (order insideOut). The translucent block is the 60 × 40 × 10 mm stock, whose top face is Z = 0.
Вывод (GRBL, 85 строк, посередине опущено)
(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, nameoperation, OperationЛичность указана в комментариях и резюме.
clearanceHeight10Высота для перемещений между операциями.
safeHeight5Высота для перемещения между регионами.
retractHeight2Высота перед погружением/подачей.
totalDepthнеобходимыйПоложительная глубина ниже вершины акции.
stepdownнеобходимыйПоложительная глубина за проход.
feed800Режущая подача, мм/мин.
plungeFeed300Подача на врезание и врезание, мм/мин.
spindleRpm10000Скорость шпинделя.
coolantoffРежим охлаждающей жидкости.
ОперацияОпределенные поля (по умолчанию)
Pocketstepover 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 лОЖЬ.
Profileside 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 мм.
Facestepover 60, overshoot 0 (= радиус инструмента + 1 мм), alongX истинный, tolerance 0.01.
Engravetolerance 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 TCPTn M6 + G43 Hn% / O####, подпрограммы

Все четыре принимают дуги как ijk или radius; linearize всегда возможно. Программа, движения которой содержат углы поворота, отклоняется GRBL, а не теряет углы молча.

опция эмиссииПо умолчаниюEffect
decimals3Цифры после запятой.
lineNumbersвыключенный{ start, step } пишет N-слов, например N10, N20.
useCannedCyclestrueВыпускайте циклы сверления там, где они есть в диалекте.
arcModeijkijk, radius, или linearize.
headertrueНапишите описательный заголовок комментария.
tolerance0.01Допуск хорды, когда дуги линеаризованы.
toolNumbersзаказ на первое использованиеКарта идентификатора инструмента с карусельным карманом. Отсутствующие записи сохраняют нумерацию при первом использовании, не сталкиваясь с явными карманами.
retractBeforeToolChangeвыключенныйПоднимите Z до наивысшей точки, достигнутой перед сменой инструмента.
stampотсутствующийШтамп заголовка. Оставьте это для детерминированного вывода.
subprogramsвыключенныйЗапишите повторяющиеся, преобразованные траектории инструмента один раз как инкрементальную подпрограмму (Fanuc и Haas).
Та же программа для блока управления Fanuc с номерами строк.
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 шаг рабочего процесса использует это для обнаружения устаревших программ.

Перед отправкой программы на машину

  1. Подтвердите заготовку: размер, начало минимального угла и то, что ее верхняя грань находится на origin.z. Каждая глубина измеряется от этой грани.
  2. Проверьте высоту относительно креплений. Зазор, безопасная высота и высота отвода представляют собой абсолютные значения Z в рабочем смещении.
  3. Выберите публикацию для фактического контроллера и подтвердите, что она реализована (getPost вернул сообщение).
  4. Переиграйте программу с проверкой и прочтите каждый выпуск. Не воспринимайте отсутствие комментария об ошибке как доказательство.
  5. Если текст ЧПУ редактировался вручную, создайте заново или повторно проверьте. Доказательства, вычисленные для исходного текста, больше не применяются.
  6. Пробный прогон на станке над деталью с уменьшенной коррекцией подачи, как и в любой новой программе.

Сгенерированный код не является гарантией машины

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

Заявления о доказательствах собственного ядра

Помимо генераторов, показанных выше, собственное ядро возвращает артефакт с десятью утверждениями. Каждый из них 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 не реализован, поэтому в пресетах он не используется.