projektowanie parametryczne, parametric design
Home > Grasshopper, O co chodzi > Grasshopper ? Podstawy cz. 1

Grasshopper ? Podstawy cz. 1

W statystykach odwiedzin widzę, że ten tutorial jest najczęściej odwiedzanym spośród poradników nt. Grasshopper’a. Prosiłbym czytelników, o wpisanie w komentarzach powodu dla którego nie przechodzą do tutoriala 2 3 i 4. Pomoże mi to lepiej dostosować poziom trudności następnych poradników.

Z góry dzięki,
MZ

Grasshopper ? Podstawy cz. 1



Grasshopper ? Podstawy cz. 2
Grasshopper ? Podstawy cz. 3
Grasshopper ? Poradnik cz. 1 ? Atraktory /średnio zaawansowany/

Czym jest grasshopper ?

Grasshopper to plug-in dla Rhino stworzony w celu wprowadzenia ?pod strzechy?
tego programu możliwość projektowania parametrycznego. Wtyczka jest darmowa (w przeciwieństwie do samego Rhino) i jest do pobrania na oficjalnej stronie Grasshopper’a

Więcej na temat samego projektowania parametrycznego (lub inaczej komputacyjnego) znajdziecie w poście kolegi Przemka Jaworskiego


Interface ? czyli do czego służą te wszystkie komponenty ?

Po uprzednim zainstalowaniu Grasshopper’a, włączamy Rhino, wpisujemy w wiersz poleceń komendę ?Grasshopper?. Otwiera się nowe okno ? to podstawowe okno wtyczki. Na obrazku widzimy : po lewej puste ?płótno? (tłumaczenie z angielskiego ?canvas?, dalej będę się posługiwać słowem ?płótno? do określania pola roboczego w Grasshopperze), po prawej pusty projekt w Rhino. Nie będę się rozpisywał na temat samego Rhino i jego funkcji, niemniej jednak jeśli byście chcieli się czegoś dowiedzieć, pytajcie w komentarzach.

GHtut1il1Podstawowe okno wtyczki (po lewej)
GHtut1il1Narzędzia w programie


Pod paskiem menu znajdziemy :

Kategorie komponentów

  • Params ? komponenty przedstawiające obiekty, przedziały liczb, itp.
  • Math ? działania matematyczne
  • Sets ? działania na listach danych
  • Vector ? wektory i działania na wekorach
  • Curve ? kreślenie krzywych i działania na krzywych
  • Surface ? płaszczyzny
  • Mesh ? siatki (triangulacje, diagram Woronoja itp.)
  • Intersect ? komponenty analizujące obiekty przecinające/przenikające się
  • Xform ? przekształcenia obiektów [obrót (praktycznie zawsze wyrażany w radianach), skalowanie, odbicia lustrzane]
  • Extra ? dodatkowe, często tworzone przez samych użytkowników (standardowo jest tam pusto, wgrać je można za pomocą plików z rozszerzeniem .gha)

U mnie, jak widzicie na obrazku jest jeszcze gHowl ? jest to zestaw darmowych komponentów służących interakcji z innymi programami (m.in. Excel i OpenOffice Calc)

Komponenty wg rodzaju

Nie będę opisywał wszystkich kompontentów (jest ich sporo jak na jeden tutorial), często wystarczy sama nazwa żeby się zorientować do czego służy dany komponent. Jeśli nie ? polecam słownik, wikipedię lub ewentualnie po umieszczeniu na ?płótnie? komponentu, kliknąć prawym klawiszem i na dole znaleźć Help :)

GHtut1il1Po kliknięciu prawym klawiszem na komponent możemy zawsze skorzystać z pomocy, która opisuje pokrótce działanie tego komponentu


Pasek funkcji podstawowych

Na tym pasku znajdują się przyciski służące do : opisywania projektu bezpośrednio na płótnie, skalowania widoku, włączania i wyłączania komponentów (enable i disable), włączania i wyłączania podglądu działania komponentu (standardowo włączony), ponownego uruchomienia obliczania algorytmu, blokowania obliczania, zmiany podglądu, zmiany kolorystyki podglądu i klawisz który najbardziej lubimy używać (z reguły sygnalizuje koniec pracy :) ) – ?Bake?. Większość tych funkcji znajdziemy także po kliknięciu na dany komponent prawym klawiszem.

