Saltar al contenido principal
← CutOptim Engine APIEngine API · anidado · disponible hoy

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

POST /v1/optimize/nest
{
  "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/nest comprueba 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.

Recurso descargable
Ficha de una página de la API de nesting de chapa metálica

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.

PDF2 páginasGratis
Descargar el PDF

Preguntas frecuentes

¿Existe una API para el nesting de chapa metálica?
Sí. El anidado de forma real de piezas irregulares sobre plancha es el cuarto modo de la CutOptim Engine API, 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?
Sí. Cada plancha puede llevar zonas de exclusió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?
Sí. Cualquier fila de pieza o de plancha puede llevar un objeto meta — tu número de pieza, línea de pedido o referencia de cliente — y vuelve tal cual en cada copia colocada y en cada plancha, de modo que el anidado cuadra con tu propio sistema. Nunca afecta a la distribución. Etiqueta también un material y el trabajo se divide de modo que una pieza se anida solo en plancha de su propio material.
¿Cuántas planchas ahorrará?
Depende de la mezcla de piezas, así que no damos un porcentaje general. La métrica honesta y comparable es el número de planchas con las mismas piezas: en un trabajo representativo de 272 piezas, el anidado de forma real usó 6 planchas donde las mismas piezas colocadas por su bounding box necesitan 9. Un porcentaje de densidad no es comparable con el aprovechamiento de un empaquetador rectangular, porque un bounding box cuenta el aire de las muescas como macizo.
¿Puede elegir entre varios tamaños de plancha?
Sí. Envía una fila de stock por tamaño de plancha (con un precio si quieres el plan más barato) y el anidado los compara — por área total de plancha, o por precio total con 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?
Sí. Cada plancha lleva 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