Documentación
CAM y código G
Genere trayectorias de herramientas, publique programas de máquina, reproduzca NC emitido e inspeccione la evidencia adjunta a cada resultado.
Traducido automáticamente del inglés. Ver el original en inglés
De la geometría a un programa
@cadcamfun/core expone la funcionalidad de fabricación bajo cam. Los generadores de operaciones convierten la geometría y los parámetros de mecanizado en movimientos de trayectoria de herramienta. Las publicaciones convierten un programa neutral para la máquina en texto de controlador. El adaptador del generador también admite solicitudes de fresadora, torno y 3impresora D utilizadas en el formulario de solicitud.
El núcleo de fabricación nativo agrega una tubería ordenada: prepare la pieza y los recursos, planifique o acepte operaciones, calcule datos de corte, genere movimiento, emita un programa NC, reproduzca ese NC de forma independiente y adjunte evidencia. El texto generado, un programa analizado y un artefacto de fabricación verificado son resultados diferentes con garantías diferentes.
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 }) Representación de trayectoria
Un programa contiene trayectorias ordenadas, cada una asociada con un identificador de herramienta y una lista de movimientos. Las coordenadas son milímetros, los avances de corte son milímetros por minuto y las duraciones son segundos. La profundidad de corte es Z negativa en relación con la parte superior original en coordenadas de operación convencionales. Las publicaciones convierten unidades de salida sin cambiar la convención de dominio.
Los movimientos son Rapid, Linear, Arc, Dwell, Comment, Cycle, y Orient. Los centros de los arcos son coordenadas XY absolutas; una publicación calcula las compensaciones I/J relativas al controlador. La coincidencia de las coordenadas XY inicial y final denota un círculo completo. Un ciclo conserva la intención de taladrar, reposar, picar o romper virutas con su plano de retracción y avance.
Los campos giratorios en movimientos lineales y rápidos expresan un movimiento de eje simultáneo; Orient expresa posicionamiento indexado. Estos campos angulares utilizan grados. Un dialecto que no puede soportar el movimiento giratorio rechaza dicho programa en lugar de descartar sus campos giratorios.
Operaciones y la API del generador
La biblioteca de operaciones incluye perfiles, cajeras, taladrado, refrentado, grabado, mecanizado de superficies, mecanizado de restos, roscado, achaflanado, mecanizado adaptativo y generación multieje. Cada operación expone su contrato de parámetros y su función de generación pura. Las dimensiones de la herramienta, los límites de profundidad, la holgura, los avances y la geometría deben satisfacer las reglas de validación de la operación.
POST /api/toolpaths/generate acepta configuraciones del generador, geometría y extras y devoluciones de la impresora. gcode, cycles, warnings, stats, programy normalmente evidencia de generación. Una solicitud válida que no puede generar un programa devuelve 400 con el motivo; un error de cálculo inesperado se convierte en 500. La generación no guarda una trayectoria.
/api/toolpaths/suggest deriva parámetros basados en elementos, retroalimentación, estadísticas de corte, texto de operación y advertencias. /api/toolpaths/parse interpreta el código G suministrado en movimientos y estadísticas del programa. Las sugerencias y el análisis no establecen que un programa sea seguro o geométricamente correcto.
Dialectos del controlador
El registro incorporado implementa generic, fanuc, grbl, y haas. linuxcnc es un identificador de puesto reconocido sin implementación en este registro; getPost puede volver indefinido. Resuelve y revisa el post antes de llamarlo.
Las publicaciones comparten un emisor con formato decimal fijo, desinfección de comentarios, cambios de herramientas, manejo de arco, numeración de líneas opcional y expansión de ciclo. Los valores predeterminados son tres decimales, ciclos fijos habilitados, arcos IJK, encabezado habilitado y tolerancia de 0.01 mm. Los formatos de arco no admitidos retroceden a través de las formas admitidas y la linealización del dialecto.
toolNumbers asigna identificadores de herramientas a bolsillos enteros positivos explícitos. Las herramientas no asignadas utilizan numeración de primer uso y evitan números ocupados. retractBeforeToolChange es voluntaria; eleva Z a la posición más alta alcanzada por el programa antes de un cambio de herramienta. La emisión de subprogramas también es voluntaria y depende del soporte del dialecto. Revise la salida del controlador seleccionado y la configuración de la máquina antes de su uso en producción.
Las trayectorias de herramientas repetidas se pueden emitir como subprogramas. Una trayectoria califica cuando, después de su movimiento de posicionamiento, su movimiento es el movimiento de otra trayectoria trasladado dentro de 5 × 10⁻⁶ mm, con los mismos tipos de movimiento, avances y sentidos de arco. Cada grupo necesita al menos seis movimientos corporales y debe guardar al menos doce movimientos en total. Las trayectorias con ciclos fijos o palabras rotativas nunca son candidatas (packages/core/src/cam/post/subprograms.ts).
Niveles nativos de fabricación y lanzamiento.
POST /api/toolpaths/manufacture acepta CamKernelRequest, una instantánea de CAD de la versión 1 con identidad, material, máquina opcional, stock, herramientas, operaciones, controles de calidad y compensación de trabajo. Las operaciones faltantes invocan al planificador; las herramientas que faltan utilizan la cuna de corte predeterminada. Las entradas no admitidas, el material o la herramienta desconocidos, la geometría de piezas vacías, el stock no válido y el trabajo no planificable generan problemas explícitos.
El núcleo calcula los avances por operación, la velocidad del husillo, el compromiso, las estimaciones de potencia y fuerza, las advertencias, el tiempo y el volumen eliminado. Publica un programa e interpreta de forma independiente su NC emitido. El artefacto conserva el programa, los cortadores, el texto NC, las estadísticas de existencias, los resultados de las operaciones, los resúmenes de identidad, las reclamaciones y los problemas.
release es blocked, preview, o verified-program. Fallos graves o liberación de bloque NC vacío. La verificación requiere que se aprueben las reclamaciones pertinentes; la regla de publicación actual permite evidencia de viajes de máquinas no respaldada y al mismo tiempo marca el programa como verificado. Inspeccione cada reclamo, incluidos los estados no respaldados y no resueltos, antes de decidir si la evidencia cubre la máquina prevista.
Las reclamaciones cubren datos de corte, límites de la máquina, operaciones completadas, limpieza rápida, limpieza del soporte, ranurado, eliminación de material, repetición NC, recorrido de la máquina y limpieza de la máquina. La evidencia está vinculada al NC del artefacto y a la identidad de la fuente. Editar NC o cambiar una configuración de origen invalida esa conexión a menos que el trabajo se evalúe nuevamente.
Verificación de repetición y sus límites.
POST /api/toolpaths/verify reproduce código G o un programa contra material alineado con el eje. Proporcione exactamente una fuente de movimiento, una herramienta y límites de stock. Los accesorios opcionales son envolventes alineadas con los ejes; Los sólidos o mallas objetivo opcionales permiten realizar comparaciones de ranuras y restos de material. Las dimensiones faltantes de flauta, vástago, saliente o soporte dejan los controles correspondientes sin modelar.
El verificador toma muestras del movimiento en un campo de altura y devuelve problemas, estadísticas de eliminación, longitudes de interacción/corte de aire y una vista previa de la pantalla. La tolerancia predeterminada es 0.05 mm. La resolución está predeterminada desde el diámetro del cortador y puede ampliarse para ajustarse al presupuesto de cálculo; ResolutionCoarsened informa ese cambio. La resolución de la cuadrícula limita la evidencia geométrica que el resultado puede respaldar.
un resultado con ok: true no tiene ningún problema de gravedad de errores. Sin un objetivo no se puede establecer la precisión de la pieza terminada; sin elementos de fijación o geometría del soporte no se puede establecer su juego. La reproducción integrada del kernel y las verificaciones de la máquina agregan evidencia específica de su trabajo capturado, mientras que la verificación independiente refleja solo la solicitud proporcionada.
Mapa de implementación
cam/ir.ts posee movimientos y contratos de programas; operations/ posee generadores de estrategias; post/ posee controlador de emisiones; generator/ adapta la configuración de la aplicación y analiza el texto; model/ construye geometría de piezas; verify/ posee repetición de campo de altura; kernel/ posee la orquestación de fabricación y la evidencia. setup.ts y indexing.ts proporcionar validación del marco de trabajo y transformaciones de tablas indexadas.
Guardar documentos, verificar el acceso a los dibujos y conservar la evidencia original pertenecen a los servicios complementarios. Ver Configuraciones para documentos de operación portátiles y controles de persistencia.
Profundidades, alturas, avances y valores predeterminados
Los parámetros de operación principales distinguen la profundidad de corte positiva de los planos Z absolutos. totalDepth y stepdown se requieren longitudes finitas positivas; una profundidad de 5 mm con una reducción de 2 mm produce pasadas en 2, 4 y 5 mm por debajo de la parte superior. Los valores predeterminados se aplican sólo cuando falta un campo, por lo que se conserva un cero permitido explícitamente.
| Campo | Predeterminado / unidad | Significado |
|---|---|---|
clearanceHeight | 10 milímetros | Plano utilizado para un posicionamiento claro y rápido. |
safeHeight | 5 milímetros | Operación alimentación altura de entrada/salida. |
retractHeight | 2 milímetros | Altura de estacionamiento entre pases; cero puede ser válido. |
feed / plungeFeed | 800 / 300 mm/min | Avances positivos de corte y inmersión. |
spindleRpm / coolant | 10,000 / off | Husillo a nivel de operación y intención del refrigerante. |
Las alturas deben satisfacer el espacio libre ≥ seguro ≥ retraído. Los valores predeterminados del perfil son compensación exterior, dirección de ascenso, tolerancia de acabado cero, entrada directa, ajuste de arco y tolerancia de 0.01 mm. El ángulo de rampa por defecto es 3° y acepta 0.1–45°; El paso de hélice está predeterminado en 1 mm por revolución. Un lado declarado y un margen mueven la trayectoria del centro de la herramienta, en lugar de cambiar el contorno de origen.
Estos son valores predeterminados de operación pura. La configuración del generador de aplicaciones y los datos de proceso derivados del material del kernel nativo son capas de parámetros separadas; no asuma los mismos nombres de campo o valores predeterminados en todos ellos.
Fuente: packages/core/src/cam/params.ts y operations/profile.ts.
El fresado de roscas utiliza las alturas de perfil básicas ISO 68-1: 0.54127 × paso para roscas internas y 0.61343 × paso para roscas externas (packages/core/src/cam/operations/thread.ts). El visor de trayectoria asume 500 mm/min para movimientos de corte sin avance y 1,000 mm/min para rápidos al cronometrar una animación; Estas son suposiciones de reproducción, no estimaciones de la máquina.
Reproducir un pequeño programa NC
Este ejemplo en memoria corta una ranura recta de 4 mm de ancho 3 mm de profundidad a través de un modelo de material de 40 × 40 × 10 mm. Ejerce el mismo verificador central utilizado por el punto final HTTP sin guardar una ruta de herramienta.
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) Cambiando la inmersión a G0 Z-3 produce un RapidInMaterial descubrimiento. Agregar una longitud de corte corta o dimensiones del portaherramientas puede introducir hallazgos en el mango/portaherramientas que la solicitud original no pudo probar. El suministro de geometría objetivo añade comparación de piezas terminadas; este ejemplo no hace ninguna afirmación sobre un objetivo o accesorios.
El verificador presupuesta como máximo 2,500,000 celdas de cuadrícula y 3,000,000 muestras de ruta, con un presupuesto de trabajo de 80,000,000. Las solicitudes pueden ampliarse para cumplir con esos límites. El material de vista previa se reduce para su visualización, por lo que sus píxeles no son un segundo resultado de verificación más preciso.
Fuente: packages/core/src/cam/verify/verify.ts y verify/verify.test.ts.
Al reproducir texto que llama a subprogramas, el intérprete sigue M98 anida hasta ocho niveles de profundidad y deja de desarrollarse en 2,000,000 líneas, por lo que un recuento de repeticiones grande no puede agotar la memoria (packages/core/src/cam/subprogram-text.ts).
Leer un artefacto fallido o obtener una vista previa
Un problema del kernel incluye un 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.
NoSuitableTooloUnknownTool: inspeccione el ID del cortador seleccionado y los límites de geometría, incluido el diámetro, la longitud de la ranura, la extensión y la biblioteca de cortadores suministrada.RapidInStockoHolderCollision: localice la operación/punto informado e inspeccione la entrada, las retracciones, el stock y el espacio libre del soporte/mesa. Aumentar el avance de corte no repara un rápido inseguro.Gouge: verifique el lado del contorno, los niveles superior/inferior, el margen de acabado y la geometría objetivo. El núcleo prueba un perfil interior de la parte exterior como un fallo de reproducción real.RemainingStock: inspeccione las esquinas inaccesibles, el radio de la herramienta, la estrategia de acabado y la resolución de verificación antes de interpretar el volumen restante.ReplayMismatch: trata el movimiento publicado y su IR reclamado como inconsistentes y se regenera a partir del trabajo capturado.
Los ajustes preestablecidos de la máquina representan clases típicas, no máquinas medidas. Los ID preestablecidos de instantáneas disponibles son vmc-standard, haas-vf2, hsc-mill, desktop-mill, y cnc-router. El primero es el predeterminado. Inspeccione el recorrido real de la máquina y la evidencia de autorización en lugar de inferirla del nombre para mostrar de un ajuste preestablecido.
Fuente: packages/core/src/cam/kernel/execute.ts, machines.ts, y kernel.test.ts; los campos de emisión de cables están en packages/api/src/cam-kernel.ts.
Genera un bolsillo y publícalo.
La capa CAM es una canalización de funciones puras: la geometría y los parámetros entran en una operación, la operación devuelve un Toolpath de movimientos de representación intermedia (RI), un Program agrupa trayectorias de herramientas y un posprocesador convierte el programa en texto específico de un dialecto. Nada antes de la publicación sabe acerca de las palabras en código G, por lo que se puede emitir la misma ruta de herramienta para GRBL, Fanuc, Haas o el dialecto genérico.
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 Leyendo el resultado desde arriba: los comentarios del encabezado enumeran el programa, las unidades, la compensación de trabajo y un resumen por operación (número de herramienta, ID, velocidad del husillo y rango de avance). G21 G90 G17 G94 selecciona milímetros, coordenadas absolutas, el plano XY y avance por minuto. GRBL no tiene un cambiador de herramientas, por lo que la primera herramienta se anuncia como un comentario y los cambios posteriores se convierten en (CHANGE TO TOOL Tn) seguido por 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 del husillo) y M2.
Se informa la geometría vacía, no se omite silenciosamente
Si la región no es un límite cerrado, la operación emite el comentario (nothing to cut: no closed boundary) y sin movimiento. Pase los puntos del anillo como { x, y } objetos. Busque programas generados para ese comentario cuando una operación no produce cortes.
Parámetros de operación y valores predeterminados
La clase de parámetro de cada operación extiende los mismos campos comunes. Las alturas son valores Z absolutos y deben satisfacer espacio libre ≥ seguro ≥ retracción; el esquema rechaza cualquier otra cosa. Las profundidades son distancias positivas debajo de la parte superior del material; el último pase se recorta a totalDepth.
| campo común | Por defecto | Significado |
|---|---|---|
id, name | operation, Operation | Identidad mostrada en comentarios y resúmenes. |
clearanceHeight | 10 | Altura para movimientos entre operaciones. |
safeHeight | 5 | Altura para movimientos entre regiones. |
retractHeight | 2 | Altura antes de sumergir/alimentar. |
totalDepth | requerido | Profundidad positiva por debajo de la parte superior de la acción. |
stepdown | requerido | Profundidad positiva por pasada. |
feed | 800 | Avance de corte, mm/min. |
plungeFeed | 300 | Avance para hundimiento y rampa, mm/min. |
spindleRpm | 10000 | Velocidad del husillo. |
coolant | off | Modo refrigerante. |
| Operación | Campos específicos (predeterminados) |
|---|---|
Pocket | stepover 40 (% del diámetro, 1–100), allowance 0, finishPass fALSO, climb verdadero, entry helix | ramp | plunge, order insideOut | outsideIn, helixPitch 1, helixRadius 0 (= radio de la herramienta), rampAngle 3° (0.1–45), tolerance 0.01, toolCentre fALSO. |
Profile | side outside | inside | onLine, climb verdadero, allowance 0, leadIn direct | ramp | helix | arc, helixPitch 1, helixRadius 0, leadRadius 2, rampAngle 3°, tabs [] (cada pestaña: position 0–1 a lo largo del camino, width, height), arcFit fALSO, tolerance 0.01. |
Drill | No stepdown o feed. peck 0 (un trazo), chipBreak fALSO, dwell 0 s. Los ciclos de penetración mantienen un espacio libre de 0.5 mm por encima de la última profundidad y las retracciones para rotura de viruta son de 0.5 mm. |
Face | stepover 60, overshoot 0 (= radio de la herramienta + 1 mm), alongX verdadero, tolerance 0.01. |
Engrave | tolerance 0.01. |
Thread | Fresado de roscas; profundidad del perfil 0.54127 × paso interno y 0.61343 × paso externo. |
Adaptive, resto, superficie, chaflán, multieje | Otras estrategias exportadas desde el mismo módulo; chaflán añade tipOffset 0.2 y lead 1. |
Construir parámetros con new cam.PocketParams({ ... }) (o la clase correspondiente) para que se apliquen los valores predeterminados y se verifiquen las restricciones una vez. Cada operación también se exporta como un par, como por ejemplo cam.Pocket = { Params, generate }, para código que se envía por tipo de operación.
Postprocesadores y opciones de salida
Las publicaciones se registran por ID en cam.posts y miró hacia arriba con cam.getPost(id). El linuxcnc La identificación está reservada pero no implementada, por lo que getPost("linuxcnc") regresa undefined. Comprueba eso antes de llamar. emit.
| Correo | Ciclos fijos | unidad de residencia | Ejes rotativos | Cambio de herramienta | Marco del programa |
|---|---|---|---|---|---|
generic | sí | artículos de segunda clase | sí | Tn M6 | ninguno |
grbl | no (ampliado a movimientos) | artículos de segunda clase | rechazado | comenta, entonces M0 pausa | ninguno |
fanuc | sí | milisegundos | sí | Tn M6 + G43 Hn | % / O####, subprogramas |
haas | sí | milisegundos | sí, G234 tcp | Tn M6 + G43 Hn | % / O####, subprogramas |
Los cuatro aceptan arcos como ijk o radius; linearize siempre es posible. GRBL rechaza un programa cuyos movimientos conllevan ángulos giratorios en lugar de perder silenciosamente los ángulos.
| opción de emisión | Por defecto | Effect |
|---|---|---|
decimals | 3 | Dígitos después del punto decimal. |
lineNumbers | apagado | { start, step } escribe N palabras, por ejemplo N10, N20. |
useCannedCycles | true | Emite ciclos de perforación donde el dialecto los tenga. |
arcMode | ijk | ijk, radius, o linearize. |
header | true | Escribe el encabezado del comentario descriptivo. |
tolerance | 0.01 | Tolerancia de cuerda cuando los arcos están linealizados. |
toolNumbers | orden de primer uso | Mapa de ID de herramienta al bolsillo del carrusel. Las entradas que faltan mantienen la numeración de primer uso sin chocar con bolsillos explícitos. |
retractBeforeToolChange | apagado | Elevar Z hasta el punto más alto alcanzado antes de un cambio de herramienta. |
stamp | ausente | Sello de encabezado. Déjelo fuera para una salida determinista. |
subprograms | apagado | Escriba trayectorias de herramientas traducidas y repetidas una vez como un subprograma incremental (Fanuc y 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 Byte idéntico por defecto
Las opciones que cambian la salida (retracción de cambio de herramienta, subprogramas, sellos) están desactivadas de forma predeterminada, por lo que la regeneración de una solicitud almacenada produce un texto idéntico. El cam/gcode el paso del flujo de trabajo se basa en esto para detectar programas obsoletos.
Antes de enviar un programa a una máquina
- Confirmar el stock: tamaño, el origen de su esquina mínima y que su cara superior esté en
origin.z. Cada profundidad se mide desde esa cara. - Verifique las alturas con los accesorios. Las alturas de espacio libre, seguridad y retracción son valores Z absolutos en el decalaje de trabajo.
- Elija la publicación para el controlador real y confirme que esté implementada (
getPostdevolvió una publicación). - Vuelva a reproducir el programa con verificación y lea todos los números. No trate la ausencia de un comentario de error como prueba.
- Si el texto NC se editó a mano, regenere o vuelva a verificar. La evidencia calculada para el texto original ya no se aplica.
- Realice un funcionamiento en seco en la máquina encima de la pieza con la anulación de avance reducida, como lo haría con cualquier programa nuevo.
El código generado no es una garantía de la máquina.
El núcleo y las publicaciones verifican la geometría, los límites y las reglas del dialecto que conocen. No conocen sus accesorios, longitudes de herramientas ni condición de la máquina. Un programa verificado es una prueba, no una garantía de un corte seguro.
Afirmaciones de evidencia del núcleo nativo
Además de los generadores mostrados arriba, el kernel nativo devuelve un artefacto con diez reclamos. cada uno es passed, failed, unsupported o unresolved, con detalle de cordón. El nivel de lanzamiento los resume: blocked, preview o verified-program.
| Afirmar | Estado de ejemplo | Detalle devuelto por el kernel |
|---|---|---|
cutting-data | aprobado | Cada operación se ejecuta con datos de corte calculados para Acetal POM-C (Delrin) y su cortador. |
machine-limits | aprobado | Velocidad del husillo, avance, potencia, par y desviación del cortador dentro de límites |
operations-complete | aprobado | 3 operaciones generadas; cada característica planificada tiene una operación |
no-rapid-in-stock | aprobado | Ningún movimiento rápido toca la acción como se repite |
holder-clearance | aprobado | El vástago y el soporte se mantienen alejados de la culata (repetición del campo de altura del eje 3) |
no-gouge | aprobado | Sin cortes debajo de la pieza más allá de 0.030 mm (una celda de holgura lateral) |
material-removed | aprobado | El stock reproducido coincide con la pieza dentro de 0.110 mm |
nc-replay | aprobado | Interpretó 3035 mociones NC independientemente de la publicación; las extensiones coinciden dentro de 2.0e-3 mm |
machine-travel | sin soporte | La máquina no tiene límites de recorrido configurados |
machine-clearance | aprobado | 3035 movimientos marcados; el soporte y el vástago se mantienen al menos a 6.500 mm de la mesa |
Las filas son el resultado real para el POM en blanco en la guía de fabricación nativa: 3 operaciones, 3071 líneas NC, liberación verified-program. El puesto de máquina del artefacto también puede ser linuxcnc en el esquema, pero no se implementa ninguna publicación de LinuxCNC, por lo que los ajustes preestablecidos no lo usan.