CutOptim Engine API
Un motor determinist de optimizare a tăierii, apelabil prin HTTP: aceeași cerere returnează întotdeauna același plan de tăiere — așa că îl poți audita, poți oferta pe baza lui, poți rezolva o dispută cu el și poți rerula comanda de anul trecut pentru a obține planul de anul trecut. Este același motor care alimentează CutOptim, cu cele trei moduri dreptunghiulare (plăci 2D, 1D liniar și lemn cu potrivirea secțiunii), plus nesting true-shape pentru piese poligonale neregulate — POST /v1/optimize/nest, pentru lucrări cu laser, plasmă și jet de apă. Trimiți piesele și materialul de bază și primești înapoi layoutul complet, planul de tăiere și utilizarea — gata de integrat într-un ERP, într-o aplicație de ofertare sau în software-ul propriu al unei mașini.
Vezi benchmarkul complet → · Măsurat, nu pretins
De ce să construiești pe el
Aceeași intrare returnează întotdeauna același rezultat — fără aleatoriu, fără ceas în algoritm. Poți pune rezultatele în cache și le poți compara în teste.
Nu doar dreptunghiuri: secvența de tăiere ghilotină, linii de tăiere față de treceri de ferăstrău, lungimea tăiată și un indicator care îți spune dacă poate fi produs pe un ferăstrău pentru panouri.
Kerf, tolerance, tăiere de margine pe fiecare latură, mod cost, grupuri de fibră, număr maxim de etape de tăiere, minimizarea rotirii — aceleași opțiuni pe care le oferă și aplicația.
Ce face API-ul
Câte un apel pentru panouri 2D, material liniar 1D, lemn cu potrivire de secțiune și nesting true-shape al poligoanelor neregulate — POST /v1/optimize/2d, /1d, /wood și /nest.
POST /v1/optimize/nest împachetează poligoane arbitrare (cu holes) pe plăci fixe, întrepătrunzând piesele în buzunarele concave ale celorlalte — 6 sheets acolo unde aceleași piese după bounding box au nevoie de 9. Pentru laser, plasmă și jet de apă. Zonele de excludere per placă (un defect, o clemă) vin la pachet.
Etichetează piesele și stocul cu un material, iar optimizatorul împarte lucrarea: fiecare material este tăiat doar din propriul stoc. Pe fiecare mod; se întoarce un rezumat pe material.
Denumește un tip de cant per muchie (2D), iar răspunsul totalizează metrii liniari pe tip — pe piesă și pe comandă. Metadate: nu mută niciodată o piesă.
Cere include:["svg","csv","dxf"], iar răspunsul poartă layoutul ca fișier gata făcut, inline — un desen SVG 2D de sine stătător, un DXF R12/AC1009 sau o listă de tăiere CSV. Fără stocare, fără un al doilea apel.
Atașează un obiect meta — numărul de articol din ERP-ul tău, id-ul liniei de comandă, referința clientului — oricărei piese sau oricărui rând de material, iar el revine identic pe fiecare piesă plasată și pe fiecare placă/bară, astfel încât planul să se reconcilieze cu sistemul tău.
POST /v1/validate/{2d,1d,wood} validează schema aceluiași corp fără să-l rezolve — fără cheie, fără cotă. Verifică dacă un payload nu va fi respins și primește avertismente de fezabilitate înainte de a consuma un apel.
minimizeCost ordonează după factura totală cea mai mică între dimensiunile de stoc cu preț, amestecând formatele; implicit se minimizează materialul. Ambele rulează același algoritm guillotine.
Marchează stocul care se consumă primul, tratează cantitățile ca plafon strict cu respectStock și marchează piesele obligatoriu de tăiat, care câștigă spațiul pe placă atunci când materialul este insuficient.
Nu doar dreptunghiuri: secvența de tăiere guillotine cu pozițiile opritorului pe fiecare pas, linii de tăiere față de treceri de ferăstrău, lungimea tăiată și un indicator de fabricabilitate pe ferăstrău pentru panouri.
kerf, tăiere de margine pe fiecare latură, toleranță, grain groups, maxCutStages și minimizarea rotirii — aceleași opțiuni pe care le oferă aplicația.
Aceeași intrare returnează întotdeauna același rezultat — pune-l în cache și compară-l. O versiune de motor fixabilă și un document OpenAPI 3.1 descriu întregul contract.
Trimite un SVG sau un DXF în loc de coordonate: parts[].source citește conturul și găurile din desen, iar POST /v1/import/nest împarte întâi un fișier cu mai multe piese. Nimic nu se stochează — fișierul este prelucrat în memorie și dispare odată cu răspunsul.
Care motor deservește care mod
Endpointul către care faci POST alege modul; parametrul engine alege algoritmul. Motorul implicit heuristic deservește 2D, 1D și lemnul; balanced și motorul asincron max sunt doar 2D; iar nestingul true-shape rulează pe propriul motor lbf. Același motor ca în aplicație, prin HTTP.
- heuristic — Implicit — un packer guillotine cu strategii multiple. Randament maxim, fiecare layout poate fi tăiat cu ferăstrăul și returnează întotdeauna un plan de tăiere. Deservește 2D, 1D și lemnul.
- balanced — Un free-nester MaxRects opțional pentru 2D. Mult mai rapid pe lucrări foarte mari, cu un randament ușor mai mic, dar layouturile lui adesea nu pot fi tăiate cu ferăstrăul dintr-o margine în alta, așa că nu poartă niciun plan de tăiere.
- max — O căutare arborescentă asincronă pentru 2D. Atinge optimul demonstrat pe mult mai multe lucrări, în câteva secunde până la un minut per rezolvare — trimiți lucrarea și interoghezi GET /v1/jobs/{id} pentru rezultat. Rămâne determinist și tăiabil cu ferăstrăul.
- lbf — Motorul de nesting true-shape. Împachetează poligoane neregulate în buzunarele unora în ale altora, pentru laser, plasmă și jet de apă; este planificat un build sparrow cu densitate mai mare.
Care endpoint pentru care material: plăci plane — placaj, MDF, sticlă, acril, tablă — merg la /v1/optimize/2d; bare, tuburi, țevi și profile la /v1/optimize/1d; lemn structural (un 50×150 doar dintr-un 50×150) la /v1/optimize/wood; poligoane neregulate pentru laser, plasmă și jet de apă la /v1/optimize/nest.
Un singur apel, un plan complet
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"
}'Răspunsul primit:
{
"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
}Structura completă a cererii și a răspunsului, fiecare opțiune, toate codurile de eroare și toate cele trei motoare:Documentația API →
Fast sau dens? Alege cu o singură opțiune
Opțiunea effort echilibrează timpul de calcul cu utilizarea. Iată acest compromis, măsurat pe o lucrare solicitantă — fiecare cifră provine din packerul real.
Și oricum este rapid: chiar și cele mai mari lucrări de producție — 2.000 de piese și mai mult — se rezolvă în câteva secunde pe motorul implicit, confortabil în bugetul de timp al API-ului.
Prețuri
Volume mai mari. Cele 10,000 cereri pe lună sunt planul standard, nu un plafon al a ceea ce putem rula. Dacă ai nevoie de mai mult — volum mai mare, chei separate pentru staging și producție sau o înțelegere dedicată — spune-ne cifrele tale și îl tarifăm individual. Spune-ne volumul tău →
Planurile obișnuite CutOptim (Gratuit / Pro / Atelier) nu au legătură cu API-ul — optimizatorul din aplicație rămâne inclus în ele. Vezi prețurile aplicației →
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.