Lemez nesting API
Igen, van API a lemezalkatrészek nestingjéhez. Szabálytalan lemezalkatrészek — konzolok, merevítő lemezek, karimák, tömítések — táblalemezre nestelése valódi alakú nesting feladat, és a CutOptim Engine API a POST /v1/optimize/nest végponton oldja meg HTTP-n. Az ERP-d, MES-ed vagy árajánlatkészítő szoftvered JSON-ban elküldi az alkatrészek körvonalait és a lemezméreteket, és visszakapja a nestelt kiosztást, minden darab helyét és a lemezszámot — lézeres, plazmás vagy vízsugaras vágáshoz.
Ez már ma működik. A nesting motor (jagua-rs, egy geometriai ütközésmotor) éles környezetben fut a POST /v1/optimize/nest mögött — a téglalapos guillotine pakolótól eltérő algoritmusosztály, amely valódi alakú nestet ad vissza téglalapos vágásterv helyett.
Minden formátum, motor, korlát és kódminta fejlesztőknek: CutOptim nesting API
{
"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 }
}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 egy lemezhiba, egy leszorító helye vagy egy előre nyomtatott terület körül nestelnek (
stock[].exclusions). - Anyag szerinti partíció: jelöld meg az alkatrészeket és a lemezeket, és minden alkatrész csak a saját anyagú lemezen nestelődik.
- Csatolj meta objektumot (cikkszám, rendelési sor), és minden elhelyezett példánynál visszakapod, így a nest egyeztethető az ERP-ddel.
- Több lemezméret: a nest összehasonlítja őket lemezterület szerint, vagy a
minimizeCostmellett ár szerint, és keverheti is őket — egy félig üres utolsó lemez kisebb méretre vált. - 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 lemezszám, nem a sűrűség-százalék.
- Ingyenes ellenőrzés: a
POST /v1/validate/nestkulcs és kvóta nélkül ellenőrzi a munkát.
Miért kell a lemezmegmunkáló műhelyeknek
A lemez drága, a szabálytalan alkatrészek pedig pazarolják: a téglalapos pakoló minden alkatrész befoglaló téglalapját tömörnek számolja, így a merevítő lemez vagy az L-konzol belsejében lévő üres tér 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 lemezszám ugyanazokkal a darabokkal, nem a sűrűség-százalék.
Mit küldesz, és mit kapsz vissza
Minden alkatrészt poligonként (opcionális lyukakkal) és mennyiséggel küldesz, plusz a lemezméreteket. A válasz minden elhelyezést merev transzformációként ad (forgatás fokban, majd x/y eltolás), továbbá a lemezszámot, a sűrűséget és azokat a darabokat, amelyek nem fértek el. Jelöld meg az alkatrészeket és a lemezeket egy anyaggal, és a munka anyag szerint particionálódik — egy alkatrész csak a saját anyagú lemezen nestelődik —, a csatolt meta objektum (az ERP-s cikkszámod, rendelési sor) pedig szó szerint visszajön minden elhelyezett példánynál, így a nest egyeztethető a rendszeredben. Minden lemez hordozza azt az alapanyag-sort is, amelyből kivágták, a vágáshosszát és az átszúrásszámát, a stockUsage pedig összesíti a lemezeket és az árat lemezméretenként.
Kizárási zónák — nestelés egy hiba körül
A táblánkénti kizárási zónák (stock[].exclusions) lehetővé teszik, hogy a motor egy lemezhiba, egy leszorító helye vagy egy előre nyomtatott terület körül nesteljen — a quality-0 zóna minden alkatrész számára tiltott terület. A forgatás lehet folyamatos vagy diszkrét lista; az options.minSeparation az alkatrészek közötti távolságot adja meg a pisztoly vagy a sugár szélességéhez, az options.edgeClearance pedig a lemez szélén hagyott távolságot. Az elrendezés determinisztikus: egy rögzített seed ugyanazt a nestet reprodukálja árajánlathoz vagy auditáláshoz.
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 lemezes 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 lemezalkatrészek nestingjéhez?
POST /v1/optimize/nest. Minden alkatrészt poligonként (opcionális lyukakkal) küldesz, plusz a lemezméreteket, és visszakapod a nestelt kiosztást, minden példány helyét és a lemezszámot — lézeres, plazmás vagy vízsugaras vágáshoz. Ez egy geometriai ütközésmotor, amely ma már éles környezetben fut.Kezeli a lemezhibákat vagy a leszorítók helyét?
stock[].exclusions) — poligonokat, amelyektől a motor minden alkatrészt távol tart. A quality-0 zóna 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.Megjelölhetem az alkatrészeket az ERP-s cikkszámaimmal?
Hány lemezt fog megspórolni?
Tud választani több lemezméret között?
options.minimizeCost mellett a teljes ár szerint —, így az eredmény nem függ attól, milyen sorrendben sorolod fel őket. Keverheti is a méreteket: minden lemezt, a legkevésbé tele lévővel kezdve, újranestel az olcsóbb vagy kisebb méretekre, és kicseréli, ha a teljes terv jobb, így egy félig üres utolsó lemez gyakran kisebb méretre vált. A sheets[].stock és a stockUsage megmondja, melyik méretből jött minden lemez.Jelenti, hogy egy kis munka a lemez mekkora részét használja?
usedWidth, a usedHeight és a usedArea értéket — az elhelyezett alkatrészek befoglaló téglalapja a lemez sarkától —, így egy árajánlat a teljes lemez helyett egy sávot vagy a befoglaló téglalapot számlázhatja. A legkevésbé tele lévő lemezt alapértelmezésben e sarok felé tömörítjük, azokkal a forgatás-részhalmazokkal, amelyeket az egyes alkatrészek megengednek; a lemezszám és az ár sosem változik.