Preskoči na glavni sadržaj
ZA PROGRAMERE

CutOptim Engine API

API za optimizaciju rezanja: pošaljite dijelove i zalihu — 2D ploče, 1D šipke, drvo ili true-shape ugnježđivanje nepravilnih dijelova — i dobijte natrag raspored, plan rezanja i iskoristivost. Prema zadanim postavkama isti zahtjev uvijek vraća isti plan.

Pogledaj cijelo mjerilo → · Izmjereno, ne tvrđeno

POST /v1/optimize/nest
{
  "parts": [
    { "name": "bracket", "polygon": […], "qty": 12, … },
    { "name": "gusset", "polygon": […], "qty": 14, … },
    { "name": "plate", "polygon": […], "holes": […], "qty": 12, … },
    { "name": "flange", "source": { … }, "qty": 10, … }
  ],
  "stock": [{ "w": 2500, "h": 1250, "exclusions": […], … }],
  "options": { "minSeparation": 5, "edgeClearance": 10 }
}
200 sheets[0] · 2500 × 1250
1 sheetCount48/48 placed0.5632 density110 pierces
Stvarni poziv POST /v1/optimize/nest: zahtjev i vraćeni lim, nacrtan iz koordinata u odgovoru.

Zašto graditi na tome

DETERMINISTIČNO

Isti ulaz uvijek vraća isti izlaz — bez slučajnosti, bez sata u algoritmu. Rezultate možete predmemorirati i uspoređivati u testovima. Jedina opcionalna iznimka, vremenski ograničena pretraga max za ugnježđivanje, to navodi u svakom odgovoru (deterministic: false).

PRAVI PLAN REZANJA

Ne samo pravokutnici: giljotinski slijed rezanja, linije reza naspram prolaza pile, ispiljena duljina i oznaka koja vam govori može li se izraditi na pili za ploče.

PRILAGOĐENO PILI ZA PLOČE

Širina reza, obrez po strani, tolerancija, način troška, smjer žice i usklađivanje žice, maksimalne faze rezanja, minimiziranje rotacija — iste opcije koje nudi i aplikacija.

Izgradite ga sami ili ga pozovite

Optimizator rezanja djeluje kao vikend-projekt, a onda postane dugačak niz rubnih slučajeva: računanje širine reza i obreza, zaliha koja ponestaje, pravila rotacije i žice, rasporedi koji moraju biti izrezivi od ruba do ruba, poligoni s rupama — i paket regresijskih testova koji dokazuje da promjena nikad ne pogorša plan. Engine API je taj posao, već obavljen i izmjeren.

ŠTO PRESKAČETE

Pisanje i validaciju četiri optimizatora — 2D giljotinske ploče, 1D linearnu zalihu, drvo po presjeku i true-shape ugnježđivanje — te održavanje njihove ispravnosti kako rastu vaši zahtjevi. Vaš tim umjesto toga ugrađuje jedan HTTP ugovor.

ŠTO MOŽETE PROVJERITI

Kvaliteta plana je objavljena, a ne tvrđena: otvoreni benchmark pokreće motor na javnim akademskim skupovima primjera i generiranim poslovima, s dostupnom metodom i sirovim rezultatima za preuzimanje. Pokrenite iste primjere na bilo čemu drugom što razmatrate.

ŠTO JE POTREBNO ZA POČETAK

Cijena na stranici, 14-dnevna proba i ključ s vaše nadzorne ploče — bez prodajnog poziva i bez pregovora o licenci prije nego što možete testirati. Krajnje točke validate ne trebaju čak ni ključ.

ŠTO OSTAJE VAŠE

Vaš podatkovni model, vaše sučelje i vaša pravila određivanja cijena. Sinkroni pozivi ništa ne pohranjuju; asinkroni max posao čuva svoj rezultat samo kratko, u prozoru zadržavanja, kako biste ga mogli dohvatiti. Objekt meta na bilo kojem dijelu ili ploči vraća se doslovno, pa se plan usklađuje s vašom evidencijom.

