Pular para o conteúdo
CADCAMFUN
Docs

Documentação

CAM e código G

Gere percursos da ferramentas, pós-programas de máquina, reproduza NC emitidos e inspecione as evidências anexadas a cada resultado.

Traduzido automaticamente do inglês. Ver o original em inglês

Da geometria a um programa

@cadcamfun/core expõe a funcionalidade de fabricação sob cam. Os geradores de operação transformam geometria e parâmetros de usinagem em movimentos de percurso. As postagens transformam um programa neutro em máquina em texto de controlador. O adaptador do gerador também suporta solicitações de fresadora, torno e 3impressora D usadas pelo formulário de inscrição.

O kernel de fabricação nativo adiciona um pipeline ordenado: preparar a peça e os recursos, planejar ou aceitar operações, calcular dados de corte, gerar movimento, emitir um programa NC, reproduzir esse NC de forma independente e anexar evidências. Texto gerado, um programa analisado e um artefato de fabricação verificado são resultados diferentes com garantias diferentes.

Emitir um programa existente
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 })

Representação do percurso

Um programa contém percursos da ferramenta ordenados, cada um associado a um identificador de ferramenta e uma lista de movimentos. As coordenadas são milímetros, os avanços de corte são milímetros por minuto e as durações são segundos. A profundidade de corte é Z negativo em relação ao topo do estoque em coordenadas de operação convencionais. As postagens convertem unidades de saída sem alterar a convenção do domínio.

Os movimentos são Rapid, Linear, Arc, Dwell, Comment, Cycle, e Orient. Os centros do arco são coordenadas XY absolutas; uma postagem calcula deslocamentos I/J relativos ao controlador. As coordenadas XY inicial e final correspondentes indicam um círculo completo. Um ciclo mantém a intenção de perfuração, permanência, avanço ou quebra de cavacos com seu plano de retração e avanço.

Os campos rotativos em movimentos lineares e rápidos expressam o movimento simultâneo dos eixos; Orient expressa posicionamento indexado. Esses campos angulares usam graus. Um dialeto que não suporta movimento rotativo rejeita tal programa em vez de descartar seus campos rotativos.

Operações e a API do gerador

A biblioteca de operações inclui perfil, bolsão, furação, faceamento, gravação, usinagem de superfície, usinagem de resto, rosqueamento, chanfro, usinagem adaptativa e geração de multieixos. Cada operação expõe seu contrato de parâmetro e função de geração pura. As dimensões da ferramenta, limites de profundidade, folga, avanços e geometria devem satisfazer as regras de validação da operação.

POST /api/toolpaths/generate aceita configurações do gerador, geometria e extras e devoluções da impressora gcode, cycles, warnings, stats, program, e normalmente geração de evidências. Uma solicitação válida que não pode gerar um programa retorna 400 com o motivo; uma falha de cálculo inesperada torna-se 500. A geração não salva um percurso.

/api/toolpaths/suggest deriva parâmetros orientados por elementos, feedback, estatísticas de corte, texto de operação e avisos. /api/toolpaths/parse interpreta o código G fornecido em movimentos e estatísticas do programa. Sugestões e análises não estabelecem que um programa seja seguro ou geometricamente correto.

Dialetos do controlador

O registro integrado implementa generic, fanuc, grbl, e haas. linuxcnc é um identificador de postagem reconhecido sem implementação neste registro; getPost pode retornar indefinido. Resolva e verifique a postagem antes de ligar.

As postagens compartilham um emissor com formatação decimal fixa, limpeza de comentários, alterações de ferramentas, manipulação de arco, numeração de linha opcional e expansão de ciclo. Os padrões são três casas decimais, ciclos fixos habilitados, arcos IJK, cabeçalho habilitado e tolerância de 0.01 mm. Os formatos de arco não suportados recorrem às formas e à linearização suportadas pelo dialeto.

toolNumbers mapeia identificadores de ferramentas para bolsões inteiros positivos explícitos. Ferramentas não mapeadas usam numeração de primeiro uso, evitando números ocupados. retractBeforeToolChange é opcional; eleva Z para a posição mais alta alcançada pelo programa antes de uma troca de ferramenta. A emissão do subprograma também é opcional e depende do suporte ao dialeto. Revise a saída do controlador selecionado e a configuração da máquina antes do uso na produção.