Na pasku znajduje się także przycisk ?Cluster?, który na razie (build 0.8.0004) jest w fazie eksperymentalnej, w skrócie mówiąc ? służy grupowaniu wielu komponentów w jeden ?megakomponent?.

Umieszczanie komponentów na płótnie; rodzaje obiektów


Aby cokolwiek zacząć projektować w Grasshopperze musimy umieścić potrzebny komponent na płótnie. Możemy to zrobić w dwojaki sposób : znaleźć komponent pod paskiem menu wertując kategoriami, lub lewym dwuklikiem na płótnie wywołać okienko wyszukiwarki w którym wpisując np. ?point? otrzymujemy komponenty związane z punktami. Ten drugi sposób jest oczywiście dużo szybszy i łatwiejszy, jednak na początek proponuję wyszukiwać komponenty samemu ? da nam to pojęcie o strukturze programu, a także poznamy wszystkie możliwości jakie daje nam Grasshopper.

Obiekty którymi operujemy w Grasshoperze mogą być dwojakiej natury : referencyjne lub parametryczne.

Obiekty referencyjne to obiekty zapisane w Rhino, Grasshopper nie ma możliwości wpływania na te obiekty, czerpie jedynie informacje na ich temat (położenie, kształt, krzywizna itp.) powołując w swoim środowisku ich instancje. Korzystając z obiektów referencyjnych, nie zapominajmy zapisywać naszych projektów w Rhino ? bez obiektów z Rhino Grasshopper nic nie zdziała.

Obiekty parametryczne to obiekty ?naturalne? dla Grasshopper’a, informacje o nich zapisywane są w plikach ghx tworzonych przez wtyczkę. W wypadku kiedy korzystamy tylko z takich obiektów, nie musimy zapisywać efektu naszej pracy w Rhino. Wszystkie dane są przechowywane w pliku ghx.

Zdecydowanie polecam tak kombinować, aby nie musieć korzystać z obiektów referencyjnych. Dzięki temu nasz algorytm będzie bardziej elastyczny i elegancki.

GHtut1il2Komenda ?Bake? : Na obrazku widać jak z punktu parametrycznego(czerwony krzyżyk) w Grasshopperze można zrobić punkt w Rhino (który można przywołać w Grasshopperze komponentem odnoszącym się do niego, tworząc punkt referencyjny)



Pierwsze kroki


Po tym krótkim wstępie możemy zająć się tworzeniem pierwszego projektu parametrycznego w Grasshopperze.

Ćwiczenie nr 1 : Tworzenie krzywej (polilinii?) z danych punktów.


Na płótnie umieszczamy komponent ?point?. Klikamy prawym klawiszem na niego, wybieramy ?Manage point collection?. W oknie, które się pojawiło klikamy na znak ?+? aby dodać kolejne punkty. Kiedy już będzie parę punktów na liście, zaznaczamy drugi na liście i edytujemy jego współrzędne (pierwszy możemy pozostawić ze współrzędnymi 0;0;0). Tak samo robimy z kolejnymi punktami. W ten sposób stworzyliśmy punkty parametryczne. Klikamy ?OK? i obserwujemy w Rhino efekt tego działania. Następnie znajdujemy w zakładce curve->spline komponent polyline. Wrzucamy go na płótno i łączymy z punktami(przeciągając lewym klawiszem myszki z wyjścia komponentu point do wejścia ?v? komponentu polyline). W tym momencie zobaczysz, że w Rhino oprócz krzyżyków (naszych punktów) będzie krzywa łącząca punkty. Kolejność w jakiej je wpisywałeś wcześniej ma wpływ na kolejność ich łączenia. Na moim obrazku widać, że krzywa jest krzywą zamkniętą (bez końców), aby tak zrobić ze swoją, kliknij prawym klawiszem na parametr ?c? polilinii i zaznacz ?set boolean? ? true.

Możesz teraz poeksperymentować z opcjami z paska funkcji podstawowych, np. zaznacz komponent ?point? i kliknij ?disable preview? (ta głowa z czarną przepaską na oczach). Spróbuj też oczywiście wyeksportować krzywą do Rhino ? zaznacz komponent ?polyline? i kliknij na pasku funkcji podstawowych ?bake? (jajko na patelni).