Pogledaj cijelo mjerilo →

Trebate gotov zaslon za narudžbe umjesto da ga sami gradite?

CutOptim Configurator radi na ovom motoru →Povežite vlastiti web shop ili ERP →

Cijene

Studio
€49/mjesec
3,000 zahtjeva / mjesec — čvrsto ograničenje, bez prekoračenja, bez iznenađujućeg računa
14-dnevno probno razdoblje · naplaćeno u EUR · kada se ograničenje dosegne, pozivi vraćaju 402 dok mjesec ne prijeđe
Scale
€149/mjesec
10,000 zahtjeva / mjesec — čvrsto ograničenje, bez prekoračenja, bez iznenađujućeg računa
Bez probnog razdoblja · naplata u EUR · promjena plana na nadzornoj ploči

Svaki zahtjev vrijedi jednako — i ugnježđivanje · Šaljemo vam e-poštu kad potrošite 90 % kvote i kad se potroši u cijelosti.

Isprobajte besplatno: javni demo ključ u API referenci i testni ključevi s 1,000 zahtjeva mjesečno koji se nikad ne naplaćuju

Veći volumeni. 10,000 zahtjeva mjesečno standardni je plan, a ne gornja granica onoga što možemo pokrenuti. Ako trebate više — veći volumen, odvojene ključeve za staging i produkciju ili namjensko rješenje — recite nam svoje brojke i cijenu određujemo pojedinačno. Recite nam svoj volumen →

Pretplatom prihvaćaš: Engine API Service Terms (na engleskom).

Uobičajeni CutOptim planovi (Besplatno / Pro / Radionica) nisu povezani s API-jem — optimizator u aplikaciji ostaje u njima uključen. Pogledajte cijene aplikacije →

Što ulazi, što izlazi

Jedan stvarni posao po načinu rada: gore tijelo zahtjeva, ispod vraćeni plan, nacrtan izravno iz odgovora.

UlaziPOST /v1/optimize/2d
{
  "parts": [
    { "name": "Side", "w": 720, "h": 560, "qty": 6 },
    { "name": "Bottom", "w": 764, "h": 560, "qty": 3 },
    { "name": "Top", "w": 764, "h": 560, "qty": 3 },
    { "name": "Shelf", "w": 762, "h": 520, "qty": 3 },
    { "name": "Rail", "w": 764, "h": 100, "qty": 6 },
    { "name": "Plinth", "w": 764, "h": 120, "qty": 6 },
    { "name": "Door", "w": 397, "h": 716, "qty": 6, "rotatable": false },
    { "name": "Drawer front", "w": 796, "h": 176, "qty": 3 }
  ],
  "stock": [
    { "w": 2800, "h": 2070, "qty": 5, "price": 38.5 }
  ],
  "options": { "kerf": 4, "trim": { "left": 10, "right": 10, "top": 10, "bottom": 10 } }
}
Koristi javni demo ključ — ograničen, samo mali poslovi, nikad se ne naplaćuje.
Izlazi200 · sheets[].parts
Ploče
2
sheetCount
Iskoristivost
80,31 %
yieldPct
Postavljeni dijelovi
36 / 36
placed
Linije reza
39
cutLines
Trošak materijala
77
totalPrice

Niz donjih kuhinjskih elemenata od standardne iverice. Vrata zadržavaju smjer godova (rotatable: false), svi ostali dijelovi smiju se okretati.

Želite sliku izravno od API-ja? Za 2D i nesting dodajte "svg" u include i odgovor sadrži crtež.

Svaki crtež nastaje iz koordinata u odgovoru — ništa nije raspoređeno ručno. Četiri posla rješava isti motor koji radi iza API-ja, a naši testovi ih ponovno rješavaju kako bi brojke ostale točne.

Što API radi

Četiri načina rezanja

