API de nesting pentru tăierea cu laser
Da — există un API pentru nesting la tăierea cu laser. Tăierea pieselor neregulate pe un laser este o problemă de nesting true-shape: o piesă este un poligon arbitrar, nu un dreptunghi, iar piesele se întrepătrund în buzunarele concave ale celorlalte. CutOptim Engine API o rezolvă prin HTTP la POST /v1/optimize/nest — software-ul CAD/CAM, ERP sau de ofertare trimite conturul pieselor și foile de stoc ca JSON și primește layoutul nesting, plasarea fiecărei piese și numărul de foi.
Este disponibil acum. Nestingul este o clasă de algoritm diferită de packerul dreptunghiular de tip ghilotină — un motor geometric de coliziuni (jagua-rs) care rulează în producție în spatele POST /v1/optimize/nest — astfel încât returnează un nest true-shape, nu un plan de tăiere dreptunghiular.
Toate formatele, motoarele, limitele și exemplele de cod pentru dezvoltatori: API de nesting CutOptim
{
"parts": [
{ "name": "bracket",
"polygon": [[0,0],[300,0],[300,100],[100,100],[100,300],[0,300]],
"qty": 12, "allowedRotations": "continuous" },
{ "name": "gusset",
"polygon": [[0,0],[280,0],[140,240]],
"qty": 8, "allowedRotations": [0,90,180,270] }
],
"stock": [{ "w": 3000, "h": 1500, "qty": 20 }],
"options": { "minSeparation": 0.3, "edgeClearance": 5 }
}Nesting-ul nu face parte din demo-ul public — rulați acest exemplu cu o cheie de test gratuită. Creează o cheie de test gratuită
- Disponibil acum pe
POST /v1/optimize/nest— piese poligonale arbitrare (cu găuri), nu doar dreptunghiuri. - Zonele de excludere pe foaie țin piesele departe de un defect, de amprenta unei cleme sau de o zonă pretipărită (
stock[].exclusions). - Rotație continuă sau discretă,
minSeparationpentru distanța dintre piese șiedgeClearancepentru marginea foii. - Lungimea de tăiere și numărul de străpungeri pe foaie, plus foile și prețul pe dimensiune de foaie (
stockUsage) — mai multe dimensiuni de foaie pot fi combinate acolo unde este mai ieftin. - Pe o lucrare reprezentativă de 272 de piese, nestul a folosit 6 foi acolo unde aceleași piese după bounding box au nevoie de 9 — metrica reală este numărul de foi, nu un procent de densitate.
- Determinist: un seed fixat face ca aceeași cerere să returneze același nest, pentru oferte și audituri.
- Validare gratuită:
POST /v1/validate/nestverifică o lucrare fără cheie și fără cotă.
De ce au nevoie atelierele de laser de nesting true-shape
Un packer dreptunghiular consideră bounding box-ul fiecărei piese ca fiind plin, deci aerul din crestătura unui suport în L sau dintr-un gusset triunghiular se irosește. Nestingul true-shape întrepătrunde conturele reale și recuperează acest aer. Pe o lucrare reprezentativă de 272 de piese, nestul a folosit 6 foi acolo unde aceleași piese plasate după bounding box au nevoie de 9 — metrica reală este numărul de foi pentru aceleași piese, nu un procent de densitate (un bounding box arată o densitate mai mare pentru un rezultat mai slab).
Ce se trimite și ce se primește
Se trimite fiecare piesă ca contur poligonal (cu găuri interioare opționale) și o cantitate, plus foile de stoc. Răspunsul oferă plasarea fiecărui exemplar ca transformare rigidă — o rotație în grade, apoi o translație x/y — nu un poligon reemis: rotiți conturul de intrare și adăugați decalajul pentru a reconstrui plasarea exact. Returnează și numărul de foi, densitatea pe foaie și totală, precum și piesele care nu au încăput — iar pentru fiecare foaie rândul de stoc din care a fost tăiată, lungimea de tăiere (conturul urmat de rază, contururi și găuri) și numărul de străpungeri, cu stockUsage însumând foile și prețul pe fiecare dimensiune de foaie. Dacă se transmit mai multe dimensiuni de foaie, nestul le compară — după suprafața foii sau după preț cu minimizeCost — și le poate combina acolo unde este mai ieftin, de exemplu mutând ultima foaie pe jumătate goală pe o dimensiune mai mică. Cu include:["svg","dxf"], layoutul obținut revine ca fișier direct în răspuns.
Zone de excludere și rotație continuă
Odată cu motorul de nesting vin două lucruri pe care un API dreptunghiular nu le poate exprima. Zonele de excludere pe foaie (stock[].exclusions) țin fiecare piesă departe de un defect, de amprenta unei cleme sau de o zonă pretipărită — o zonă cu quality 0 este o regiune interzisă absolut. Rotația poate fi continuă (orice unghi) sau o listă discretă; options.minSeparation setează distanța dintre piese (lățimea razei), iar options.edgeClearance distanța față de marginea foii, astfel încât cele două pot diferi. Layoutul este determinist: cu options.seed setat, aceeași cerere returnează același nest.
Instant pentru ofertă, max pentru comandă
POST /v1/optimize/nest răspunde sincron cu motorul lbf — determinist și în cadrul cererii, suficient de rapid pentru a calcula prețul unei lucrări cât timp așteaptă clientul. Când lucrarea este lansată la mașină, trimiteți același corp cu engine: "max" și interogați GET /v1/jobs/{id}: rulează întâi lbf, apoi consumă un buget de timp pe care îl stabiliți (options.timeBudgetMs) căutând un layout cu mai puține foi și nu returnează niciodată mai multe. Răspunsul are aceeași structură în ambele cazuri; o foaie cu zone de excludere este în continuare deservită de lbf în cadrul acelei lucrări, cu un avertisment.
Un rezumat de două pagini (PDF în limba engleză) — problema, ce se trimite și ce se primește, o cerere și un răspuns, precum și cum se construiește pe motor. Gata de tipărit, cu un cod QR către această pagină.
Întrebări frecvente
Există un API pentru nesting la tăierea cu laser?
POST /v1/optimize/nest. Trimiteți fiecare piesă ca contur poligonal (cu găuri opționale), plus foile de stoc, și primiți layoutul nesting, plasarea fiecărui exemplar și numărul de foi. Este un motor geometric de coliziuni, o clasă de algoritm diferită de packerul dreptunghiular de tip ghilotină, și rulează în producție astăzi.Prin ce diferă nestingul true-shape de împachetarea dreptunghiulară?
Poate evita o zonă deteriorată sau amprenta unei cleme pe foaie?
stock[].exclusions) — poligoane pe care motorul le ține libere de piese. O zonă cu quality 0 este o regiune interzisă absolut pentru fiecare piesă, deci se poate face nesting în jurul unui defect, al amprentei unei cleme sau al unei zone pretipărite. Este o capacitate pe care API-ul dreptunghiular nu o poate exprima.Pot valida gratuit o cerere în timpul integrării?
POST /v1/validate/nest validează schema aceluiași corp pe care îl primește endpointul nest, fără a rezolva — gratuit, fără cheie API, fără cotă — astfel încât echipa poate confirma că un payload este corect format în timp ce construiește integrarea. Engine API în sine are o perioadă de probă de 14 zile.Returnează lungimea de tăiere și numărul de străpungeri?
cutLength — perimetrul însumat al contururilor și găurilor pieselor plasate, în unitatea dumneavoastră — și pierces, câte unul pentru fiecare contur închis; metrics însumează ambele valori. Este lungimea geometrică a conturului: tăierea pe linie comună, lead-in-urile și micro-joint-urile nu sunt incluse, pentru că CAM-ul mașinii dumneavoastră le adaugă, deci este o bază solidă pentru timpul de mașină și gaz, nu traseul final al sculei.Poate sistemul meu de ofertare să taxeze doar partea utilizată dintr-o foaie?
usedWidth și usedHeight — punctul cel mai îndepărtat pe care îl ating piesele plasate față de originea foii, în unitatea dumneavoastră — și usedArea, produsul lor (stockUsage o însumează pe dimensiune de foaie). O tăiere orizontală este usedHeight × lățimea foii, o tăiere verticală usedWidth × înălțimea foii, un bounding box usedArea. Ambele motoare compactează implicit foaia cel mai puțin plină spre acel colț, încercând subseturi de rotații din ce permite fiecare piesă și niciodată un unghi nou, fără a modifica numărul de foi, prețul sau piesele plasate; options.compact: false dezactivează acest lucru. Dacă se taxează o fâșie în loc de bounding box, options.compactFor: "horizontal" păstrează cea mai mică înălțime utilizată, iar "vertical" cea mai mică lățime utilizată. Cât de mică devine suprafața utilizată depinde de piese.Prelucrarea tablei metalice — caz de utilizare (aplicație) · Benchmarkuri