Zum Hauptinhalt springen
FÜR ENTWICKLER

CutOptim Engine API

Eine deterministische Zuschnittoptimierungs-Engine, aufrufbar über HTTP: Dieselbe Anfrage liefert immer denselben Schnittplan — Sie können ihn prüfen, daraus kalkulieren, damit einen Streitfall beilegen und den Auftrag vom letzten Jahr erneut ausführen, um den Plan vom letzten Jahr zu erhalten. Es ist dieselbe Engine, die CutOptim antreibt, über die drei rechteckigen Modi hinweg (2D-Platten, 1D-Linearmaterial und Holz mit Querschnitts-Zuordnung), dazu True-Shape-Nesting für unregelmäßige Polygonteile — POST /v1/optimize/nest, für Laser-, Plasma- und Wasserstrahlschneiden. Senden Sie Teile und Ausgangsmaterial und erhalten Sie das komplette Layout, den Schnittplan und die Auslastung zurück — fertig zur Einbindung in ein ERP, eine Angebotssoftware oder die Software einer Maschine.

Den vollständigen Benchmark ansehen → · Gemessen, nicht behauptet

API-Referenz lesen →

Warum darauf aufbauen

DETERMINISTISCH

Dieselbe Eingabe liefert immer dieselbe Ausgabe — kein Zufall, keine Uhr im Algorithmus. Sie können Ergebnisse cachen und in Tests vergleichen.

EIN ECHTER SCHNITTPLAN

Nicht nur Rechtecke: die Guillotine-Schnittsequenz, Schnittlinien gegenüber Sägedurchgängen, die gesägte Länge und ein Kennzeichen, das Ihnen sagt, ob sich der Plan auf einer Plattensäge herstellen lässt.

AUF PLATTENSÄGEN AUSGELEGT

Sägeblattdicke, Besäumung je Seite, Toleranz, Kostenmodus, Fasergruppen, maximale Schnittstufen, Drehungsminimierung — dieselben Optionen, die auch die App bietet.

Was die API leistet

Vier Zuschnittmodi

Je ein Aufruf für 2D-Platten, 1D-Linearmaterial, Holz mit Querschnitts-Zuordnung und True-Shape-Nesting unregelmäßiger Polygone — POST /v1/optimize/2d, /1d, /wood und /nest.

True-Shape-Nesting

POST /v1/optimize/nest packt beliebige Polygone (mit holes) auf feste Platten und verschachtelt Teile in die konkaven Aussparungen der anderen — 6 Platten, wo dieselben Teile per Bounding Box 9 brauchen. Für Laser-, Plasma- und Wasserstrahlschneiden. Ausschlusszonen je Platte (ein Defekt, eine Spannpratze) sind inbegriffen.

Materialbewusst

Versehen Sie Teile und Ausgangsmaterial mit einem material, und der Optimierer partitioniert den Auftrag: jedes material wird nur aus dem eigenen Ausgangsmaterial geschnitten. In jedem Modus; eine Auswertung je material kommt zurück.

Kantenanleimung

Benennen Sie je Kante (2D) einen Anleimtyp, und die Response summiert die laufenden Meter je Typ — je Teil und je Auftrag. Metadaten: ein Teil wird dadurch nie verschoben.

Inline-Export (SVG · DXF · CSV)

Fordern Sie include:["svg","csv","dxf"] an, und die Antwort trägt das Layout als fertige Datei mit, inline — eine eigenständige 2D-SVG-Zeichnung, ein DXF im Format R12/AC1009 oder eine CSV-Schnittliste. Keine Speicherung, kein zweiter Aufruf.

Metadaten-Durchreichung

Hängen Sie an jedes Teil und jede Materialzeile ein meta-Objekt — Ihre ERP-Artikelnummer, Auftragspositions-ID, Kundenreferenz — und es kommt bei jedem platzierten Stück und jeder Platte bzw. jedem Stab wortgetreu zurück, sodass der Plan mit Ihrem System übereinstimmt.

Kostenlose Validierung

POST /v1/validate/{2d,1d,wood} prüft denselben Body per Schema, ohne zu rechnen — kein Schlüssel, kein Kontingent. Stellen Sie sicher, dass ein Payload nicht abgewiesen wird, und erhalten Sie Machbarkeitswarnungen, bevor Sie einen Aufruf verbrauchen.

Kosten oder Verschnitt

