Projektowanie niemal każdego rodzaju produktu wymaga zastosowania elementów standardowych, które niekoniecznie są znormalizowane. Element standardowy to taki, który geometrycznie lub topologicznie jest typowy dla określonego rodzaju produktu. Marzeniem każdego konstruktora jest efektywne definiowanie geometrii takich komponentów, ich zastosowanie w aktualnie opracowywanym projekcie oraz automatyczne definiowanie ich wpływu na kontekst projektowy.
Andrzej Wełyczko
Rozważmy przykład reduktora ślimakowego (Rys. 1), w którym zadaniem konstruktora jest mocowanie silnika elektrycznego do korpusu przekładni. W tym przykładzie zadanie jest realizowane w systemie CATIA V5.
Rys. 1
Niezależnie od systemu CAD większość konstruktorów skorzysta w takim przypadku z katalogu elementów standardowych (Rys. 2) i zastosuje odpowiednią (typ, wymiar gwintu, długość) śrubę mocującą. Oczywiście trzeba także zdefiniować położenie silnika w relacji do korpusu i położenie śrub mocujących w relacji do silnika (w CATIA V5 – polecenie Assembly Constraints) oraz przygotować otwory gwintowane w korpusie i to w taki sposób, aby pasowały one do otworów w kołnierzu silnika.
Rys. 2
Jeśli w katalogu nie ma wymaganego elementu standardowego, to trzeba taki element zdefiniować. Nic trudnego – w każdym poważnym systemie CAD taki parametryczny komponent może być zdefiniowany (Rys. 2A). Niewielkim nakładem pracy można stworzyć własne biblioteki parametrycznych elementów złącznych (śruby, nakrętki, podkładki, itp.), ale nie jest tak łatwo zdefiniować modele przestrzenne rodziny silników elektrycznych, siłowników pneumatycznych, hydraulicznych, itp.
I tu nasuwa się pytanie: Czy model przestrzenny takiego komponentu musi być parametryczny? Przyzwyczailiśmy się do tego, bo to jest wygodne (po zmianie wartości parametrów zmienia się kształt, wielkość, typ, itd.) i przez lata nie było innych możliwości. Moim zdaniem po wstawieniu komponentu do złożenia jego parametryczność nie jest konieczna, bo zamiast modyfikacji wartości parametrów można przecież zamienić (polecenie Replace Component) jeden element standardowy na inny (także wybrany z katalogu).
Czy w takim razie zachęcam do tworzenia katalogów z “martwymi”, czyli nieparametrycznymi komponentami? Oczywiście nie, ale wskazuję na to, że można inaczej. Jak? Jeśli w projektowaniu stosujemy elementy znormalizowane, to na etapie wykonania projektu takie elementy są kupowane – nie musimy ich produkować (tworzyć dokumentacji konstrukcyjnej, technologicznej, itd.) – wystarczy zamówić. I co nie mniej ważne coraz więcej firm wyspecjalizowanych w produkcji takich komponentów oferuje darmowy dostęp do katalogów modeli 3D swoich wyrobów. Zarabiają przecież na sprzedaży rzeczywistych komponentów, a nie ich modeli wirtualnych.
W tym kontekście warto zauważyć, że każdy użytkownik systemu CATIA V5 (po zalogowaniu) ma dostęp do portalu 3DEXPERIENCE Marketplace (Rys. 3), który oferuje możliwość wyboru jednej z dostępnych usług: Engineering, Make lub PartSupply. Dostęp do portalu Marketplace oraz usługa PartSupply są darmowe, ale to nie oznacza, że bezwartościowe, bo gwarantują dostęp do ponad 30 milionów modeli 3D, oferowanych przez więcej niż 700 dostawców z 30 krajów.
Rys. 4
Wbudowane mechanizmy przeszukiwania bazy danych oraz filtrowania wyników pozwalają w szybki sposób zidentyfikować wymagany komponent (Rys. 4). Dostępna jest także możliwość porównania wybranych komponentów, a każdy z nich jest dostępny w formatach CATIA V5, SOLIDWORKS oraz STEP (tylko *.CATPart w przypadku logowania do portalu Marketplace z systemu CATIA V5).
Rys. 5
Po dokonaniu wyboru użytkownik może wstawić (Insert) komponent do struktury produktu, zamienić (Replace) wybrany komponent we wskazanym złożeniu lub po prostu otworzyć (Open) model 3D komponentu w nowym oknie systemu CATIA V5. Niezależnie od wybranej akcji system zapisze model 3D na dysku lokalnym zsynchronizowanym z portalem Marketplace. Jeśli wybrano polecenie Insert, to wstawiony komponent jest częścią wskazanej struktury (tu: din_912-m10x1-45-a4-70 w strukturze produktu VERTICAL_TRANSMISSION na rysunku 5A). Trzeba oczywiście ustalić właściwe położenie śruby w kontekście zespołu: wstępnie za pomocą polecenia Manipulation i dokładnie za pomocą poleceń z grupy Assembly Constraints. Warto zauważyć, że dokładna definicja geometrii komponentu (typu Exact Solid) nie jest parametryczna (PartBody/Solid.1 na Rys.5B), ale na poziomie komponentu dostępne są parametry (REFERENCE, MATERIAL, STANDARD, itd.), które mogą być „skonsumowane” w systemach klasy PLM.
Po wstawieniu komponentu i uruchomieniu polecenia Save Management widać wyraźnie, że definicja komponentu din_912-m10x1-45-a4-70 jest zapisana lokalnie i zsynchronizowana z dyskiem Internetowym 3DEXPERIENCE Drive Dassault Systemes (Rys. 6), który jest także dostępny (po zalogowaniu) po uruchomieniu aplikacji 3DDrive (Rys. 7).
Rys. 6
Rys. 7
Taka definicja modelu 3D komponentu standardowego (dostępna w katalogu lokalnym lub na portalu Marketplace/PartSupply) nie rozwiązuje wszystkich problemów związanych z jego zastosowaniem, bo nie zawiera ona elementów, które mogłyby ułatwić automatyczne pozycjonowanie. W takim przypadku konieczne jest zastosowanie polecenia Assembly Constraints (środowisko Assembly Design), które wspomaga definiowanie wzajemnych relacji pomiędzy komponentami projektowanego wyrobu. Odpowiednie położenie i orientacja komponentu w przestrzeni projektowej to nie wszystko, bo wiele komponentów standardowych (na przykład śruby, kołki, wkładki, itp.) wpływa na kształt innych komponentów projektowanego złożenia (na przykład otwory lub wybrania). W „klasycznym” środowisku projektowym ten wpływ musi być zdefiniowany „ręcznie” i tylko od inwencji konstruktora zależy to, czy taka definicja jest „inteligentna”. „Inteligentna” oznacza tu asocjatywne powiązanie pomiędzy geometrią komponentu standardowego a jego wpływem na otoczenie projektowe – zmiana rozmiaru (parametrów) elementu standardowego powinna odpowiednio modyfikować jego wpływ na pozostałe komponenty zespołu.
Odpowiedzią na tak zdefiniowane wymagania (czyli wybór komponentu, ustalenie jego orientacji w przestrzeni 3D oraz definicja wpływu na kontekst projektowy) może być zastosowanie makr napisanych w Visual Basic. Takie rozwiązanie oznacza nie tylko spory nakład pracy (o umiejętnościach nie wspomnę), ale także konieczność weryfikacji działania tych makr po wykonaniu upgradu do nowszej wersji system CAD. Łatwiejsza metoda realizacji takiej koncepcji w systemie CATIA V5 polega na zastosowaniu polecenia Add User Component dostępnego z licencją Tooling Design 1 (TG1). TG1 jest „okrojoną” wersją licencji Mold Tooling Design (MTD) i chociaż nazwy obu licencji sugerują ich potencjalne zastosowanie w branży narzędziowej, to wymienione wyżej polecenie może być zastosowane w projektowaniu produktów dowolnego typu.
Każde rozwiązanie automatyzujące proces ma określone wymagania, które w przypadku polecenia Add User Component oznaczają, że komponent musi mieć ściśle określoną strukturę. Na przykład, model geometryczny rozważanej wcześniej śruby (tu wg ISO 4762) jest złożony z 4 elementów (Rys. 8):
- PartBody – model bryłowy śruby,
- DrillHole – model bryłowy pogłębienia na łeb śruby oraz otworu przelotowego na trzpień śruby,
- TapHole – model bryłowy otworu gwintowanego,
- BaseBody:
- Base – punkt bazowy śruby.
Rys.8
Nazwy powyższych elementów nie mogą być zmienione, bo tylko wtedy podczas wstawiania śruby system może je automatycznie rozpoznać. Położenie śruby jest określone za pomocą punktu Base w zestawie geometrycznym BaseBody, a jej automatyczna orientacja (podczas wstawienia do kontekstu projektowego) zależy od tego w jaki sposób zdefiniowano punkty wstawienia:
- Jeśli wskazano punkt lub punkty (obiekty typu Point), to oś Z wstawianego komponentu jest równoległa do osi Z kontekstu projektowego,
- Jeśli wskazany punkt lub punkty są zdefiniowane wewnątrz szkicu (obiekt typu Sketch), to oś Z komponentu(ów) jest prostopadła do płaszczyzny podstawowej tego szkicu.
Z tego powodu w definicji komponentu standardowego preferowany kierunek powinien być równoległy do osi Z lokalnego układu współrzędnych. Sposób definiowania geometrii poszczególnych elementów takiej struktury jest dowolny, ale trzeba pamiętać, że bryły DrillHole oraz TapHole muszą mieć polaryzację ujemną. Taka polaryzacja jest automatycznie definiowana po zastosowaniu poleceń Pocket, Hole czy Groove (środowisko Part Design). Jeśli komponent (tu śruba) po wstawieniu w strukturę produktu ma wpływać na kształt kilku innych komponentów zespołu, to w ostatnim z tych komponentów (najdalszym od łba śruby) system zdefiniuje odpowiedni otwór gwintowany (zgodny z definicją bryły TapHole), a w pozostałych otwory przelotowe (zgodne z definicją bryły DrillHole).
Model rozważanej śruby jest oczywiście parametryczny (Rys.9), trzpień śruby jest zorientowany w kierunku osi Z, a bryły DrillHole i TapHole są opublikowane. Taka definicja ułatwia proces zastosowania komponentu standardowego.
Rys. 9
Jak to działa? Rozważmy model produktu złożonego z dwóch komponentów (PlateA i PlateB na rysunku 10). Komponent PlateA zawiera definicję położenia śrub mocujących oba komponenty (szkic Sketch – Screw Positions).
Rys. 10
Po uruchomieniu polecenia Add User Component aktywny produkt (Product.1 na rysunku 11) jest automatycznie ustawiony jako produkt nadrzędny (tu: Father Product), do którego dodany zostanie nowy komponent. Wybór komponentu (pole Config okna Define Component) jest możliwy z katalogu lub bezpośrednio z pliku dyskowego (CapScrew ISO 4762.CATPart na rysunku 11).
Rys. 11
Jeśli trzeba, to użytkownik powinien wskazać komponenty, dla których ma być zdefiniowany wpływ wstawianej śruby (tu Drill from = PlateA.1 oraz To = PlateB.1). Warto zauważyć, że domyślnie jest aktywny tryb Constraints – dzięki temu system automatycznie zdefiniuje relacje typu Assembly Constraints pomiędzy śrubą a płytą PlateA.1, bo w tym modelu jest zdefiniowane położenie wstawianych śrub. Po wskazaniu szkicu Sketch – Screw Positions system wstawia aktualnie zdefiniowaną śrubę we wszystkich punktach szkicu. Użytkownik ma oczywiście możliwość usunięcia wybranych instancji oraz modyfikacji położenia i orientacji śruby.
Wybór wielkości śruby odbywa się podobnie jak poprzednio, czyli za pomocą tabeli wariantów konstrukcyjnych (Rys. 12). Po wyborze nowego wariantu i jego zatwierdzeniu system uaktualnia wstępną wizualizację wstawianych śrub.
Rys. 12
Jeśli w oknie Define Component był aktywny tryb Several Instances per Reference, to po wykonaniu polecenia Add User Component (Rys. 13) w strukturze produktu Product.1 mamy tyle instancji komponentu CapScrew ISO 4762 M10x70_1 ile punktów jest zdefiniowanych w szkicu Sketch – Screw Positions, a po rozwinięciu węzła Constraints widoczne są automatycznie zdefiniowane relacje (tu: typu Offset) pomiędzy wszystkimi instancjami śruby i płytą PlateA.1.
Rys. 13
Analiza przekroju tak zdefiniowanego złożenia (polecenie Sectioning w środowisku Assembly Design na rysunku 14) potwierdza wykonanie odpowiednich otworów w obu płytach.
Rys. 14
W definicji tych otworów zastosowane zostały operacje Boole’a na poziomie złożenia (tu: Assembly Features). Otwory w płytach PlateA.1 i PlateB.1 są asocjatywnie powiązane z ich definicją nadrzędną w pliku CapScrew ISO 4762 M10x70_1.CATPart, czyli z definicją brył DrillHole (dla komponentu PlateA.1) oraz TapHole (dla komponentu PlateB.1).
Rys. 15
Tak zdefiniowany komponent można określić mianem „inteligentny”, bo poza zautomatyzowaną procedurą zastosowania takiego komponentu, w środowisku Tooling Design (Rys. 16A) można wykonać kilka niezwykle użytecznych poleceń, które nie są dostępne w środowisku Assembly Design (Rys. 16B): na przykład Delete component lub Replace Reference.
Rys. 16
Wszystkie te polecenia realizują specyficzne modyfikacje z uwzględnieniem cech typu Assembly Feature, zdefiniowanych w poszczególnych komponentach projektowanego wyrobu. Na przykład dla komponentu CapScrew ISO 4762 M10x70_1.4:
Polecenie Activate/Deactivate Tooling Component (Rys. 17A) włącza/wyłącza nie tylko wskazaną instancję komponentu, ale także powiązane z tym komponentem relacje typu Assembly Constraint oraz jego wpływ na inne komponenty zespołu (tu: DrillHoleCapScrew ISO 4762 M10x70_1.4 w instancji PlateA.1 oraz niewidoczny na rysunku TapHoleCapScrew ISO 4762 M10x70_1.4 w instancji PlateB.1).
Rys. 17
Polecenie Delete component (Rys. 17B) usuwa wskazany komponent ze struktury produktu, powiązane z nim relacje typu Assembly Constraints oraz usuwa jego wpływ na inne komponenty zespołu.
Komponenty standardowe, które mogą być zastosowane w środowisku Tooling Design 1 nie muszą być pojedynczymi częściami (śruba, kołek, itp.). W podobny sposób można zdefiniować komponent standardowy, który składa się z wielu części (*.CATProduct w systemie CATIA V5), ale o tym w kolejnym odcinku.
Andrzej Wełyczko
artykuł pochodzi z wydania 7/8 (142/143) lipiec/sierpień 2019