Skąd wiadomo jaki kształt ma mieć projektowany element? Odpowiedź wydaje się oczywista: taka jest intencja konstruktora, który biorąc pod uwagę funkcję części w kontekście jej otoczenia projektowego, obciążenia, sposób mocowania, dostępną przestrzeń projektową oraz ograniczenia technologiczne proponuje najlepszy jego zdaniem kształt. Ale czy jest to kształt najlepszy z możliwych czyli optymalny? Jeśli optymalny oznacza najlepszy z tych, który spełnia wszystkie funkcje projektowanej części, zadane wymagania i ograniczenia, to intencja konstruktora wcale nie musi być optymalna.


W zakresie poszukiwania optymalnego kształtu projektowanego komponentu od lat dostępne są systemy do optymalizacji topologicznej. Te jednak realizują jedynie część procesu (Rys. 1), w którym dane, definiowane zwykle przez kilku uczestników i to w różnych systemach CAD i CAE, muszą być pomiędzy tymi systemami transferowane. Problemem jest także to, że optymalizacja topologiczna (bazująca na metodzie elementów skończonych) generuje rezultat w postaci siatki MES, która w systemie CAD musi być „zamieniona” na dokładną definicję geometryczną, a proces takiej rekonstrukcji geometrycznej nie jest ani łatwy, ani szybki. W takim mało zintegrowanym środowisku trudno jest zrealizować pętlę optymalizacyjną, której zadaniem byłoby zdefiniowanie, porównanie oraz wybór rozwiązania optymalnego spośród kilku wariantów. Wybór optymalnego kształtu projektowanej części to jednak nie wszystko, bo do pełni szczęścia potrzebny jest jeszcze zintegrowany z CAD/CAE system CAM, w którym zostanie zdefiniowany optymalny proces wytwarzania, uwzględniający specyficzne wymagania technologiczne (na przykład kucie, odlewanie czy druk 3D).
Rozważmy zastosowanie aplikacji CATIA Functional Generative Design (dostępnej w najnowszej wersji platformy 3DEXPERIENCE), która wspomaga kompleksowo proces generowania optymalnej geometrii na podstawie specyfikacji funkcji projektowanej części:
A) Specyfikacja funkcjonalna:
- Definicja przestrzeni projektowej oraz obszarów funkcjonalnych.
- Definicja wszystkich możliwych przypadków obciążeń oraz warunków brzegowych.
- Ustalenie granicznych wartości parametrów wynikowych (dopuszczalnych naprężeń, odkształceń, częstotliwości własnych) oraz ograniczeń kształtu wynikających z planowanej technologii wykonania, a także minimalna grubość ścianek i symetria.
- Definicja funkcji celu optymalizacji topologicznej.
B) Definicja wariantów rozwiązania:
- Optymalizacja topologiczna i definicja różnych wariantów rozwiązania oraz sprawdzenie ich wytrzymałości/odkształceń.
- Porównanie wariantów i wybór rozwiązania optymalnego.
C) Finalna rekonstrukcja modelu.


„Asystent” (Exploration Assistant na Rys. 2), dostępny w tej aplikacji, ułatwia definicję kolejnych kroków procedury projektowej oraz zarządzanie wszystkimi danymi i wynikami obliczeń.


Rozważmy kolejne kroki takiego procesu na przykładzie elementu mocowania silnika lotniczego. Na Rys. 3 pokazano zestawienie zaprojektowanej metodami klasycznymi wersji (kolor pomarańczowy) tego komponentu z dostępną przestrzenią projektową (kolor szary). Bryła Design Space (Rys. 4) określa maksymalną przestrzeń dostępną i niezbędną dla wykonania funkcji projektowanej części w ruchu z uwzględnieniem rodzaju powiązania z innymi częściami zespołu. Celem zastosowania aplikacji GDE jest znalezienie takiego kształtu projektowanej części, który jest zawarty w przestrzeni projektowej i jednocześnie spełnia wszystkie wymagania funkcjonalne oraz narzucone ograniczenia.


