Projekt: System Inteligentnego Montażu Mebli 2.0 (nbeta)
Założenia Projektowe
Głównym celem systemu jest pełna automatyzacja procesu projektowania mebli skrzyniowych z uwzględnieniem technologii CNC. System opiera się na czterech filarach:
1. Semantyka zamiast Koordynatów: Projektant opisuje relacje (np. "CarcassBuilder stwórz szkielet z wpuszczanym wieńcem i podziel go na X wnęk"), a system sam wylicza pozycje 3D. Eliminuje to błędy ludzkie przy ręcznym wpisywaniu wymiarów.
2. Rygorystyczna Weryfikacja Kolizji: Każdy model jest skanowany pod kątem przenikania się brył. Jeśli przegroda uderzy we front, testy wyrzucą błąd.
3. Automatyczne Rozkładanie Okuć (CNC): System zwalnia programistę z myślenia o wiertłach. Znajduje płaszczyzny styku formatek i na podstawie zadeklarowanego HardwareType sam rozkłada odpowiednie pary/trójki otworów (w tym system 32mm dla kołków/mimośrodów).
4. Bezpieczna Degradacja Połączeń: Jeśli użytkownik chce skręcić całą szafkę na Mimośrody, system złoży tak boki i wieńce, ale Cokół (który nie obsługuje Mimośrodów) automatycznie wymusi zmianę swojego łączenia na zwykłe kołki.
---
Architektura Systemu
1. HardwareType Enum (Jedyne Źródło Prawdy)
Wszystkie okucia opierają się na jednym, ściśle typowanym Enumie (src/Domain/Enums/HardwareType.php):
DOWELCONFIRMATMINIFIXCarcassBuilder: Tworzy bryłę zewnętrzną szafki (Boki, Wieńce, Plecy, Cokół) poprawnie ustawiając intencje połączeń (okucia).VolumeManager: Pozwala na nieskończone, rekurencyjne cięcie wolnej przestrzeni (wewnątrz szkieletu) na mniejsze wnęki i proste wstawianie frontów. (Zobacz: Przewodnik Budowania)- Konektory CNC (
DowelConnector,MinifixConnector,ConfirmatConnector): Zawierają logikę przekuwającą "intencję" na precyzyjne współrzędne 3D (np. dodanie offsetów dla puszki mimośrodu, rozkładanie po 2 kołki dla długich krawędzi).
2. Klasa Panel i Weryfikacja
Formatki posiadają właściwość allowedHardware. Przed zarejestrowaniem intencji łączenia, system pyta panel, czy dopuszcza dany rodzaj okucia. Klasa Panel posiada też metodę weryfikującą (uruchamianą po złożeniu szafki), która sprawdza, czy każdy nawiert w sztorcu (krawędzi) ma swojego partnera w postaci nawiertu w płaszczyźnie innej formatki.
3. Klasy Pomocnicze (Buildery)
---
Uruchamianie Projektu i Wizualizacja 3D
Do zarządzania projektem używamy narzędzia Composer. Serwer obsługuje również potężną wizualizację Three.js.
1. Serwer lokalny
Aby uruchomić konfigurator 3D w przeglądarce, postaw serwer w głównym folderze:
php -S localhost:8000
*(Następnie otwórz przeglądarkę na adresie localhost:8000)*
W interfejsie graficznym możesz testować różne warianty szafek z zakładki [EXTREME], [BASE] oraz [BASIC], analizując wygenerowane przez silnik otwory klikając na nie myszką.
2. Uruchamianie testów
Projekt posiada absolutnie rygorystyczne testy. Analizują one każdy kąt, promień wiertła i styk tysięcy możliwych kombinacji paneli, upewniając się, że matematyka 3D nie zawodzi.
composer test
Aktualny status: Oczekiwany (Powyżej 180 testów / Wszystkie OK)
---
Przykłady Zaawansowanych Konstrukcji
Szafka RTV z Szufladami (Zagnieżdżanie Modułów)
Nowoczesne szafki RTV w naszym systemie wykorzystują ModuleHelper do wstawiania gotowych szuflad QuadroDrawer wewnątrz dynamicznie dzielonych wnęk.
Kluczowe cechy:
VolumeManager.slide, gotowe do odtworzenia w konfiguratorze 3D.---
Zaawansowane Funkcje Systemu
1. Rygorystyczna Walidacja Parametrów
System w pełni weryfikuje dane wejściowe przesyłane przez API. Każda klasa szafki definiuje metodę getValidationRules(), która określa:
min, max): Wszystkie parametry takie jak szerokość, wysokość czy głębokość są automatycznie "przycinane" (clamping) do bezpiecznych granic.values): Dla parametrów typu Enum (np. okucia, kierunki otwierania) system wymusza zgodność z predefiniowaną listą, chroniąc przed błędami logicznymi.2. Dynamiczne Ograniczenia i Wyliczanie Zawartości
W przeciwieństwie do sztywnych systemów, nasz silnik pozwala na dynamiczne dostosowywanie zawartości mebla w trakcie budowy.
StandardBase): Jeśli użytkownik poprosi o 5 półek w szafce o wysokości 400mm, system inteligentnie wyliczy dostępną przestrzeń (uwzględniając wieńce i cokół) i automatycznie ograniczy liczbę półek tak, aby zachować minimum 150mm prześwitu.actual_params, informując frontend o tym, ile elementów faktycznie zmieściło się w danej przestrzeni. Pozwala to na precyzyjne odzwierciedlenie rzeczywistości produkcyjnej w interfejsie 3D.3. Podgląd Formatek 2D (Produkcyjny)
System posiada dedykowany moduł all_cnc.php, który generuje płaskie rzuty SVG wszystkich elementów szafki.
4. System Okleinowania (Edging System)
Automatycznie zarządza informacją o tym, które krawędzie formatek wymagają oklejenia.
5. System Nutowania (Groove Engine)
Inteligentnie generuje frezowania (nuty), wykorzystywane np. do montażu pleców HDF.
6. Optymalizacja dla Słabych Jednostek
Silnik 3D posiada wbudowane tryby wydajnościowe:
---
Technologia
---