minimizeCost bewertet nach der niedrigsten Gesamtrechnung über bepreiste Materialgrößen hinweg und mischt Formate; die Voreinstellung minimiert das Material. Beide nutzen denselben guillotine-Algorithmus.

Materialpriorität & begrenzter Bestand

Markieren Sie Ausgangsmaterial, das zuerst aufgebraucht wird, behandeln Sie Mengen mit respectStock als hartes Limit, und kennzeichnen Sie Muss-Teile, die bei knappem Material den Plattenplatz gewinnen.

Ein echter Schnittplan

Nicht nur Rechtecke: die guillotine-Schnittsequenz mit Anschlagpositionen je Schritt, Schnittlinien gegenüber Sägedurchgängen, die gesägte Länge und ein Kennzeichen, ob sich der Plan auf einer Plattensäge herstellen lässt.

Plattensägen-Parameter

kerf, Besäumung je Seite, Toleranz, grain groups, maxCutStages und Drehungsminimierung — dieselben Optionen, die auch die App bietet.

Deterministisch & OpenAPI

Dieselbe Eingabe liefert immer dieselbe Ausgabe — cachen und vergleichen. Eine fixierbare Engine-Version und ein OpenAPI-3.1-Dokument beschreiben den gesamten Contract.

Teile aus CAD-Dateien

Senden Sie SVG oder DXF statt Koordinaten: parts[].source liest Umriss und Löcher aus der Zeichnung, und POST /v1/import/nest zerlegt zuvor eine Datei mit mehreren Teilen. Nichts wird gespeichert — die Datei wird im Arbeitsspeicher verarbeitet und ist mit der Antwort fort.

Welche Engine bedient welchen Modus

Der Endpunkt, an den Sie POSTen, wählt den Modus; der engine-Parameter wählt den Algorithmus. Die voreingestellte heuristic-Engine bedient 2D, 1D und Holz; balanced und die asynchrone max-Engine sind nur für 2D; und True-Shape-Nesting läuft auf der eigenen lbf-Engine. Dieselbe Engine wie in der App, über HTTP.

Modus · EndpunktEngine · Algorithmus2D-Platten/v1/optimize/2d1D-Linearmaterial/v1/optimize/1dHolz · Querschnitt/v1/optimize/woodTrue-Shape-Nesting/v1/optimize/nestheuristicStandard · synchronbalancedoptional · nur 2Dmaxasynchron · nur 2DlbfNesting · sparrow geplantBei 1D und Holz ist balanced schlicht ein Alias der heuristic (die Response sagt es).
  • heuristic — Die Voreinstellung — ein guillotine-Multi-Strategie-Packer. Höchste Ausbeute, jedes Layout ist sägbar, und er liefert stets einen Schnittplan. Er bedient 2D, 1D und Holz.
  • balanced — Ein optionaler MaxRects-Free-Nester für 2D. Bei sehr großen Aufträgen deutlich schneller bei etwas geringerer Ausbeute, aber seine Layouts lassen sich oft nicht Kante an Kante sägen und tragen daher keinen Schnittplan.
  • max — Eine asynchrone Baumsuche für 2D. Sie erreicht bei weit mehr Aufträgen das nachweisbare Optimum, in Sekunden bis zu einer Minute je Lösung — Sie übermitteln den Auftrag und pollen GET /v1/jobs/{id} für das Ergebnis. Weiterhin deterministisch und sägbar.
  • lbf — Die True-Shape-Nesting-Engine. Sie packt unregelmäßige Polygone in die Aussparungen der jeweils anderen für Laser, Plasma und Wasserstrahl; ein dichteres sparrow-Build ist geplant.

Welcher Endpunkt für welches Material: flache Platten — Sperrholz, MDF, Glas, Acryl, Blech — gehen an /v1/optimize/2d; Stäbe, Rohr, Rundrohr und Profil an /v1/optimize/1d; Konstruktionsholz (ein 50×150 nur aus 50×150) an /v1/optimize/wood; unregelmäßige Polygone für Laser, Plasma und Wasserstrahl an /v1/optimize/nest.

Ein Aufruf, ein vollständiger Plan

curl https://api.cutoptim.com/v1/optimize/2d \
  -H "Authorization: Bearer co_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "parts": [
      { "name": "Door",    "w": 600, "h": 400, "qty": 4 },
      { "name": "Shelf",   "w": 800, "h": 300, "qty": 6 }
    ],
    "stock":   [{ "w": 2440, "h": 1220, "price": 42 }],
    "options": { "kerf": 3, "effort": "balanced" },
    "engine":  "heuristic"
  }'

