Po dwóch tutorialach opisujących podstawy prostego programowania w środowisku Processing, zajmiemy się parametrycznym projektowaniem z użyciem środowiska CAD – Generative Components. GC obok Grasshoppera jest jednym z najbardziej popularnych narzędzi do tworzenia parametrycznych projektów.

W Generative Components praca opiera się głównie na transakcjach – czyli podstawowych krokach tworzących parametryczny model. Zapisane są one w głównym oknie programu, które jest także przez niektórych nazywane ‘transaction player’, bo w istocie, służy ono właśnie do odtwarzania tych transakcji jedna po drugiej.

W pewnym sensie transakcje zapisane są w konwencji ‘akcji’, lub też ‘historii’ zdarzeń podczas konstruowania modelu, co jest czasem krytykowane (w Grasshopperze mamy do czynienia z jednym, finalnym modelem), ale w rzeczywistości pomaga jednak w pracy nad dużymi i skomplikowanymi modelami. Nie wiadomo zresztą do końca jak to będzie wyglądać w przyszłości, gdyż Bentley idzie powoli w kierunku nowych rozwiązań.

Jesteś elektrykiem, spawaczem, hydraulikiem, monterem? Sprawdź – oferty pracy za granicą.

Wśród okien widocznych po otwarciu Generative Components widzimy także okno z diagramem symbolicznym (po lewej stronie, na dole). Służy ono do przeglądania logicznych połączeń i hierarchicznych zależności pomiędzy elementami, a szczególnie pomocne bywa podczas tworzenia nowych komponentów (ale o tym kiedy indziej).  Niektórzy jednak nie używają tego okna prawie wogóle, lub sporadycznie podczas poszukiwania błędów w modelu (‘nieudane’ elementy pojawią się tutaj na czerwono), więc jest to po części kwestia wyboru – można sobie w GC dać bez niego radę.

Przejdźmy do podstawowych elementów parametrycznego modelu.

Marzysz o budowie wyjątkowego domu? Rekomendujemy biuro projektowe Poznań. Specjaliści przygotują dla Ciebie indywidualny projekt domu i zapewnią jego realizację!

Układ współrzędnych

Najważniejszym układem współrzędnych jest baseCS , który widzimy w oknie zaraz po otwarciu GC.

Jest to globalny układ współrzędnych, do którego odnoszą się wszystkie współrzędne punktów, wektorów itp. Graficznie przedstawiony jest jako czerwony punkt (origin), trzy kwadraty (XYPlane, YZPlane, XZPlane), i trzy wektory pokazujące graficznie oś X, Y i Z . Żółty kwadrat pokazuje obecnie aktywną płaszczyznę odniesienia – zawsze na początku jest to XYPlane, czyli pozioma powierzchnia przechodząca przez punkt 0,0,0

Punkt

Punkt to najbardziej podstawowy element parametrycznego modelu. Istnieje wiele metod tworzenia punktów, jedną z najprostszych jest ByCartesianCoordinates(coordinate system, x,y,z). Spróbujmy zatem stworzyć taki punkt. Aby to zrobić, klikamy na ikonę ‘create feature’ (w GC wszystkie obiekty nazywane są ‘features’), i z listy wybieramy ‘Point’. Po wybraniu punktu, lub generalnie po wybraniu obiektu który chcemy stworzyć, otworzy nam się druga pod-lista, która pokaże ‘metody’ jego tworzenia. Zazwyczaj jest ich tam trochę, każda potrzebuje trochę innych danych/zmiennych/obiektów wejściowych. My skupimy się teraz na najprostszej, czyli ‘ByCartesianCoordinates’. Po jej wybraniu, pokazuje się nam lista parametrów wejściowych.

Jako układ współrzędnych, w którym ma się znaleźć nasz punkt, wpisujemy ‘baseCS’ (tak, to jest nasz globalny układ współrzędnych – ale możemy to później zmienić). Należy zwrócić uwagę na duże i małe litery, gdyż np. ‘BaseCS’ nie będzie już działać).

W kolejnych polach wpisujemy współrzędne punktu, dajmy na to X =3 , Y = 2 , Z = 5

Ostatni parametr, zaznaczony na niebiesko jest nieobowiązkowy, więc nie musimy tam nic wpisywać.

Pod spodem widzimy jeszcze pola takie jak ‘name of new feature’, gdzie możemy wpisać np ‘pierwszyPunkt’ , albo ‘poczatekLinii’, lub też zostawić standardową nazwę jaką podpowie nam system (point01). Zdecydowanie warto wpisywać tutaj arbitralne nazwy adekwatne do tego czym jest dla nas dany obiekt, gdyż dużo łatwiej jest się potem połapać w modelu, szczególnie wtedy kiedy jest on już bardzo skomplikowany.

Klikamy zatem ‘OK’ po prawej stronie na dole, i widzimy coś takiego :