Każdy złożony (wieloetapowy) proces projektowy, a takim niewątpliwie jest poszukiwanie optymalnego kształtu, powinien uwzględniać zalecenia metodologiczne. Z tego i tylko z tego powodu bryła Design Space została skopiowana (Copy/Paste As Result with Link) i zapamiętana pod nową nazwą: Partitions (Rys. 4). Dzięki temu różne warianty bryły Design Space mogą być łatwo zintegrowane z kolejnymi etapami procedury konstrukcyjnej po zastosowaniu polecenia Replace. Jeśli zadaniem jest optymalizacja topologiczna, to przed rozpoczęciem procesu poszukiwania optymalnego kształtu trzeba zdefiniować materiał (tu Titanium) oraz miejsca, które z oczywistych powodów nie mogą być modyfikowane (mocowanie i kontakt z innymi częściami zespołu) – tu Solid Partition.1 (otwór centralny), Solid Partition.2 (4 otwory mocujące w podstawie) i Solid Partition.3 (gniazdo pozycjonowania podstawy – niewidoczne) zdefiniowane za pomocą polecenia Partition Design Space. Dzięki takiej definicji ustalone później obciążenia oraz rodzaj mocowania/usztywnienia tego komponentu będą powiązane zawsze z tymi samymi fragmentami bryły niezależnie od geometrii wybranej jako optymalna.


Po takim wstępnym przygotowaniu modelu przestrzennego można rozpocząć definiowanie zadania optymalizacyjnego. W tym celu należy uruchomić polecenie Exploration Assistant, które tworzy strukturę danych niezbędnych do wykonania zadania oraz zapamiętania wyników – tu Sim_WA4_Joiner_Variant0 (Rys. 5). Ta struktura zawiera trzy podstawowe węzły:
- Model – wstępna definicja geometrii optymalizowanej części, czyli przestrzeń projektowa oraz obszary, które nie mogą być modyfikowane w czasie optymalizacji,
- Scenario – definicje wszystkich scenariuszy obliczeniowych (szczegóły poniżej),
- Result – węzeł grupujący wyniki obliczeń dla każdego scenariusza.
Lista kolejnych etapów procedury prezentowana w oknie Exploration Assistent ułatwia zachowanie odpowiedniej kolejności realizowanych zadań, a ponadto jest też czytelnym wskaźnikiem poprawności i kompletności kolejnych kroków. Pierwszy z tych kroków to wskazanie bryły, która definiuje przestrzeń projektową: Design Space → Partitions. W tym samym kroku konstruktor ma możliwość wyboru rodzaju generowanej siatki oraz wielkości jej elementów. Metoda generowania siatki jest automatyczna i pewnie dla eksperta oferuje zbyt mało możliwości (na przykład zagęszczenie siatki w pewnych obszarach), ale przypominam, że to jest narzędzie dla konstruktora, a nie specjalisty z zakresu MES. Jakkolwiek wskazanie obszarów funkcjonalnych nie jest konieczne do wykonania optymalizacji topologicznej, to jednak w wielu przypadkach jest konieczne dla spełnienia funkcji części w zespole. Tu wskazano obszary funkcjonalne (Rys. 6), które wcześniej zostały zdefiniowane za pomocą polecenia Partition Design Space.


Kolejnym krokiem procedury (po zdefiniowaniu wymaganych elementów geometrycznych) jest definicja obciążeń (Analysis Setup/Loads na Rys. 7) oraz wszystkich zadanych warunków brzegowych (Boundary Conditions i Connections). Dla wskazanej powierzchni i wybranego typu obciążenia (Pressure, Force, …, Remote Torque) zadajemy jego wielkość (tu Bearing Load.1=33420N i Bearing Load.2=54640N), a następnie definiujemy różne przypadki obciążenia, czyli dowolne kombinacje obciążeń (tu Linear Load Case.1, Linear Load Case.2 i Linear Load Case.3).


