CutOptim Engine API
Un motore di ottimizzazione del taglio deterministico, richiamabile via HTTP: la stessa richiesta restituisce sempre lo stesso piano di taglio — così puoi verificarlo, usarlo per preventivare, dirimere una contestazione e rieseguire l’ordine dell’anno scorso per ottenere il piano dell’anno scorso. È lo stesso motore che alimenta CutOptim, con le sue tre modalità rettangolari (pannelli 2D, 1D lineare e legno con abbinamento della sezione), più il nesting true-shape per pezzi a poligono irregolare — POST /v1/optimize/nest, per lavorazioni a laser, plasma e getto d’acqua. Invia pezzi e materiale e ottieni in risposta lo schema completo, il piano di taglio e l’utilizzo — pronti da integrare in un ERP, in uno strumento di preventivazione o nel software della macchina stessa.
Guarda il benchmark completo → · Misurato, non dichiarato
Perché svilupparci sopra
Lo stesso input restituisce sempre lo stesso output — nessuna casualità, nessun orologio nell’algoritmo. Puoi mettere in cache i risultati e confrontarne le differenze nei test.
Non solo rettangoli: la sequenza di taglio guillotine, le linee di taglio rispetto ai passaggi della lama, la lunghezza di taglio e un flag che dice se è realizzabile su una sezionatrice.
Spessore della lama, rifilo per lato, tolleranza, modalità costo, gruppi venatura, numero massimo di fasi di taglio, minimizzazione delle rotazioni — le stesse opzioni che offre l’app.
Cosa fa l’API
Una chiamata per ciascuna: pannelli 2D, materiale lineare 1D, legno con corrispondenza di sezione e nesting true-shape di poligoni irregolari — POST /v1/optimize/2d, /1d, /wood e /nest.
POST /v1/optimize/nest dispone poligoni arbitrari (con holes) su pannelli fissi, incastrando i pezzi nelle rientranze concave gli uni degli altri — 6 pannelli dove gli stessi pezzi per bounding box ne richiedono 9. Per laser, plasma e getto d’acqua. Le zone di esclusione per pannello (un difetto, un morsetto) sono comprese.
Etichetta pezzi e stock con un material e l’ottimizzatore partiziona il lavoro: ogni material viene tagliato solo dal proprio stock. Su ogni modalità; torna un riepilogo per material.
Assegna un tipo di bordo per lato (2D) e la risposta totalizza i metri lineari per tipo — per pezzo e per ordine. Metadato: non sposta mai un pezzo.
Chiedi include:["svg","csv","dxf"] e la risposta trasporta lo schema come file già pronto, inline — un disegno SVG 2D autonomo, un DXF R12/AC1009 o una distinta di taglio CSV. Nessuna archiviazione, nessuna seconda chiamata.
Allega un oggetto meta — il codice articolo del tuo ERP, l’id della riga d’ordine, il riferimento cliente — a qualsiasi pezzo o riga di materiale e torna invariato su ogni pezzo posizionato e su ogni sheet/rod, così il piano si riconcilia con il tuo sistema.
POST /v1/validate/{2d,1d,wood} valida lo schema dello stesso corpo senza risolvere — nessuna chiave, nessuna quota. Verifica che un payload non venga rifiutato e ottieni avvisi di fattibilità prima di spendere una chiamata.
minimizeCost ordina in base alla spesa totale più bassa tra i formati di stock con prezzo, mescolandoli; l’impostazione predefinita minimizza il materiale. Entrambi eseguono lo stesso algoritmo guillotine.
Segna lo stock da esaurire per primo, tratta le quantità come un limite rigido con respectStock e contrassegna i pezzi da tagliare obbligatoriamente, che vincono lo spazio sulla lastra quando il materiale scarseggia.
Non solo rettangoli: la sequenza di taglio guillotine con le posizioni di battuta per ogni passo, le linee di taglio rispetto ai passaggi della lama, la lunghezza di taglio e un flag di producibilità su sezionatrice.
kerf, rifilo per lato, tolleranza, grain groups, maxCutStages e minimizzazione delle rotazioni — le stesse opzioni che offre l’app.
Lo stesso input restituisce sempre lo stesso output — mettilo in cache e confrontalo. Una versione di motore fissabile e un documento OpenAPI 3.1 descrivono l’intero contratto.
Invia un SVG o un DXF invece delle coordinate: parts[].source legge il contorno e i suoi fori dal disegno, e POST /v1/import/nest divide prima un file con più pezzi. Nulla viene memorizzato — il file è analizzato in memoria e sparisce con la risposta.
Quale motore serve quale modalità
L’endpoint su cui fai POST sceglie la modalità; il parametro engine sceglie l’algoritmo. Il motore heuristic predefinito serve 2D, 1D e legno; balanced e il motore asincrono max sono solo 2D; e il nesting true-shape gira sul proprio motore lbf. Lo stesso motore dell’app, via HTTP.
- heuristic — Il predefinito — un packer guillotine multi-strategia. Resa massima, ogni layout è tagliabile su sega e restituisce sempre un piano di taglio. Serve 2D, 1D e legno.
- balanced — Un free-nester MaxRects opt-in per il 2D. Molto più veloce sui lavori molto grandi a fronte di una resa leggermente inferiore, ma i suoi layout spesso non possono essere segati da bordo a bordo, quindi non trasportano un piano di taglio.
- max — Una ricerca ad albero asincrona per il 2D. Raggiunge l’ottimo dimostrato su molti più lavori, con qualche secondo fino a un minuto per risoluzione — invii il lavoro e interroghi GET /v1/jobs/{id} per il risultato. Sempre deterministico e tagliabile su sega.
- lbf — Il motore di nesting true-shape. Incastra poligoni irregolari nelle rientranze gli uni degli altri per laser, plasma e getto d’acqua; è pianificata una build sparrow a densità più alta.
Quale endpoint per quale materiale: lastre piane — compensato, MDF, vetro, acrilico, lamiera — vanno a /v1/optimize/2d; barre, tubi, tubolari e profili a /v1/optimize/1d; legno strutturale (un 50×150 solo da un 50×150) a /v1/optimize/wood; poligoni irregolari per laser, plasma e getto d’acqua a /v1/optimize/nest.
Una chiamata, un piano 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"
}'Torna così:
{
"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
}Struttura completa di richiesta e risposta, tutte le opzioni, tutti i codici di errore e tutti e tre i motori:Riferimento API →
Fast o denso? Scegli con un'unica opzione
L'opzione effort bilancia il tempo di calcolo con l'utilizzo. Ecco questo compromesso, misurato su un lavoro impegnativo — ogni cifra proviene dal packer reale.
Ed è comunque veloce: anche i lavori di produzione più grandi — 2.000 pezzi e oltre — si risolvono in pochi secondi con il motore predefinito, ben entro il budget di tempo dell'API.
Prezzi
Volumi maggiori. 10,000 richieste al mese sono il piano standard, non il limite di ciò che possiamo far girare. Se ti serve di più — un volume più alto, chiavi separate per staging e produzione, o un accordo dedicato — dicci i tuoi numeri e lo quotiamo individualmente. Dicci il tuo volume →
I normali piani CutOptim (Gratuito / Pro / Officina) non hanno alcun legame con l’API — l’ottimizzatore integrato nell’app resta incluso in essi. Vedi i prezzi dell’app →
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.