Ugrás a tartalomhoz
← CutOptim Engine APIEngine API · nesting · már élesben

Lézervágás nesting API

Igen, van API a lézervágás nestingjéhez. Szabálytalan alkatrészek lézeres vágása valódi alakú nesting feladat: egy alkatrész tetszőleges poligon, nem téglalap, és az alkatrészek egymás konkáv zsebeibe illeszkednek. A CutOptim Engine API ezt a POST /v1/optimize/nest végponton oldja meg HTTP-n — a CAD/CAM, ERP vagy árajánlatkészítő szoftvered JSON-ban elküldi az alkatrészek körvonalait és az alaptáblákat, és visszakapja a nestelt kiosztást, minden darab helyét és a táblaszámot.

Ez már ma működik. A nesting más algoritmusosztály, mint a téglalapos guillotine pakoló — egy geometriai ütközésmotor (jagua-rs), amely éles környezetben fut a POST /v1/optimize/nest mögött —, így valódi alakú nestet ad vissza, nem téglalapos vágástervet.

Minden formátum, motor, korlát és kódminta fejlesztőknek: CutOptim nesting API

POST /v1/optimize/nest
{
  "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 }
}

A nesting nincs benne a nyilvános demóban — ezt a példát ingyenes tesztkulccsal futtathatod. Ingyenes tesztkulcs létrehozása

  • Már ma él a POST /v1/optimize/nest végponton — tetszőleges poligon alkatrészek (lyukakkal), nem csak téglalapok.
  • A táblánkénti kizárási zónák távol tartják az alkatrészeket egy hibától, egy leszorító helyétől vagy egy előre nyomtatott területtől (stock[].exclusions).
  • Folyamatos vagy diszkrét forgatás, minSeparation az alkatrészek távolságához és edgeClearance a tábla széléhez.
  • Táblánkénti vágáshossz és átszúrásszám, plusz táblák és ár táblaméretenként (stockUsage) — több táblaméret keverhető, ahol az olcsóbb.
  • Egy jellemző, 272 darabos munkán a nest 6 táblát használt ott, ahol ugyanezek a darabok befoglaló téglalappal 9-et igényelnek — a tisztességes mérőszám a táblaszám, nem a sűrűség-százalék.
  • Determinisztikus: egy rögzített seed ugyanahhoz a kéréshez ugyanazt a nestet adja, árajánlathoz és auditáláshoz.
  • Ingyenes ellenőrzés: a POST /v1/validate/nest kulcs és kvóta nélkül ellenőrzi a munkát.

Miért kell a lézeres műhelyeknek a valódi alakú nesting

A téglalapos pakoló minden alkatrész befoglaló téglalapját tömörnek számolja, így egy L-konzol vagy egy háromszög alakú bütyök belső üressége elvész. A valódi alakú nesting a tényleges körvonalakat illeszti egymásba, és ezt az üres teret visszanyeri. Egy jellemző, 272 darabos munkán a nest 6 táblát használt ott, ahol ugyanezek a darabok befoglaló téglalappal 9-et igényelnek — a tisztességes mérőszám a táblaszám ugyanazokkal a darabokkal, nem a sűrűség-százalék (a befoglaló téglalap magasabb sűrűséget mutat egy rosszabb eredményre).

Mit küldesz, és mit kapsz vissza

Minden alkatrészt poligon-körvonalként (opcionális belső lyukakkal) és mennyiséggel küldesz, plusz az alaptáblákat. A válasz minden példány helyét merev transzformációként adja — forgatás fokban, majd x/y eltolás —, nem újra kiírt poligonként: forgasd el a bemeneti körvonalat, add hozzá az eltolást, és pontosan megkapod az elhelyezést. Visszaadja a táblaszámot, a táblánkénti és az összesített sűrűséget, és azokat a darabokat, amelyek nem fértek el — továbbá minden táblához azt az alapanyag-sort, amelyből kivágták, a vágáshosszt (a sugár által követett kontúr, körvonalak és lyukak) és az átszúrások számát; a stockUsage összesíti a táblákat és az árat táblaméretenként. Ha több táblaméretet adsz meg, a nest összehasonlítja őket — lapterület szerint, vagy a minimizeCost mellett ár szerint —, és ott, ahol az olcsóbb, keverheti is őket, például egy félig üres utolsó táblát kisebb méretre vált. Kérd az include:["svg","dxf"] értéket, és az elért kiosztás fájlként, beágyazva érkezik.

Kizárási zónák és folyamatos forgatás

Két dolgot, amit egy téglalapos API nem tud kifejezni, a nesting motor hoz magával. A táblánkénti kizárási zónák (stock[].exclusions) minden alkatrészt távol tartanak egy hibától, egy leszorító helyétől vagy egy előre nyomtatott területtől — a quality-0 zóna tiltott terület. A forgatás lehet folyamatos (bármilyen szög) vagy diszkrét lista; az options.minSeparation az alkatrészek közötti távolságot adja meg (a sugár szélessége), az options.edgeClearance pedig a tábla szélétől mért távolságot, így a kettő eltérhet. Az elrendezés determinisztikus: állítsd be az options.seed értéket, és ugyanaz a kérés ugyanazt a nestet adja.

Azonnal az árajánlathoz, max a megrendeléshez