W zakresie definiowania warunków brzegowych (Boundary Conditions na Rys. 8) system proponuje wybór jednego z czterech typów: Clamp, Fixed Displacement, Ball Joint lub Hinge. W przypadku Fixed Displacement konieczne jest wskazanie, w których kierunkach przemieszczenia są zablokowane.


Równie łatwo definiujemy różne rodzaje połączeń (Connections na Rys. 9). Jeśli wybrane zostało połączenie śrubowe, to w oknie Bolt Editor można ustalić typ śruby, rozmiar oraz parametry jej sztywności. Warto zauważyć, że system rozpoznaje otwory o tej samej średnicy i jeśli w tych otworach mają być zdefiniowane identyczne śruby, to polecenie Bolt Replication kopiuje taką definicję we wskazane lub automatycznie wybrane miejsca.


Na tym etapie można, choć nie trzeba, wykonać sprawdzenie poprawności zdefiniowanych dotychczas elementów (Setup Validation w oknie Exploration Assistant). Celem takiego sprawdzenia jest wykrycie ewentualnych nieścisłości, które mogłyby wpłynąć na przebieg i rezultat optymalizacji. Czasami błędna lub niekompletna definicja zadania może uniemożliwić rozwiązanie zadania optymalizacyjnego.
Elementy zdefiniowane do tej pory są typowe dla każdego zadania MES. Jeśli zadanie dotyczy optymalizacji kształtu, a dokładniej optymalizacji topologicznej, to należy także zdefiniować cel optymalizacji (Optimization Target na Rys. 10). Celem może być znalezienie takiego modelu optymalnego, dla którego:
- Sztywność jest największa (Maximize Stiffness),
- Wartości pięciu najniższych częstotliwości własnych są maksymalne (Maximize Frequencies)
- Masa jest najmniejsza (Minimize Mass).


Jeśli wybranym celem optymalizacji nie jest Minimize Mass, to dodatkowo trzeba ustalić wartość jednego z kryteriów: Target Mass % of Design Space lub Target Mass Value.
Poszukiwanie rozwiązania optymalnego może być dodatkowo ograniczone (patrz Constraints na Rys. 11). Na przykład jeśli naprężenia nie mogą przekroczyć pewnej wartości to po wybraniu Stress Constraint należy zadać tą wartość i zdecydować czy to ograniczenie dotyczy wszystkich przypadków obciążenia (Load Cases) czy tylko wybranych.


Ograniczenia w poszukiwaniu rozwiązania optymalnego mogą także dotyczyć także samego kształtu projektowanej części (patrz Shape Controls na Rys. 12). Trzeba przecież uwzględnić planowany sposób wytwarzania projektowanej części, minimalną grubość, symetrię względem zadanej płaszczyzny lub symetrię cykliczną, czyli kątową powtarzalność względem zadanej osi.


Tu warto zauważyć, że jeśli projektowany element ma być wykonany w technologii przyrostowej, to nie narzucamy żadnych ograniczeń technologicznych (tryb No Constraint), bo „druk 3D” jest możliwy dla każdego kształtu. Jeśli planujemy wykonać projektowany element za pomocą znanych od lat technologii (na przykład: odkuwka, odlew, wypraska), to trzeba wybrać jedną z pozostałych opcji: Single Draw, Split Draw lub Extrusion. W tym kontekście powinno być oczywiste, że aplikacja GDE może być stosowana nie tylko dla komponentów wykonywanych na drukarkach 3D, ale także tych, które mają być wytwarzane metodami tradycyjnymi. Zasadnicza różnica polega na tym, że o ile w podejściu tradycyjnym koncepcja kształtu projektowanej części powstaje w głowie konstruktora, a jej model model bryłowy jest w systemie CATIA definiowany za pomocą aplikacji Part Design i czasami Generative Shape Design, to w przypadku zastosowania aplikacji Functional Generative Design propozycja kształtu jest generowana przez system, a rolą konstruktora jest „tylko” wybór i weryfikacja rozwiązania optymalnego.
Na tym etapie realizacji procedury projektowej można rozpocząć poszukiwanie rozwiązania optymalnego, czyli uruchomić polecenie Compute Shape (Rys. 13). Proces poszukiwania rozwiązania optymalnego jest iteracyjny i może trwać od kilku minut do kilkunastu godzin w zależności od tego jak bardzo złożona jest definicja samego zadania, jaka licencja jest dostępna oraz jakie zasoby (liczba procesorów) są w dyspozycji.


