Przejdź do głównej treści
DLA PROGRAMISTÓW

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

Przeczytaj dokumentację API →

Dlaczego warto na tym budować

DETERMINISTYCZNY

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.

PRAWDZIWY PLAN CIĘCIA

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.

POD PIŁĘ PANELOWĄ

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

Cztery tryby cięcia

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.

Nesting kształtów rzeczywistych

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).

Świadome materiału

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.

Okleinowanie krawędzi

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.

Eksport w odpowiedzi (SVG · DXF · CSV)

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.

Przekazywanie metadanych

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.

Bezpłatna walidacja

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.

Koszt albo odpad

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.

Priorytet zapasu i ograniczony zapas

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.

Prawdziwy plan cięcia

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.

Parametry piły panelowej

kerf, okrawanie każdej krawędzi, tolerancja, grain groups, maxCutStages i minimalizacja obrotów — te same opcje, które udostępnia aplikacja.

Deterministyczne & OpenAPI

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.

Elementy z plików CAD

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.

Tryb · endpointSilnik · algorytmPłyty 2D/v1/optimize/2dLiniowe 1D/v1/optimize/1dDrewno · przekrój/v1/optimize/woodNesting kształtów rzeczywistych/v1/optimize/nestheuristicdomyślny · synchronicznybalancedopcjonalny · tylko 2Dmaxasynchroniczny · tylko 2Dlbfnesting · sparrow w planachDla 1D i drewna balanced to po prostu alias silnika heuristic (odpowiedź to potwierdza).
  • 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.

Przełącznik effort: wykorzystanie materiału vs czas obliczeńPrzełącznik effort: wykorzystanie materiału vs czas obliczeń. fast: 350 płyty · 76.2% · ≈1.9 s. balanced: 330 płyty · 80.8% · ≈4.8 s. max: zarezerwowane — gęściej = wolniejsze przeszukiwanie. W większości (mniejszych) zleceń oba są identyczne; różnica pojawia się tylko przy dużych zleceniach jak to. balanced jest wartością domyślną i nigdy nie jest gęstszy, niż może osiągnąć fast.Przełącznik effort: wykorzystanie materiału vs czas obliczeńJedno wymagające zlecenie — około 1550 elementów na płycie 2,07 × 5,6 m. Każda liczba zmierzona na prawdziwym packerze.74%76%78%80%82%84%02 s4 s6 sczas obliczeń · szybciej →wykorzystanie materiału · gęściej ↑⇄ przełącznik effort+4,6 pp wykorzystania · −20 płyt−5,7% materiału · ≈2,5× wolniejfast350 płyty · 76.2% · ≈1.9 s★ balanced · domyślny330 płyty · 80.8% · ≈4.8 smaxzarezerwowanegęściej =wolniejszeprzeszukiwanie
W większości (mniejszych) zleceń oba są identyczne; różnica pojawia się tylko przy dużych zleceniach jak to. balanced jest wartością domyślną i nigdy nie jest gęstszy, niż może osiągnąć fast.

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

€49/mies.
10,000 zapytań / miesiąc — twardy limit, bez dopłat za przekroczenie, bez niespodzianek na fakturze
14-dniowy okres próbny · rozliczenie w EUR · po wyczerpaniu limitu wywołania zwracają 402 do początku nowego miesiąca

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.

Materiał do pobrania
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
Pobierz PDF

Często zadawane pytania