Percursos repetidos podem ser emitidos como subprogramas. Um percurso se qualifica quando, após seu movimento de posicionamento, seu movimento é o movimento de outro percurso traduzido dentro de 5 × 10⁻⁶ mm, com os mesmos tipos de movimento, avanços e sentidos de arco. Cada grupo precisa de pelo menos seis movimentos corporais e deve salvar pelo menos doze movimentos no total. Percursos com ciclos fixos ou palavras rotativas nunca são candidatos (packages/core/src/cam/post/subprograms.ts).

Níveis nativos de fabricação e lançamento

POST /api/toolpaths/manufacture aceita CamKernelRequest, uma versão 1 de instantâneo CAD com identidade, material, máquina opcional, estoque, ferramentas, operações, controles de qualidade e deslocamento de trabalho. As operações ausentes invocam o planejador; ferramentas ausentes usam o suporte de corte padrão. Entrada não suportada, material ou ferramenta desconhecido, geometria de peça vazia, estoque inválido e trabalho não planejável retornam problemas explícitos.

O kernel calcula feeds por operação, velocidade do fuso, engajamento, estimativas de potência e força, avisos, tempo e volume removido. Ele publica um programa e interpreta independentemente o NC emitido. O artefato retém o programa, cortadores, texto NC, estatísticas de estoque, resultados de operação, resumos de identidade, reclamações e problemas.

release é blocked, preview, ou verified-program. Falhas graves ou liberação de bloco NC vazio. A verificação exige que as reivindicações relevantes sejam aprovadas; a regra de lançamento atual permite evidências de deslocamento da máquina sem suporte, ao mesmo tempo que marca o programa como verificado. Inspecione cada reclamação, incluindo status não suportados e não resolvidos, antes de decidir se a evidência cobre a máquina pretendida.

As reivindicações cobrem dados de corte, limites da máquina, operações concluídas, folga rápida, folga do suporte, goivagem, remoção de material, repetição NC, deslocamento da máquina e folga da máquina. A evidência está vinculada ao NC do artefato e à identidade de origem. Editar NC ou alterar uma configuração de origem invalida essa conexão, a menos que o trabalho seja avaliado novamente.

Verificação de repetição e seus limites

POST /api/toolpaths/verify reproduz o código G ou um programa em relação ao estoque alinhado ao eixo. Forneça exatamente uma fonte de movimento, uma ferramenta e limites de estoque. Os acessórios opcionais são envelopes alinhados ao eixo; sólidos ou malhas alvo opcionais permitem comparações de goivagem e estoque restante. As dimensões faltantes do canal, da haste, do stickout ou do suporte deixam as verificações correspondentes sem modelo.

O verificador amostra o movimento em um campo de altura e retorna problemas, estatísticas de remoção, comprimentos de engajamento/corte de ar e uma visualização de exibição. A tolerância padrão é 0.05 mm. A resolução é padronizada a partir do diâmetro da fresa e pode ser reduzida para caber no orçamento de computação; ResolutionCoarsened relata essa mudança. A resolução da grade limita a evidência geométrica que o resultado pode suportar.

Um resultado com ok: true não tem problema de gravidade de erro. Sem um alvo não é possível estabelecer a precisão da peça acabada; sem acessórios ou geometria de suporte não é possível estabelecer sua folga. A reprodução integrada e as verificações de máquina do kernel adicionam evidências específicas ao trabalho capturado, enquanto a verificação autônoma reflete apenas a solicitação fornecida.

Mapa de implementação

cam/ir.ts possui movimentos e contratos de programas; operations/ possui geradores de estratégia; post/ possui controlador de emissão; generator/ adapta as configurações do aplicativo e analisa texto; model/ constrói a geometria da peça; verify/ possui replay em campo de altura; kernel/ possui orquestração e evidências de fabricação. setup.ts e indexing.ts fornece validação de estrutura de trabalho e transformações de tabela indexada.

Salvar documentos, verificar o acesso aos desenhos e reter evidências de origem pertencem aos serviços secundários. Ver Configurações para documentos de operação portáteis e verificações de persistência.

Profundidades, alturas, avanços e padrões

Os parâmetros de operação principais distinguem a profundidade de corte positiva dos planos Z absolutos. totalDepth e stepdown são necessários comprimentos finitos positivos; uma profundidade de 5 mm com passo de 2 mm produz passes em 2, 4 e 5 mm abaixo do topo. Os padrões se aplicam somente quando um campo está faltando, portanto, um zero explicitamente permitido é retido.

CampoPadrão/unidadeSignificado
clearanceHeight10 milímetrosPlano usado para posicionamento rápido e claro.
safeHeight5 milímetrosAltura de entrada/saída da alimentação de operação.
retractHeight2 milímetrosAltura de estacionamento entre passagens; zero pode ser válido.
feed / plungeFeed800 / 300 mm/minCorte positivo e avanços de mergulho.
spindleRpm / coolant10,000 / offFuso em nível de operação e intenção de refrigeração.