Wyniki obliczeń są dostępne po uruchomieniu polecenia Select Shape (Rys. 14). Użyłem liczby mnogiej (wyniki), bo dla różnych wartości parametru Iso-value (patrz okno View cuts) dostępne są różne rozwiązania (Rys. 15). Zadaniem konstruktora jest wybór jednego lub kilku rozwiązań, które będą w dalszej kolejności analizowane.




Wynik optymalizacji topologicznej jest siatką MES, która w celu ostatecznej weryfikacji kształtu musi być zamieniona na dokładną reprezentację geometryczną. W tym celu należy uruchomić polecenie Generate Concept Shape (Rys. 16), które automatycznie generuje zestaw powierzchni (tu Splitting surfaces.1) wymaganych do zdefiniowania koncepcyjnego modelu bryłowego (tu Concept shape.1). Struktura takiego modelu bryłowego nie jest zbyt skomplikowana (Rys. 17):
- Add.1 – przestrzeń projektowa (Design Space) bez obszarów zdefiniowanych za pomocą polecenia Partition Design Space,
- Split.1 – odcięcie bryły A za pomocą powierzchni zdefiniowanej na podstawie siatki MES wybranego rozwiązania optymalnego,
- Add.2 – dodana przestrzeń zarezerwowana na otwór centralny Solid Partition.2,
- Add.3,… , Add.7 – dodane przestrzenie zarezerwowane Solid Partition.3,… , Solid Partition.7.




Bryła, którą system proponuje jest tylko koncepcją optymalnego modelu bryłowego projektowanej części i dlatego jej kształt powinien być zweryfikowany. Dzięki opisanej wcześniej strukturze modelu Sim_WA4_Joiner_Variant0 system automatycznie zastosuje zadane w punkcie Analysis Setup obciążenia i warunki brzegowe do wykonania analizy Validate Shape (Rys. 18) dla aktualnej geometrii projektowanej części, czyli bryły Concept shape.1. Jedyne co można zmienić na tym etapie to dokładność siatki MES (FEM of Shape Validation.1), na podstawie której wykonane będą obliczenia. Lista dostępnych wyników obliczeń dla Shape Validation.1 jest dostępna w oknie Plots (Rys. 19).






W podobny sposób dla tych samych obciążeń i warunków brzegowych, ale różnych wartości współczynnika Iso-value lub innych ograniczeń (Constraints i/lub Shape Controls) można zdefiniować kolejne warianty projektowe (Rys. 20) oraz porównać nie tylko ich kształt, ale także masę, objętość, parametry wytrzymałościowe oraz odkształcenia. Dzięki takiemu porównaniu łatwiej jest wybrać wariant najlepszy czyli optymalny.


