Sari la conținutul principal
← CutOptim Engine APIEngine API · nesting · disponibil acum

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

POST /v1/optimize/nest
{
  "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/nest verifică 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.

Resursă descărcabilă
Fișă informativă — API nesting tablă metalică

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

PDF2 paginiGratuit
Descarcă PDF-ul

Întrebări frecvente

Există un API pentru nesting la tablă metalică?
Da. Nestingul true-shape al pieselor neregulate pe plăci de tablă este al patrulea mod al CutOptim Engine API, 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?
Da. Fiecare placă poate purta zone de excludere (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?
Da. Orice rând de piesă sau de placă poate purta un obiect meta — numărul piesei, linia de comandă sau referința clientului — iar el revine identic pe fiecare exemplar plasat și pe fiecare placă, astfel încât nestul se reconciliază cu propriul sistem. Nu influențează niciodată layoutul. Etichetați și un material, iar lucrarea este împărțită astfel încât o piesă să fie plasată doar pe tablă din propriul material.
Câte plăci va economisi?
Depinde de combinația de piese, așa că nu indicăm un procent general. Metrica reală, comparabilă, este numărul de plăci pentru aceleași piese: pe o lucrare reprezentativă de 272 de piese, nestul true-shape a folosit 6 plăci acolo unde aceleași piese plasate după bounding box au nevoie de 9. Un procent de densitate nu este comparabil cu randamentul unui packer dreptunghiular, pentru că un bounding box consideră aerul din crestături ca fiind plin.
Poate alege între mai multe dimensiuni de placă?
Da. Trimiteți câte un rând de stoc pentru fiecare dimensiune de placă (cu preț, dacă se dorește cel mai ieftin plan), iar nestul le compară — după suprafața totală a plăcilor sau după prețul total cu 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ă?
Da. Fiecare placă conține 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