Tak więc w transakcji nr 1 stworzyliśmy punkt.  Jest to jednak tylko  jeden ze sposobów tworzenia punktów, spróbujmy więc czegoś innego. Na górze widzimy ikonkę ‘create point’ (linia z żółtym kwadratem). To narzędzie pozwoli wstawić nam punkt bezpośrednio w oknie widoku, przy czym punkt zostanie umieszczony na aktywnej płaszczyźnie odniesienia – w tym przypadku płaszczyźnie XY, pokazanej żółtym kwadratem na układzie współrzędnych baseCS. Po kliknięciu na ‘create point’ możemy wstawić go klikając w oknie widoku. Po tym przechodzimy do zakładki ‘transaction file’ i odświeżamy ich stan, lub zapisujemy zmiany.

Na dole widzimy diagram symboliczny z dwoma punktami. Drugiemu system automatycznie przypisał nazwę point01, ale możemy to zmienić edytując drugą transakcję.

Edytowanie transakcji

Teoretycznie można pracować w GC bez edytowania skryptu, ale na dłuższą metę jest to bardzo ograniczające. Tak więc dokonajmy prostej edycji – kliknijmy prawym przyciskiem myszki na drugą pozycję w transaction playerze, i wybierzmy ‘edit transaction’, po czym zmieńmy ‘point01′ na np. ‘drugiPunkt’

Tytuł transakcji może być dowolny, np ‘stworzenie kolejnego punktu’ (zamiast ‘Add point01′) – tutaj też dobrze jest edytować tekst, żeby uczytelnić skrypt.

Jak widać, konstrukcja transakcji jest dość prosta. W pierwszej linii posiada słowa kluczowe transaction i modelBased ,  a potem tytuł. Zawartość zawsze znajduje się w nawiasach. Jako, że transakcja może zawierać w sobie wiele obiektów, każdy z nich również zamyka swój opis w nawiasach { … }. Słowo kluczowe feature zaczyna opis obiektu. Po nim następuje jego nazwa (razem z nazwą przestrzeni nazw, to jest lekko skomplikowane, ale .. uhm, podobno ułatwia sprawę ;-) , a następnie typ deklarowanego obiektu- w tym wypadku Bentley.GC.Point

Jak widać na poprzednim zrzucie ekranu, drugi punkt posiada ‘uchwyty’ – służą one do manualnego manipulowania punktem w kierunkach X,Y lub Z. Widać je tylko na drugim punkcie, ponieważ posiada on słowo <free> przed wartością współrzędnej. Możemy dodać <free> przed wartości w pierwszej transakcji (ale muszą one znajdować się wtedy w okrągłym nawiasie), żeby włączyć uchwyty dla pierwszego punktu. Manipulować można nimi za pomocą narzędzia ‘move’  . Spróbuj użyć go, najeżdżając na jeden z uchwytów, klikając a potem przeciągając myszkę – punkt powinien przesuwać się w przestrzeni zgodnie z pozycją kursora.

Krzywa BSpline

Kolejnym obiektem, którego prawdopodobnie będziemy używać dość często jest krzywa Bspline. Jest to krzywa sklejana beziera, czyli złożona krzywa stworzona przez połączone fragmenty prostszych krzywych. Mówiliśmy o nich wcześniej w tym tutorialu. Krzywą taką można skonstruować na dwa sposoby – z punktów kontrolnych (metodą .ByPoles), lub z węzłów znajdujących się na krzywej ( .ByPoints). Generalnie polecam pierwszą metodę, gdyż łatwiej jest wtedy kontrolować  styczność i pochodne krzywizny – w drugiej metodzie, gdy punkty są bardzo daleko od siebie, a potem nagle bardzo blisko, krzywa może wykonywać niespodziewane ‘zakręty’ albo pętle w przestrzeni.

Spróbujmy więc stworzyć taką krzywą dwoma opisanymi tutaj metodami. Stwórzmy zatem nowy szkic, wybierając File >> New Transaction File. Upewnijmy się, że naszą aktywną płaszczyzną jest baseCS.XYPlane, po czym wybierzmy narzędzie ‘place point’ i wstawmy do projektu cztery bądź więcej punktów, jak poniżej.

Tak oto stworzyliśmy pierwszą krzywą BSpline. Możemy teraz pomanipulować trochę punktami za pomocą narzędzia ’move’ () i poobserwować zachowanie krzywej. Zwróćmy uwagę na fakt, że początek i koniec krzywej są styczne do linii stworzonej przez dwa pierwsze lub dwa ostatnie punkty kontrolne.

Dobrze jest spróbować też drugi wspomniany wcześniej sposób tworzenia krzywej (.ByPoints) i porównać różnice. Przy jednym, i drugim, punktów kontrolnych może być oczywiście więcej.

Urządzasz swój dom lub biuro i stoisz przed zakupem mebli? Zapoznaj się z ofertą – biurka, szafy, regały na książki od Bartnikowski meble!

—————————————————————————————–

Tyle narazie jeśli chodzi o podstawy – a w następnym tutorialu zajmiemy się wykorzystaniem krzywych BSpline do stworzenia parametrycznego dachu  z prawdziwego zdarzenia :-)

Leave a comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *