Přejít na hlavní obsah
← CutOptim Engine APIEngine API · nesting · funguje už dnes

API pro nesting plechu

Ano — API pro nesting plechu existuje. Rozmisťování nepravidelných plechových dílů — konzol, výztuh, přírub, těsnění — na tabule plechu je úloha nestingu podle skutečného tvaru a CutOptim Engine API ji řeší přes HTTP na POST /v1/optimize/nest. Váš ERP, MES nebo kalkulační software pošle obrysy dílů a rozměry tabulí jako JSON a dostane zpět rozmístěné rozvržení, umístění každého dílu a počet tabulí — pro laser, plazmu i vodní paprsek.

Funguje to už dnes. Nestingové jádro (jagua-rs, geometrické kolizní jádro) v produkci běží za POST /v1/optimize/nest — jiná třída algoritmu než obdélníkový gilotinový packer, který vrací nest podle skutečného tvaru, ne obdélníkový plán řezání.

Všechny formáty, enginy, limity a ukázky kódu pro vývojáře: API pro 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 není součástí veřejného dema — spusťte tento příklad s bezplatným testovacím klíčem. Vytvořit bezplatný testovací klíč

  • Funguje už dnes na POST /v1/optimize/nest — libovolné polygonální díly (s otvory), nejen obdélníky.
  • Vyloučené zóny po jednotlivých tabulích rozmisťují kolem vady plechu, otisku upínky nebo předtištěné plochy (stock[].exclusions).
  • Rozdělení podle materiálu: označte díly a tabule a každý díl se rozmisťuje jen na tabuli vlastního materiálu.
  • Připojte objekt meta (číslo dílu, řádek zakázky) a vrátí se u každé umístěné kopie, takže nest sedí s vaším ERP.
  • Několik velikostí tabulí: nest je porovná podle plochy tabulí, nebo podle ceny s minimizeCost, a může je míchat — poloprázdná poslední tabule se přesune na menší velikost.
  • Na reprezentativní zakázce o 272 dílech použil nest 6 tabulí, kde tytéž díly podle opsaného obdélníku potřebují 9 — poctivá metrika je počet tabulí, ne procento zaplnění.
  • Validace zdarma: POST /v1/validate/nest zkontroluje zakázku bez klíče a bez kvóty.

Proč to plechaři potřebují

Plech je drahý a nepravidelné díly jím plýtvají: obdélníkový packer bere opsaný obdélník každého dílu jako plný, takže vzduch uvnitř výztuhy nebo L-konzoly přijde nazmar. Nesting podle skutečného tvaru zaklesává skutečné obrysy do sebe a tento vzduch získá zpět. Na reprezentativní zakázce o 272 dílech použil nest 6 tabulí, kde tytéž díly podle opsaného obdélníku potřebují 9 — poctivá metrika je počet tabulí na týchž dílech, ne procento zaplnění.

Co posíláte a co se vrátí

Pošlete každý díl jako polygon (s volitelnými otvory) a množství, k tomu rozměry tabulí. Odpověď vrací každé umístění jako tuhou transformaci (rotace ve stupních, poté posun x/y), počet tabulí, zaplnění a díly, které se nevešly. Označte díly a tabule štítkem material a zakázka se rozdělí podle materiálu — díl se rozmisťuje jen na tabuli vlastního materiálu — a každý objekt meta (číslo dílu z vašeho ERP, řádek zakázky) se vrátí doslovně u každé umístěné kopie, takže nest sedí s vaším systémem. Každá tabule navíc nese řádek zásoby, ze kterého byla vyřezána, délku řezu a počet propalů; stockUsage sčítá tabule a cenu podle velikosti tabule.

Vyloučené zóny — rozmisťování kolem vady

Vyloučené zóny po jednotlivých tabulích (stock[].exclusions) umožňují enginu rozmisťovat kolem vady plechu, otisku upínky nebo předtištěné plochy — zóna s quality 0 je zakázaná oblast pro každý díl. Otáčení může být spojité nebo diskrétní seznam; options.minSeparation nastavuje rozestup mezi díly podle šířky hořáku nebo paprsku a options.edgeClearance odstup od okraje tabule. Rozvržení je deterministické: připnuté seed zopakuje stejný nest pro nabídku nebo audit.

