Nesting API für Laserschneiden
Ja — es gibt eine API für das Laser-Nesting. Unregelmäßige Teile auf einem Laser zu schneiden ist ein True-Shape-Nesting-Problem: Ein Teil ist ein beliebiges Polygon, kein Rechteck, und Teile greifen in die konkaven Aussparungen der anderen. Die CutOptim Engine API löst es über HTTP unter POST /v1/optimize/nest — Ihre CAD/CAM-, ERP- oder Angebotssoftware sendet die Teilekonturen und die Rohtafeln als JSON und erhält das geschachtelte Layout, die Platzierung jedes Teils und die Tafelzahl zurück.
Das ist heute live. Nesting ist eine andere Klasse von Algorithmus als der rechteckige Guillotine-Packer — eine geometrische Kollisions-Engine (jagua-rs), die produktiv hinter POST /v1/optimize/nest läuft —, sie liefert also ein True-Shape-Nesting, keinen rechteckigen Schnittplan.
Alle Formate, Engines, Limits und Codebeispiele für Entwickler: 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 }
}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 halten Teile von einem Fehler, einer Spannpratzenfläche oder einem vorbedruckten Bereich fern (
stock[].exclusions). - Stufenlose oder diskrete Drehung,
minSeparationfür den Teileabstand undedgeClearancefür die Tafelkante. - Schnittlänge und Einstichzahl je Tafel sowie Tafeln und Preis je Tafelgröße (
stockUsage) — mehrere Tafelgrößen dürfen gemischt werden, wo das günstiger ist. - 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.
- Deterministisch: Ein fixierter seed lässt dieselbe Anfrage dasselbe Nesting zurückgeben, für Angebote und Audits.
- Kostenlose Validierung:
POST /v1/validate/nestprüft einen Auftrag ohne Schlüssel und ohne Kontingent.
Warum Laserbetriebe True-Shape-Nesting brauchen
Ein rechteckiger Packer zählt die Bounding Box jedes Teils als massiv, sodass die Luft in der Ecke eines Winkelblechs oder eines dreieckigen Knotenblechs verschwendet wird. True-Shape-Nesting verzahnt die tatsächlichen 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 (eine Bounding Box weist für ein schlechteres Ergebnis eine höhere Dichte aus).
Was Sie senden und was zurückkommt
Senden Sie jedes Teil als Polygonkontur (mit optionalen Innenlöchern) und Stückzahl sowie die Rohtafeln. Die Response liefert die Platzierung jeder Kopie als starre Transformation — eine Drehung in Grad, dann eine x/y-Verschiebung —, nicht als neu ausgegebenes Polygon: Drehen Sie Ihre Eingabekontur und addieren Sie den Versatz, um die Platzierung exakt zu rekonstruieren. Sie liefert außerdem die Tafelzahl, die Dichte je Tafel und insgesamt sowie Teile, die nicht gepasst haben — und für jede Tafel die Materialzeile, aus der sie geschnitten wurde, die Schnittlänge (die Kontur, der der Strahl folgt, Außenkonturen und Löcher) und die Zahl der Einstiche, wobei stockUsage Tafeln und Preis je Tafelgröße summiert. Geben Sie mehrere Tafelgrößen an, und das Nesting vergleicht sie — nach Tafelfläche oder mit minimizeCost nach Preis — und mischt sie bei Bedarf, wo das günstiger ist, etwa indem es eine halb leere letzte Tafel auf eine kleinere Größe verlegt. Fordern Sie include:["svg","dxf"] an, und das erzielte Layout kommt als Datei direkt zurück.
Ausschlusszonen und stufenlose Drehung
Zwei Dinge, die eine rechteckige API nicht ausdrücken kann, bringt die Nesting-Engine mit. Ausschlusszonen je Tafel (stock[].exclusions) halten jedes Teil von einem Fehler, einer Spannpratzenfläche oder einem vorbedruckten Bereich fern — eine Zone mit quality 0 ist ein harter Sperrbereich. Die Drehung kann stufenlos sein (jeder Winkel) oder eine diskrete Liste; options.minSeparation legt den Abstand zwischen den Teilen fest (die Strahlbreite) und options.edgeClearance den Abstand zur Tafelkante, sodass beide verschieden sein können. Das Layout ist deterministisch: Setzen Sie options.seed, und dieselbe Anfrage liefert dasselbe Nesting.
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 Laser-Nesting?
POST /v1/optimize/nest. Sie senden jedes Teil als Polygonkontur (mit optionalen Löchern) sowie die Rohtafeln und erhalten das geschachtelte Layout, die Platzierung jeder Kopie und die Tafelzahl zurück. Es ist eine geometrische Kollisions-Engine, eine andere Klasse von Algorithmus als der rechteckige Guillotine-Packer, und sie läuft heute produktiv.Wie unterscheidet sich True-Shape-Nesting vom rechteckigen Packen?
Kann es einen beschädigten Bereich oder eine Spannpratzenfläche auf der Tafel vermeiden?
stock[].exclusions) — Polygone, von denen die Engine Teile fernhält. Eine Zone mit quality 0 ist für jedes Teil ein harter Sperrbereich, sodass Sie um einen Fehler, eine Spannpratzenfläche oder einen vorbedruckten Bereich herum verschachteln können. Das ist eine Fähigkeit, die die rechteckige API nicht ausdrücken kann.Kann ich eine Anfrage beim Integrieren kostenlos validieren?
POST /v1/validate/nest validiert denselben Body, den der Nesting-Endpunkt entgegennimmt, per Schema, ohne zu rechnen — kostenlos, ohne API-Schlüssel, ohne Kontingent —, sodass Ihr Team beim Bau der Integration bestätigen kann, dass ein Payload wohlgeformt ist. Die Engine API selbst hat eine 14-tägige Testphase.Liefert sie die Schnittlänge und die Zahl der Einstiche?
cutLength — die summierte Länge der Konturen und Löcher ihrer platzierten Teile, in Ihrer Einheit — und pierces, einen je geschlossener Kontur; metrics summiert beides. Es ist die geometrische Konturlänge: Gemeinsame Schnittlinien (Common-Line-Cutting), Anschnitte und Mikroverbindungen sind nicht enthalten, weil das CAM Ihrer Maschine sie ergänzt — sie ist also eine solide Basis für Maschinenzeit und Gas, nicht der endgültige Werkzeugweg.Kann mein Angebotssystem nur den genutzten Teil einer Tafel berechnen?
usedWidth und usedHeight — den weitesten Punkt, den ihre platzierten Teile vom Tafelursprung aus erreichen, in Ihrer Einheit — und usedArea, deren Produkt (stockUsage summiert es je Tafelgröße). Ein horizontaler Schnitt ist usedHeight × die Tafelbreite, ein vertikaler Schnitt usedWidth × die Tafelhöhe, eine Bounding Box usedArea. Beide Engines verdichten die am wenigsten gefüllte Tafel standardmäßig zu dieser Ecke hin, indem sie Drehungs-Teilmengen dessen probieren, was jedes Teil erlaubt, und nie einen neuen Winkel, ohne Tafelzahl, Preis oder platzierte Teile zu ändern; options.compact: false schaltet das ab. Wenn Sie einen Streifen statt der Box berechnen, behält options.compactFor: "horizontal" die geringste genutzte Höhe und "vertical" die kleinste genutzte Breite. Wie klein die genutzte Fläche wird, hängt von den Teilen ab.