As alturas devem satisfazer a folga ≥ segura ≥ retração. Os padrões do perfil são compensação externa, direção de subida, tolerância de acabamento zero, entrada direta, ajuste de arco e tolerância de 0,01 mm. O ângulo de rampa é padronizado como 3° e aceita 0.1–45°; o passo da hélice é padronizado como 1 mm por revolução. Um lado e uma tolerância declarados movem o caminho do centro da ferramenta, em vez de alterar o contorno de origem.

Esses são padrões de operação puros. As configurações do gerador de aplicativos e os dados de processo derivados de material do kernel nativo são camadas de parâmetros separadas; não assuma os mesmos nomes de campos ou padrões entre eles.

Fonte: packages/core/src/cam/params.ts e operations/profile.ts.

O fresamento de roscas usa as alturas de perfil básicas ISO 68-1: 0.54127 × passo para roscas internas e 0.61343 × passo para roscas externas (packages/core/src/cam/operations/thread.ts). O visualizador do percurso assume 500 mm/min para movimentos de corte sem avanço e 1,000 mm/min para corredeiras ao cronometrar uma animação; essas são suposições de reprodução, não estimativas de máquina.

Reproduzir um pequeno programa NC

Este exemplo na memória corta uma ranhura reta de 4 mm de largura e 3 mm de profundidade em um modelo padrão de 40 × 40 × 10 mm. Ele exerce o mesmo verificador principal usado pelo terminal HTTP sem salvar um percurso.

Inspecione a remoção de material e colisões
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)

Mudando o mergulho para G0 Z-3 produz um RapidInMaterial encontrar. Adicionar um comprimento de corte curto ou dimensões do suporte pode apresentar resultados de haste/suporte que a solicitação original não pôde testar. Fornecer geometria alvo adiciona comparação de peças acabadas; este exemplo não faz nenhuma afirmação sobre um alvo ou acessórios.

O verificador orçamenta no máximo 2,500,000 células de grade e 3,000,000 amostras de caminho, com um orçamento de trabalho 80,000,000. As solicitações podem ser reduzidas para atender a esses limites. O material de visualização é reduzido para exibição, portanto, seus pixels não são um segundo resultado de verificação mais preciso.

Fonte: packages/core/src/cam/verify/verify.ts e verify/verify.test.ts.

Ao reproduzir texto que chama subprogramas, o intérprete segue M98 aninhando até oito níveis de profundidade e parando de desenrolar em 2,000,000 linhas, portanto, uma grande contagem de repetições não pode esgotar a memória (packages/core/src/cam/subprogram-text.ts).

Ler um artefato com falha ou visualizar

Um problema de kernel inclui um 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 ou UnknownTool: inspecione o ID da fresa selecionada e os limites de geometria, incluindo diâmetro, comprimento do canal, projeção e a biblioteca de fresas fornecida.
  • RapidInStock ou HolderCollision: localizar a operação/ponto relatado e inspecionar entrada, retrações, estoque e liberação de suporte/mesa. Aumentar o avanço de corte não repara uma corrediça insegura.
  • Gouge: verifique o lado do contorno, os níveis superior/inferior, o sobremetal de acabamento e a geometria alvo. O kernel testa um perfil interno da parte externa como uma falha real de reprodução.
  • RemainingStock: inspecione cantos inacessíveis, raio da ferramenta, estratégia de acabamento e resolução de verificação antes de interpretar o volume restante.
  • ReplayMismatch: trata o movimento postado e seu IR reivindicado como inconsistentes e regenera a partir do trabalho capturado.

As predefinições de máquina representam classes típicas, não máquinas medidas. Os IDs predefinidos de instantâneo disponíveis são vmc-standard, haas-vf2, hsc-mill, desktop-mill, e cnc-router. O primeiro é o padrão. Inspecione as evidências reais de deslocamento e folga da máquina em vez de inferi-las a partir do nome de exibição de uma predefinição.

Fonte: packages/core/src/cam/kernel/execute.ts, machines.ts, e kernel.test.ts; os campos de emissão de transferência estão em packages/api/src/cam-kernel.ts.

Gere um bolso e publique-o

A camada CAM é um pipeline de funções puras: geometria e parâmetros entram em uma operação, a operação retorna um Toolpath de movimentos de representação intermediária (RI), um Program agrupa percursos da ferramenta e um pós-processador transforma o programa em texto específico do dialeto. Nada antes da postagem sabe sobre palavras do código G, então o mesmo percurso da ferramenta pode ser emitido para GRBL, Fanuc, Haas ou o dialeto genérico.