Po jedan poziv za 2D ploče, 1D linearni materijal, drvo s podudaranjem presjeka i true-shape ugnježđivanje nepravilnih poligona — POST /v1/optimize/2d, /1d, /wood i /nest.

True-shape ugnježđivanje

POST /v1/optimize/nest pakira proizvoljne poligone (s rupama) na fiksne ploče, uklapajući dijelove jedne u konkavne džepove drugih — 6 ploča ondje gdje isti dijelovi prema graničnom okviru trebaju 9. Za laser, plazmu i vodeni mlaz. Uz to dolaze i zone isključenja po ploči (defekt, stezaljka).

Svjestan materijala

Označite dijelove i zalihu s material oznakom i optimizator dijeli posao: svaki material reže se samo iz vlastite zalihe. Na svakom načinu rada; vraća se sažetak po material.

Rubno oblaganje

Imenujte vrstu ruba po bridu (2D) i odgovor zbraja tekuće metre po vrsti — po dijelu i po narudžbi. Metapodatak: nikada ne pomiče dio.

Usklađivanje žice

Imenujte dijelove čiji se uzorak mora nastaviti — frontu ladice iznad dvaju vrata — u usklađenom setu (matchedSets, 2D) i režu se jedan uz drugi iz istog komada ploče, razmaknuti za jedan kerf. Svaki član vraća se sa svojim setom i pozicijom, a CSV, SVG i DXF izvozi ih također označavaju.

Ugrađeni izvoz (SVG · DXF · CSV)

Zatražite include:["svg","csv","dxf"] i odgovor nosi raspored kao gotovu datoteku, ugrađenu — samostalni 2D SVG crtež, R12/AC1009 DXF ili CSV popis rezanja. Bez pohrane, bez drugog poziva.

Prosljeđivanje metapodataka

Priložite meta objekt — broj artikla iz vašeg ERP-a, id retka narudžbe, referencu kupca — bilo kojem retku dijela ili zalihe i vraća se doslovno na svakom postavljenom komadu i svakoj ploči/šipki, pa se plan usklađuje s vašim sustavom.

Besplatna validacija

POST /v1/validate/{2d,1d,wood} shema-validira isto tijelo bez rješavanja — bez ključa, bez kvote. Provjerite da payload neće biti odbijen i dobijte upozorenja o izvedivosti prije nego što potrošite poziv.

Trošak ili otpad

minimizeCost rangira prema najnižem ukupnom računu među zalihama s cijenom, miješajući formate; zadano se minimizira materijal. Oba izvode isti guillotine algoritam.

Prioritet zalihe i ograničena zaliha

Označite zalihu koju treba prvo potrošiti, tretirajte količine kao čvrsto ograničenje uz respectStock i označite dijelove koji se obavezno režu i osvajaju mjesto na ploči kad materijala nedostaje.

Pravi plan rezanja

Ne samo pravokutnici: giljotinski slijed rezanja s pozicijama graničnika po koraku, linije reza naspram prolaza pile, ispiljena duljina i oznaka izradivosti na pili za ploče.

Parametri pile za ploče

kerf, obrez po strani, tolerancija, smjer žice, matched sets, maxCutStages i minimiziranje rotacija — iste opcije koje nudi aplikacija.

Determinističko & OpenAPI

Isti ulaz uvijek vraća isti izlaz — predmemorirajte ga i usporedite (opcionalna, vremenski ograničena pretraga max za ugnježđivanje prijavljuje deterministic: false). Učvrstiva verzija motora i OpenAPI 3.1 dokument opisuju cijeli ugovor.

Dijelovi iz CAD datoteka

Pošaljite SVG ili DXF umjesto koordinata: parts[].source čita obris i njegove rupe iz crteža, a POST /v1/import/nest prvo razdvaja datoteku s više dijelova. Ništa se ne pohranjuje — datoteka se obrađuje u memoriji i nestaje s odgovorom.

MCP poslužitelj za AI asistente