Ćwiczenie 2 : Wprowadzenie do list danych (prawdopodobny temat następnego tutoriala)

Przy skomplikowanych obiektach 90% czasu zajmuje ?posortowanie? list danych, tak aby efekt finalny był tym czego oczekujemy, przy okazji optymalizując algorytm tak żeby zużywał jak najmniej mocy obliczeniowej procesora (a ten potrafi się dobrze ?zamulić?, kiedy ma do obliczenia np. diagram Woronoja dla kilkuset punktów na powierzchni sfery).

Mając nieraz i po parę setek czy nawet tysięcy obiektów (punkty, linie, bryły) musimy dobrze panować nad tym jak je widzi Grasshopper. W tym ćwiczeniu zilustruję na czym “mniej więcej” polega zarządzanie listami danych.

  1. Wrzucamy na płótno dwa komponenty ?point?. Żeby nie ?bawić się? w wypisywanie ich współrzędnych, stwórzmy dwa rzędy punktów bezpośrednio w Rhino (komenda points); w jednym rzędzie 4, w drugim 5.
  2. Teraz klikamy prawym klawiszem na jeden z komponentów ?pt? (point) i zaznaczamy ?set multiple points?. Zaznaczamy po kolei w oknie Rhino 4 punkty w pierwszym rzędzie. Tak samo robimy z drugim komponentem zaznaczając tym razem pięć punktów w drugim rzędzie.
  3. Umieszczamy na płótnie Grasshopper’a komponent ?line? (curve->primitive->line); następnie łączymy wejście ?a? z wyjściem pierwszego ?pt? , a wejście ?b? z wyjściem drugiego ?pt?.
  4. Otrzymaliśmy w ten sposób pięć linii, z tym że dwie z tych linii łączą się w ostatnim punkcie pierwszego rzędu. Tu dochodzimy do meritum tego ćwiczenia, bowiem chcemy żeby punkty łączyły się na zasadzie ?każdy z pierwszego rzędu z każdym z drugiego rzędu(i na odwrót)?… co zrobić ?
  5. Klikamy prawym klawiszem na komponent ?line?, znajdujemy opcję ?cross reference? i klikamy w nią.
  6. Teraz mamy połączone punkty w sposób w jaki chcieliśmy.
GHtut1il2Poszczególne etapy ćwiczenia

Oprócz ?cross reference? są też inne opcje :

?longest list?(standardowy) łączy elementy pierwszego zbioru z drugim zbiorem tyle razy ile jest obiektów w większym zbiorze (przy czym łączy elementy drugiego zbioru bez odpowiadającej ?pary? w mniejszym zbiorze z ostatnim elementem mniejszego zbioru). Nie ma zasadniczo znaczenia czy w zbiorach są punkty czy inne obiekty.

?shortest list? łączy obiekty mniejszego zbioru z większym, tylko do momentu kiedy w mniejszym zbiorze są jeszcze elementy odpowiadające tylko jednemu elementowi większego zbioru.

Nie spodziewałem się napisać kiedykolwiek regułek brzmiących jak te z podręcznika do matematyki (ble). Ulży Wam jednak w cierpieniu wypróbowanie tego na własną rękę, jest to jedna z najważniejszych rzeczy w Grasshopperze. (99% tego co zrobicie kiedykolwiek w tym programie, da się na 100% zrobić w inny sposób, jednak te podstawy są wyjątkiem od tej reguły)


Podsumowanie


Mam nadzieję, że pomógł Wam mój pierwszy tutorial, wprowadzający w świat ?konika polnego?. Piszcie w komentarzach co chcielibyście zobaczyć w następnym. Może podwyższyć poziom trudności ? Dołączyć wideo ? Więcej zdjęć, mniej tekstu ?

Pozdrawiam,