pocket.ts — completo, executável com pão
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)
Percurso de cavidade: 30 × 20 mm, 3 mm de profundidade, fresa de topo Ø6 Arraste para orbitar · role para ampliar · arraste com o botão direito para deslocar
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.
Saída (GRBL, 85 linhas, meio elidido)
(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

Lendo a saída desde o início: os comentários do cabeçalho listam o programa, as unidades, o deslocamento de ponto zero e um resumo por operação (número da ferramenta, ID, velocidade do fuso e faixa de avanço). G21 G90 G17 G94 seleciona milímetros, coordenadas absolutas, plano XY e avanço por minuto. GRBL não possui trocador de ferramenta, então a primeira ferramenta é anunciada como um comentário e as alterações posteriores de ferramenta tornam-se (CHANGE TO TOOL Tn) seguido pela 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 (parada do fuso) e M2.

A geometria vazia é relatada, não ignorada silenciosamente

Se a região não for uma fronteira fechada, a operação emite o comentário (nothing to cut: no closed boundary) e nenhum movimento. Passe os pontos do anel como { x, y } objetos. Pesquise nos programas gerados esse comentário quando uma operação não produz cortes.

Parâmetros de operação e padrões

A classe de parâmetros de cada operação estende os mesmos campos comuns. As alturas são valores Z absolutos e devem satisfazer folga ≥ segurança ≥ retração; o esquema rejeita qualquer outra coisa. As profundidades são distâncias positivas abaixo do topo da ação; a última passagem é cortada para totalDepth.

Campo comumPadrãoSignificado
id, nameoperation, OperationIdentidade mostrada em comentários e resumos.
clearanceHeight10Altura para movimentos entre operações.
safeHeight5Altura para movimentos entre regiões.
retractHeight2Altura antes de mergulhar/alimentar.
totalDepthobrigatórioProfundidade positiva abaixo do topo da ação.
stepdownobrigatórioProfundidade positiva por passe.
feed800Avanço de corte, mm/min.
plungeFeed300Avanço para mergulho e rampa, mm/min.
spindleRpm10000Velocidade do fuso.
coolantoffModo refrigerante.
OperaçãoCampos específicos (padrões)
Pocketstepover 40 (% do diâmetro, 1–100), allowance 0, finishPass falso, climb verdadeiro, entry helix | ramp | plunge, order insideOut | outsideIn, helixPitch 1, helixRadius 0 (= raio da ferramenta), rampAngle 3° (0.1–45), tolerance 0.01, toolCentre falso.
Profileside outside | inside | onLine, climb verdadeiro, allowance 0, leadIn direct | ramp | helix | arc, helixPitch 1, helixRadius 0, leadRadius 2, rampAngle 3°, tabs [] (cada guia: position 0–1 ao longo do caminho, width, height), arcFit falso, tolerance 0.01.
DrillNão stepdown ou feed. peck 0 (um golpe), chipBreak falso, dwell 0s. Os ciclos de penetração mantêm uma folga de 0,5 mm acima da última profundidade e as retrações para quebra de cavacos são de 0,5 mm.
Facestepover 60, overshoot 0 (= raio da ferramenta + 1 mm), alongX verdadeiro, tolerance 0.01.
Engravetolerance 0.01.
ThreadFresamento de roscas; profundidade do perfil 0.54127 × pitch interno e 0.61343 × pitch externo.
Adaptive, repouso, superfície, chanfro, multieixosOutras estratégias exportadas do mesmo módulo; adições de chanfro tipOffset 0.2 e lead 1.

Construir parâmetros com new cam.PocketParams({ ... }) (ou a classe correspondente) para que os padrões sejam aplicados e as restrições sejam verificadas uma vez. Cada operação também é exportada como um par, como cam.Pocket = { Params, generate }, para código que é despachado por tipo de operação.

Pós-processadores e opções de saída

As postagens são registradas por ID em cam.posts e olhou para cima com cam.getPost(id). O linuxcnc O ID é reservado, mas não implementado, então getPost("linuxcnc") retorna undefined. Verifique isso antes de ligar emit.

PublicarCiclos fixosUnidade de habitaçãoEixos rotativosMudança de ferramentaQuadro do programa
genericsimsegundossimTn M6nenhum
grblnão (expandido para movimentos)segundosrecusoucomente, então M0 pausanenhum
fanucsimmilissegundossimTn M6 + G43 Hn% / O####, subprogramas
haassimmilissegundossim, G234 TCPTn M6 + G43 Hn% / O####, subprogramas

Todos os quatro aceitam arcos como ijk ou radius; linearize é sempre possível. Um programa cujos movimentos carregam ângulos rotativos é rejeitado pelo GRBL em vez de perder silenciosamente os ângulos.

opção de emissãoPadrãoEffect
decimals3Dígitos após a vírgula decimal.
lineNumbersdesligado{ start, step } escreve N palavras, por exemplo N10, N20.
useCannedCyclestrueEmita ciclos de perfuração onde o dialeto os possui.
arcModeijkijk, radius, ou linearize.
headertrueEscreva o cabeçalho do comentário descritivo.
tolerance0.01Tolerância de corda quando os arcos são linearizados.
toolNumberspedido de primeiro usoMapa do ID da ferramenta para o bolso do carrossel. As entradas ausentes mantêm a numeração de primeiro uso sem colidir com bolsos explícitos.
retractBeforeToolChangedesligadoEleve Z até o ponto mais alto alcançado antes de uma troca de ferramenta.
stampausenteCarimbo de cabeçalho. Deixe-o de fora para saída determinística.
subprogramsdesligadoEscreva percursos da ferramenta de ferramenta repetidos e traduzidos uma vez como um subprograma incremental (Fanuc e Haas).
Mesmo programa para um controle Fanuc com números de linha
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

Byte idêntico por padrão

As opções que alteram a saída (retração de troca de ferramenta, subprogramas, carimbos) estão desativadas por padrão, portanto, a regeneração de uma solicitação armazenada produz texto idêntico. O cam/gcode a etapa do fluxo de trabalho depende disso para detectar programas obsoletos.

Antes de enviar um programa para uma máquina

  1. Confirme o estoque: o tamanho, a origem do seu canto mínimo e se a sua face superior está na origin.z. Cada profundidade é medida a partir dessa face.
  2. Verifique as alturas em relação aos acessórios. As alturas de folga, segurança e retração são valores Z absolutos no deslocamento de ponto zero.
  3. Escolha a postagem para o controlador real e confirme se ele está implementado (getPost retornou uma postagem).
  4. Repita o programa com verificação e leia todas as edições. Não trate a ausência de um comentário de erro como prova.
  5. Se o texto NC foi editado manualmente, gere novamente ou verifique novamente. As evidências computadas para o texto original não se aplicam mais.
  6. Execute o funcionamento a seco na máquina acima da peça com a substituição do avanço reduzida, como faria para qualquer novo programa.

O código gerado não é uma garantia da máquina

O kernel e as postagens verificam a geometria, os limites e as regras de dialeto que conhecem. Eles não conhecem seus acessórios, comprimentos de ferramentas ou condições da máquina. Um programa verificado é uma prova, não uma garantia de um corte seguro.

Alegações de evidências de kernel nativo

Além dos geradores mostrados acima, o kernel nativo retorna um artefato com dez declarações. Cada um é passed, failed, unsupported ou unresolved, com uma sequência de detalhes. O nível de lançamento os resume: blocked, preview ou verified-program.

AlegarStatus de exemploDetalhe retornado pelo kernel
cutting-datapassouCada operação é executada com dados de corte calculados para Acetal POM-C (Delrin) e sua fresa
machine-limitspassouVelocidade do fuso, avanço, potência, torque e deflexão da fresa dentro dos limites
operations-completepassou3 operações geradas; todo recurso planejado tem uma operação
no-rapid-in-stockpassouNenhum movimento rápido atinge o estoque conforme repetido
holder-clearancepassouA haste e o suporte ficam afastados da coronha (repetição do campo de altura do eixo 3)
no-gougepassouNenhum corte abaixo da peça além de 0.030 mm (uma célula de folga lateral)
material-removedpassouO estoque reproduzido corresponde à peça dentro de 0.110 mm
nc-replaypassouInterpretou 3035 movimentos NC independentemente do poste; as extensões concordam dentro de 2.0e-3 mm
machine-travelsem suporteA máquina não tem limites de percurso configurados
machine-clearancepassou3035 movimentos verificados; o suporte e a haste ficam a pelo menos 6.500 mm da mesa

As linhas são o resultado real para o POM em branco no guia de fabricação nativo: 3 operações, 3071 linhas NC, liberação verified-program. O poste da máquina do artefato também pode ser linuxcnc no esquema, mas nenhum post LinuxCNC é implementado, então os presets não o utilizam.