CutOptim Engine API
Un motor de optimización de corte determinista, invocable sobre HTTP: la misma solicitud siempre devuelve el mismo plan de corte — así puedes auditarlo, presupuestar a partir de él, resolver una disputa con él y volver a ejecutar el pedido del año pasado para obtener el plan del año pasado. Es el mismo motor que impulsa CutOptim, con sus tres modos rectangulares (paneles 2D, lineal 1D y madera con emparejamiento por sección transversal), además del anidado de forma real para piezas de polígonos irregulares — POST /v1/optimize/nest, para trabajos de láser, plasma y chorro de agua. Envía piezas y material, y recibe la distribución completa, el plan de corte y el aprovechamiento — listos para integrar en un ERP, una herramienta de presupuestos o el propio software de una máquina.
Ver el benchmark completo → · Medido, no afirmado
Por qué construir sobre él
La misma entrada siempre devuelve la misma salida — sin aleatoriedad, sin reloj en el algoritmo. Puedes cachear los resultados y compararlos en las pruebas.
No solo rectángulos: la secuencia de corte por guillotina, líneas de corte frente a pasadas de sierra, la longitud serrada y un indicador que te dice si es fabricable en una seccionadora.
Ancho de corte, refilado por lado, tolerancia, modo coste, grupos de veta, número máximo de fases de corte, minimización de giros — las mismas opciones que ofrece la aplicación.
Qué hace la API
Una llamada para cada uno: paneles 2D, material lineal 1D, madera con emparejamiento de sección y anidado de forma real de polígonos irregulares — POST /v1/optimize/2d, /1d, /wood y /nest.
POST /v1/optimize/nest empaqueta polígonos arbitrarios (con holes) en tableros fijos, encajando las piezas en las cavidades cóncavas de las demás — 6 tableros donde las mismas piezas por su bounding box necesitan 9. Para láser, plasma y chorro de agua. Incluye zonas de exclusión por tablero (un defecto, una brida).
Etiqueta las piezas y el stock con un material y el optimizador particiona el trabajo: cada material se corta solo de su propio stock. En todos los modos; se devuelve un resumen por material.
Nombra un tipo de canto por borde (2D) y la respuesta totaliza los metros lineales por tipo — por pieza y por pedido. Metadato: nunca mueve una pieza.
Pide include:["svg","csv","dxf"] y la respuesta lleva la distribución como un archivo listo para usar, en línea — un dibujo SVG 2D autónomo, un DXF R12/AC1009 o una lista de corte CSV. Sin almacenamiento, sin una segunda llamada.
Adjunta un objeto meta — el número de artículo de tu ERP, el id de línea de pedido, la referencia del cliente — a cualquier pieza o fila de material y vuelve literalmente en cada pieza colocada y cada sheet/rod, para que el plan cuadre con tu sistema.
POST /v1/validate/{2d,1d,wood} valida el esquema del mismo cuerpo sin resolver — sin clave, sin cuota. Comprueba que una carga útil no será rechazada y obtén avisos de viabilidad antes de gastar una llamada.
minimizeCost ordena por la factura total más baja entre los tamaños de stock con precio, mezclando formatos; por defecto se minimiza el material. Ambos ejecutan el mismo algoritmo guillotine.
Marca el stock que se agota primero, trata las cantidades como un tope estricto con respectStock y señala las piezas de corte obligatorio, que ganan sitio en el tablero cuando el material escasea.
No solo rectángulos: la secuencia de corte guillotine con las posiciones de tope por paso, líneas de corte frente a pasadas de sierra, la longitud serrada y un indicador de fabricabilidad en seccionadora.
kerf, refilado por lado, tolerancia, grain groups, maxCutStages y minimización de giros — las mismas opciones que ofrece la aplicación.
La misma entrada siempre devuelve la misma salida — cachéala y compárala. Una versión de motor fijable y un documento OpenAPI 3.1 describen todo el contrato.
Envía un SVG o un DXF en lugar de coordenadas: parts[].source lee el contorno y sus agujeros del dibujo, y POST /v1/import/nest divide antes un archivo con varias piezas. No se almacena nada — el archivo se procesa en memoria y desaparece con la respuesta.
Qué motor sirve cada modo
El endpoint al que haces POST elige el modo; el parámetro engine elige el algoritmo. El motor heuristic por defecto sirve 2D, 1D y madera; balanced y el motor max asíncrono son solo 2D; y el anidado de forma real se ejecuta en su propio motor lbf. El mismo motor que la aplicación, sobre HTTP.
- heuristic — El motor por defecto — un empaquetador guillotine multiestrategia. El mayor aprovechamiento, cada distribución es cortable con sierra y siempre devuelve un plan de corte. Sirve 2D, 1D y madera.
- balanced — Un empaquetador libre MaxRects opcional para 2D. Mucho más rápido en trabajos muy grandes a cambio de un aprovechamiento algo menor, pero sus distribuciones a menudo no pueden cortarse de borde a borde, así que no llevan plan de corte.
- max — Una búsqueda en árbol asíncrona para 2D. Alcanza el óptimo demostrado en muchos más trabajos, con un tiempo de segundos a un minuto por resolución — envías el trabajo y consultas GET /v1/jobs/{id} para obtener el resultado. Sigue siendo determinista y cortable con sierra.
- lbf — El motor de anidado de forma real. Empaqueta polígonos irregulares en las cavidades de las demás piezas para láser, plasma y chorro de agua; se planifica una versión sparrow de mayor densidad.
Qué endpoint para cada material: los tableros planos — contrachapado, MDF, vidrio, acrílico, chapa metálica — van a /v1/optimize/2d; barras, tubo, tubería y perfil a /v1/optimize/1d; madera estructural (un 50×150 solo a partir de 50×150) a /v1/optimize/wood; polígonos irregulares para láser, plasma y chorro de agua a /v1/optimize/nest.
Una llamada, un plan completo
curl https://api.cutoptim.com/v1/optimize/2d \
-H "Authorization: Bearer co_live_…" \
-H "Content-Type: application/json" \
-d '{
"parts": [
{ "name": "Door", "w": 600, "h": 400, "qty": 4 },
{ "name": "Shelf", "w": 800, "h": 300, "qty": 6 }
],
"stock": [{ "w": 2440, "h": 1220, "price": 42 }],
"options": { "kerf": 3, "effort": "balanced" },
"engine": "heuristic"
}'Devuelve:
{
"metrics": { "sheetCount": 1, "yieldPct": 80.62, "placed": 10, "total": 10,
"cutLines": 10, "sawPasses": 13, "cutLength": 10720, "totalPrice": 42 },
"sheets": [ … ],
"cutPlan": [{ "sheet": 0, "step": 1, "axis": "h", "pos": 400, "length": 2440, "stage": 1 }, … ],
"guillotineValid": true,
"engineVersion": "1.0.0+10e0c941",
"deterministic": true
}La estructura completa de la solicitud y la respuesta, todas las opciones, todos los códigos de error y los tres motores:Referencia de la API →
¿Fast o denso? Elige con una sola opción
La opción effort equilibra el tiempo de cálculo frente al aprovechamiento. Aquí está ese compromiso, medido en un trabajo exigente — cada cifra proviene del packer real.
Y en cualquier caso es rápido: incluso los trabajos de producción más grandes — 2000 piezas o más — se resuelven en segundos con el motor predeterminado, holgadamente dentro del presupuesto de tiempo de la API.
Precios
Volúmenes mayores. 10,000 solicitudes al mes es el plan estándar, no un techo de lo que podemos ejecutar. Si necesitas más — mayor volumen, claves separadas para staging y producción, o un acuerdo dedicado — dinos tus cifras y lo presupuestamos de forma individual. Cuéntanos tu volumen →
Los planes habituales de CutOptim (Free / Pro / Taller) no tienen relación con la API — el optimizador integrado en la aplicación sigue incluido en ellos. Ver precios de la aplicación →
Solutions by industry
The same engine, positioned for the way one trade cuts. Each page shows the endpoint, a request and a response, and the fields that matter for that material.
1D cut-to-length for tube, pipe and hollow section. POST /v1/optimize/1d
1D cut-to-length for steel and aluminium profile, bar and section, with cost mode. POST /v1/optimize/1d
2D guillotine, zero-kerf score-and-snap for float, tempered and mirror glass. POST /v1/optimize/2d
1D cut-to-length for structural timber with cross-section matching. POST /v1/optimize/wood
True-shape nesting of irregular polygons, with exclusion zones. POST /v1/optimize/nest
True-shape nesting onto plate for laser, plasma or waterjet. POST /v1/optimize/nest
Bar bending schedule optimization for reinforcement steel. · design partners wanted
The why, what and how of the CutOptim Engine API on two pages — the three modes, a request and response, determinism and pricing. Print-ready, with a QR back to this page.