Ostatnim etapem takiego procesu projektowego jest rekonstrukcja powierzchni, która jest wynikiem optymalizacji topologicznej. Dlaczego? Powierzchnia zdefiniowana automatycznie po wykonaniu polecenia Generate Concept Shape (na Rys. 21 są to dwie powierzchnie: Subdivision Surface.1 i Subdivision Surface.2, połączone w jeden logiczny obiekt: Join.1) jest jedynie propozycją koncepcji kształtu i nie jest idealna, bo algorytm definiujący tą powierzchnię wykonuje jej rekonstrukcję na podstawie przybliżonej definicji w postaci siatki MES. Użytkownicy rozwiązań z grupy Reverse Engineering systemu CATIA V5 zapewne znają polecenie Automatic Surface dostępne w środowisku Quick Surface Reconstruction. Podobny algorytm został zastosowany w przypadku polecenia Generate Concept Shape. Już w nazwie tego polecenia pojawia się słowo Concept, które sugeruje, że nie jest to model finalny. Kształt powierzchni koncepcyjnej jest związany w wielkością elementów siatki (im mniejsze elementy tym gładsza powierzchnia), ale trzeba pamiętać, że im mniejsza wielkość elementów siatki, tym dłuższy jest czas obliczeń. Jakość tej powierzchni przekłada się oczywiście na jakość bryły Concept shape.1 i dlatego rekonstrukcja , której celem jest uproszczenie i wygładzenie powierzchni jest konieczna.


Aplikacja GDE oferuje wiele narzędzi wspomagających proces takiej rekonstrukcji bazujący na znanej także użytkownikom systemu CATIA V5 technologii subdivision surface modeling (patrz środowisko Imagine and Shape). W szczególności chciałbym zwrócić uwagę Czytelnika na dwa z nich (Rys. 22):
- IMA-Tube Drawing – polecenie, które na istniejącej powierzchni lub bryle pozwala zdefiniować powierzchnię typu tuba dla zadanego przekroju (okrąg, elipsa, kwadrat lub prostokąt). Wydawałoby się, że to nic specjalnego, ale te przekroje są definiowane na płaszczyznach prostopadłych do ekranu za pomocą ręcznie szkicowanych i automatycznie prostowanych linii.
- IMA-Strip Drawing – polecenie, które na istniejącej siatce, powierzchni lub bryle pozwala zdefiniować kolejne płaty powierzchni swobodnej z zachowaniem ciągłości pomiędzy tymi płatami. Położenie wierzchołków sieci kontrolnej takiej powierzchni może być dowolnie modyfikowane, a kształt definiowanej powierzchni jest automatycznie odświeżany.
Wymienione wyżej polecenia, a także IMA-Modification czy IMA-Symmetry pozwalają wykonać rekonstrukcję dowolnej powierzchni w ciągu minut lub godzin, a nie dni.


Jeśli model części jest symetryczny, to wystarczy wykonać rekonstrukcję powierzchni finalnej na fragmencie bryły (Rys. 23). Różnica pomiędzy powierzchnią koncepcyjną a finalną jest ewidentna: powierzchnia Subdivision Surface.3 jest gładka i ma mniej płatów elementarnych (tylko 59 w porównaniu z 1446 dla powierzchni koncepcyjnej).
Aby zintegrować zrekonstruowaną powierzchnię z modelem bryłowym należy wykonać operacje symetrii (koniecznie za pomocą polecenia IMA-Symmetry, bo rezultat tego polecenia gwarantuje ciągłość G2 powierzchni podstawowej i jej symetrycznej kopii). Następnie wykonujemy kopię bryły Concept shape.1 (tu Final Shape na Rys. 24) i modyfikujemy dane wejściowe polecenia Split.2 (zamiana Join.1 na Subdivision Symmetry.2). Aż tyle i tylko tyle – optymalny model bryłowy jest prawie gotowy.


W ostatnim kroku gotowy model bryłowy sprawdzamy pod kątem wytrzymałości i odkształceń, czyli ponownie wykonujemy polecenie Validate Shape, ale tym razem dla bryły Final Shape (Rys. 25). Obciążenia oraz warunki brzegowe pozostają takie, jak zdefiniowane w definicji zadania optymalizacyjnego – wystarczy wskazać nową geometrię, uruchomić obliczenia i poczekać na wizualizację wyników.


