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
{
"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/nestvé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,
minSeparationaz alkatrészek távolságához ésedgeClearancea 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/nestkulcs é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.
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.
Gyakori kérdések
Van API lézervágás nestingjéhez?
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?
Ki tudja kerülni a tábla egy sérült részét vagy egy leszorító helyét?
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?
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?
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?
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.