CutOptim Engine API
Deterministyczny silnik optymalizacji cięcia wywoływany przez HTTP: to samo zapytanie zawsze zwraca ten sam plan cięcia — więc możesz go audytować, wyceniać na jego podstawie, rozstrzygać nim spór i ponownie uruchomić zeszłoroczne zamówienie, aby otrzymać zeszłoroczny plan. To ten sam silnik, który napędza CutOptim, w trzech trybach prostokątnych (płyty 2D, materiał liniowy 1D i drewno z dopasowaniem przekroju), a dodatkowo nesting kształtów rzeczywistych dla nieregularnych elementów wielokątnych — POST /v1/optimize/nest, do cięcia laserem, plazmą i strumieniem wody. Wyślij elementy i materiał bazowy, a otrzymasz pełny układ, plan cięcia i wykorzystanie materiału — gotowe do wpięcia w system ERP, narzędzie ofertowe albo własne oprogramowanie maszyny.
Zobacz pełny benchmark → · Zmierzone, nie deklarowane
Dlaczego warto na tym budować
Te same dane wejściowe zawsze zwracają ten sam wynik — żadnej losowości, żadnego zegara w algorytmie. Wyniki możesz buforować i porównywać w testach.
Nie tylko prostokąty: gilotynowa sekwencja cięcia, linie cięcia kontra przejścia piły, łączna długość cięcia oraz flaga mówiąca, czy plan da się wykonać na pile panelowej.
Szerokość rzazu, okrawanie każdej krawędzi, tolerancja, tryb kosztowy, grupy słojów, maks. etapy cięcia, minimalizacja obrotów — te same opcje, które udostępnia aplikacja.
Co robi API
Po jednym wywołaniu dla płyt 2D, materiału liniowego 1D, drewna z dopasowaniem przekroju oraz nestingu kształtów rzeczywistych dla nieregularnych wielokątów — POST /v1/optimize/2d, /1d, /wood i /nest.
POST /v1/optimize/nest pakuje dowolne wielokąty (z otworami) na płytach o stałym rozmiarze, wsuwając elementy we wklęsłe kieszenie sąsiadów — 6 płyt tam, gdzie te same elementy według prostokąta otaczającego potrzebują 9. Do cięcia laserem, plazmą i strumieniem wody. W komplecie strefy wykluczeń na każdą płytę (wada, docisk).
Oznacz elementy i zapas etykietą material, a optymalizator dzieli zadanie: każdy material jest cięty wyłącznie z własnego zapasu. W każdym trybie; zwracane jest podsumowanie na material.
Nazwij typ obrzeża dla każdej krawędzi (2D), a odpowiedź sumuje metry bieżące na typ — na element i na zamówienie. Metadane: nigdy nie przesuwa elementu.
Poproś o include:["svg","csv","dxf"], a odpowiedź niesie układ jako gotowy plik, w treści — samodzielny rysunek 2D SVG, plik DXF R12/AC1009 albo listę cięć CSV. Bez magazynowania, bez drugiego wywołania.
Dołącz obiekt meta — numer artykułu z Twojego ERP, identyfikator pozycji zamówienia, referencję klienta — do dowolnego elementu lub wiersza materiału bazowego, a wróci on niezmieniony przy każdym rozmieszczonym kawałku i każdej płycie/pręcie, dzięki czemu plan uzgadnia się z Twoim systemem.
POST /v1/validate/{2d,1d,wood} sprawdza schemat tej samej treści bez rozwiązywania — bez klucza, bez limitu. Upewnij się, że ładunek nie zostanie odrzucony, i otrzymaj ostrzeżenia o wykonalności, zanim zużyjesz wywołanie.
minimizeCost sortuje według najniższego łącznego rachunku wśród wycenionych rozmiarów zapasu, mieszając formaty; domyślnie minimalizowany jest materiał. Oba wykonują ten sam algorytm guillotine.
Oznacz zapas do zużycia w pierwszej kolejności, traktuj ilości jako twardy limit za pomocą respectStock i oznacz elementy do obowiązkowego cięcia, które zdobywają miejsce na płycie, gdy brakuje materiału.
Nie tylko prostokąty: gilotynowa sekwencja cięcia z pozycjami zderzaka na każdy krok, linie cięcia kontra przejścia piły, długość cięcia oraz flaga wykonalności na pile panelowej.
kerf, okrawanie każdej krawędzi, tolerancja, grain groups, maxCutStages i minimalizacja obrotów — te same opcje, które udostępnia aplikacja.
Te same dane wejściowe zawsze zwracają ten sam wynik — buforuj je i porównuj. Przypinalna wersja silnika oraz dokument OpenAPI 3.1 opisują cały kontrakt.
Wyślij SVG lub DXF zamiast współrzędnych: parts[].source odczytuje obrys i otwory z rysunku, a POST /v1/import/nest najpierw dzieli plik z wieloma elementami. Nic nie jest przechowywane — plik jest przetwarzany w pamięci i znika wraz z odpowiedzią.
Który silnik obsługuje który tryb
Endpoint, na który wysyłasz POST, wybiera tryb; parametr engine wybiera algorytm. Domyślny silnik heuristic obsługuje 2D, 1D i drewno; balanced oraz asynchroniczny silnik max działają tylko dla 2D; a nesting kształtów rzeczywistych korzysta z własnego silnika lbf. Ten sam silnik co w aplikacji, przez HTTP.
- heuristic — Domyślny — gilotynowy pakownik wielostrategijny. Najwyższa wydajność, każdy układ da się przeciąć na pile i zawsze zwracany jest plan cięcia. Obsługuje 2D, 1D i drewno.
- balanced — Opcjonalny wolny nester MaxRects dla 2D. Znacznie szybszy przy bardzo dużych zadaniach kosztem nieco niższej wydajności, ale jego układów często nie da się przeciąć od krawędzi do krawędzi, więc nie niosą planu cięcia.
- max — Asynchroniczne przeszukiwanie drzewa dla 2D. Osiąga udowodnione optimum w znacznie większej liczbie zadań, przy czasie od sekund do minuty na rozwiązanie — przesyłasz zadanie i odpytujesz GET /v1/jobs/{id} o wynik. Nadal deterministyczne i wykonalne na pile.
- lbf — Silnik nestingu kształtów rzeczywistych. Pakuje nieregularne wielokąty we wzajemne kieszenie do cięcia laserem, plazmą i strumieniem wody; planowana jest gęstsza kompilacja sparrow.
Który endpoint dla którego materiału: płaskie arkusze — sklejka, MDF, szkło, akryl, blacha — trafiają do /v1/optimize/2d; pręty, rury i profile do /v1/optimize/1d; drewno konstrukcyjne (50×150 tylko z 50×150) do /v1/optimize/wood; nieregularne wielokąty do cięcia laserem, plazmą i strumieniem wody do /v1/optimize/nest.
Jedno wywołanie, pełny 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"
}'W odpowiedzi:
{
"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
}Pełna struktura zapytania i odpowiedzi, wszystkie opcje, wszystkie kody błędów i wszystkie trzy silniki:Dokumentacja API →
Fast czy gęsto? Wybierz jedną opcją
Opcja effort równoważy czas obliczeń z wykorzystaniem. Oto ten kompromis, zmierzony na jednym wymagającym zleceniu — każda liczba pochodzi z prawdziwego packera.
I tak jest szybko: nawet największe zlecenia produkcyjne — 2000 elementów i więcej — rozwiązywane są w kilka sekund na domyślnym silniku, z zapasem mieszcząc się w budżecie czasu API.
Cennik
Większe wolumeny. 10,000 zapytań miesięcznie to plan standardowy, a nie granica tego, co jesteśmy w stanie obsłużyć. Jeśli potrzebujesz więcej — wyższego wolumenu, osobnych kluczy dla środowiska testowego i produkcyjnego albo indywidualnego rozwiązania — podaj nam swoje liczby, a wycenimy to indywidualnie. Podaj nam swój wolumen →
Zwykłe plany CutOptim (Bezpłatny / Pro / Warsztat) nie mają związku z API — optymalizator w aplikacji pozostaje w nich zawarty. Zobacz cennik aplikacji →
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.
1D cut-to-length for tube, pipe and hollow section. POST /v1/optimize/1d
1D cut-to-length for steel and aluminium profile, bar and section, with cost mode. POST /v1/optimize/1d
2D guillotine, zero-kerf score-and-snap for float, tempered and mirror glass. POST /v1/optimize/2d
1D cut-to-length for structural timber with cross-section matching. POST /v1/optimize/wood
True-shape nesting of irregular polygons, with exclusion zones. POST /v1/optimize/nest
True-shape nesting onto plate for laser, plasma or waterjet. POST /v1/optimize/nest
Bar bending schedule optimization for reinforcement steel. · design partners wanted
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.