Claude Code, Cursor, VS Code i Claude Desktop pozivaju motor kao alate preko https://api.cutoptim.com/mcp — s istim API ključem i kvotom kao REST. Lokalno radi i kao npm paket @cutoptim/mcp.

MCP vodič →EN

Dvije brzine: ponuda odmah, ušteda materijala kasnije

Većini integracija treba oboje — odgovor dok kupac čeka, i tješnji plan kad posao ide na stroj. Birate po pozivu.

TRENUTAČNO

Sinkroni motori — heuristic za 2D, 1D i drvo, lbf za ugnježđivanje — odgovaraju unutar HTTP zahtjeva, deterministički, pa je plan iza ponude isti plan koji stoji iza narudžbe.

MAX

Pošaljite posao s engine: "max" i pozivom GET /v1/jobs/{id} dohvatite rezultat. Na 2D pločama traži prema dokazanom optimumu; kod true-shape ugnježđivanja troši vremenski proračun (options.timeBudgetMs) tražeći manje ploča i nikad ne vraća više nego trenutačni odgovor.

Odgovor ima isti oblik u oba slučaja. Na 2D-u max motor prihvaća uži skup opcija nego heuristic (referenca ih navodi), a posao ugnježđivanja sa zonama isključenja i dalje opslužuje lbf.

Koji motor pokriva koji način rada

Krajnja točka na koju šaljete POST bira način rada; parametar engine bira algoritam. Zadani heuristic motor pokriva 2D, 1D i drvo; balanced radi samo za 2D; asinkroni max motor pokriva 2D ploče i true-shape ugnježđivanje; a zadani motor za ugnježđivanje je vlastiti lbf motor. Isti motor kao aplikacija, preko HTTP-a.

Način rada · krajnja točkaMotor · algoritam2D ploče/v1/optimize/2d1D linearni/v1/optimize/1dDrvo · presjek/v1/optimize/woodTrue-shape ugnježđivanje/v1/optimize/nestheuristiczadano · sinkronobalancedna zahtjev · samo 2Dmaxasinkrono · 2D + nestlbfugnježđivanje · zadanoNa 1D i drvu balanced je jednostavno alias za heuristic (odgovor to navodi).
  • heuristic — Zadano — giljotinski višestrateški paker. Najveći iskoristak, svaki raspored može se rezati pilom i uvijek vraća plan rezanja. Pokriva 2D, 1D i drvo.
  • balanced — MaxRects slobodni nester za 2D na zahtjev. Znatno brži na vrlo velikim poslovima uz malo manji iskoristak, no njegovi rasporedi često se ne mogu rezati pilom od ruba do ruba, pa ne nose plan rezanja.
  • max — Asinkroni sloj: pošaljete posao i pozivom GET /v1/jobs/{id} dohvaćate rezultat. Kod 2D-a riječ je o pretrazi stabla koja doseže dokazani optimum na mnogo više poslova, uz nekoliko sekundi do minute po rješavanju — i dalje determinističko i može se rezati pilom. Kod true-shape ugnježđivanja prvo pokreće lbf, a zatim troši vremenski proračun tražeći raspored s manje ploča i nikad ne vraća više; ta je pretraga vremenski ograničena, pa njegovi rasporedi prijavljuju deterministic: false.
  • lbf — Zadani motor za true-shape ugnježđivanje. Pakira nepravilne poligone u međusobne džepove za laser, plazmu i vodeni mlaz — trenutačno i deterministički. max (gore) zatim može pretražiti isti posao tražeći manje ploča.

Koja krajnja točka za koji materijal: ravne ploče — šperploča, MDF, staklo, akril, lim — idu na /v1/optimize/2d; šipke, cijevi i profili na /v1/optimize/1d; konstrukcijsko drvo (50×150 samo iz 50×150) na /v1/optimize/wood; nepravilni poligoni za laser, plazmu i vodeni mlaz na /v1/optimize/nest.

Jedan poziv, potpuni plan

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"
  }'

Vraća se kao:

{
  "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
}