Zurück kommt:

{
  "metrics": { "sheetCount": 1, "yieldPct": 80.62, "placed": 10, "total": 10,
               "cutLines": 10, "sawPasses": 13, "cutLength": 10720, "totalPrice": 42 },
  "sheets":  [ … ],
  "cutPlan": [{ "sheet": 0, "step": 1, "axis": "h", "pos": 400, "length": 2440, "stage": 1 }, … ],
  "guillotineValid": true,
  "engineVersion": "1.0.0+10e0c941",
  "deterministic": true
}

Vollständige Request- und Response-Struktur, alle Optionen, alle Fehlercodes und alle drei Engines:API-Referenz →

Schnell oder dicht? Mit einer Option wählen

Die Option effort wägt Rechenzeit gegen Auslastung ab. Hier ist dieser Kompromiss, gemessen an einem anspruchsvollen Auftrag — jede Zahl stammt vom echten Packer.

effort-Schalter: Materialauslastung vs. Rechenzeiteffort-Schalter: Materialauslastung vs. Rechenzeit. fast: 350 Platten · 76.2% · ≈1.9 s. balanced: 330 Platten · 80.8% · ≈4.8 s. max: reserviert — dichter braucht längere Suche. Bei den meisten (kleineren) Aufträgen sind die beiden identisch; die Lücke öffnet sich erst bei großen Aufträgen wie diesem. balanced ist der Standard und nie dichter, als fast es erreichen kann.effort-Schalter: Materialauslastung vs. RechenzeitEin anspruchsvoller Auftrag — rund 1.550 Teile auf einer Platte von 2,07 × 5,6 m. Jede Zahl am echten Packer gemessen.74%76%78%80%82%84%02 s4 s6 sRechenzeit · schneller →Materialauslastung · dichter ↑⇄ der effort-Schalter+4,6 Pp. Auslastung · −20 Platten−5,7 % Material · ≈2,5× langsamerfast350 Platten · 76.2% · ≈1.9 s★ balanced · Standard330 Platten · 80.8% · ≈4.8 smaxreserviertdichter brauchtlängere Suche
Bei den meisten (kleineren) Aufträgen sind die beiden identisch; die Lücke öffnet sich erst bei großen Aufträgen wie diesem. balanced ist der Standard und nie dichter, als fast es erreichen kann.

Und schnell ist es ohnehin: selbst die größten Produktionsaufträge — 2.000 Teile und mehr — werden auf der Standard-Engine in einstelligen Sekunden gelöst, bequem innerhalb des API-Zeitbudgets.

Preise

€49/Monat
10,000 Anfragen / Monat — hartes Limit, keine Überschreitung, keine überraschende Rechnung
14 Tage Testphase · Abrechnung in EUR · ist das Limit erreicht, antworten Aufrufe mit 402, bis der Monat wechselt

Größere Volumen. 10,000 Anfragen pro Monat sind der Standardtarif, keine Obergrenze dessen, was wir betreiben können. Wenn Sie mehr brauchen — höheres Volumen, getrennte Schlüssel für Staging und Produktion oder eine dedizierte Vereinbarung —, nennen Sie uns Ihre Zahlen, und wir kalkulieren individuell. Nennen Sie uns Ihr Volumen →

Die regulären CutOptim-Pakete (Free / Pro / Werkstatt) haben mit der API nichts zu tun — der Optimierer in der App bleibt darin enthalten. Zu den App-Preisen →

Solutions by industry

The same engine, positioned for the way one trade cuts. Each page shows the endpoint, a request and a response, and the fields that matter for that material.

Zum Download
Engine API one-pager

The why, what and how of the CutOptim Engine API on two pages — the three modes, a request and response, determinism and pricing. Print-ready, with a QR back to this page.

PDF2 pagesFree
PDF herunterladen

Häufig gestellte Fragen

