projektowanie parametryczne, parametric design
Home > GC > Pierwsze kroki w Generative Components

Pierwsze kroki w Generative Components

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 (od niedawna dostępne za darmo na stronie http://www.bentley.com/getgc)

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ń.

podstawowy układ okien w GC

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.

Układ współrzędnych

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

baseCS coordinateSystem

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.

tworzenie nowego obiektu

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 :

mojPunkt

Jest to nasz punkt i jego parametry w modelu (po prawej widzimy go jako żółte kółko). Punkt został stworzony, a transakcja została dodana automatycznie do skryptu – możemy ją zobaczyć klikając dolną zakładkę ‘transaction file’, i odświeżając lub zapisując skrypt (odpowiednie ikony są pokazane strzałkami).

gc07

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.

gc08

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’

gc09

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’ 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.

aktywna plaszczyzna

gc11

Następnie klikamy ikonę ‘create feature’ aby stworzyć krzywą, i z dostępnego menu wybieramy ‘BSplineCurve’ a potem ‘ByPoles’, jak poniżej.

Następnie klikamy ikonę ‘create feature’ aby stworzyć krzywą, i z dostępnego menu wybieramy ‘BSplineCurve’ a potem ‘ByPoles’, jak poniżej.

tworzenie krzywej BSpline

gc13

Tak oto stworzyliśmy pierwszą krzywą BSpline. Możemy teraz pomanipulować trochę punktami za pomocą narzędzia ’move’ (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.

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

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

  1. kuba
    maj 4th, 2010 at 13:33 | #1

    dzienjdobry, mam taki problem- juz jakis czas temu sciagnalem gc z tego linku ktory Pan zamiescil do strony bentleya, najpierw pobrałem stery, direct x-y itd potem sie zalogowałem u nich i pobrałem gc – wszystko hulało należycie

    niestety mialem problem z komputerem i musialem go sformatowac, po ponownym pobraniu gc (jako ten sam user albo inny) i zainstalowaniu gc automatycznie wyskakuje error. nie wazne czy wgrywam przyklady z gc, czy projekty z wersji przed formatem, czy w warsztatow z projktowania od razu wyskakuje error no i pyta czy ma wyslac raport, raporty powysylalem ale wiadomo na odpowiedz juz czekam 3 tydzien:(

    czy wie Pan moze z czego to wynika?

    przepraszam ze moje pytanie wrzucam tu ale nie moglem znalesc mejla do Pana

    pozdrawiam

  2. maj 4th, 2010 at 22:16 | #2

    cześć Kuba,
    możesz dokładnie podać nazwę tego błędu ? trudno mi cokolwiek teraz powiedzieć na ten temat, bo mam za mało informacji.. ale najlepiej spróbuj odinstalować GC, wykasować całkowicie folder z katalogu Program Files, i wykasować z rejestru wszystkie wpisy z Generative Components/Bentley (użyj regedit). Potem zainstaluj wszystko od nowa (po restarcie), powinno pomóc.
    pozdrawiam
    Przemek

  3. kuba
    maj 6th, 2010 at 13:02 | #3

    witam ponownie, wyrzuciłem z rejestru wszystko co miało bentley w nazwie, odinstalowałem gc, usunąłem wszysttko z program files, sprawdziłem w systemie czy nie problemu z kartągraf – nie ma, zainstalowąłem od nowa i znowu error po odpaleniu czegokolwiek, wyskakuje to szare okno i pisze ze erro, nie potrafie pwiedziec jaki bo nie piszą a jak wchodzę w erro details to wyskakuje mi mega duzy plik teksotowy, takze nawet nie wiem o co chodzi bo czesc to jakies instrukcje reszta to juz sam kod binarny, nie wierze po prostu, wlasine siedziemy i robimy konkurs, polowe zadaszen i budynkow juz mialem wymodelowanych param z punktami kontrolnymi mialem ambitny plan zrobic cały projet konkursowy “bottom-up” techniką a tu taki niemiły klops, kompletnie nie mam pojęcia co się stało, bo mam wszystko to samo co przed formatem, no moze poza kartą dzwiekową ale to chyba bez znaczenia
    pozdrawiam

  4. maj 6th, 2010 at 15:12 | #4

    Hm.. nie mam pojęcia. Musisz chyba spróbować na innym komputerze.
    Spróbuj jeszcze ściągnąć nową wersję ze strony Bentleya, jeśli jest inna od tej którą masz, to może zadziała – czasami to pomaga. Jeśli nie, to musisz zainstalować którąś ze starszych wersji GC.
    Niewykluczone jest też, że to karta graficzna – spróbuj zainstalować najnowsze sterowniki.
    Trzymam kciuki- mam nadzieję, że jeszcze się uda!

  5. kuba
    maj 13th, 2010 at 15:28 | #5

    witam, poprowadziłem manualną instalacje i jakimś cudem działa…wiec dzieki serdecznie, naprawde pomogło. inna sprawa to 30dniowy trial- jakoś to obejdziemy.
    natomiast chcialem Cie spytac Przemku odnosnie tworzenia elips w gc, wiadomo jest tam taka funkcja w feature-sach, ale jak stworzyć elipsę opartą na 4 punktach? pytam bo te wlasnie punkty są ściśle oparte na planie urbanistycznym, mają swoje analogowe suwaczki do lekkiej korekty, natomiast teraz chcialbym na nich oprzeć elipsę, które potem bedzie podstawą do więszego zadaszenia, jakieś pomysły? bo przejechałem przez te wszystkie menu ale ze srednim skutkiem. wybacz te trywialne pytania ale ciezko cos o tym znalesc, nie mowiac juz o jakis stronach z tutorialami innymi niż “parametryczny dach”… pozdrawiam
    kuba

  6. maj 13th, 2010 at 18:03 | #6

    Cześć Kuba,
    Elipsę buduje się z trzech punktów – centrum, i dwóch promieni. jeśli chcesz mieć 4 punkty, to musisz je najpierw stworzyć w GC, tak żeby tworzyły dwie osie przecinające się pod kątem prostym. W punkcie przecięcia tych osi stwórz nowy punkt – to będzie środek elipsy (CenterPoint). Potem tylko wpisujesz po jednym punkcie z każdej pary (tych, które definiują osie) jako PrimaryAxisPoint i SecondaryAxisPoint. Mam tutaj na myśli metodę .ByCenterAxisPoints.
    To chyba najłatwiejszy sposób.
    Więcej napiszę na maila, pozdrawiam
    Przemek

  7. kwiecień 12th, 2015 at 06:14 | #7

    I am now not sure the place you’re getting your info, but good topic.
    I needs to spend a while studying more or figuring out more.
    Thank you for fantastic information I was on the lookout for this
    info for my mission.

  8. listopad 16th, 2015 at 17:32 | #8

    Soy un chico de – años, muy sociable, de espíritu soñador, muy sencillo y humilde..
    Quiero conocer mi media naranja, que complete cada espacio de mi
    vida con amor, amistad y mucho respeto..

  9. listopad 17th, 2015 at 14:02 | #9

    Complete an on-line kind today after that unwind recognizing our brokers are locating you the most effective rate!.

  10. listopad 28th, 2015 at 01:35 | #10

    Como substituição ao leg press, em casa, dá para fazer algumas variações do agachamento
    ou do afundo.

  11. grudzień 14th, 2015 at 02:30 | #11

    Segundo Dantas, não é necessário nenhum tipo de treinamento para manusear equipamento.

  12. styczeń 12th, 2016 at 07:32 | #12

    Why ought to emphasize select a Speedy cash shrinknstallment
    loan?

    Liffe is . through either existence it’s posasible you’ll need money fast
    into covr unnexpected bills simular to automotive and home repairs, meedical
    emergencies, nor otther giant furthermore unexpected financial situation. in the event you want money quickly,
    an insallment mortgage against Speedy cash dismiss provide a simple approach too get difficulty money via a
    flexible furthermoe convenient compensation disorder.

    There has been plenty of hostile response onpayday lolansbut they aren’t truly ass unhealthy
    as youve been instructed if you happen tto understand their easy concept.
    they are until you thru a years from urgent difficulty including you might be speculated to pay back the loan on your subsequent
    payday. if you obtain to do so, youll get hold of caught beneath a giant dimension from dcument furthermore one
    thronbg will probably preserve ting bigger.
    We are right here 24/7 to assist you over acquire sudden fast money you need.
    ready too gain an unsecured installment loan? assign online right now moreover yoou will gget your money the net first light!

    Loan payment data: both loaans an agreed upon age whereas covered within thhe buyer
    loan settlement.whenever cosst is not obtained using sudden privileve lover, delayed charges rather different fees may try equally painstaking surrounded by each customer loan agreement.
    collections effinsteadts on past due accounts are
    performed inside an expert, fair and lawful manner surrounded
    by compact relevant state furthermore centeal lgal
    guidelines. batter dosn America doesn’t report to credit score businesses.
    the bility to resume a loan varies through nation relying upn laws including firm policy.
    Loawns will not be converted automatically; nonetheless, if loan revivcal is out there,
    fees could also be sincesessed including details falternative renewinsidesg
    a loan are provided in the byer loan agreement. for customers
    havcontained byg difficulty repaginsideg their loan, repayment plans may be available
    and range by democracy. Falternative additional info, pleequallyecontact your nearest
    quotation .

  1. Brak jeszcze trackbacków