Potpuna struktura zahtjeva i odgovora, sve opcije, svi kodovi grešaka i svi motori:API referenca → · Vodič za integraciju →

Fast ili gusto? Odaberite jednom opcijom

Opcija effort odmjerava vrijeme izračuna naspram iskoristivosti. Evo tog kompromisa, izmjerenog na jednom zahtjevnom zadatku — svaka brojka dolazi iz stvarnog packera.

Prekidač effort: iskoristivost materijala naspram vremena izračunaPrekidač effort: iskoristivost materijala naspram vremena izračuna. fast: 350 ploče · 76.2% · ≈1.9 s. balanced: 330 ploče · 80.8% · ≈4.8 s. max: rezervirano — gušće treba sporiju pretragu. Na većini (manjih) zadataka njih dva su identična; razlika se otvara tek na velikim zadacima poput ovoga. balanced je zadana vrijednost i nikada nije gušći nego što fast može doseći.Prekidač effort: iskoristivost materijala naspram vremena izračunaJedan zahtjevan zadatak — oko 1.550 dijelova na ploči 2,07 × 5,6 m. Svaka brojka izmjerena na stvarnom packeru.74%76%78%80%82%84%02 s4 s6 svrijeme izračuna · brže →iskoristivost materijala · gušće ↑⇄ prekidač effort+4,6 pb iskoristivosti · −20 ploča−5,7% materijala · ≈2,5× sporijefast350 ploče · 76.2% · ≈1.9 s★ balanced · zadano330 ploče · 80.8% · ≈4.8 smaxrezerviranogušće trebasporiju pretragu
Na većini (manjih) zadataka njih dva su identična; razlika se otvara tek na velikim zadacima poput ovoga. balanced je zadana vrijednost i nikada nije gušći nego što fast može doseći.

I ionako je brzo: čak i najveći proizvodni poslovi — 2.000 dijelova i više — rješavaju se u nekoliko sekundi na zadanom motoru, ugodno unutar vremenskog proračuna API-ja.

Rješenja po industriji

Isti motor, prilagođen načinu na koji svaka struka reže. Svaka stranica prikazuje krajnju točku, zahtjev i odgovor, te polja koja su bitna za taj materijal.

Motor radi s geometrijom, ne s katalogom materijala: lim i ploče, ploče na bazi drva, staklo, plastika i akril, kompoziti, pjena, karton i papir prolaze kroz iste krajnje točke. Materijal mijenja samo brojke koje šaljete — širinu reza ili razmak dijelova, razmak od ruba, veličine zalihe.

Materijal za preuzimanje
Engine API one-pager

The why, what and how of the CutOptim Engine API on two pages — the four modes, a real request and its plan, how to try it free, and the two plans. Print-ready, with a QR back to this page.

PDF2 pagesFree
Preuzmi PDF

Česta pitanja