Gdyby jednak okazało się, że konieczna jest jeszcze „drobna” modyfikacja geometrii (na przykład dlatego, że naprężenia maksymalne są za duże), to można ją wykonać za pomocą polecenia IMA-Modification (dostępnym w aplikacji Functional Generative Design) lub zdefiniować zadanie optymalizacji parametrycznej w aplikacji Design Optimization. Design Optimization to aplikacja, która jest odpowiednikiem środowiska Product Engineering Optimizer w systemie CATIA V5. Przed zastosowaniem optymalizacji parametrycznej należy przygotować dodatkowe elementy geometryczne (punkty, linie, krzywe lub powierzchnie), które w kolejnym kroku zostaną powiązane z punktami kontrolnymi powierzchni deformowanej (tu Subdivision Surface.3). Na przykład jeśli dla współrzędnych punktu oznaczonego jako Linked Point na Rys. 26 zdefiniujemy relacje równości z parametrami LinkedPoint-H i LinkedPoint-V, a następnie zwiążemy ten punkt z punktem kontrolnym powierzchni Subdivision Surface.3 (polecenie IMA – Link na Rys. 27), to każda zmiana wartości tych parametrów wpływa na zmianę kształtu powierzchni (w pobliżu powiązanego punktu kontrolnego) i w konsekwencji także zmienia rozkład naprężeń i odkształceń modelu finalnego.




Modyfikacje wartości parametrów LinkedPoint-H i LinkedPoint-V mogą być wykonane „ręcznie” lub automatycznie po zdefiniowaniu zadania optymalizacyjnego w aplikacji Design Optimization. Szczegóły pominę, bo zastosowanie tej aplikacji nie różni się zasadniczo od jej odpowiednika w systemie CATIA V5. Istotne jest to, że po niewielkich modyfikacjach można osiągnąć znaczącą redukcję wartości naprężeń (tu z 3,92e8 MPa na 2,82e8 MPa – Rys. 28). Oczywiście sprawdzenie poziomu naprężeń i odkształceń powinno być wykonane dla wszystkich zdefiniowanych przypadków obciążeń, czyli w tym przypadku nie tylko dla Linear Load Case.1, ale także dla Linear Load Case.2 i Linear Load Case.3.


Functional Generative Design (GDE) to aplikacja integrująca funkcje z zakresu CAD i CAE. W jednej aplikacji mamy dostępne narzędzia wspomagające procesy definiowania geometrii, definiowania i rozwiązywania zadań obliczeniowych z zakresu MES oraz optymalizacji topologicznej kształtu z uwzględnieniem ograniczeń związanych z planowanym sposobem produkcji (nie tylko technologie przyrostowe!). Czy taki sposób definiowania geometrii projektowanych części jest interesujący, bardziej wydajny i oferujący znacznie więcej niż tradycyjne metody projektowania i weryfikacji konstrukcji? Moim zdaniem tak, bo GDE wspomaga definiowanie i weryfikację komponentów o niekonwencjonalnych kształtach, które w konsekwencji pozwalają uzyskać znaczące oszczędności materiałowe. Trzeba jednak pamiętać, że rezultat procesu wspomaganego przez CATIA Functional Generative Design jest w dużej mierze zależny od specyfikacji materiału, z którego projektowana część ma być wykonana. Materiały stosowane w „klasycznych” metodach wytwarzania są znane od lat, a ich parametry, przetestowane w wielu zastosowaniach produkcyjnych, nie zmieniają się znacząco w procesie produkcji. W przypadku „druku 3D” materiał wejściowy (zwykle sproszkowany) ma parametry inne niż materiał części po wykonaniu. Można powiedzieć, że parametry materiałowe drukowanej części są definiowane w procesie jej wytwarzania (temperatura, rodzaj procesu, strategia ruchu lasera, itp.). Z tego powodu kalibracja materiału, czyli iteracyjny proces definiowania specyfikacji materiałowej i weryfikacja tych parametrów po zakończeniu druku 3D oraz symulacja i optymalizacja samego procesu drukowania 3D są niezbędne. To jednak jest temat na kolejny artykuł.
Andrzej Wełyczko
artykuł ukazał się w dwóch częściach w wydaniach 7/8 (118/119) lipiec/sierpień i 9 (120) wrzesień 2017