Blech-Nesting API
Ja — es gibt eine API für das Blech-Nesting. Unregelmäßige Blechteile — Winkel, Knotenbleche, Flansche, Dichtungen — auf Tafelmaterial zu schachteln ist ein True-Shape-Nesting-Problem, und die CutOptim Engine API löst es über HTTP unter POST /v1/optimize/nest. Ihr ERP, MES oder Ihre Angebotssoftware sendet die Teilekonturen und die Tafelgrößen als JSON und erhält das geschachtelte Layout, die Platzierung jedes Teils und die Tafelzahl zurück — für Laser, Plasma oder Wasserstrahl.
Das ist heute live. Die Nesting-Engine (jagua-rs, eine geometrische Kollisions-Engine) läuft produktiv hinter POST /v1/optimize/nest — eine andere Klasse von Algorithmus als der rechteckige Guillotine-Packer, die ein True-Shape-Nesting statt eines rechteckigen Schnittplans liefert.
Alle Formate, Engines, Limits und Codebeispiele für Entwickler: 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 }
}Nesting ist nicht Teil der öffentlichen Demo — dieses Beispiel mit einem kostenlosen Testschlüssel ausführen. Kostenlosen Testschlüssel erstellen
- Heute live auf
POST /v1/optimize/nest— beliebige Polygonteile (mit Löchern), nicht nur Rechtecke. - Ausschlusszonen je Tafel schachteln um einen Tafelfehler, eine Spannpratzenfläche oder einen vorbedruckten Bereich herum (
stock[].exclusions). - Materialtrennung: Versehen Sie Teile und Tafeln mit einem material, und jedes Teil wird nur auf Tafeln seines eigenen Materials geschachtelt.
- Hängen Sie ein meta-Objekt an (Teilenummer, Auftragsposition), und es kommt bei jeder platzierten Kopie zurück, sodass das Nesting mit Ihrem ERP übereinstimmt.
- Mehrere Tafelgrößen: Das Nesting vergleicht sie nach Tafelfläche oder mit
minimizeCostnach Preis und mischt sie bei Bedarf — eine halb leere letzte Tafel wechselt auf eine kleinere Größe. - Bei einem repräsentativen Auftrag mit 272 Teilen brauchte das Nesting 6 Tafeln, wo dieselben Teile per Bounding Box 9 brauchen — die ehrliche Kennzahl ist die Tafelzahl, nicht ein Dichteprozentsatz.
- Kostenlose Validierung:
POST /v1/validate/nestprüft einen Auftrag ohne Schlüssel und ohne Kontingent.
Warum Blechverarbeiter das brauchen
Blech ist teuer, und unregelmäßige Teile verschwenden es: Ein rechteckiger Packer behandelt die Bounding Box jedes Teils als massiv, sodass die Luft in einem Knotenblech oder einem Winkel weggeworfen wird. True-Shape-Nesting verzahnt die echten Konturen und holt diese Luft zurück. Bei einem repräsentativen Auftrag mit 272 Teilen brauchte das Nesting 6 Tafeln, wo dieselben Teile per Bounding Box 9 brauchen — die ehrliche Kennzahl ist die Tafelzahl bei denselben Teilen, nicht ein Dichteprozentsatz.
Was Sie senden und was zurückkommt
Senden Sie jedes Teil als Polygon (mit optionalen Löchern) und Stückzahl sowie die Tafelgrößen. Die Response liefert jede Platzierung als starre Transformation (eine Drehung in Grad, dann eine x/y-Verschiebung), die Tafelzahl, die Dichte und Teile, die nicht gepasst haben. Versehen Sie Teile und Tafeln mit einem material, und der Auftrag wird nach Material aufgeteilt — ein Teil wird nur auf Tafeln seines eigenen Materials geschachtelt —, und jedes meta-Objekt (Ihre ERP-Teilenummer, Auftragsposition) kommt unverändert bei jeder platzierten Kopie zurück, sodass das Nesting mit Ihrem System übereinstimmt. Jede Tafel trägt außerdem die Materialzeile, aus der sie geschnitten wurde, ihre Schnittlänge und Einstichzahl, und stockUsage summiert Tafeln und Preis je Tafelgröße.
Ausschlusszonen — um einen Fehler herum schachteln
Ausschlusszonen je Tafel (stock[].exclusions) lassen die Engine um einen Tafelfehler, eine Spannpratzenfläche oder einen vorbedruckten Bereich herum schachteln — eine Zone mit quality 0 ist für jedes Teil ein harter Sperrbereich. Die Drehung kann stufenlos oder eine diskrete Liste sein; options.minSeparation legt den Abstand zwischen den Teilen für die Brenner- oder Strahlbreite fest und options.edgeClearance den Abstand an der Tafelkante. Das Layout ist deterministisch: Ein fixierter seed reproduziert dasselbe Nesting für ein Angebot oder ein Audit.
Sofort für das Angebot, max für den Auftrag
POST /v1/optimize/nest antwortet synchron mit der lbf-Engine — deterministisch und innerhalb der Anfrage, schnell genug, um einen Auftrag zu kalkulieren, während der Kunde wartet. Wird der Auftrag an die Maschine freigegeben, senden Sie denselben Body mit engine: "max" und pollen GET /v1/jobs/{id}: Sie führt zuerst lbf aus, verwendet dann ein von Ihnen gesetztes Zeitbudget (options.timeBudgetMs) auf der Suche nach einem Layout mit weniger Tafeln und liefert nie mehr zurück. Die Response hat in beiden Fällen dieselbe Struktur; eine Tafel mit Ausschlusszonen wird innerhalb dieses Jobs weiterhin von lbf bedient, mit einer Warnung.
Eine Zusammenfassung auf zwei Seiten (PDF in English) — das Problem, was Sie senden und zurückbekommen, ein Request und eine Response und wie Sie auf der Engine aufbauen. Druckfertig, mit QR-Code zurück zu dieser Seite.
FAQ
Gibt es eine API für das Blech-Nesting?
POST /v1/optimize/nest. Sie senden jedes Teil als Polygon (mit optionalen Löchern) sowie die Tafelgrößen und erhalten das geschachtelte Layout, die Platzierung jeder Kopie und die Tafelzahl zurück — für Laser, Plasma oder Wasserstrahl. Es ist eine geometrische Kollisions-Engine, die heute produktiv läuft.Kommt es mit Tafelfehlern oder Spannbereichen zurecht?
stock[].exclusions) — Polygone, von denen die Engine jedes Teil fernhält. Eine Zone mit quality 0 ist ein harter Sperrbereich, sodass Sie um einen Fehler, eine Spannpratzenfläche oder einen vorbedruckten Bereich herum schachteln können. Das ist eine Fähigkeit, die die rechteckige API nicht ausdrücken kann.Kann ich Teile mit meinen ERP-Teilenummern versehen?
Wie viele Tafeln spart es?
Kann es zwischen mehreren Tafelgrößen wählen?
options.minimizeCost nach dem Gesamtpreis —, sodass die Antwort nicht von der Reihenfolge abhängt, in der Sie sie auflisten. Es kann auch Größen mischen: Jede Tafel, die am wenigsten gefüllte zuerst, wird auf den günstigeren oder kleineren Größen neu geschachtelt und ersetzt, wenn der Gesamtplan besser ist, sodass eine halb leere letzte Tafel oft auf eine kleinere Größe wechselt. sheets[].stock und stockUsage sagen, aus welcher Größe jede Tafel stammt.Meldet es, wie viel einer Tafel ein kleiner Auftrag nutzt?
usedWidth, usedHeight und usedArea — die Bounding Box ihrer platzierten Teile ab der Tafelecke —, sodass ein Angebot einen Streifen oder die Bounding Box statt der ganzen Tafel berechnen kann. Die am wenigsten gefüllte Tafel wird standardmäßig zu dieser Ecke hin verdichtet, mit Drehungs-Teilmengen dessen, was jedes Teil erlaubt; Tafelzahl und Preis ändern sich nie.