Preskoči na glavni sadržaj
ZA PROGRAMERE

CutOptim Engine API

Deterministički motor za optimizaciju rezanja, pozivljiv putem HTTP-a: isti zahtjev uvijek vraća isti plan rezanja — pa ga možete revidirati, iz njega izraditi ponudu, njime riješiti spor i ponovno pokrenuti prošlogodišnju narudžbu da dobijete prošlogodišnji plan. Isti je motor koji pokreće CutOptim, kroz tri pravokutna načina rada (2D ploče, 1D linearno i drvo s usklađivanjem poprečnog presjeka), uz true-shape ugnježđivanje za nepravilne poligonske dijelove — POST /v1/optimize/nest, za rad laserom, plazmom i vodenim mlazom. Pošaljite dijelove i zalihu, dobijte natrag potpuni raspored, plan rezanja i iskoristivost — spremno za ugradnju u ERP, alat za ponude ili vlastiti softver stroja.

Pogledaj cijelo mjerilo → · Izmjereno, ne tvrđeno

Pročitajte API referencu →

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.

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, grupe žice, maksimalne faze rezanja, minimiziranje rotacija — iste opcije koje nudi i aplikacija.

Š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.

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, grain groups, maxCutStages i minimiziranje rotacija — iste opcije koje nudi aplikacija.

Determinističko & OpenAPI

Isti ulaz uvijek vraća isti izlaz — predmemorirajte ga i usporedite. 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.

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 i asinkroni max motor rade samo za 2D; a true-shape ugnježđivanje radi na vlastitom lbf motoru. 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 · samo 2Dlbfugnježđivanje · sparrow planiranNa 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 — Asinkrona pretraga stabla za 2D. Doseže dokazani optimum na mnogo više poslova, uz nekoliko sekundi do minute po rješavanju — pošaljete posao i pozivom GET /v1/jobs/{id} dohvaćate rezultat. I dalje determinističko i može se rezati pilom.
  • lbf — Motor za true-shape ugnježđivanje. Pakira nepravilne poligone u međusobne džepove za laser, plazmu i vodeni mlaz; planira se sparrow verzija veće gustoće.

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 sva tri motora:API referenca →

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.

Cijene

€49/mjesec
10,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

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 →

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

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.

Materijal za preuzimanje
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
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. Danas radi preko Engine API-ja; sama aplikacija i dalje reže pravokutnike.
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.
Š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?
Nema SDK-ova ni webhookova — ali dostupna je OpenAPI 3.1 specifikacija na koju možete usmjeriti generator koda za tipizirani klijent. Većina poziva optimizacije običan je sinkroni HTTP koji izravno vraća gotov plan. Jedina je iznimka asinkroni motor max (samo 2D): POST /v1/optimize/2d s engine:"max" vraća 202 Accepted s jobId, a vi ispitujete GET /v1/jobs/{id} dok ne završi — za kad postizanje dokazanog optimuma vrijedi od nekoliko sekundi do minute računanja.
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