Okamžitě pro nabídku, max pro zakázku

POST /v1/optimize/nest odpovídá synchronně s enginem lbf — deterministicky a v rámci požadavku, dost rychle, aby se zakázka dala nacenit, zatímco zákazník čeká. Když se zakázka uvolňuje na stroj, pošlete stejné tělo s engine: "max" a dotazujte GET /v1/jobs/{id}: nejdřív spustí lbf, pak stráví časový rozpočet, který nastavíte (options.timeBudgetMs), hledáním rozvržení s méně tabulemi a nikdy nevrátí víc. Odpověď má v obou případech stejnou podobu; tabuli s vyloučenými zónami v té úloze stále obsluhuje lbf, s upozorněním.

Materiál ke stažení
API pro nesting plechu — jednostránkový přehled

Dvoustránkové shrnutí (PDF v angličtině) — problém, co posíláte a co dostanete zpět, ukázka požadavku a odpovědi a jak na jádru stavět. Připraveno k tisku, s QR kódem zpět na tuto stránku.

PDF2 stranyZdarma
Stáhnout PDF

Časté dotazy

Existuje API pro nesting plechu?
Ano. Nesting nepravidelných dílů na tabule plechu podle skutečného tvaru je čtvrtý režim CutOptim Engine API, POST /v1/optimize/nest. Pošlete každý díl jako polygon (s volitelnými otvory) a k tomu rozměry tabulí a dostanete zpět rozmístěné rozvržení, umístění každé kopie a počet tabulí — pro laser, plazmu nebo vodní paprsek. Je to geometrické kolizní jádro, které v produkci běží už dnes.
Zvládne vady plechu nebo oblasti upínek?
Ano. Každá tabule může nést vyloučené zóny (stock[].exclusions) — polygony, od kterých engine drží každý díl pryč. Zóna s quality 0 je zakázaná oblast, takže můžete rozmisťovat kolem vady, otisku upínky nebo předtištěné plochy. Obdélníkové API tuto schopnost vyjádřit neumí.
Mohu díly označit čísly dílů z mého ERP?
Ano. Každý řádek dílu nebo tabule může nést objekt meta — vaše číslo dílu, řádek zakázky nebo referenci zákazníka — a vrátí se doslovně u každé umístěné kopie i u každé tabule, takže nest sedí s vaším systémem. Rozvržení to nikdy neovlivní. Označte i material a zakázka se rozdělí tak, aby se díl rozmisťoval jen na tabuli vlastního materiálu.
Kolik tabulí ušetří?
Záleží na skladbě dílů, proto paušální procento neuvádíme. Poctivá, srovnatelná metrika je počet tabulí na týchž dílech: na reprezentativní zakázce o 272 dílech použil nest podle skutečného tvaru 6 tabulí, kde tytéž díly rozmístěné podle opsaného obdélníku potřebují 9. Procento zaplnění není srovnatelné s využitím obdélníkového packeru, protože opsaný obdélník počítá vzduch ve výřezech jako plný.
Dokáže vybírat mezi několika velikostmi tabulí?
Ano. Pošlete jeden řádek zásoby na velikost tabule (s cenou, pokud chcete nejlevnější plán) a nest je porovná — podle celkové plochy tabulí, nebo podle celkové ceny s options.minimizeCost — takže odpověď nezávisí na pořadí, v jakém je uvedete. Může velikosti i míchat: každá tabule, ta nejméně zaplněná jako první, se znovu rozmístí na levnější nebo menší velikosti a nahradí se, když je plán jako celek lepší, takže se poloprázdná poslední tabule často přesune na menší velikost. sheets[].stock a stockUsage říkají, z jaké velikosti každá tabule pochází.
Hlásí, kolik tabule malá zakázka využije?
Ano. Každá tabule nese usedWidth, usedHeight a usedArea — opsaný obdélník jejích umístěných dílů od rohu tabule — takže nabídka může účtovat pás nebo opsaný obdélník místo celé tabule. Nejméně zaplněná tabule se ve výchozím stavu kompaktuje směrem k tomuto rohu, s podmnožinami natočení, která každý díl povoluje; počet tabulí a cena se nikdy nezmění.

Použití pro zpracování plechu (aplikace) · Benchmarky