API de nesting de chapa metálica
Sí, existe una API para el nesting de chapa metálica. Anidar piezas irregulares de chapa — escuadras, cartelas, bridas, juntas — sobre planchas de stock es un problema de anidado de forma real, y la CutOptim Engine API lo resuelve sobre HTTP en POST /v1/optimize/nest. Tu ERP, tu MES o tu software de presupuestos envía los contornos de las piezas y los tamaños de plancha en JSON y recibe la distribución anidada, la colocación de cada pieza y el número de planchas, para láser, plasma o chorro de agua.
Está disponible hoy. El motor de anidado (jagua-rs, un motor geométrico de colisiones) se ejecuta en producción tras POST /v1/optimize/nest — una clase de algoritmo distinta del empaquetador de guillotina rectangular — y devuelve un anidado de forma real en lugar de un plan de corte rectangular.
Todos los formatos, motores, límites y ejemplos de código para desarrolladores: API de nesting de CutOptim
{
"parts": [
{ "name": "gusset",
"polygon": [[0,0],[400,0],[0,400]],
"qty": 16, "allowedRotations": [0,90,180,270] },
{ "name": "bracket",
"polygon": [[0,0],[350,0],[350,120],[120,120],[120,350],[0,350]],
"qty": 10, "allowedRotations": "continuous",
"meta": { "part": "BRK-350" } }
],
"stock": [
{ "w": 3000, "h": 1500, "qty": 12,
"exclusions": [{ "polygon": [[0,0],[250,0],[0,250]], "quality": 0 }] }
],
"options": { "minSeparation": 2, "edgeClearance": 10 }
}El nesting no está incluido en la demo pública — ejecuta este ejemplo con una clave de prueba gratuita. Crear una clave de prueba gratuita
- Disponible hoy en
POST /v1/optimize/nest: piezas poligonales arbitrarias (con agujeros), no solo rectángulos. - Las zonas de exclusión por chapa anidan alrededor de un defecto de la plancha, de la huella de una garra o de una zona preimpresa (
stock[].exclusions). - División por material: etiqueta piezas y planchas y cada pieza se anida solo en plancha de su propio material.
- Adjunta un objeto meta (número de pieza, línea de pedido) y vuelve en cada copia colocada, de modo que el anidado cuadra con tu ERP.
- Varios tamaños de plancha: el anidado los compara por área de plancha, o por precio con
minimizeCost, y puede mezclarlos — una última plancha medio vacía pasa a un tamaño menor. - En un trabajo representativo de 272 piezas, el anidado usó 6 chapas donde las mismas piezas por su bounding box necesitan 9: la métrica honesta es el número de planchas, no un porcentaje de densidad.
- Validación gratuita:
POST /v1/validate/nestcomprueba un trabajo sin clave y sin consumir cuota.
Por qué lo necesitan los talleres de chapa
La plancha es cara y las piezas irregulares la desperdician: un empaquetador rectangular trata el bounding box de cada pieza como macizo, así que el aire dentro de una cartela o de una escuadra en L se tira. El anidado de forma real encaja los contornos reales y recupera ese aire. En un trabajo representativo de 272 piezas, el anidado usó 6 chapas donde las mismas piezas por su bounding box necesitan 9; la métrica honesta es el número de planchas con las mismas piezas, no un porcentaje de densidad.
Qué envías y qué recibes
Envía cada pieza como un polígono (con agujeros opcionales) y una cantidad, más los tamaños de plancha. La respuesta da cada colocación como una transformación rígida (una rotación en grados y después una traslación x/y), el número de planchas, la densidad y las piezas que no cupieron. Etiqueta piezas y planchas con un material y el trabajo se divide por material — una pieza se anida solo en plancha de su propio material — y cualquier objeto meta (tu número de pieza del ERP, la línea de pedido) vuelve tal cual en cada copia colocada, de modo que el anidado cuadra con tu sistema. Cada plancha lleva también la fila de stock de la que se cortó, su longitud de corte y su número de perforaciones, y stockUsage totaliza planchas y precio por tamaño de plancha.
Zonas de exclusión: anida alrededor de un defecto
Las zonas de exclusión por chapa (stock[].exclusions) permiten al motor anidar alrededor de un defecto de la plancha, de la huella de una garra de sujeción o de una zona preimpresa; una zona de quality 0 es una región vetada para todas las piezas. La rotación puede ser continua o una lista discreta; options.minSeparation fija la separación entre piezas para el ancho de la antorcha o del haz, y options.edgeClearance la distancia al borde de la plancha. La distribución es determinista: una semilla fijada reproduce el mismo anidado para un presupuesto o una auditoría.
Instantáneo para el presupuesto, max para el pedido
POST /v1/optimize/nest responde de forma síncrona con el motor lbf — determinista y dentro de la propia solicitud, lo bastante rápido para presupuestar un trabajo mientras el cliente espera. Cuando el trabajo se libera a la máquina, envía el mismo cuerpo con engine: "max" y consulta GET /v1/jobs/{id}: ejecuta primero lbf y luego dedica un presupuesto de tiempo que tú fijas (options.timeBudgetMs) a buscar una distribución con menos planchas, y nunca devuelve más. La respuesta tiene la misma forma en ambos casos; una chapa con zonas de exclusión sigue siendo atendida por lbf dentro de ese trabajo, con un aviso.
Un resumen de dos páginas (PDF en inglés): el problema, qué envías y qué recibes, una solicitud y una respuesta, y cómo construir sobre el motor. Listo para imprimir, con un QR que vuelve a esta página.
Preguntas frecuentes
¿Existe una API para el nesting de chapa metálica?
POST /v1/optimize/nest. Envías cada pieza como un polígono (con agujeros opcionales) más los tamaños de plancha y recibes la distribución anidada, la colocación de cada copia y el número de planchas, para láser, plasma o chorro de agua. Es un motor geométrico de colisiones que se ejecuta en producción hoy.¿Gestiona defectos de la plancha o zonas de sujeción?
stock[].exclusions): polígonos de los que el motor mantiene alejadas todas las piezas. Una zona de quality 0 es una región vetada, así que puedes anidar alrededor de un defecto, de la huella de una garra de sujeción o de una zona preimpresa. Es una capacidad que la API rectangular no puede expresar.¿Puedo etiquetar las piezas con los números de pieza de mi ERP?
¿Cuántas planchas ahorrará?
¿Puede elegir entre varios tamaños de plancha?
options.minimizeCost —, de modo que la respuesta no depende del orden en que los listes. También puede mezclar tamaños: cada plancha, empezando por la menos llena, se vuelve a anidar en los tamaños más baratos o más pequeños y se sustituye cuando el plan completo mejora, así que una última plancha medio vacía suele pasar a un tamaño menor. sheets[].stock y stockUsage indican de qué tamaño salió cada plancha.¿Informa de cuánta plancha usa un trabajo pequeño?
usedWidth, usedHeight y usedArea — el bounding box de sus piezas colocadas desde la esquina de la plancha —, de modo que un presupuesto puede cobrar una franja o el bounding box en lugar de la plancha entera. La plancha menos llena se compacta por defecto hacia esa esquina, con subconjuntos de rotación de lo que permite cada pieza; el número de planchas y el precio nunca cambian.Caso de uso de fabricación de chapa metálica (aplicación) · Benchmarks