Czy CutOptim ma API?
Tak — API CutOptim Engine udostępnia ten sam silnik cięcia przez HTTP, dla ERP, narzędzia wyceny lub oprogramowania maszyn, we wszystkich trzech trybach aplikacji: panele 2D, liniowe 1D i drewno z dopasowaniem przekroju.
Czy jest API do cięcia laserem, plazmą lub strumieniem wody?
Tak — nestowanie true-shape nieregularnych wielokątów to czwarty tryb API Engine, POST /v1/optimize/nest. Wysyłasz każdą część jako kontur wielokąta (z opcjonalnymi otworami) wraz z arkuszami magazynowymi; silnik zazębia części we wklęsłych kieszeniach innych i zwraca rozmieszczenie każdej kopii, więc zadanie laserowe, plazmowe lub strumieniem wody pakuje się znacznie ciaśniej niż prostokąt otaczający — na reprezentatywnym zadaniu 272 części 6 arkuszy tam, gdzie te same części wg prostokąta otaczającego potrzebują 9. Strefy wykluczenia na arkusz (wada, docisk) i ciągły obrót są w zestawie. Działa dziś przez API Engine; sama aplikacja nadal tnie prostokąty.
Czy API Engine jest deterministyczne?
Tak. To samo wejście zwraca to samo wyjście, więc odpowiedzi są buforowalne i testowalne, a wersję silnika można przypiąć dla powtarzalnych wyników.
Co zawiera odpowiedź optymalizacji?
Pełny układ, gilotynowy plan cięcia z pozycjami zatrzymania na każdym kroku oraz metryki (liczba płyt, uzysk, linie cięcia, przejścia piły, długość cięcia). Endpoint 2D zwraca też metry obrzeżowania wg typu, a każdy endpoint przyjmuje znacznik materiału i zwraca podsumowanie wg materiału. Możesz też poprosić o układ jako inline SVG, DXF lub CSV oraz dołączyć obiekt meta do części i magazynu, zwracany dosłownie.
Czy API może dać rysunek, a nie tylko współrzędne?
Tak. Dodaj include:["svg","csv","dxf"] do żądania optymalizacji, a odpowiedź niesie układ jako gotowy plik, inline: samodzielny rysunek 2D SVG, DXF R12/AC1009 lub listę cięcia CSV. Bez przechowywania i bez drugiego wywołania. SVG jest tylko 2D; żądanie 1D lub drewna zwraca zamiast tego ostrzeżenie.
Czy mogę dołączyć własne identyfikatory do części i odczytać je z powrotem?
Tak. Każdy wiersz części lub magazynu może nieść obiekt meta — Twój numer artykułu ERP, id wiersza zamówienia lub referencję klienta —, i wraca dosłownie na każdej rozmieszczonej części oraz każdej płycie lub pręcie, dzięki czemu plan cięcia uzgadnia się z Twoim systemem. Nigdy nie wpływa na układ.
Czy mogę sprawdzić żądanie bez zużywania wywołania?
Tak. POST /v1/validate/2d, /1d lub /wood waliduje według schematu to samo ciało, które przyjmuje odpowiedni endpoint optymalizacji, bez rozwiązywania — bez klucza i bez limitu. 400 wskazuje dokładne błędne pole, a Ty otrzymujesz ostrzeżenia o wykonalności (część, która nie mieści się w żadnym magazynie), zanim zużyjesz prawdziwe wywołanie.
Czy są SDK, webhooki lub zadania asynchroniczne?
Nie ma SDK ani webhooków — ale dostępna jest specyfikacja OpenAPI 3.1, na którą można skierować generator kodu, aby utworzyć typowanego klienta. Większość wywołań optymalizacji to zwykłe synchroniczne HTTP, które zwraca gotowy plan bezpośrednio. Jedynym wyjątkiem jest asynchroniczny silnik max (tylko 2D): POST /v1/optimize/2d z engine:"max" zwraca 202 Accepted z jobId, a Ty odpytujesz GET /v1/jobs/{id}, aż się zakończy — gdy osiągnięcie udowodnionego optimum jest warte od kilku sekund do minuty obliczeń.
Jakie są limity żądań?
Do 2 000 części, 50 wierszy magazynu i 1 MB treści żądania na wywołanie. Nawet największe zadania rozwiązują się w kilka sekund, z zapasem w budżecie czasu.
Zarządzaj kluczami API