API de nesting pentru tablă metalică
Da — există un API pentru nesting la tablă metalică. Nestingul pieselor neregulate din tablă — suporturi, gusset-uri, flanșe, garnituri — pe plăci de stoc este o problemă de nesting true-shape, iar CutOptim Engine API o rezolvă prin HTTP la POST /v1/optimize/nest. Software-ul ERP, MES sau de ofertare trimite conturul pieselor și dimensiunile plăcilor ca JSON și primește layoutul nesting, plasarea fiecărei piese și numărul de plăci — pentru laser, plasmă sau jet de apă.
Este disponibil acum. Motorul de nesting (jagua-rs, un motor geometric de coliziuni) rulează în producție în spatele POST /v1/optimize/nest — o clasă de algoritm diferită de packerul dreptunghiular de tip ghilotină, care 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": "gusset",
"polygon": [[0,0],[400,0],[0,400]],
"qty": 16, "allowedRotations": [0,90,180,270] },
{ "name": "bracket",
"polygon": [[0,0],[350,0],[350,120],[120,120],[120,350],[0,350]],
"qty": 10, "allowedRotations": "continuous",
"meta": { "part": "BRK-350" } }
],
"stock": [
{ "w": 3000, "h": 1500, "qty": 12,
"exclusions": [{ "polygon": [[0,0],[250,0],[0,250]], "quality": 0 }] }
],
"options": { "minSeparation": 2, "edgeClearance": 10 }
}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 fac nesting în jurul unui defect al plăcii, al amprentei unei cleme sau al unei zone pretipărite (
stock[].exclusions). - Partiționare pe materiale: etichetați piesele și plăcile, iar fiecare piesă este plasată doar pe tablă din propriul material.
- Atașați un obiect meta (numărul piesei, linia de comandă) și el revine pe fiecare exemplar plasat, astfel încât nestul se reconciliază cu ERP-ul dumneavoastră.
- Mai multe dimensiuni de placă: nestul le compară după suprafața plăcii sau după preț cu
minimizeCostși le poate combina — ultima placă pe jumătate goală trece pe o dimensiune mai mică. - 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 plăci, nu un procent de densitate.
- Validare gratuită:
POST /v1/validate/nestverifică o lucrare fără cheie și fără cotă.
De ce au nevoie de el prelucrătorii de tablă
Tabla este scumpă, iar piesele neregulate o irosesc: un packer dreptunghiular consideră bounding box-ul fiecărei piese ca fiind plin, deci aerul din interiorul unui gusset sau al unui suport în L se pierde. 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 după bounding box au nevoie de 9 — metrica reală este numărul de plăci pentru aceleași piese, nu un procent de densitate.
Ce se trimite și ce se primește
Se trimite fiecare piesă ca poligon (cu găuri opționale) și o cantitate, plus dimensiunile plăcilor. Răspunsul oferă fiecare plasare ca transformare rigidă (o rotație în grade, apoi o translație x/y), numărul de plăci, densitatea și piesele care nu au încăput. Etichetați piesele și plăcile cu un material și lucrarea este împărțită pe materiale — o piesă este plasată doar pe tablă din propriul material —, iar orice obiect meta (numărul piesei din ERP, linia de comandă) revine identic pe fiecare exemplar plasat, astfel încât nestul se reconciliază cu sistemul dumneavoastră. Fiecare placă conține și rândul de stoc din care a fost tăiată, lungimea de tăiere și numărul de străpungeri, iar stockUsage însumează plăcile și prețul pe fiecare dimensiune de placă.
Zone de excludere — nesting în jurul unui defect
Zonele de excludere pe foaie (stock[].exclusions) permit motorului să facă nesting în jurul unui defect al plăcii, al amprentei unei cleme sau al unei zone pretipărite — o zonă cu quality 0 este o regiune interzisă absolut pentru fiecare piesă. Rotația poate fi continuă sau o listă discretă; options.minSeparation setează distanța dintre piese pentru lățimea flăcării sau a razei, iar options.edgeClearance distanța față de marginea plăcii. Layoutul este determinist: un seed fixat reproduce același nest pentru o ofertă sau un audit.
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 plăci ș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 tablă metalică?
POST /v1/optimize/nest. Trimiteți fiecare piesă ca poligon (cu găuri opționale), plus dimensiunile plăcilor, și primiți layoutul nesting, plasarea fiecărui exemplar și numărul de plăci — pentru laser, plasmă sau jet de apă. Este un motor geometric de coliziuni care rulează în producție astăzi.Poate ține cont de defectele plăcii sau de zonele de prindere cu cleme?
stock[].exclusions) — poligoane pe care motorul le ține libere de orice piesă. O zonă cu quality 0 este o regiune interzisă absolut, 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 eticheta piesele cu numerele de piesă din ERP?
Câte plăci va economisi?
Poate alege între mai multe dimensiuni de placă?
options.minimizeCost — astfel încât răspunsul nu depinde de ordinea în care sunt listate. Poate combina și dimensiuni: fiecare placă, începând cu cea mai puțin plină, este re-nestată pe dimensiunile mai ieftine sau mai mici și înlocuită atunci când întregul plan este mai bun, astfel încât ultima placă pe jumătate goală trece adesea pe o dimensiune mai mică. sheets[].stock și stockUsage indică din ce dimensiune provine fiecare placă.Raportează cât din placă folosește o lucrare mică?
usedWidth, usedHeight și usedArea — bounding box-ul pieselor sale plasate, măsurat din colțul plăcii — astfel încât o ofertă poate taxa o fâșie sau bounding box-ul în loc de întreaga placă. Placa cea mai puțin plină este compactată implicit spre acel colț, cu subseturi de rotații din ce permite fiecare piesă; numărul de plăci și prețul nu se schimbă niciodată.Prelucrarea tablei metalice — caz de utilizare (aplicație) · Benchmarkuri