Hat CutOptim eine API?
Ja — die CutOptim Engine API stellt dieselbe Schnitt-Engine über HTTP bereit, für ein ERP, ein Kalkulationstool oder Maschinensoftware, in allen drei Modi der App: 2D-Platten, 1D-linear und Holz mit Querschnitts-Abgleich.
Gibt es eine API für Laser-, Plasma- oder Wasserstrahlschneiden?
Ja — True-Shape-Nesting unregelmäßiger Polygone ist der vierte Modus der Engine API, POST /v1/optimize/nest. Sie senden jedes Teil als Polygon-Kontur (mit optionalen Löchern) samt den Bestandsplatten; die Engine verschachtelt die Teile in die konkaven Taschen der anderen und liefert die Platzierung jeder Kopie zurück, sodass ein Laser-, Plasma- oder Wasserstrahlauftrag weit dichter packt als ein umschließendes Rechteck — bei einem repräsentativen 272-Teile-Auftrag 6 Platten, wo dieselben Teile per Bounding Box 9 brauchen. Bereichsweise Sperrzonen (ein Defekt, eine Spannpratze) und stufenlose Drehung kommen mit dazu. Sie läuft heute über die Engine API; die App selbst schneidet weiterhin Rechtecke.
Ist die Engine API deterministisch?
Ja. Gleiche Eingabe liefert gleiche Ausgabe, daher sind Antworten cachebar und testbar, und die Engine-Version kann für reproduzierbare Ergebnisse gepinnt werden.
Was enthält eine Optimize-Antwort?
Das vollständige Layout, einen Guillotine-Schnittplan mit Stopp-Positionen pro Schritt und die Kennzahlen (Plattenanzahl, Ausnutzung, Schnittlinien, Sägedurchgänge, Sägelänge). Der 2D-Endpunkt liefert zusätzlich Kantenband-Meter je Typ, und jeder Endpunkt akzeptiert ein Material-Tag und liefert eine Auswertung je Material. Sie können das Layout auch als inline SVG, DXF oder CSV anfordern und ein meta-Objekt an Teile und Bestand anhängen, das wortgetreu zurückgegeben wird.
Liefert die API eine Zeichnung, nicht nur Koordinaten?
Ja. Fügen Sie include:["svg","csv","dxf"] zu einer Optimize-Anfrage hinzu, und die Antwort trägt das Layout als fertige Datei, inline: eine eigenständige 2D-SVG-Zeichnung, ein R12/AC1009-DXF oder eine CSV-Schnittliste. Keine Speicherung und kein zweiter Aufruf. SVG ist nur 2D; eine 1D- oder Holz-Anfrage liefert stattdessen eine Warnung.
Kann ich eigene IDs an Teile anhängen und zurücklesen?
Ja. Jede Teil- oder Bestandszeile kann ein meta-Objekt tragen — Ihre ERP-Artikelnummer, Auftragspositions-ID oder Kundenreferenz —, und es kommt wortgetreu auf jedem platzierten Teil und jeder Platte oder Stange zurück, sodass der Schnittplan mit Ihrem eigenen System abgeglichen wird. Es beeinflusst niemals das Layout.
Kann ich eine Anfrage prüfen, ohne einen Aufruf zu verbrauchen?
Ja. POST /v1/validate/2d, /1d oder /wood validiert per Schema denselben Body, den der passende Optimize-Endpunkt annimmt, ohne zu lösen — ohne Schlüssel und ohne Kontingent. Ein 400 nennt das genaue fehlerhafte Feld, und Sie erhalten Machbarkeitswarnungen (ein Teil, das in keinen Bestand passt), bevor Sie einen echten Aufruf verbrauchen.
Gibt es SDKs, Webhooks oder asynchrone Jobs?
Keine SDKs und keine Webhooks — es gibt aber eine OpenAPI-3.1-Spezifikation, auf die Sie einen Codegenerator für einen typisierten Client richten können. Die meisten Optimize-Aufrufe sind einfaches synchrones HTTP und liefern den fertigen Plan direkt zurück. Die einzige Ausnahme ist die asynchrone max-Engine (nur 2D): POST /v1/optimize/2d mit engine:"max" liefert 202 Accepted mit einer jobId, und Sie pollen GET /v1/jobs/{id}, bis er fertig ist — für den Fall, dass das Erreichen des beweisbaren Optimums Sekunden bis eine Minute Rechenzeit wert ist.
Welche Anfrage-Limits gelten?
Bis zu 2.000 Teile, 50 Bestandszeilen und 1 MB Anfragekörper pro Aufruf. Selbst die größten Produktionsaufträge lösen in einstelligen Sekunden, bequem im Zeitbudget.
API-Schlüssel verwalten