Ima li CutOptim API?
Da — CutOptim Engine API izlaže isti motor rezanja preko HTTP-a, za ERP, alat za ponude ili strojni softver, u sva tri načina koje aplikacija ima: 2D ploče, 1D linearno i drvo s podudaranjem presjeka.
Postoji li API za lasersko, plazma ili vodeno rezanje?
Da — true-shape ugniježđivanje nepravilnih poligona četvrti je način rada Engine API-ja, POST /v1/optimize/nest. Svaki dio šaljete kao poligonski obris (s opcijskim rupama) zajedno sa zalihama ploča; motor uklapa dijelove u konkavne džepove drugih i vraća raspored svake kopije, pa se laserski, plazma ili vodeni posao gnijezdi mnogo gušće od omeđujućeg pravokutnika — na reprezentativnom poslu od 272 dijela 6 ploča ondje gdje isti dijelovi po omeđujućem pravokutniku trebaju 9. Zone isključenja po ploči (kvar, stezaljka) i kontinuirana rotacija dolaze uz to; razmak između dijelova (minSeparation) i odmak od ruba ploče (edgeClearance) postavljaju se zasebno, a odgovor zbraja iskorištene ploče po formatu zalihe — miješajući formate kada je to jeftinije — i daje duljinu reza i broj proboja svake ploče, kao i njezinu iskorištenu širinu i visinu od kuta ploče (za naplatu samo dijela ploče; najmanje popunjena ploča sabija se u taj kut). Aplikacija nudi isto ugnježđivanje u vlastitom Nesting načinu.
Je li Engine API determinističan?
Da. Isti ulaz vraća isti izlaz, pa su odgovori predmemorivi i testabilni, a verzija motora može se fiksirati za ponovljive rezultate. Jedina je opcionalna iznimka max engine za ugnježđivanje: njegova je pretraga vremenski ograničena, pa u svakom odgovoru prijavljuje deterministic: false.
Što sadrži odgovor optimizacije?
Cjelovit raspored, giljotinski plan rezanja s pozicijama zaustavljanja po koraku i metrike (broj ploča, iskorištenje, linije rezanja, prolazi pile, duljina rezanja). 2D endpoint vraća i metre rubnih traka po vrsti, a svaki endpoint prihvaća oznaku materijala i vraća sažetak po materijalu. Raspored možete zatražiti i kao inline SVG, DXF ili CSV te dijelovima i zalihama priložiti objekt meta koji se vraća doslovno.
Može li API dati crtež, a ne samo koordinate?
Da. Dodajte include:["svg","csv","dxf"] u zahtjev za optimizaciju i odgovor nosi raspored kao gotovu datoteku, inline: samostalan 2D SVG crtež, R12/AC1009 DXF ili CSV popis rezanja. Bez pohrane i bez drugog poziva. SVG je samo 2D; zahtjev 1D ili drvo umjesto toga vraća upozorenje.
Mogu li dijelovima priložiti vlastite ID-ove i pročitati ih natrag?
Da. Svaki redak dijela ili zalihe može nositi objekt meta — vaš ERP broj artikla, id retka narudžbe ili referencu kupca —, i vraća se doslovno na svakom postavljenom dijelu i svakoj ploči ili šipki, tako da se plan rezanja usklađuje s vašim sustavom. Nikad ne utječe na raspored.
Mogu li provjeriti zahtjev bez trošenja poziva?
Da. POST /v1/validate/2d, /1d ili /wood shema-validira isto tijelo koje prihvaća odgovarajući endpoint optimizacije, bez rješavanja — bez ključa i bez kvote. 400 imenuje točno pogrešno polje, a dobivate upozorenja o izvedivosti (dio koji ne stane ni u jednu zalihu) prije nego što potrošite stvarni poziv.
Postoje li SDK-ovi, webhookovi ili asinkroni poslovi?
Da. Službeni SDK-ovi za TypeScript (npm @cutoptim/engine), Python (PyPI cutoptim) i PHP (Composer cutoptim/engine) otvorenog su koda na github.com/cutoptim i generirani iz OpenAPI 3.1 specifikacije — za bilo koji drugi jezik možete generator koda usmjeriti na isti dokument. Većina poziva optimizacije običan je sinkroni HTTP koji izravno vraća gotov plan. Jedina je iznimka asinkroni motor max, za 2D ploče i za true-shape ugnježđivanje: POST /v1/optimize/2d ili /v1/optimize/nest s engine:"max" vraća 202 Accepted s jobId, a vi ispitujete GET /v1/jobs/{id} dok ne završi — za kad bolji plan vrijedi od nekoliko sekundi do nekoliko minuta računanja. Umjesto ispitivanja registrirajte webhook na nadzornoj ploči: šalje potpisani POST kad posao završi.
Koja su ograničenja zahtjeva?
Do 2.000 dijelova, 50 redaka zaliha i 1 MB tijela zahtjeva po pozivu. Čak se i najveći proizvodni poslovi rješavaju u nekoliko sekundi, udobno unutar vremenskog budžeta.
Upravljanje API ključevima