Przejdź do głównej treści
← CutOptim Engine APIEngine API · nesting · dostępne już dziś

API do nestingu blach

Tak — istnieje API do nestingu blach. Układanie nieregularnych elementów z blachy — wsporników, węzłówek, kołnierzy, uszczelek — na arkuszach to problem nestingu kształtów rzeczywistych, a CutOptim Engine API rozwiązuje go przez HTTP pod adresem POST /v1/optimize/nest. Twój system ERP, MES lub do wycen wysyła obrysy elementów i rozmiary blach jako JSON, a w odpowiedzi dostaje ułożony nesting, rozmieszczenie każdego elementu i liczbę blach — dla lasera, plazmy i strumienia wody.

To działa już dziś. Silnik nestingu (jagua-rs, geometryczny silnik kolizji) działa w produkcji pod POST /v1/optimize/nest — to inna klasa algorytmów niż prostokątny pakownik gilotynowy, który zwraca nesting kształtów rzeczywistych zamiast prostokątnego planu cięcia.

Wszystkie formaty, silniki, limity i przykłady kodu dla programistów: API do nestingu CutOptim

POST /v1/optimize/nest
{
  "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 nie jest częścią publicznego dema — uruchom ten przykład z darmowym kluczem testowym. Utwórz darmowy klucz testowy

  • Działa już dziś na POST /v1/optimize/nest — dowolne elementy wielokątne (z otworami), nie tylko prostokąty.
  • Strefy wykluczeń dla każdego arkusza układają nesting wokół wady blachy, miejsca docisku lub zadrukowanego obszaru (stock[].exclusions).
  • Podział według materiału: oznacz elementy i blachy, a każdy element jest układany tylko na blasze własnego materiału.
  • Dołącz obiekt meta (numer części, pozycja zamówienia), a wróci przy każdej rozmieszczonej sztuce, więc nesting uzgadnia się z Twoim ERP.
  • Kilka rozmiarów blach: nesting porównuje je według powierzchni blachy albo według ceny z minimizeCost i może je mieszać — w połowie pusta ostatnia blacha przechodzi na mniejszy rozmiar.
  • Na reprezentatywnym zleceniu z 272 elementami nesting zużył 6 arkuszy, tam gdzie te same elementy według prostokąta otaczającego potrzebują 9 — uczciwą miarą jest liczba blach, a nie procent gęstości.
  • Bezpłatna walidacja: POST /v1/validate/nest sprawdza zlecenie bez klucza i bez limitu.

Dlaczego potrzebują tego zakłady obróbki blach

Blacha jest droga, a nieregularne elementy ją marnują: prostokątny pakownik traktuje prostokąt otaczający każdego elementu jak pełny, więc powietrze wewnątrz węzłówki albo kątownika jest wyrzucane. Nesting kształtów rzeczywistych zazębia faktyczne obrysy i odzyskuje to powietrze. Na reprezentatywnym zleceniu z 272 elementami nesting zużył 6 arkuszy, tam gdzie te same elementy według prostokąta otaczającego potrzebują 9 — uczciwą miarą jest liczba blach dla tych samych elementów, a nie procent gęstości.

Co wysyłasz i co wraca

Wysyłasz każdy element jako wielokąt (z opcjonalnymi otworami) i ilość, plus rozmiary blach. Odpowiedź podaje każde rozmieszczenie jako transformację sztywną (obrót w stopniach, potem przesunięcie x/y), liczbę blach, gęstość i elementy, które się nie zmieściły. Oznacz elementy i blachy materiałem, a zlecenie zostanie podzielone według materiału — element jest układany tylko na blasze własnego materiału — a dowolny obiekt meta (numer części z Twojego ERP, pozycja zamówienia) wraca bez zmian przy każdej rozmieszczonej sztuce, więc nesting uzgadnia się z Twoim systemem. Każda blacha niesie też pozycję materiału, z której została wycięta, swoją długość cięcia i liczbę przebić, a stockUsage sumuje blachy i cenę dla każdego rozmiaru blachy.

Strefy wykluczeń — nesting wokół wady

Strefy wykluczeń dla każdego arkusza (stock[].exclusions) pozwalają silnikowi ułożyć nesting wokół wady blachy, miejsca docisku albo zadrukowanego obszaru — strefa quality 0 to twardy obszar zakazu dla każdego elementu. Obrót może być ciągły albo z listy dyskretnych; options.minSeparation ustawia odstęp między elementami dla szerokości palnika lub wiązki, a options.edgeClearance odstęp od krawędzi blachy. Układ jest deterministyczny: przypięty seed odtwarza ten sam nesting dla oferty albo audytu.

Natychmiast do wyceny, max do zamówienia

POST /v1/optimize/nest odpowiada synchronicznie silnikiem lbf — deterministycznie i w ramach zapytania, wystarczająco szybko, by wycenić zlecenie, gdy klient czeka. Gdy zlecenie jest zwalniane na maszynę, wyślij to samo ciało z engine: "max" i odpytuj GET /v1/jobs/{id}: najpierw uruchamia lbf, potem zużywa ustawiony przez Ciebie budżet czasu (options.timeBudgetMs) na szukanie układu z mniejszą liczbą blach i nigdy nie zwraca ich więcej. Odpowiedź ma w obu przypadkach ten sam kształt; arkusz ze strefami wykluczeń jest w tym zleceniu nadal obsługiwany przez lbf, z ostrzeżeniem.

Materiał do pobrania
API do nestingu blach — jednostronicowiec

Dwustronicowe streszczenie (PDF po angielsku) — problem, co wysyłasz i co dostajesz, przykładowe zapytanie i odpowiedź oraz jak budować na silniku. Gotowe do druku, z kodem QR prowadzącym do tej strony.

PDF2 stronyBezpłatnie
Pobierz PDF

Najczęstsze pytania

Czy istnieje API do nestingu blach?
Tak. Nesting kształtów rzeczywistych nieregularnych elementów na blachach to czwarty tryb CutOptim Engine API, POST /v1/optimize/nest. Wysyłasz każdy element jako wielokąt (z opcjonalnymi otworami) oraz rozmiary blach, a w odpowiedzi dostajesz ułożony nesting, rozmieszczenie każdej sztuki i liczbę blach — dla lasera, plazmy i strumienia wody. To geometryczny silnik kolizji, który działa w produkcji już dziś.
Czy radzi sobie z wadami blachy i miejscami docisku?
Tak. Każda blacha może mieć strefy wykluczeń (stock[].exclusions) — wielokąty, od których silnik trzyma każdy element z daleka. Strefa quality 0 to twardy obszar zakazu, więc możesz ułożyć nesting wokół wady, miejsca docisku albo zadrukowanego obszaru. Tego prostokątne API nie potrafi wyrazić.
Czy mogę oznaczać elementy numerami części z mojego ERP?
Tak. Każdy element lub pozycja blachy może nieść obiekt meta — numer części, pozycję zamówienia lub referencję klienta — który wraca bez zmian przy każdej rozmieszczonej sztuce i każdej blasze, więc nesting uzgadnia się z Twoim własnym systemem. Nigdy nie wpływa on na układ. Oznacz też materiał, a zlecenie zostanie podzielone tak, by element był układany tylko na blasze własnego materiału.
Ile blach pozwoli zaoszczędzić?
To zależy od zestawu elementów, więc nie podajemy jednego procenta dla wszystkich. Uczciwą, porównywalną miarą jest liczba blach dla tych samych elementów: na reprezentatywnym zleceniu z 272 elementami nesting kształtów rzeczywistych zużył 6 blach, tam gdzie te same elementy ułożone według prostokąta otaczającego potrzebują 9. Procent gęstości nie jest porównywalny z wykorzystaniem pakownika prostokątów, bo prostokąt otaczający liczy powietrze we wcięciach jak materiał.
Czy może wybierać spośród kilku rozmiarów blach?
Tak. Wyślij jedną pozycję materiału na rozmiar blachy (z ceną, jeśli chcesz najtańszy plan), a nesting porówna je — według łącznej powierzchni blach albo łącznej ceny z options.minimizeCost — więc odpowiedź nie zależy od kolejności, w jakiej je wypiszesz. Może też mieszać rozmiary: każda blacha, od najmniej zapełnionej, jest ponownie układana na tańsze lub mniejsze rozmiary i zastępowana, gdy cały plan wychodzi lepiej, więc w połowie pusta ostatnia blacha często przechodzi na mniejszy rozmiar. sheets[].stock i stockUsage mówią, z jakiego rozmiaru pochodzi każda blacha.
Czy podaje, ile blachy zużywa małe zlecenie?
Tak. Każda blacha niesie usedWidth, usedHeight i usedArea — prostokąt otaczający jej rozmieszczonych elementów od narożnika blachy — więc wycena może naliczyć pas albo prostokąt otaczający zamiast całej blachy. Najmniej zapełniona blacha jest domyślnie zagęszczana w stronę tego narożnika, z podzbiorami obrotów dozwolonych dla każdego elementu; liczba blach i cena nigdy się nie zmieniają.

Zastosowanie w obróbce blach (aplikacja) · Benchmarki