A POST /v1/optimize/nest az lbf motorral szinkron válaszol — determinisztikusan, a kérésen belül, elég gyorsan ahhoz, hogy a munkát az ügyfél várakozása közben beárazd. Amikor a munkát a gépre engedik, küldd el ugyanazt a törzset engine: "max" értékkel, és kérdezd le a GET /v1/jobs/{id} végpontot: előbb lefuttatja az lbf-et, majd az általad megadott időkeretet (options.timeBudgetMs) arra költi, hogy kevesebb táblás elrendezést keressen, és sosem ad vissza többet. A válasz alakja mindkét esetben ugyanaz; a kizárási zónás táblát ebben a munkában is az lbf szolgálja ki, figyelmeztetéssel.

Letölthető anyag
Lézervágás nesting API — összefoglaló

Kétoldalas összefoglaló (PDF, angol nyelven) — a probléma, mit küldesz és mit kapsz vissza, egy kérés és egy válasz, és hogyan építhetsz a motorra. Nyomtatásra kész, QR-kóddal erre az oldalra.

PDF2 oldalIngyenes
PDF letöltése

Gyakori kérdések

Van API lézervágás nestingjéhez?
Igen. Szabálytalan poligonok valódi alakú nestingje a CutOptim Engine API negyedik módja, a POST /v1/optimize/nest. Minden alkatrészt poligon-körvonalként (opcionális lyukakkal) küldesz, plusz az alaptáblákat, és visszakapod a nestelt kiosztást, minden példány helyét és a táblaszámot. Ez egy geometriai ütközésmotor, a téglalapos guillotine pakolótól eltérő algoritmusosztály, és ma már éles környezetben fut.
Miben más a valódi alakú nesting, mint a téglalapos pakolás?
A téglalapos pakoló befoglaló téglalapokat helyez el, így a szabálytalan alkatrész belsejében lévő üres tér elvész; a valódi alakú nesting a tényleges körvonalakat illeszti egymás konkáv zsebeibe. Az összevethető mérőszám a táblaszám ugyanazokkal a darabokkal — egy jellemző, 272 darabos munkán a nest 6 táblát használt a befoglaló téglalappal számolt 9 ellenében. A sűrűség-százalék a kettő között NEM összevethető, mert a befoglaló téglalapos pakoló a bemarási üres teret tömörnek számolja, és egy rosszabb eredményre magasabb sűrűséget mutat.
Ki tudja kerülni a tábla egy sérült részét vagy egy leszorító helyét?
Igen. Minden alaptábla hordozhat kizárási zónákat (stock[].exclusions) — poligonokat, amelyektől a motor távol tartja az alkatrészeket. A quality-0 zóna minden alkatrész számára tiltott terület, így egy hiba, egy leszorító helye vagy egy előre nyomtatott terület köré is nestelhetsz. Ezt a képességet a téglalapos API nem tudja kifejezni.
Ellenőrizhetek egy kérést ingyen az integráció közben?
Igen. A POST /v1/validate/nest megoldás nélkül séma-ellenőrzi ugyanazt a törzset, amelyet a nest végpont fogad — ingyen, API-kulcs és kvóta nélkül —, így a csapatod az integráció építése közben meggyőződhet arról, hogy a payload jól formált. Maga az Engine API 14 napos próbaidőszakkal indul.
Visszaadja a vágáshosszt és az átszúrások számát?
Igen. Minden tábla hordozza a cutLength értéket — az elhelyezett alkatrészek körvonalainak és lyukainak összegzett kerülete, az általad használt mértékegységben — és a pierces értéket, zárt kontúronként egyet; a metrics mindkettőt összesíti. Ez a geometriai kontúrhossz: a közös vágás (common-line), a bevezetések és a mikrokötések nincsenek benne, mert azt a géped CAM-je adja hozzá, így a gépidő és a gázfogyasztás jó alapja, nem pedig a végleges szerszámpálya.
Az árazó rendszerem csak a tábla felhasznált részét számlázhatja?
Az API megadja hozzá a számokat; a számlázási szabály a tiéd marad. Minden tábla hordozza a usedWidth és a usedHeight értéket — a legtávolabbi pont, amelyet az elhelyezett alkatrészei elérnek a tábla origójától, az általad használt mértékegységben — és a usedArea értéket, ezek szorzatát (a stockUsage táblaméretenként összesíti). Egy vízszintes vágás a usedHeight × a tábla szélessége, egy függőleges vágás a usedWidth × a tábla magassága, egy befoglaló téglalap a usedArea. Mindkét motor alapértelmezésben a legkevésbé telt táblát is e sarok felé tömöríti, kipróbálva azokat a forgatás-részhalmazokat, amelyeket az egyes alkatrészek megengednek, és soha nem új szöget, a táblaszám, az ár és az elhelyezett darabok megváltoztatása nélkül; az options.compact: false kikapcsolja. Ha a téglalap helyett egy sávot számlázol, az options.compactFor: "horizontal" a legalacsonyabb felhasznált magasságot, a "vertical" a legkisebb felhasznált szélességet tartja. Hogy mennyire kicsi lesz a felhasznált terület, az alkatrészektől függ.

Lemezmegmunkálási használati eset (app) · Benchmarkok