Posprocesadores
Un posprocesador escribe un dibujo para una máquina en la forma que esa máquina necesita: su propio dialecto de G-code, un encabezado y un pie, la velocidad y la fuerza de un trazador, códigos para la potencia de un láser. Use Archivo › Exportar › Exportar con posprocesador…: elija el posprocesador, luego dónde guardar y luego sus opciones.
Hay dos tipos:
- A partir de la lista de cortes (
write): recibe todas las trayectorias que cortar, como líneas y arcos, y escribe él mismo todo el texto. - A partir de la salida integrada (
baseyedit): primero se escribe el G-code o el HP-GL estándar (con sus opciones), y el posprocesador modifica sus líneas.
Antes de escribir nada, se comprueban las reglas de diseño, como en cualquier exportación de máquina.
Declarar uno
postProcessor({
name: "Laser (G-code, no Z)",
description: "M3 / M5 round each cut.",
extension: "nc",
options: { feed: 1500, power: 1000 },
write(program, options) {
const out = ["G21", "G90"];
for (const job of program.jobs) {
if (job.drill || !job.cutting) continue;
out.push(`G0 X${job.segments[0].from.x} Y${job.segments[0].from.y}`, `M3 S${options.power}`);
for (const s of job.segments)
out.push(`G1 X${s.to.x} Y${s.to.y} F${options.feed}`);
out.push("M5");
}
out.push("M30");
return out;
}
});
| Propiedad | Significado |
|---|---|
name, description |
Tal como se muestran al elegirlo. |
extension |
La extensión de archivo que se escribe (nc si se omite; plt con una base HPGL). |
base |
"gcode" o "hpgl": parte de la salida de esa exportación. Si se omite: write lo escribe todo. |
options |
Sus opciones, que se muestran después de elegir el archivo. |
write(program, options) |
Sin base: devuelve el texto del archivo, o un array de sus líneas. |
edit(lines, program, options) |
Con base: recibe las líneas de la salida integrada; devuelve el texto, o un array de líneas. |
newLine |
Lo que va entre las líneas de un array devuelto ("\n" si se omite; "\r\n" para las máquinas que lo necesitan). |
options es un objeto con los valores elegidos, por nombre: options.feed, options.power.
El programa
program describe lo que se va a cortar, sea cual sea el tipo de posprocesador:
| Propiedad | Significado |
|---|---|
name |
El nombre de archivo del dibujo, sin su extensión (PIQ si no se ha guardado). |
units |
"mm" o "in". |
bounds |
{minX, minY, maxX, maxY} de todo lo que se corta (null si no se corta nada). |
jobs |
Una tarea por cada trayectoria, en el orden en que las cortan las exportaciones integradas. |
Cada tarea tiene:
| Propiedad | Significado |
|---|---|
element |
El elemento del que procede: "@12". |
layer, layerName |
El número y el nombre de su capa. |
cutting |
Si esa capa corta de lado a lado (en lugar de hender, marcar, dibujar …). |
tool |
Los ajustes de herramienta del elemento, aquellos con los que se corta (los suyos propios y, después, los de su capa desde Producción › Opciones de herramienta): number, name, diameter, spindleSpeed, clockwise, feedRate, plungeRate, startDepth, depth, stepDown, safeHeight, side, coolant, holeDiameter, peckDepth, dwell, pocket ("zigzag", "spiral" o "contour": el elemento se debe vaciar, no cortar por su contorno), stepOver; o null. |
drill |
true para un agujero que taladrar; entonces at (su centro) y diameter. |
closed |
Si la trayectoria vuelve a su inicio. |
segments |
La trayectoria, en orden: {type: "line", from, to} o {type: "arc", from, to, centre, radius, clockwise}. Las curvas (Béziers, elipses, splines) llegan como arcos y líneas con una tolerancia de 0.01. |
Las posiciones son {x, y} en las unidades del dibujo.
Ejemplos incluidos con la aplicación
- Laser (G-code, no Z): escribe G-code a partir de la lista de cortes, con el haz encendido (
M3 S…) y apagado (M5) alrededor de cada corte, los arcos comoG2/G3conIyJ, y los hendidos cortados solo si se pide. - G-code with header and footer: el G-code integrado, con líneas propias al principio y al final (con
|entre ellas), la fecha y, si se desea, sin comentarios. - HPGL cutting plotter: el HPGL integrado, con una velocidad (
VS) y una fuerza (FS) después de cada cambio de plumilla.
Su archivo, machines.js, está en la carpeta Extensions de la aplicación: un buen punto de partida para los suyos.
Notas
- Lo que falla se muestra con el archivo y la línea:
machines.js, line 31: options.feed is not a number. print(…)yconsole.log(…)muestran valores en la ventana Interactiva, para ver lo que contiene el programa.- El posprocesador puede leer las variables (
variable("L")) y los puntos (getPoint(4)) del dibujo, pero no modificar el dibujo.
Para enviar por correo electrónico la salida de un posprocesador en lugar de guardarla, use Archivo › Enviar por correo electrónico › Exportar con posprocesador…: consulte Enviar exportaciones por correo electrónico. Véase también: Extensiones, G-code, HP-GL, API de dibujo.