MZ

  1. February 4th, 2011 at 16:00 | #1

    witam serdecznie, a moze jakis tutorial apropo tworzenia strukltur żebrowanych w gc? jak tworzyć kolejne przekroje do stworzonej geometrii – narazie wiemy jak stworzyc kolejne przkeroje manualnie i potem je wyloftować – ale jak zrobic przkeroje do istniejącej juz geometrii? np. mam juz geometrię powiedzmy jakiegoś dachu “muszelki” a teraz chciałbym stworzyć do niego przekroje podłuzne i poprzeczne i nastepnei przygotowac do fabrykacji w jakiejs małej skali, przygotowac pliki, wydrukować wlasnie w pleksi albo kartonie i zlozyc sobie w domu fizyczny model. dałoby radę zrobić jakiś taki tutek Przemku? prywatnei teraz robimy knajpę dla inwestora i chcę mu zaproponować “falujący sufit” ale zbey to zrobić to musze miec wlasnie fozyczny model bo jak mu pokazuje gc na lapsie to on nie kuma, w pewnym sensie go rozumiem:) pozdrawiam. czekamy na więcej!

  2. Mateusz
    February 4th, 2011 at 16:02 | #2

    Co do GC to tak jak napisałeś – do Przemka. Ja mogę zrobić tutorial na ten temat ale w GH. W sumie podejrzewam że będzie to nawet prostsze niż w GC.

  3. Jakub
    February 5th, 2011 at 11:14 | #3

    niestety nie posiadam mejla do pana Przemka, ale jeśli to czyta bardzo bym go prosił o zrobienie takiego tutoriala:)

  4. marcin gladzik
    February 5th, 2011 at 17:19 | #4

    No wkoncu sie doczekalem ..dzieki mateusz za wklad pracy w tutorial ! mam nadzieje ze bedzie on kontynuwany ! moje sugestie sa banalne jako ze dopiero zaczynam przygode w tym temacie wyjasnienie podstaw jest 100% trafione i mam nadzieje ze krok po kroku mozna by rozwinac to w jakis konkretny gotowy projekt wyjasniajac po drodze zasade dzialania i funkcjonowania wtyczki ……jeszcze raz dzieki i oby tak dalej pozdrawiam …..

  5. February 6th, 2011 at 14:54 | #5

    Czytam, czytam… :-)
    Tak właśnie myślałem, żeby następny tutorial do GC opisywał te sprawy.. postaram się go przygotować w ciągu następnych kilku tygodni. Generalnie sprawa wygląda tak, że trzeba skonstruować Solida, np przez pogrubienie powierzchni tworzącej dach. Potem należy ustawić sobie kilkanaście płaszczyzn przecinających taki solid (w dwóch kierunkach), i stworzyć element ‘Curve’ metodą ‘PlaneSolidIntersection’.. w ten sposób otrzymasz profile które chcesz wyciąć. Następnie należy je rozłożyć na płaszczyznę używając np. FabricationPlanning, lub poprostu kopiując je ze zbioru jednych układów współrzędnych do drugich.

    Aha, warto też zaznaczyć sobie miejsca przecięć. Najlepiej zrobić to tworząc ‘Curve’ metodą atPlaneClosedCurveIntersection – nazwy metod biorę z pamięci, więc mogą być trochę inne).. powstaną wtedy ‘kreski’ tam gdzie przecinają się przekroje poprzeczne z podłużnymi.
    należy pamiętać o zmianie metody replikacji tych kresek (all combinations – tzn. wszystkie tnące płaszczyzny z wszystkimi ciętymi profilami).

    Mam nadzieję, że nie zamotałem za bardzo. Tutorial pojawi się jak znajdę trochę czasu,

    pozdrawiam i powodzenia!

  6. marcin
    February 16th, 2011 at 12:17 | #6

    mam pytanie ktore juz ty chyba padlo i padlo prywatnie do admina ale odnosnie gc czy podczas formatowania projektu do farykacji grasshoper uwzglednia wszystkie polaczenia komponentow czy trzeba je wykonac recznie ? thanks !

  7. Mateusz Zwierzycki
    February 16th, 2011 at 13:49 | #7

    @marcin : uwzględnia wszystkie, jednak jeśli projekt nie jest dobrze zoptymalizowany potrafi się zamulić. Póki nie wyjdzie Rhino 5 (na razie jest beta) obsługujące więcej niż 3 GB ramu i procesy wielowątkowe, trzeba dobrze optymalizować projekt.
    Prześlij mi na maila połączenie jakie chciałbyś wykonać to może wyjdzie z tego kolejny tutorial.

    mateuszzwierzycki@gmail.com

  8. marcin
    October 18th, 2012 at 00:58 | #8

    hej,
    jak klikam prawym przyciskiem w line to nie mam zadnych opcji typu cross reference….probowalem juz na wile sposobów….myślalem ze kolejnosc punktow jest wazna….ale nic. nie wyskakuja mi opcje :(

  9. marcin
    October 18th, 2012 at 01:01 | #9

    aha nowy grasshopper nie obsluguje tej funkcji heheh

  10. marcin
    October 18th, 2012 at 01:08 | #10

    to znaczy ma jako osobna funkcja w menu w Sets-list

  11. pawel
    October 29th, 2012 at 15:46 | #11

    Powód dla którego nie przechodzę do tutoriala 2 3 i 4?
    Tytuł – nazwa Grasshopper niewiele mi mówi, dlatego wchodzę by zobaczyć jaka tematyka jest tu poruszana.

  12. July 8th, 2014 at 11:50 | #12

    That is a good tip particularly to those fresh to thhe blogosphere.

    Brief but very accurate information… Thanks for sharing this
    one. A must read article!

  13. September 27th, 2014 at 00:57 | #13

    DZIĘKUJĘ ZA ŚWIETNĄ OBSŁUGĘ I PRZEMIŁĄ ATMOSFERĘ.
    !!!!! SZCZERZE POLECAM !!!!!

  14. October 15th, 2014 at 13:17 | #14

    Każdy z nas zetknął się z przedmiotem, doradzam zapoznanie się z problemem.

  15. October 20th, 2014 at 23:21 | #15

    Ciekawe teksty, dobra tematyka

  16. October 28th, 2014 at 03:33 | #16

    Gorąco polecam Olej opałowy Lotos Red – Polecamy

  17. October 30th, 2014 at 19:37 | #17

    Gorąco polecam

  18. November 4th, 2014 at 06:21 | #18

    Problematyka pokrewna każdemu, rekomenduję literaturę

  19. November 18th, 2014 at 00:10 | #19

    Strona świadczy o dobrych zagadnieniach, zapraszam do dyskusji

  20. December 5th, 2014 at 20:34 | #20

    Każdy spośród nas zetknął się z przedmiotem, rekomenduję zaznajomienie
    się z faktem.

  21. December 15th, 2014 at 18:12 | #21

    Wyjątkowo atrakcyjny wpis, polecam ludziom

  22. December 20th, 2014 at 04:14 | #22

    Nietuzinkowe spojrzenie na sytuację, każdy powinien przeczytać dodatkowo zaznajomić się z przedmiotem.
    Zabiegi Kosmetyczne Twarzy Gliwice

  23. December 20th, 2014 at 18:56 | #23

    Drobiazgowe spojrzenie na myśl, każdy winien przeczytać dodatkowo zaznajomić się z motywem.

  24. January 3rd, 2015 at 15:46 | #24

    Fajne spojrzenie na sytuację, każdy winien rozczytać również zapoznać się
    z motywem. Zmarszczki

  25. February 5th, 2015 at 14:40 | #25

    Wszystko w idealnym porządku POLECAM:) Plac zabaw producent

  26. February 11th, 2015 at 02:07 | #26

    Fabuła zbliżona każdemu, zalecam literaturę Bezpieczne place zabaw

  27. March 11th, 2015 at 06:48 | #27

    Thanks for the good writeup. It if truth be told
    was once a amusement account it. Glance advanced to far brought agreeable from you!
    However, how can we keep up a correspondence?

  28. March 18th, 2015 at 15:03 | #28

    Its like you learn my thoughts! You appear to understand so mjch approximately this, such as you wrlte the e book in it or something.I believe that you can ddo with
    a few percent too deive the messazge house a little bit, but other than that,
    this is excellent blog. A fantastic read. I’ll certainly be back.

  29. March 21st, 2015 at 04:08 | #29

    whoah this blog is fantastic i really like reading your posts.
    Keep up the great work! You recognize, a lot of individuals are hunting round for this information, you can help them greatly.

  30. March 21st, 2015 at 07:16 | #30

    l es un caballero, neimaer y me dio el poder del di.
    And when remembered, it is known as retrieval, which is the procedure
    for getting information out in the memory system.
    So keep on confirming and believing and you’ll be led
    to the place where you wish to be (having every one of the right knowledge in your hands not to mention the ability).

  31. March 21st, 2015 at 19:36 | #31

    Thanks for one’s marvelous posting! I actually enjoyed reading it, you may be a great author.I will be sure
    to bookmark your blog and will often come back very soon. I want to encourage
    you continue your great writing, have a nice day!

  32. March 22nd, 2015 at 05:45 | #32

    What’s up mates, how is everything, and what you want to
    say regarding this piece of writing, in my view its in fact amazing for me.

  33. March 22nd, 2015 at 07:00 | #33

    Great web site you’ve got here.. It’s difficult to find quality
    writing like yours nowadays. I truly appreciate people like you!

    Take care!!

  34. March 22nd, 2015 at 09:04 | #34

    Wonderful, what a website it is! This blog presents valuable facts to us,
    keep it up.

  35. March 22nd, 2015 at 16:17 | #35

    Allow you to choose what to do with thee cash payouts reinfest in the stock, put them
    into savings, or buy groceries it’s up to you. Search engines and directories treat
    your oline information like grocery stores treat produce.

    So the company you’re considering sounds good onn paper, but to truly play it safe
    you hav too cover alll bases.

  36. March 23rd, 2015 at 18:40 | #36

    In the case of the characters mentioned above, there is evidence to prove
    that they tried to escape this misery using migration to city life as the
    most plausible option at the time. James have been clamoring for
    news of her next books. Several entertainment releases are citing that choosing Katie Holmes as
    Christian Grey’s ex-lover could be a big move for the ‘Fifty Shades of Grey’ movie.

  37. March 24th, 2015 at 16:10 | #37

    Hello to all, it’s in fact a fastidious for me to pay a visit this web site, it consists of
    helpful Information.

  38. March 25th, 2015 at 04:14 | #38

    They help protect us, they fortify us, and they benefit us.
    Doing a lot of small things, can make a huge difference in the quality
    of your life. Soy – Look for tofu, soy milk, or edamame rather than soy
    powder.

  39. March 25th, 2015 at 11:54 | #39

    Tematyka pokrewna każdemu, rekomenduję lekturę Plac zabaw producent

  40. March 25th, 2015 at 12:12 | #40

    What’s more, each of our wedding event designs can be personalized in a variety of methods, including skirt length, zipper/corset back and
    more.

  41. March 25th, 2015 at 22:23 | #41

    Wow! After all I got a weblog from where I know how to truly take useful facts regarding my study and knowledge.

  42. March 26th, 2015 at 03:31 | #42

    Wow, fantastic weblog format! How long have you ever been running a blog for?
    you make running a blog look easy. The overall look of your web
    site is wonderful, as smartly as the content!

  43. March 27th, 2015 at 12:25 | #43

    Thanks in favor of sharing such a nice thought, article is good, thats why i have
    read it entirely

  44. April 1st, 2015 at 06:35 | #44

    Myötä alkusyksy porvari entisellään isotalo luistin saatella varjella rovanperä dählie tarpeen mukaan jäljellä oleva paperiliitto !
    Torjua ibrahim huipputaso toimenkuva saudi-arabia kirjeenvaihtaja elpyminen finaalipaikka hallituspohja .

  45. April 9th, 2015 at 04:06 | #45

    An impressive share, I just given this onto a
    colleague who was doing a bit of analysis on this.

    And he in actual fact purchased me breakfast as a result of I
    found it for him.. smile. So let me reword that: Thnx for
    the deal with! However yeah Thnkx for spending the time to debate this,
    I feel strongly about it and love reading extra on this topic.
    If attainable, as you develop into expertise, would you mind updating your weblog with extra particulars?
    It is extremely useful for me. Massive thumb up for this blog post!

  46. February 22nd, 2016 at 02:11 | #46

    Fajne spojrzenie na sytuację, każdy winien rozczytać także zapoznać się z motywem.

  1. February 15th, 2011 at 20:26 | #1
  2. March 27th, 2011 at 22:25 | #2
  3. December 18th, 2014 at 15:53 | #3