Salta al contenuto principale
PER SVILUPPATORI

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

Leggi il riferimento API →

Perché svilupparci sopra

DETERMINISTICO

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.

UN VERO PIANO DI TAGLIO

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.

PENSATO PER LA 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

Quattro modalità di taglio

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.

Nesting true-shape

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.

Consapevole del materiale

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.

Bordatura

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.

Export inline (SVG · DXF · CSV)

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.

Passaggio dei metadati

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.

Validazione gratuita

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.

Costo o sfrido

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.

Priorità di stock e stock limitato

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.

Un vero piano di taglio

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.

Parametri della sezionatrice

kerf, rifilo per lato, tolleranza, grain groups, maxCutStages e minimizzazione delle rotazioni — le stesse opzioni che offre l’app.

Deterministico & OpenAPI

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.

Pezzi da file CAD

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.

Modalità · endpointMotore · algoritmoPannelli 2D/v1/optimize/2dLineare 1D/v1/optimize/1dLegno · sezione/v1/optimize/woodNesting true-shape/v1/optimize/nestheuristicpredefinito · sincronobalancedopt-in · solo 2Dmaxasync · solo 2Dlbfnesting · sparrow pianificatoSu 1D e legno, balanced fa semplicemente da alias per heuristic (la risposta lo indica).
  • 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.

Interruttore effort: utilizzo del materiale vs tempo di calcoloInterruttore effort: utilizzo del materiale vs tempo di calcolo. fast: 350 pannelli · 76.2% · ≈1.9 s. balanced: 330 pannelli · 80.8% · ≈4.8 s. max: riservato — più denso = ricerca più lenta. Sulla maggior parte dei lavori (più piccoli) i due sono identici; il divario si apre solo su lavori grandi come questo. balanced è il valore predefinito e non è mai più denso di quanto fast possa raggiungere.Interruttore effort: utilizzo del materiale vs tempo di calcoloUn lavoro impegnativo — circa 1.550 pezzi su un pannello da 2,07 × 5,6 m. Ogni cifra misurata sul packer reale.74%76%78%80%82%84%02 s4 s6 stempo di calcolo · più veloce →utilizzo del materiale · più denso ↑⇄ l'interruttore effort+4,6 p.p. utilizzo · −20 pannelli−5,7% materiale · ≈2,5× più lentofast350 pannelli · 76.2% · ≈1.9 s★ balanced · predefinito330 pannelli · 80.8% · ≈4.8 smaxriservatopiù denso =ricerca più lenta
Sulla maggior parte dei lavori (più piccoli) i due sono identici; il divario si apre solo su lavori grandi come questo. balanced è il valore predefinito e non è mai più denso di quanto fast possa raggiungere.

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

€49/mese
10,000 richieste / mese — limite rigido, nessun costo di superamento, nessuna fattura a sorpresa
Prova di 14 giorni · fatturazione in EUR · raggiunto il limite, le chiamate restituiscono 402 fino al rinnovo del mese

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.

Risorsa scaricabile
Engine API one-pager

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.

PDF2 pagesFree
Scarica il PDF

Domande frequenti

CutOptim ha un’API?
Sì — l’API CutOptim Engine espone lo stesso motore di taglio via HTTP, per un ERP, uno strumento di preventivazione o software macchina, in tutte e tre le modalità dell’app: pannelli 2D, lineare 1D e legno con corrispondenza di sezione.
Esiste un’API per il taglio laser, plasma o a getto d’acqua?
Sì — il nesting true-shape di poligoni irregolari è la quarta modalità dell’API Engine, POST /v1/optimize/nest. Invii ogni pezzo come contorno poligonale (con fori opzionali) e le lastre di stock; il motore incastra i pezzi nelle tasche concave gli uni degli altri e restituisce il posizionamento di ogni copia, così un lavoro laser, plasma o a getto d’acqua si annida molto più fitto di un rettangolo di ingombro — su un lavoro rappresentativo di 272 pezzi, 6 lastre dove gli stessi pezzi per bounding box ne richiedono 9. Zone di esclusione per lastra (un difetto, un morsetto) e rotazione continua sono incluse. Funziona oggi tramite l’API Engine; l’app stessa taglia ancora rettangoli.
L’API Engine è deterministica?
Sì. Lo stesso input restituisce lo stesso output, quindi le risposte sono memorizzabili in cache e testabili, e la versione del motore può essere fissata per risultati riproducibili.
Cosa contiene una risposta di ottimizzazione?
Il layout completo, un piano di taglio a ghigliottina con posizioni di arresto per passo e le metriche (numero di pannelli, resa, linee di taglio, passaggi di sega, lunghezza segata). L’endpoint 2D restituisce anche i metri di bordatura per tipo, e ogni endpoint accetta un tag materiale e restituisce un riepilogo per materiale. Puoi anche richiedere il layout come SVG, DXF o CSV inline e allegare un oggetto meta a pezzi e stock, restituito verbatim.
L’API può darmi un disegno, non solo coordinate?
Sì. Aggiungi include:["svg","csv","dxf"] a una richiesta di ottimizzazione e la risposta porta il layout come file pronto, inline: un disegno SVG 2D autonomo, un DXF R12/AC1009 o una lista di taglio CSV. Nessuna archiviazione e nessuna seconda chiamata. L’SVG è solo 2D; una richiesta 1D o legno restituisce invece un avviso.
Posso allegare i miei ID ai pezzi e rileggerli?
Sì. Ogni riga di pezzo o stock può portare un oggetto meta — il tuo codice articolo ERP, l’id della riga d’ordine o il riferimento cliente —, e torna verbatim su ogni pezzo posizionato e ogni pannello o barra, così il piano di taglio si riconcilia con il tuo sistema. Non influisce mai sul layout.
Posso verificare una richiesta senza consumare una chiamata?
Sì. POST /v1/validate/2d, /1d o /wood valida secondo schema lo stesso corpo che accetta l’endpoint di ottimizzazione corrispondente, senza risolvere — senza chiave e senza quota. Un 400 indica il campo esatto errato e ottieni avvisi di fattibilità (un pezzo che non entra in alcuno stock) prima di consumare una chiamata reale.
Ci sono SDK, webhook o job asincroni?
Nessun SDK e nessun webhook — ma è disponibile una specifica OpenAPI 3.1 su cui puntare un generatore di codice per un client tipizzato. La maggior parte delle chiamate di ottimizzazione è semplice HTTP sincrono che restituisce direttamente il piano finito. L’unica eccezione è il motore asincrono max (solo 2D): POST /v1/optimize/2d con engine:"max" restituisce 202 Accepted con un jobId, e interroghi GET /v1/jobs/{id} finché non termina — quando raggiungere l’ottimo dimostrato vale da pochi secondi a un minuto di calcolo.
Quali sono i limiti di richiesta?
Fino a 2.000 pezzi, 50 righe di stock e un corpo della richiesta di 1 MB per chiamata. Anche i lavori più grandi si risolvono in pochi secondi, comodamente entro il budget di tempo.
Gestisci le chiavi API