16 października 2021

Niestety nawet wtedy, gdy zwroty zamienianych elementów są poprawne, to rezultat zamiany nie zawsze jest zgodny z intencją konstrukcyjną. Jeśli dla nowych elementów podstawowych otrzymamy inny niż oczekiwany rezultat, to nie ma się czemu dziwić, bo gdy stosujemy polecenie Split system nie zawsze dokona takiego samego wyboru powierzchni pozostawionej po odcięciu, jakiego w sposób „ręczny” dokonał wcześniej konstruktor (Rys. 77).

Rys77
Rys. 77

W tym przypadku dla powierzchni Split.3 system zachował lewą część powierzchni Offset.2 i odrzucił prawą.
Jeśli ponadto nie ustalimy zgodnych zwrotów płaszczyzn zastosowanych do przycięcia powierzchni (na rysunku 78 płaszczyzna New Right Outer Plane ma zwrot przeciwny do Right Outer Plane), to system nie może wykonać rekonstrukcji modelu – w oknie Update Diagnosis prezentowana jest diagnoza problemu.

Rys78
Rys. 78

Niezgodny zwrot płaszczyzny New Right Outer Plane powoduje, że krawędź powierzchni Split.3 (krzywa Intersect.4 zdefiniowana podczas wykonywania polecenia Split z aktywnym trybem Intersections computation) ma także zwrot przeciwny do krzywej pierwotnej. Na rysunku 79 krzywa oznaczona jako Second Curve ma zwrot przeciwny do krzywej First Curve, a to w rezultacie powoduje skręcenie powierzchni Blend.2 – taka powierzchnia nie może być zdefiniowana.

Rys79
Rys. 79

Mamy więc dwa problemy do rozwiązania: jak „wymusić” poprawny wybór powierzchni pozostawionej po odcięciu za pomocą polecenia Split oraz co zrobić z niezgodnością kierunków krzywych brzegowych zastosowanych w definicji powierzchni typu Blend?
Jeśli problem wyboru powierzchni po odcięciu ma być rozwiązany automatycznie i zgodnie z intencją konstrukcyjną, to potrzebne będą pomocnicze elementy geometryczne. Mogą nimi być płaszczyzny (Rys. 80) zdefiniowane w zestawie AuxGeo (LEFT Joggle Plane, MIDDLE Split Plane i RIGHT Joggle Plane), które zostaną zastosowane w czasie wykonywania polecenia Split dla określenia, którą część powierzchni po odcięciu należy pozostawić (Elements to keep) lub usunąć (Elements to remove). Płaszczyzny zestawu AuxGeo zostały zdefiniowane pomiędzy płaszczyznami zestawu Input. Na przykład płaszczyzna MIDDLE Split Plane znajduje się pomiędzy płaszczyznami New Left Inner Plane i New Right Inner Plane. Jeśli definicja powierzchni Split.1 ma być jednoznaczna, to trzeba ustalić, który z trzech płatów powierzchni NewOMLSurface powstałych po odcięciu płaszczyznami New Left Inner Plane i New Right Inner Plane system powinien pozostawić, a które odrzucić. W tym celu można zdefiniować punkt Point.1, który jest środkiem krzywej powstałej z przecięcia płaszczyzny MIDDLE Split Plane z powierzchnią NewOMLSurface. Tak zdefiniowany punkt może być zastosowany w polu Elements to keep w oknie Split Definition w celu wskazania tej części powierzchni NewOMLSurface, która ma pozostać po wykonaniu polecenia Split. Taka definicja jest jednoznaczna, bo system zawsze pozostawi tę część powierzchni, która znajduje się pomiędzy płaszczyznami New Left Inner Plane i New Right Inner Plane, niezależnie od położenia i zwrotu tych płaszczyzn.

Rys80
Rys. 80

Podobnie dla powierzchni Split.2 (Rys. 81) w polu Elements to remove okna Split Definition został zdefiniowany punkt Point.2, który jest środkiem krzywej Intersect.6, a ta z kolei jest rezultatem przecięcia płaszczyzny LEFT Joggle Plane z powierzchnią Offset.1. Punkt Point.2 wskazuje prawą część powierzchni Offset.1 jako tę, która ma zostać odrzucona po odcięciu – system pozostawił lewą, zgodną z intencją konstrukcyjną część powierzchni Offset.1. Analogicznie trzeba zdefiniować punkt Point.3, który pozwoli jednoznacznie zdefiniować powierzchnię Split.3.

Rys81
Rys. 81

Problem niejednoznaczności definicji powierzchni Split.1, Split.2 i Split.3 został rozwiązany. Zastosowanie pomocniczych elementów geometrycznych uniezależnia procedurę konstrukcyjną od orientacji płaszczyzn zastosowanych w poleceniu Split. Pozostaje jednak problem zwrotu krzywych, które są podstawą definicji powierzchni typu Blend. Jeśli zmieni się zwrot płaszczyzny tnącej (tu New Right Outer Plane), to zmieni się także zwrot krzywej Intersect.4 (generowanej automatycznie podczas definicji powierzchni Split.3). Nie znam procedury konstrukcyjnej, która mogłaby zmienić zwrot krzywej po analizie otoczenia geometrycznego, bo to jest możliwe tylko za pomocą makra w Visual Basic lub zasady konstrukcyjnej (Knowledge Advisor Rule). Jedyne racjonalne rozwiązanie (bez konieczności programowania) to „ręczna” zmiana zwrotu krzywej wewnątrz definicji powierzchni Blend.2 (Rys. 82).

Rys82
Rys. 82

Czy zawsze trzeba aż tak bardzo komplikować procedurę konstrukcyjną? Oczywiście nie zawsze, a tylko wtedy, gdy przewidujemy zamianę elementów konstrukcyjnych lub tworzymy szablon konstrukcyjny, który ze swojej natury będzie aplikowany dla różnych elementów początkowych.

Andrzej Wełyczko