<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title></title>
	<atom:link href="http://www.projektowanieparametryczne.pl/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.projektowanieparametryczne.pl</link>
	<description></description>
	<lastBuildDate>Mon, 19 Jul 2010 15:51:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Parametryczny dach w GC</title>
		<link>http://www.projektowanieparametryczne.pl/?p=349</link>
		<comments>http://www.projektowanieparametryczne.pl/?p=349#comments</comments>
		<pubDate>Tue, 29 Jun 2010 16:39:20 +0000</pubDate>
		<dc:creator>Przemek Jaworski</dc:creator>
				<category><![CDATA[GC]]></category>
		<category><![CDATA[dach]]></category>
		<category><![CDATA[panelizacja]]></category>
		<category><![CDATA[projektowanie parametryczne]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.projektowanieparametryczne.pl/?p=349</guid>
		<description><![CDATA[



Kontynuując poprzedni wątek tworzenia parametrycznych modeli, przejdźmy do zasad budowania kolejnych elementów w Generative Components. W tym rozdziale zapoznamy się  z budowaniem powierzchni krzywoliniowych, replikacji oraz panelizacji, a także z przygotowywaniem elementów do maszynowego wycinania.
Zanim jednak zbudujemy dach, zapoznajmy się z kilkoma podstawami za pomocą ćwiczeń  
W poprzednim odcinku skończyliśmy tworząc prostą krzywą BSpline, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/05/showsettingsproperties.jpg"></a></p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/lines.jpg"></a></p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/manipulacje.jpg"></a><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/bsplinecurve01.jpg"></a><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/siatkaPunktow.jpg"></a><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/parametryczny_dach_viz1.jpg"></a></p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/parametryczny_dach_viz3.jpg"><img class="alignnone size-full wp-image-397" title="parametryczny_dach_viz3" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/parametryczny_dach_viz3.jpg" alt="parametryczny_dach_viz3" width="540" height="348" /></a></p>
<p>Kontynuując poprzedni wątek tworzenia parametrycznych modeli, przejdźmy do zasad budowania kolejnych elementów w Generative Components. W tym rozdziale zapoznamy się  z budowaniem powierzchni krzywoliniowych, replikacji oraz panelizacji, a także z przygotowywaniem elementów do maszynowego wycinania.</p>
<p>Zanim jednak zbudujemy dach, zapoznajmy się z kilkoma podstawami za pomocą ćwiczeń <img src='http://www.projektowanieparametryczne.pl/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>W poprzednim odcinku skończyliśmy tworząc prostą krzywą BSpline, opartą na czterech punktach kontrolnych. Aby zrozumieć lepiej jak tworzyć więcej krzywych, na których np. możemy zbudować dach, musimy poznać replikację i zasady tworzenia kolekcji.</p>
<p>Otwórzmy więc GC i stwórzmy element (feature) za pomocą ikonki &#8216;Create Feature&#8217; w górnym menu narzędzi. Po rozwinięciu pozycji &#8216;Point&#8217; ukaże się nam mnóstwo metod, spośród których wybierzmy najprostszą &#8211; <strong>ByCartesianCoordinates</strong>. Rozwijając ją przyciskiem &#8216;+&#8217; po lewej stronie, zobaczymy pola do wypełnienia :</p>
<p><strong>CoordinateSystem</strong> : baseCS (to nasz podstawowy układ współrzędnych &#8211; ale możemy tutaj też wpisać inny, który wcześniej stworzymy).</p>
<p><strong>XTranslation, YTranslation, ZTranslation</strong> : przesunięcie w osi X, Y i Z</p>
<p><strong>Origin</strong> : opcjonalny parametr (punkt), przesuwający kartezjański środek układu współrzędnych w inne miejsce. Standardowo pole powinno pokazywać wartość <strong>null</strong>.</p>
<p>Normalnie, w pola te wpisujemy współrzędne, czyli np. X=1,Y= 5 , Z=8 itp. Możemy jednak zamiast współrzędnej podać funkcję , taką jak Series lub SeriesByCount(o tym za chwilę), lub grupę współrzędnych. Spowodują one zreplikowanie punktu i nie będzie on już tylko pojedynczym elementem, ale tzw. <strong>kolekcją</strong>. Istota pracy w GC opiera się na replikacji i kolekcjach, dzięki czemu możemy przeprowadzać operacje na wielu elementach w taki sam sposób, jak na jednym elemencie.</p>
<p>Jeśli w którymkolwiek momencie zamiast podawać jeden parametr, chcemy podać kilka, zamykamy je w klamrowych nawiasach <strong>{ } , </strong>i stają się one kolekcją.</p>
<p>Przykład : stwórzmy nowy punkt metodą <strong>ByCartesianCoordinates</strong></p>
<p>układ współrzędnych : baseCS</p>
<p>XTranslation : 1</p>
<p>YTranslation : 2</p>
<p>ZTranslation : {3,5,8}</p>
<p>Origin : null</p>
<p>po naciśnięciu OK otrzymamy.. trzy punkty ! To ilustruje ideę prostej replikacji. Co więcej, jeśli za YTranslation podamy {9,10,11} , współrzędne Y będą korespondować z wcześniej podaną kolekcją współrzędnych Z , czyli dostaniemy trzy punkty : {1,9,3}, {1,10,5} oraz {1,11,8}.</p>
<p>Warto wspomnieć, że można też te grupy współrzędnych skorelować w inny sposób. Poniższy ekran pokazuje jak odsłonić &#8216;ukryte&#8217; właściwości elementu.</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/05/showsettingsproperties.jpg"><img title="show settings" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/05/showsettingsproperties.jpg" alt="show settings" width="544" height="588" /></a></p>
<p>Po włączeniu opcji &#8217;show settings properties&#8217; pojawi się nam mnóstwo dodatkowych właściwości naszego punktu, których zazwyczaj nie będziemy używać, oprócz jednej, bardzo ważnej : <strong>Replication</strong>. To pole przyjmować może dwie wartości <strong>ReplicationOption.CorrespondingIndexing</strong> albo <strong>ReplicationOption.AllCombinations</strong>.</p>
<p>Jak łatwo się domyślić, pierwsza opcja stworzy trzy punkty, z każdego zestawu trzech współrzędnych. Jeśli mamy trzy współrzędne w polu X, i trzy współrzędne w polu Y, dostaniemy 3 punkty. Jeśli wpiszemy po trzy różne współrzędne w polach X, Y i Z &#8211; też dostaniemy 3 punkty. Jeśli wpiszemy 3 współrzędne w polu X i Y, a cztery w Z &#8211; dostaniemy&#8230; też trzy punkty! (ponieważ dodatkowa, czwarta współrzędna w polu Z nie <strong>koresponduje</strong> z żadną inną w pozostałych polach).</p>
<p>Druga opcja działa zupełnie inaczej &#8211; jako wynik produkuje wszystkie kombinacje danych współrzędnych. Czyli wpisując trzy różne współrzędne do pola X (na przykład {9,10,11} ) i trzy współrzędne do pola Y {3,5,8} , dostaniemy 9 punktów. Jeśli do pola Z wpiszemy też 3 współrzędne, np. {1,2,3} , dostaniemy 27 punktów.</p>
<p><em>Obie opcje można też włączyć edytując transakcję &#8216;ręcznie&#8217; (prawy klik, &#8216;edit transaction&#8217;) i dopisując linię Replication = ReplicationOption.AllCombinations; albo ReplicationOption.CorrespondingIndexing;)</em></p>
<p>Bardzo ważną rzeczą w tworzeniu kolekcji, szczególnie za pomocą drugiej omówionej powyżej opcji jest indeksowanie. Jeśli wybierzemy z menu ikonę <strong>&#8216;edit feature&#8217;</strong> (dłoń wskazująca na kwadrat) i najedziemy nad stworzony obiekt (tutaj punkt), wyświetli nam się nazwa obiektu oraz jego pozycja w kolekcji.</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/indexing.jpg"><img class="alignnone size-full wp-image-365" title="indexing" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/indexing.jpg" alt="indexing" width="549" height="405" /></a></p>
<p>(tutaj wskaźnik pokazuje punkt [2][1] z kolekcji punktów point01). Tak jak wspominałem powyżej, całą kolekcję można traktować jako jeden punkt. Zilustrujmy to tworząc linię od układu współrzędnych baseCS do kolekcji point01 :</p>
<p>(&gt;&gt; Create Feature &gt;&gt; Line &gt;&gt; ByPoints,  jako StartPoint wybieramy <strong>baseCS</strong> &#8211; najlepiej umieszczając kursor w tym polu a potem najeżdżając na baseCS z naciśniętym CTRL. Jako EndPoint wybieramy point01 &#8211; kasując indeksy w kwadratowych nawiasach, tak żeby pole zawierało tylko <strong>point01</strong>)</p>
<p><em>(na tym etapie wyłączmy wspomnianą wcześniej opcję &#8217;show settings properties&#8217;, żeby uniknąć niepotrzebnego zamieszania)</em></p>
<p><em><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/lines.jpg"><img title="lines" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/lines.jpg" alt="lines" width="547" height="402" /></a></em></p>
<p>Jako parametry wejściowe wpisaliśmy baseCS (pierwszy punkt), i point01 (drugi punkt), a w rezultacie dostaliśmy.. grupę linii ! Tak właśnie działa replikacja.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Ok, czas przejść do czegoś, co przyspieszy nam trochę pracę nad kolekcjami.. przyjrzyjmy się funkcji Series i SeriesByCount.</p>
<p><strong>Series (start, limit, increment)</strong> &#8211; tworzy kolekcję wartości liczbowych będących łańcuchem. Łańcuch zaczyna się od wartości <em>start</em>, i wypełnia się kolejnymi wartościami stopniowo zwiększanymi o <em>increment</em>, aż osiągnie <em>limit</em>). Przykład  : Series(1, 3, 0.4) to to samo co {1, 1.4, 1.8, 2.2, 2.6, 3.0}</p>
<p><strong>SeriesByCount(start, final, count)</strong> &#8211; tworzy kolekcję wartości liczbowych zaczynających się od <em>start</em>, kończących na <em>final</em>, wypełnioną pośrednimi wartościami, w <em>count </em>krokach). Przykład: SeriesByCount(1, 15, 2) to to samo co {1,3,5,7,9,11,13,15}</p>
<p>Powyższe funkcje można wykorzystywać jako argumenty wejściowe do innych funkcji, np sinusoidy (Sin). SeriesByCount(0, 720, 50) stworzy łańcuch wartości wędrujący od zera do 720 w 50-ciu krokach.</p>
<p>Aby narysować w przestrzeni ciekawą krzywą bazującą na replikacji punktów, stwórzmy nowy skrypt, i nowy punkt ByCartesianCoordinates.</p>
<p><strong>CoordinateSystem : baseCS</strong></p>
<p><strong>XTranslation : Sin(SeriesByCount(0,720,50)) </strong></p>
<p>(w GC argumenty wejściowe do funkcji Sin podajemy w stopniach, nie radianach)</p>
<p><strong>YTranslation : Cos(SeriesByCount(0,720,50))</strong></p>
<p><strong>ZTranslation : SeriesByCount(0, 5, 50)</strong></p>
<p>a potem dodajmy krzywą BSpline, stworzoną metodą ByPoints</p>
<p>Points : point01</p>
<p>MakePeriodic : false</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/05/spiral.jpg"><img class="alignnone size-full wp-image-352" title="Replikacja punktów" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/05/spiral.jpg" alt="Replikacja punktów" width="545" height="809" /></a></p>
<p>Rezultat : Krzywa spiralna (może np posłużyć jako baza do schodów!)</p>
<p>Dla dociekliwych : Możemy zreplikować stworzoną właśnie krzywą poprzez skopiowanie jej do kolekcji układów współrzędnych. Najpierw tworzymy jakąś grupę układów współrzędnych, np metodą BySphericalCoordinates (CoordinateSystem : baseCS,  Radius : 5 ,  Theta  : SeriesByCount(0,360,20),   Phi : -30 ), a potem tworzymy nową krzywą BSpline metodą CopyTransformGeometricContents ( CopyFrom : baseCS,    CopyTo : coordinateSystem01,  FeatureToCopy  : bsplineCurve01), kopiując spiralę do dziesięciu nowych orientacji. Rezultat poniżej :</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/spirals.jpg"><img class="alignnone size-full wp-image-368" title="spirals" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/spirals.jpg" alt="spirals" width="549" height="407" /></a></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Po tej krótkiej demonstracji przejdźmy do czegoś bardziej zaawansowanego geometrycznie, czyli do powierzchni BSplineSurface. Powierzchnie BSpline są skonstruowane podobnie do krzywych BSpline (np. w tym sensie, że posiadają punkty kontrolne), przy czym oczywiście w sensie parametrycznym są dwuwymiarowe. Żeby nanieść na krzywą bspline punkt, wystarczy podać jeden parametr, w zakresie od 0 do 1. Żeby nanieść taki sam punkt (lub punkty) na powierzchnię BSplineSurface , należy podać dwa parametry &#8211; U i V. Oba przyjmują wartości od 0 do 1.</p>
<p>Stwórzmy nowy plik ( File &gt;&gt; New Transaction File ) i wybierając narzędzie &#8216;Create Point&#8217; (żółta ikonka) stwórzmy cztery punkty.</p>
<p>Następnie stwórzmy element BSplineCurve metodą ByPoles (nie ByPoints!), wpisując w pole &#8216;Poles&#8217; kolejno nazwy poszczególnych punktów. Najłatwiej jest to zrobić umieszczając w nim kursor i klikając w kolejne punkty z przyciśniętym klawiszem CTRL. W polu powinno się pojawić coś jak poniżej</p>
<p>{point01,point02,point03,point04,}</p>
<p>Resztę pól zostawmy ze standardowymi wartościami. Klikając &#8216;OK&#8217; stworzymy krzywą jak poniżej :</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/bsplinecurve01.jpg"><img title="bsplinecurve01" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/bsplinecurve01.jpg" alt="bsplinecurve01" width="541" height="413" /></a></p>
<p>Krzywa została stworzona na płaszczyźnie XY (to znaczy że jest płaska), więc możemy teraz poprzemieszczać punkty w przestrzeni, tak, aby nadać krzywej pożądaną formę. Sposoby manipulowania uchwytami punktów pokazuje poniższa ilustracja :</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/manipulacje.jpg"><img title="manipulacje" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/manipulacje.jpg" alt="manipulacje" width="542" height="413" /></a></p>
<p>Mając pierwszą krzywą w odpowiedniej konfiguracji przestrzennej dodajmy kolejne dwie krzywe, postępując w ten sam sposób (cztery punkty w przestrzeni, nowa krzywa BSpline metodą ByPoles, klikamy punkty z CTRL w polu &#8216;Poles&#8217;) i modelujemy je na kształt dachu.</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/krzyweBSpline.bmp"><img class="alignnone size-full wp-image-375" title="krzyweBSpline" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/krzyweBSpline.bmp" alt="krzyweBSpline" /></a></p>
<p>W wyniku powyższych operacji powinniśmy mieć teraz trzy krzywe : bsplineCurve01, bsplineCurve02 i bsplineCurve03. Zbudowane one są odpowiednio z punktów {point01,point02,point03,point04}, {point05,point06,point07,point08} i {point09,point10,point11,point12}.</p>
<p>Powierzchnie BSpline można budować na wiele sposobów, my użyjemy tutaj metody LoftCurves. Jako &#8216;Curves&#8217; wprowadźmy trzy krzywe {bsplineCurve01,bsplineCurve02,bsplineCurve03}  (nawias klamerkowy wskazuje na to, że jest to kolekcja). Pole &#8216;Order&#8217; powinno mieć wartość 4 lub 3.</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/powierzchnia.jpg"><img class="alignnone size-full wp-image-376" title="powierzchnia" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/powierzchnia.jpg" alt="powierzchnia" width="542" height="576" /></a></p>
<p>.. i w rezultacie otrzymujemy parametryczny dach!</p>
<p>Teraz nadszedł dobry moment na to, żeby zastanowić się nad formą. Na tym etapie można bowiem manipulować punktami kontrolnymi i oceniać bezpośrednio skutki tych manipulacji w czasie rzeczywistym. Sugeruję poobracać model z każdej strony i modelować kształt dopóki nie będziemy z niego zadowoleni <img src='http://www.projektowanieparametryczne.pl/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><em>(w ikonkach na górze okna po kliknięciu drugiego narzędzia od lewej możemy zmienić tryb graficzny wyświetlania na Illustration bądź Smooth &#8211; to pomaga w estetycznej ocenie rozwiązania!)</em></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p><strong>Panelizacja </strong></p>
<p>Oczywiście w takiej formie dach może istnieć tylko wirtualnie, ponieważ wytworzenie każdej powierzchni podwójnie zakrzywionej to nie lada wyzwanie. Aby to uprościć, spróbujmy go spanelizować &#8211; czyli podzielić na mniejsze komponenty, nadające się do wycięcia i fabrykacji.</p>
<p>Aby to zrobić musimy wypełnić dach punktami, które następnie posłużą jako wierzchołki czworokątów. Jak się za to zabrać ? Zacznijmy od pojedynczego punktu :</p>
<p>&gt;&gt; Create Feature &gt;&gt; Point &gt;&gt; ByUVParametersOnSurface (ta metoda umieści punkt na powierzchni używając parametrów U i V).</p>
<p>Surface : bsplineSurface01 (nasza powierzchnia)</p>
<p>U : 0.2</p>
<p>V : 0.4</p>
<p>Zmieniając wartości U i V możemy umieścić punkt w każdym miejscu powierzchni (pamiętając o tym, że muszą one być pomiędzy 0 i 1)</p>
<p>Jak stworzyć więcej punktów ? Oczywiście używając replikacji i funkcji Series() bądź SeriesByCount().</p>
<p>Wyedytujmy teraz transakcję tworzącą punkt (jeśli jej nie widzimy na liście transakcji, kliknijmy przycisk &#8216;Save&#8217;, żeby zapisać skrypt na dysku). W wyedytowanej transakcji zastąpmy linie definiujące wartości U i V następującymi wyrażeniami :</p>
<p>U = SeriesByCount(0, 1, 50);</p>
<p>V = SeriesByCount(0, 1, 25);</p>
<p>i dopiszmy dodatkowo :</p>
<p>Replication = ReplicationOption.AllCombinations;</p>
<p>W rezultacie, zamiast pojedynczego punktu, zobaczymy matrycę jak poniżej :</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/siatkaPunktow.jpg"><img title="siatkaPunktow" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/siatkaPunktow.jpg" alt="siatkaPunktow" width="542" height="413" /></a></p>
<p>(wygląda trochę na to, że punktów jest za dużo, więc sugeruję zmniejszyć ilość kroków w SeriesByCount do 25 i 12)</p>
<p>Zanim zabierzemy się za panelizację, ukryjmy naszą powierzchnię BSpline, żeby nie przeszkadzała w wizualnej ocenie paneli (inaczej będzie je trochę zasłaniać). Aby to zrobić, wybieramy narzędzie &#8216;Toggle Visibility&#8217; (czarno-szara ikonka z ukośnymi kreskami <a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/toggle_visibility.bmp"><img class="alignnone size-full wp-image-417" title="toggle_visibility" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/toggle_visibility.bmp" alt="toggle_visibility" /></a>), najeżdżamy na powierzchnię (aż wyświetli się bsplineSurface01) i klikamy. Alternatywnie, możemy też kliknąć na nią w widoku symbolicznym.</p>
<p>Stworzenie siatki paneli mogłoby być dość skomplikowane, ale ratują nas tutaj twórcy GC, którzy przewidzieli popularność panelizacji, i stworzyli do tego specjalną metodę. Znajduje się ona w elemencie Polygon. Wybierzmy narzędzie &#8216;Create New Feature&#8217;, następnie &#8216;Polygon&#8217; a potem &#8216;ByPointGrid&#8217;.</p>
<p>Points: point13 (albo poprostu nazwa punktu na powierzchni &#8211; może być inna. Zwróćmy uwagę, żeby po kliknięciu na punkt z CTRL usunąć nawiasy kwadratowe i klamerki &#8211; bo podajemy całą kolekcję, a nie jej część).</p>
<p>resztę pól pozostawiamy ze standardowymi wartościami,</p>
<p>Wynik to podzielony na panele uproszczony model krzywoliniowego dachu :</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/panelizacja.jpg"><img class="alignnone size-full wp-image-386" title="panelizacja" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/panelizacja.jpg" alt="panelizacja" width="542" height="411" /></a></p>
<p>I tak oto otrzymaliśmy naszą panelizację!</p>
<p>Jak łatwo zauważyć przyglądając się dokładniej panelom, większość z nich będzie powyginana w różnych kierunkach (będą wyglądać jak ramki z elastyczną tkaniną w środku). Aby wymusić &#8216;płaskość&#8217; paneli należy użyć podczas tworzenia opcji FacetOption.ForcePlanarQuads lub FacetOption.Triangulation.. W pierwszym przypadku panele &#8216;wyskoczą&#8217; trochę z powierzchni i pojawią się między nimi luki &#8211; ale to normalne, tak jak w dachu <a href="http://www.fosterandpartners.com/Projects/1276/Default.aspx" target="_blank">Smithsonian Institute</a>. Aby tego uniknąć należy zgłębić tajniki teselacji powierzchni krzywoliniowych.. ale to już temat na inny post <img src='http://www.projektowanieparametryczne.pl/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Ciekawy efekt można też uzyskać wybierając opcję FacetOption.Diamond</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/panelizacja2.jpg"><img class="alignnone size-full wp-image-387" title="panelizacja2" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/panelizacja2.jpg" alt="panelizacja2" width="540" height="411" /></a></p>
<p><em>aby zmienić właściwości elementu, np. sposób teselacji, nie trzeba cofać transakcji i tworzyć jej od początku &#8211; zamiast tego użyj opcji edit feature </em><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/edit_feature.bmp"><em><img class="alignnone size-full wp-image-416" title="edit_feature" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/edit_feature.bmp" alt="edit_feature" /></em></a><em>, i zmień odpowiedni parametr.</em></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p><strong>Rozwijanie elementów na płaszczyznę</strong></p>
<p>Aby przygotować elementy do fabrykacji, musimy stworzyć element o typie &#8216;FabricationPlanning&#8217;. Ten typ elementu zazwyczaj służy do takiego rozplanowania elementów na płaszczyźnie, aby były zupełnie płaskie i aby przy np. drukowaniu lub wycinaniu laserowym zachowały identyczne wymiary i kształt do oryginałów. Normalnie nie jest to proste, bo elementy są obrócone wokół kilku osi w przestrzeni, i aby umieścić je w płaszczyźnie poziomej, należy dokonać kilku obrotów.. wykonanie tego na kilkuset elementach nie należy na pewno do zadań  łatwych <img src='http://www.projektowanieparametryczne.pl/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>W naszym przypadku możemy użyć dwóch metod tworzenia FabricationPlanning : LayoutPolygons, oraz UnfoldPolygonsIntoPlanarStrips.</p>
<p><strong>LayoutPolygons </strong>rozkłada każdy element osobno, w równych odstępach. Może to się przydać przy wielokątach umieszczonych w dziwnych konfiguracjach, lub niestykających się krawędziami. Przykładowe wartości do wypełnienia w polach to</p>
<p>CoordinateSystem : baseCS</p>
<p>Polygons : polygon01 (bez nawiasów klamrowych ani kwadratowych, tylko nazwa kolekcji wielokątów)</p>
<p>Xspacing : 1 (odstępy w rozłożonych wielokątach)</p>
<p>Yspacing : 1</p>
<p><strong>UnfoldPolygonsIntoPlanarStrips</strong> rozkłada wielokąty w pasach, połączone krawędziami, co czyni je dużo łatwiejszymi do późniejszego montażu (np przy tworzeniu fizycznego modelu). Przykładowe wartości do wpisania w pola :</p>
<p>CoordinateSystem : baseCS (w którym układzie współrzędnych następuje umieszczenie płaskich elementów)</p>
<p>Polygons : polygon01 (jak poprzednio, bez klamerek i nawiasów)</p>
<p>BoundaryEdgeColor : 3 (kolor zewnętrznej obwódki &#8211; ma to znaczenie np przy przygotowaniu do wycinania laserowego, gdzie zewnętrzny obwód jest cięty, a wewnętrzne krawędzie tylko lekko nacinane)</p>
<p>InternalEdgeColor : 2 (zielony)</p>
<p>InterRowDistance : 1 (odstępy pomiędzy rozwiniętymi pasami, w metrach)</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/rozwiniecie.jpg"><img class="alignnone size-full wp-image-389" title="rozwiniecie" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/rozwiniecie.jpg" alt="rozwiniecie" width="540" height="411" /></a></p>
<p>Tak oto otrzymujemy techniczny rysunek będący bezpośrednio podstawą do stworzenia zaprojektowanego dachu.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Oczywiście jest to dopiero początek, ponieważ samo wycięcie paneli nie jest zazwyczaj wystarczające. Oprócz szkła lub innego materiału potrzebujemy także strukturę, ramy, metalowe łączniki i inne detale. O tym jednak innym razem <img src='http://www.projektowanieparametryczne.pl/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Przykładowy przybliżony model z detalami i całą resztą mógłby wyglądać tak :</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/parametryczny_dach_viz1_.jpg"><img class="alignnone size-full wp-image-394" title="parametryczny_dach_viz1_" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/parametryczny_dach_viz1_.jpg" alt="parametryczny_dach_viz1_" width="540" height="348" /></a></p>
<p>lub tak:</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/parametryczny_dach_viz2_.jpg"><img class="alignnone size-full wp-image-395" title="parametryczny_dach_viz2_" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/06/parametryczny_dach_viz2_.jpg" alt="parametryczny_dach_viz2_" width="540" height="348" /></a></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.projektowanieparametryczne.pl/?feed=rss2&amp;p=349</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smart Geometry 2010</title>
		<link>http://www.projektowanieparametryczne.pl/?p=346</link>
		<comments>http://www.projektowanieparametryczne.pl/?p=346#comments</comments>
		<pubDate>Fri, 02 Apr 2010 13:48:52 +0000</pubDate>
		<dc:creator>Przemek Jaworski</dc:creator>
				<category><![CDATA[warsztaty]]></category>
		<category><![CDATA[projektowanie parametryczne]]></category>
		<category><![CDATA[wystawa]]></category>

		<guid isPermaLink="false">http://www.projektowanieparametryczne.pl/?p=346</guid>
		<description><![CDATA[Pod koniec marca odbyły się w Barcelonie warsztaty i konferencja pod szyldem Smart Geometry &#8211; organizacji działającej of 2003go roku poprzez  promowanie nowoczesnych metod projektowania wspomaganego komputerowo. Czterodniowe kolaboracje ponad stu uczestników i około dwudziestu prowadzących miały miejsce w siedzibie Katalońskiego Instytutu Zaawansowanej Architektury (IaaC) i prowadzone były pod szyldem &#8216;Working Prototypes&#8217;. Impreza polegała na [...]]]></description>
			<content:encoded><![CDATA[<p>Pod koniec marca odbyły się w Barcelonie warsztaty i konferencja pod szyldem Smart Geometry &#8211; organizacji działającej of 2003go roku poprzez  promowanie nowoczesnych metod projektowania wspomaganego komputerowo. Czterodniowe kolaboracje ponad stu uczestników i około dwudziestu prowadzących miały miejsce w siedzibie Katalońskiego Instytutu Zaawansowanej Architektury (<a href="http://www.iaac.net" target="_blank">IaaC</a>) i prowadzone były pod szyldem &#8216;Working Prototypes&#8217;. Impreza polegała na zaprojektowaniu oraz wykonaniu prototypów ilustrujących przybrany proces projektowy w skali 1:1, używając do tego celu wycinarek laserowych, ploterów CNC oraz drukarek trójwymiarowych i specjalistycznych robotów.</p>
<p><img class="alignnone size-full wp-image-103" title="IaaC main space" src="http://www.jawordesign.com/wp-content/uploads/2010/03/IMGP3647.jpg" alt="IaaC main space" width="666" height="870" /></p>
<p>Warsztaty podzielone były na dziesięć <a href="http://www.smartgeometry.org/content/sg-2010-workshop-clusters"> podgrup</a> : Deep Surfaces (projektowanie powierzchni z tkanin), Nonlinear Systems in Biology and Design (badanie zachowań systemów symulujących biologię w architekturze), Manufacturing Parametric Acoustic Surfaces (tworzenie prototypów kształtujących przestrzeń akustyczną), High Tech Design &#8211; Low Tech Construction (testowanie bardzo prostych elementów konstrukcyjnych z zaawansowanymi technikami projektowania), Parametrics and Physical Interactions (podłączanie wirtualnych modeli komputerowych do sensorów światła, temperatury itp i tworzenie fizycznych kinetycznych prototypów reagujących na warunku otoczenia) , Curved Folding (użycie robotów do wycinania i zginania metalowych powierzchni pojedynczo zakrzywionych), Explicit Bricks (testowanie zaawansowanego robota do tworzenia struktur z cegieł), Rapid R&amp;D to Rapid Assembly (projektowanie i wycinanie drewnianych elementów nadających się do natychmiastowego montażu) , Design to Destruction (użycie zaawansowanych analiz i symulacji do zaprojektowania najbardziej wytrzymałego wspornika &#8211; testowanego na koniec przez jego komisyjne obciążenie i zniszczenie(!) ) oraz Inflatable Fabric Envelopes (projektowanie i wycinanie podwójnych membran pneumatycznych do tworzenia struktur).</p>
<p>Jedną z najbardziej spektakularnych grup była &#8216;Explicit bricks&#8217;, gdzie do wycinania styropianowych cegieł użyto robota firmy KUKA.</p>
<p><img class="alignnone size-full wp-image-105" title="KUKA robot" src="http://www.jawordesign.com/wp-content/uploads/2010/03/IMGP3621.jpg" alt="KUKA robot" width="665" height="443" /></p>
<p>(wideo pokazujące proces cięcia można zobaczyć  <a href="http://www.vimeo.com/10282054" target="_blank">tutaj</a>)</p>
<p><img class="alignnone size-full wp-image-106" title="styrofoam bricks" src="http://www.jawordesign.com/wp-content/uploads/2010/03/IMGP3747.jpg" alt="styrofoam bricks" width="664" height="443" /></p>
<p><img class="alignnone size-full wp-image-107" title="workshop space" src="http://www.jawordesign.com/wp-content/uploads/2010/03/IMGP3657_.jpg" alt="workshop space" width="665" height="443" /></p>
<p>Mnie przypadło w udziale organizowanie oraz prowadzenie pod-warsztatu zajmującego się fizycznymi interakcjami (Parametrics and Physical Interactions). Razem z Hugo Mulderem (Arup, Advanced Technology + Research Group) i Florą Salim (SIAL, RMIT Australia) prowadziliśmy uczestników przez proces  &#8217;rozszerzania&#8217; ich parametrycznych wirtualnych modeli  w celu połączenia ich z fizycznym światem. Celem było stworzenie instalacji, która reaguje na warunki otoczenia używając sensorów (światło, ruch, dźwięk), i uzewnętrznia swoje reakcje za pomocą silników, światła, multimedialnych projekcji i kinetyki (fizycznego ruchu). Podsumowanie warsztatu i krótkie, lecz treściwe omówienia projektów można zobaczyć w poniższym filmie :</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="665" height="374" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=10401084&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="665" height="374" src="http://vimeo.com/moogaloop.swf?clip_id=10401084&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Więcej informacji o Smart Geometry można znaleźć na stronie  <a href="http://www.smartgeometry.org" target="_blank">www.smartgeometry.org</a></p>
<p><img class="alignnone size-full wp-image-108" title="parametric acoustic surfaces" src="http://www.jawordesign.com/wp-content/uploads/2010/03/IMGP3745.jpg" alt="parametric acoustic surfaces" width="665" height="443" /></p>
<p>Powyżej: Manufacturing Parametric Acoustic Surfaces</p>
<p><img class="alignnone size-full wp-image-109" title="deep surfaces" src="http://www.jawordesign.com/wp-content/uploads/2010/03/IMGP3811.jpg" alt="parametric membranes" width="665" height="443" /></p>
<p>Deep Surfaces</p>
<p><img class="alignnone size-full wp-image-110" title="curved folding" src="http://www.jawordesign.com/wp-content/uploads/2010/03/IMGP3822.jpg" alt="curved folding" width="665" height="443" /></p>
<p>Curved Folding</p>
<p><img class="alignnone size-full wp-image-111" title="high tech design, low tech construction" src="http://www.jawordesign.com/wp-content/uploads/2010/03/IMGP3834.jpg" alt="high tech design, low tech construction" width="665" height="443" /></p>
<p>High Tech Design &#8211; Low Tech Construction</p>
<p><img class="alignnone size-full wp-image-112" title="parametrics and physical interactions" src="http://www.jawordesign.com/wp-content/uploads/2010/03/IMGP3891.jpg" alt="parametrics and physical interactions" width="665" height="443" /></p>
<p>Model kinetycznie zacienianego dachu stworzony w podgrupie Parametrics and Physical Interactions</p>
]]></content:encoded>
			<wfw:commentRss>http://www.projektowanieparametryczne.pl/?feed=rss2&amp;p=346</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Pierwsze kroki w Generative Components</title>
		<link>http://www.projektowanieparametryczne.pl/?p=271</link>
		<comments>http://www.projektowanieparametryczne.pl/?p=271#comments</comments>
		<pubDate>Sun, 07 Mar 2010 22:49:00 +0000</pubDate>
		<dc:creator>Przemek Jaworski</dc:creator>
				<category><![CDATA[GC]]></category>
		<category><![CDATA[bezier]]></category>
		<category><![CDATA[projektowanie parametryczne]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.projektowanieparametryczne.pl/?p=271</guid>
		<description><![CDATA[Po dwóch tutorialach opisujących podstawy prostego programowania w środowisku Processing, zajmiemy się parametrycznym projektowaniem z użyciem środowiska CAD &#8211; 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 &#8211; czyli podstawowych krokach tworzących parametryczny [...]]]></description>
			<content:encoded><![CDATA[<p>Po dwóch tutorialach opisujących podstawy prostego programowania w środowisku Processing, zajmiemy się parametrycznym projektowaniem z użyciem środowiska CAD &#8211; 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 <a href="http://www.bentley.com/getgc">http://www.bentley.com/getgc</a>)</p>
<p>W Generative Components praca opiera się głównie na transakcjach &#8211; czyli podstawowych krokach tworzących parametryczny model. Zapisane są one w głównym oknie programu, które jest także przez niektórych nazywane &#8216;transaction player&#8217;, bo w istocie, służy ono właśnie do odtwarzania tych transakcji jedna po drugiej.</p>
<p>W pewnym sensie transakcje zapisane są w konwencji &#8216;akcji&#8217;, lub też &#8216;historii&#8217; 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ń.</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/01/gc02_1.jpg"><img class="alignnone size-full wp-image-277" title="podstawowy układ okien w GC" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/01/gc02_1.jpg" alt="podstawowy układ okien w GC" width="640" height="399" /></a></p>
<p>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 (&#8217;nieudane&#8217; elementy pojawią się tutaj na czerwono), więc jest to po części kwestia wyboru &#8211; można sobie w GC dać bez niego radę.</p>
<p>Przejdźmy do podstawowych elementów parametrycznego modelu.</p>
<p><strong>Układ współrzędnych</strong></p>
<p>Najważniejszym układem współrzędnych jest baseCS , który widzimy w oknie zaraz po otwarciu GC.</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/gc03_coordinateSystem.jpg"><img class="alignnone size-full wp-image-312" title="baseCS coordinateSystem" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/gc03_coordinateSystem.jpg" alt="baseCS coordinateSystem" width="639" height="446" /></a></p>
<p>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 &#8211; zawsze na początku jest to XYPlane, czyli pozioma powierzchnia przechodząca przez punkt 0,0,0</p>
<p><strong>Punkt</strong></p>
<p>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ę &#8216;create feature&#8217; (w GC wszystkie obiekty nazywane są &#8216;features&#8217;), i z listy wybieramy &#8216;Point&#8217;. Po wybraniu punktu, lub generalnie po wybraniu obiektu który chcemy stworzyć, otworzy nam się druga pod-lista, która pokaże &#8216;metody&#8217; 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 &#8216;ByCartesianCoordinates&#8217;. Po jej wybraniu, pokazuje się nam lista parametrów wejściowych.</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/gc04.jpg"><img class="alignnone size-full wp-image-313" title="tworzenie nowego obiektu" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/gc04.jpg" alt="tworzenie nowego obiektu" width="634" height="627" /></a></p>
<p>Jako układ współrzędnych, w którym ma się znaleźć nasz punkt, wpisujemy &#8216;baseCS&#8217; (tak, to jest nasz globalny układ współrzędnych &#8211; ale możemy to później zmienić). Należy zwrócić uwagę na duże i małe litery, gdyż np. &#8216;BaseCS&#8217; nie będzie już działać).</p>
<p>W kolejnych polach wpisujemy współrzędne punktu, dajmy na to X =3 , Y = 2 , Z = 5</p>
<p>Ostatni parametr, zaznaczony na niebiesko jest nieobowiązkowy, więc nie musimy tam nic wpisywać.</p>
<p>Pod spodem widzimy jeszcze pola takie jak &#8216;name of new feature&#8217;, gdzie możemy wpisać np &#8216;pierwszyPunkt&#8217; , albo &#8216;poczatekLinii&#8217;, 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.</p>
<p>Klikamy zatem &#8216;OK&#8217; po prawej stronie na dole, i widzimy coś takiego :</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/gc06_mojPunkt.jpg"><img class="alignnone size-full wp-image-318" title="mojPunkt" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/gc06_mojPunkt.jpg" alt="mojPunkt" width="640" height="480" /></a></p>
<p>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 &#8211; możemy ją zobaczyć klikając dolną zakładkę &#8216;transaction file&#8217;, i odświeżając lub zapisując skrypt (odpowiednie ikony są pokazane strzałkami).</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/gc07.jpg"><img class="alignnone size-full wp-image-319" title="gc07" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/gc07.jpg" alt="gc07" width="610" height="400" /></a></p>
<p>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ę &#8216;create point&#8217; (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 &#8211; w tym przypadku płaszczyźnie XY, pokazanej żółtym kwadratem na układzie współrzędnych baseCS. Po kliknięciu na &#8216;create point&#8217; możemy wstawić go klikając w oknie widoku. Po tym przechodzimy do zakładki &#8216;transaction file&#8217; i odświeżamy ich stan, lub zapisujemy zmiany.</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/gc08.jpg"><img class="alignnone size-full wp-image-320" title="gc08" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/gc08.jpg" alt="gc08" width="640" height="543" /></a></p>
<p>Na dole widzimy diagram symboliczny z dwoma punktami. Drugiemu system automatycznie przypisał nazwę point01, ale możemy to zmienić edytując drugą transakcję.</p>
<p><strong>Edytowanie transakcji</strong></p>
<p>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 &#8211; kliknijmy prawym przyciskiem myszki na drugą pozycję w transaction playerze, i wybierzmy &#8216;edit transaction&#8217;, po czym zmieńmy &#8216;point01&#8242; na np. &#8216;drugiPunkt&#8217;</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/gc09.jpg"><img class="alignnone size-full wp-image-321" title="gc09" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/gc09.jpg" alt="gc09" width="577" height="457" /></a></p>
<p>Tytuł transakcji może być dowolny, np &#8217;stworzenie kolejnego punktu&#8217; (zamiast &#8216;Add point01&#8242;) &#8211; tutaj też dobrze jest edytować tekst, żeby uczytelnić skrypt.</p>
<p>Jak widać, konstrukcja transakcji jest dość prosta. W pierwszej linii posiada słowa kluczowe <strong>transaction</strong> i <strong>modelBased</strong> ,  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 { &#8230; }. Słowo kluczowe <strong>feature</strong> zaczyna opis obiektu. Po nim następuje jego nazwa (razem z nazwą przestrzeni nazw, to jest lekko skomplikowane, ale .. uhm, podobno ułatwia sprawę <img src='http://www.projektowanieparametryczne.pl/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> , a następnie typ deklarowanego obiektu- w tym wypadku <strong>Bentley.GC.Point</strong></p>
<p>Jak widać na poprzednim zrzucie ekranu, drugi punkt posiada &#8216;uchwyty&#8217; &#8211; służą one do manualnego manipulowania punktem w kierunkach X,Y lub Z. Widać je tylko na drugim punkcie, ponieważ posiada on słowo &lt;free&gt; przed wartością współrzędnej. Możemy dodać &lt;free&gt; 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 &#8216;move&#8217; <a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/move.jpg"><img class="alignnone size-full wp-image-323" title="move" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/move.jpg" alt="move" width="26" height="26" /></a> . Spróbuj użyć go, najeżdżając na jeden z uchwytów, klikając a potem przeciągając myszkę &#8211; punkt powinien przesuwać się w przestrzeni zgodnie z pozycją kursora.</p>
<p><strong>Krzywa BSpline</strong></p>
<p>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 <a href="http://www.projektowanieparametryczne.pl/?p=197">tym</a> tutorialu. Krzywą taką można skonstruować na dwa sposoby &#8211; 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 &#8211; w drugiej metodzie, gdy punkty są bardzo daleko od siebie, a potem nagle bardzo blisko, krzywa może wykonywać niespodziewane &#8216;zakręty&#8217; albo pętle w przestrzeni.</p>
<p>Spróbujmy więc stworzyć taką krzywą dwoma opisanymi tutaj metodami. Stwórzmy zatem nowy szkic, wybierając File &gt;&gt; New Transaction File. Upewnijmy się, że naszą aktywną płaszczyzną jest baseCS.XYPlane, po czym wybierzmy narzędzie &#8216;place point&#8217; i wstawmy do projektu cztery bądź więcej punktów, jak poniżej.</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/03/gc10.jpg"><img class="alignnone size-full wp-image-330" title="aktywna plaszczyzna" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/03/gc10.jpg" alt="aktywna plaszczyzna" width="524" height="282" /></a></p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/03/gc11.jpg"><img class="alignnone size-full wp-image-331" title="gc11" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/03/gc11.jpg" alt="gc11" width="504" height="409" /></a></p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 5751px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Następnie klikamy ikonę &#8216;create feature&#8217; aby stworzyć krzywą, i z dostępnego menu wybieramy &#8216;BSplineCurve&#8217; a potem &#8216;ByPoles&#8217;, jak poniżej.</div>
<p>Następnie klikamy ikonę &#8216;create feature&#8217; aby stworzyć krzywą, i z dostępnego menu wybieramy &#8216;BSplineCurve&#8217; a potem &#8216;ByPoles&#8217;, jak poniżej.</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/03/gc12.jpg"><img class="alignnone size-full wp-image-333" title="tworzenie krzywej BSpline" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/03/gc12.jpg" alt="tworzenie krzywej BSpline" width="503" height="567" /></a></p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/03/gc13.jpg"><img class="alignnone size-full wp-image-334" title="gc13" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/03/gc13.jpg" alt="gc13" width="508" height="451" /></a></p>
<p>Tak oto stworzyliśmy pierwszą krzywą BSpline. Możemy teraz pomanipulować trochę punktami za pomocą narzędzia &#8217;move&#8217; (<a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/move.jpg"><img class="alignnone size-full wp-image-323" style="border: 0px initial initial;" title="move" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/move.jpg" alt="move" width="26" height="26" /></a>) 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.</p>
<p>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.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Tyle narazie jeśli chodzi o podstawy &#8211; a w następnym tutorialu zajmiemy się wykorzystaniem krzywych BSpline do stworzenia parametrycznego dachu  z prawdziwego zdarzenia <img src='http://www.projektowanieparametryczne.pl/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.projektowanieparametryczne.pl/?feed=rss2&amp;p=271</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Projektowanie komputacyjne</title>
		<link>http://www.projektowanieparametryczne.pl/?p=282</link>
		<comments>http://www.projektowanieparametryczne.pl/?p=282#comments</comments>
		<pubDate>Mon, 01 Feb 2010 14:47:01 +0000</pubDate>
		<dc:creator>Przemek Jaworski</dc:creator>
				<category><![CDATA[O co chodzi]]></category>
		<category><![CDATA[generalnie]]></category>
		<category><![CDATA[komputacja]]></category>
		<category><![CDATA[projektowanie parametryczne]]></category>

		<guid isPermaLink="false">http://www.projektowanieparametryczne.pl/?p=282</guid>
		<description><![CDATA[23 października w ramach Szczecińskiego Westivalu, wygłosiliśmy razem z Michałem Piaseckim wykład pod tytułem &#8216;projektowanie komputacyjne&#8217;. Przy okazji publikacji tekstu wykładu w materiałach organizatorów Westivalu, postanowiliśmy także opublikować go online.
 
Projektowanie komputacyjne w architekturze  
 
Projektowanie komputacyjne to zagadnienie, które w ostatnim czasie szybko zyskuje na popularności. Obecnie dobrze zakorzenione w przemyśle samochodowym i lotniczym, powoli zaczyna wkraczać [...]]]></description>
			<content:encoded><![CDATA[<p>23 października w ramach Szczecińskiego <a href="http://westival.szczecin.art.pl/" target="_blank">Westivalu</a>, wygłosiliśmy razem z <a href="http://www.michalpiasecki.com" target="_blank">Michałem Piaseckim</a> wykład pod tytułem &#8216;projektowanie komputacyjne&#8217;. Przy okazji publikacji tekstu wykładu w materiałach organizatorów Westivalu, postanowiliśmy także opublikować go online.</p>
<p> </p>
<h1 style="text-align: center;">Projektowanie komputacyjne w architekturze  </h1>
<p style="text-align: center;"> </p>
<p><strong>Projektowanie komputacyjne</strong> to zagadnienie, które w ostatnim czasie szybko zyskuje na popularności. Obecnie dobrze zakorzenione w przemyśle samochodowym i lotniczym, powoli zaczyna wkraczać także jako narzędzie do świata architektury. Dlaczego? Ponieważ technologie projektowania wspomaganego komputerowo, oraz przede wszystkim fabrykacji stają się coraz bardziej dostępne i tańsze, a co za tym idzie, wzrasta dostępność produkcji niestandardowych elementów na masową skalę (tzw. ‘mass customization’).</p>
<p>Jak pisał Adrian Beukers i Ed van Hinte w swoim eseju ‘Lightness’ (‘<em>Lekkość</em>’), ‘W naturze kształt jest tańszy niż materiał’, zwracając uwagę na to, że koszt wytworzenia formy może być dużo niższy, jeśli znajdziemy optymalne rozwiązania strukturalne lub topologiczne opisujące problem projektowy. Nie jest już dzisiaj niczym zaskakującym, że dokonując strukturalnej optymalizacji topologii połączeń w mega-konstrukcjach można zaoszczędzić do 50% materiału.</p>
<p>Projektowanie komputacyjne, poprzez użycie różnych technik takich jak algorytmy genetyczne i sztuczna inteligencja, razem z metodą elementów skończonych, lub innymi technikami optymizacyjnymi, może pomóc zdefiniować problem projektowy w zupełnie inny sposób i znaleźć nową, często zaskakującą odpowiedź. Czy jest to problem czysto geometryczny, tak jak panelizacja podwójnie zakrzywionych powierzchni, czy też strukturalny, jak minimalizacja stresów w przestrzennej kratownicy, z pomocą mogą przyjść programy lub skrypty pisane w różnych językach oraz narzędzia do modelowania parametrycznego, takie jak Generative Components oraz Rhino Grasshopper. Modelowanie parametryczne pozwala na definiowanie hierarchicznych zależności pomiędzy obiektami geometrycznymi zamiast statycznego układu brył w przestrzeni, do którego przyzwyczajone są osoby korzystające z bardziej standardowych narzędzi CAD. Modelowanie parametryczne, które pozwala na szybkie przeglądanie wersji potencjalnych rozwiązań, jest dzisiaj coraz powszechniej stosowane w projektowaniu stadionów, wieżowców, części fasad, dachów jak i niewielkich detali konstrukcyjnych.</p>
<p>Terminologia związana z projektowaniem komputacyjnym podlega ciągłej transformacji, ponieważ dziedzina jest nowa i wciąż szybko się rozwija. Dosyć szeroko przyjęte jest odróżnianie “projektowania parametrycznego” od “projektowania generatywnego”:</p>
<p><strong>Projektowanie parametryczne</strong> to proces w którym wynikowa forma jest zazwyczaj jedną iteracją (przebiegiem) informacji geometrycznych przez ‘drzewo’ hierarchicznych zależności pomiędzy elementami. Po wykonaniu takiej iteracji, otrzymujemy parametryczny model, który jest topologicznie statyczny, możemy za to zmieniać jego geometrię (skalować, rozciągać, manipulować parametrami).</p>
<p> <a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/wf_smithsonian_.jpg"><img class="alignleft size-full wp-image-283" title="wf_smithsonian_" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/wf_smithsonian_.jpg" alt="wf_smithsonian_" width="640" height="223" /></a></p>
<p><strong>Projektowanie generatywne</strong> to proces w którym forma jest generowana na podstawie wielokrotnych iteracji, zazwyczaj dodawania/odejmowania elementów, lub dzielenia ich na mniejsze pod-elementy. Za narzędzia używane w projektowaniu generatywnym można uznać algorytmy genetyczne, sieci neuronowe, oraz wszystkie algorytmy wykorzystujące procesy symulacji sztucznego życia, takie jak automaty komórkowe, systemy samo-organizujące się, systemy cząsteczek-agentów, oraz pomocniczo systemy bazujące na metodzie elementów skończonych (finite element analysis), takie jak dynamiczna relaksacja.</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/phototropic_growth__.jpg"></a><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/phototropic_growth.jpg"></a></p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/phototropic_growth1.jpg"><img class="alignleft size-full wp-image-303" title="wzrost fototropiczny" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/phototropic_growth1.jpg" alt="wzrost fototropiczny" width="640" height="301" /></a><strong>Projektowanie komputacyjne w praktyce architektonicznej</strong></p>
<p>Jednymi z pierwszych spektakularnych projektów wykonanych z użyciem projektowania parametrycznego był Swiss Re (tzw. ‘ogórek’) w Londynie, autorstwa biura Foster+Partners (2004), Centrum handlowe O2 w Birmingham (Future Systems 2003) oraz Kunsthaus w Graz w Austrii (Peter Cook + Colin Fournier 2003). Technikami projektowania parametrycznego posługuje się dzisiaj wiele znanych biur architektonicznych i inżynierskich, takich jak HOK Sport, Arup, Grimshaw+Partners, Zaha Hadid architects, Frank Gehry czy Aedas.</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/examples_.jpg"><img class="alignleft size-full wp-image-285" title="gehry_cook_fournier_zaha_foster" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/examples_.jpg" alt="examples_" width="640" height="454" /></a><br />
 <br />
Również duża ilość projektów generatywnych doczekała się już realizacji. Przykładem może tu być szklane zadaszenie dziedzińca British Museum, gdzie użyto algorytmu dynamicznej relaksacji dla zoptymalizowania sił i wielkości paneli. Innym jest realizowne obecnie zadaszenie stacji metra w Neapolu projektu Rogers Stirk Harbour + Partners. W tym projekcie konstruktorzy &#8211; firma Expedition Engineering &#8211; postanowili wykorzystać algorytmy genetyczne, żeby zoptymalizować dystrybucję elementów strukturalnych zadaszenia ze względu na ilość światła dziennego penetrującą wnętrze stacji. Optymalizacja z użyciem ewolucji polega na hodowaniu kolejnych generacji potencjalnych rozwiązań w których osobniki stosunkowo dobrze spełniające zadane kryteria przekazują swoje cechy kolejnym. W tym przypadku optymalizowano na przestrzeni 70 generacji, każda po 400 osobników.</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/rogers_stirk_harbour_neapol_.jpg"><img class="alignleft size-full wp-image-286" title="rogers_stirk_harbour_neapol_" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/rogers_stirk_harbour_neapol_.jpg" alt="rogers_stirk_harbour_neapol_" width="640" height="217" /></a></p>
<p>Obszarem zastosowań algorytmów generatywnych jest również urbanistyka, ponieważ użycie zasad samo-organizacji może pomóc w odnalezieniu układów przestrzennych które są lepsze od tych zaprojektowanych tradycyjnymi metodami na przykład pod względem komunikacyjności lub dystrybucji ze względu na nasłonecznienie. ‘Agentom’, które reprezentują bloki zabudowy, można na przykład zadać zadanie znalezienia pozycji i orientacji umożliwiającej najlepsze skorzystanie z dostępnych widoków, oraz dostępu do naturalnego światła. Poprzez lokalne negocjacje na niskim poziomie hierarchii, otrzymujemy globalne (całościowe) rozwiązanie uwzględniające interesy każdego z podmiotów symulacji.</p>
<p>Układ, którego globalny stan jest czymś więcej niż sumą lokalnych stanów wszystkich jego elementów nazywany jest układem emergentnym.<strong> Emergencja</strong> to zjawisko związane z wykorzystaniem prostych reguł działania na lokalnym poziomie (interakcji pomiędzy pojedycznymi agentami), do stworzenia ‘kolektywnej’ inteligencji na globalnym poziomie całego stanu układu.</p>
<p><strong>Cyfrowe wspomaganie wytwarzania</strong></p>
<p>Wszystkie powyżej opisane techniki zyskują coraz szersze zastosowanie w architekturze, ponieważ znacząco rozwijają się możliwości cyfrowego wspomagania wytwarzania, czyli tzw. cyfrowej fabrykacji. Projektowanie parametryczne i generatywne pozwala automatycznie dostosować elementy projektu do wybranej technologii fabrykacji. Takie ‘dopasowanie’ do fabrykacji, staje się poprostu jeszcze jednym kryterium optymalizacji. Najczęstszym przykładem jest tutaj np. podzielenie dowolnej przestrzennej, podwójnie zakrzywionej formy/powierzchni na elementy płaskie (np szklane panele), współdzielące ze sobą krawędzie (bez pomocy generatywnych procesów jest to bardzo trudne lub wręcz niemożliwe). Można też optymalizować obiekty tak, aby zużywały jak najmniej materiału. Technologie cyfrowego wspomagania wytwarzania dzielą się na addytywne, subtraktywne i formatywne.</p>
<p>Technologie <strong>addytywne</strong> polegeją na nakładaniu i łączeniu kolejnych warstw materiału. Popularna nazwa tych technik to “druk 3d”. Dzisiaj można drukować na drukarkach proszkowych, nylonowych (drukujących plastikiem), lub nawet takich które układają na sobie warstwy metalu. Nowością (jeszcze niedostępną komercyjnie) jest olbrzymia drukarka budowana przez firmę D-Shape, która może drukować cementem w dużej skali (obszar roboczy to 3&#215;3x3 m). Koszty druku 3d szybko maleją a produceni drukarek zapowiadają technologie, które spowodują, że druk 3d będzie niebawem tak popularny jak druk 2d &#8211; używający kartek i atramentu. Byłaby to prawdziwa rewolucja w projektowaniu produktu. W architekturze druk 3d jest na razie wykorzystywany do produkcji modeli.</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/3d_printing_1.jpg"><img class="alignleft size-full wp-image-288" title="technologie addytywne" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/3d_printing_1.jpg" alt="3d_printing_" width="640" height="351" /></a></p>
<p align="center"> </p>
<p>Technologie <strong>subtraktywne</strong> to te które polegają na odejmowaniu materiału. Przykładami jest frezowanie CNC i cięcie laserowe. Ograniczenia materiałowe są w tym przypadku niewielkie a skala wykonywanych elementów może sięgać kilkunastu metrów, stąd to te technologie są najczęściej wykorzystywane w architektonicznych realizacjach.</p>
<p> <a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/cnc.jpg"><img class="alignleft size-full wp-image-289" title="cnc" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/cnc.jpg" alt="cnc" width="640" height="142" /></a></p>
<p> <br />
Technologie<strong> formatywne</strong> to na przykład użycie robotów do układania elementów konstrukcji. Dobrym przykładem jest tutaj parametryczna ściana winnicy, projektu duetu Gramazio &amp; Kohler, stworzona za pomocą robota firmy KUKA.</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/kuka_.jpg"><img class="alignleft size-full wp-image-290" title="kuka" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2010/02/kuka_.jpg" alt="kuka" width="640" height="480" /></a><br />
 <br />
Projektowanie komputacyjne może ale nie musi wiązać się z estetyką dominującą obecnie wśród niektórych star-architektów. Jednym z najważniejszych aspektów omówionych technik jest optymalizacja, która zapewnia bardzo dobre wykorzystanie budżetu projektu oraz stworzenie przestrzeni funkcjonującej w odpowiedni sposób. Wzbogacenie polskich pracowni architektonicznych o narzędzia parametryczne i generatywne oraz wprowadzenie tej tematyki na uczelnie jest jednym z warunków, które polska architektura powinna spełnić by pozostać konkurencyjna na rynku międzynarodowym.</p>
<p> </p>
<p>Przemysław Jaworski (Foster+Partners, SMG) <a href="http://www.projektowanieparametryczne.pl/">www.projektowanieparametryczne.pl</a></p>
<p>Michał Piasecki (Bartlett, UCL) <a href="http://www.michalpiasecki.com/">www.michalpiasecki.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.projektowanieparametryczne.pl/?feed=rss2&amp;p=282</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Processing &#8211; krzywe Beziera</title>
		<link>http://www.projektowanieparametryczne.pl/?p=197</link>
		<comments>http://www.projektowanieparametryczne.pl/?p=197#comments</comments>
		<pubDate>Sat, 14 Nov 2009 18:20:43 +0000</pubDate>
		<dc:creator>Przemek Jaworski</dc:creator>
				<category><![CDATA[Processing]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[bezier]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.projektowanieparametryczne.pl/?p=197</guid>
		<description><![CDATA[
W kolejnej lekcji języka programowania Processing (poprzednia jest tutaj), zajmiemy się krzywymi Beziera. Dlaczego ? Ponieważ krzywe te są bardzo często podstawowym środkiem definiowania nie-liniowej geometrii np. fasad lub dachów. Nie są one co prawda tak popularne jak krzywe B-Spline (chociaż są ich najprostszą wersją), lub ich rozszerzona wersja &#8211; NURBS, ale od nich wszystko [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/dach011.jpg"><img class="aligncenter size-full wp-image-253" title="dach01" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/dach011.jpg" alt="dach01" width="640" height="390" /></a></p>
<p style="text-align: left;">W kolejnej lekcji języka programowania Processing (poprzednia jest <a href="http://www.projektowanieparametryczne.pl/?p=137" target="_self">tutaj</a>), zajmiemy się krzywymi Beziera. Dlaczego ? Ponieważ krzywe te są bardzo często podstawowym środkiem definiowania nie-liniowej geometrii np. fasad lub dachów. Nie są one co prawda tak popularne jak krzywe <a href="http://pl.wikipedia.org/wiki/Krzywa_B-sklejana" target="_blank">B-Spline</a> (chociaż są ich najprostszą wersją), lub ich rozszerzona wersja &#8211; <a href="http://pl.wikipedia.org/wiki/NURBS" target="_blank">NURBS</a>, ale od nich wszystko się zaczęło, więc warto przyjrzeć się im z bliska (są na przykład używane w programie Adobe Illustrator).</p>
<p style="text-align: left;">Na początek omówimy podstawy tworzenia krzywych, i kilka technicznych elementów pomocnych w kreowaniu trójwymiarowych struktur w Processing. Potem stworzymy program rysujący powierzchnię dachu (jak powyżej) i eksportujący ją do pliku.</p>
<p style="text-align: left;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Spróbujmy napisać kilka lini kodu rysujących przykładową krzywą Beziera. Aby to zrobić potrzebujemy czterech punktów &#8211; początku, czyli tzw. pierwszego punktu zakotwiczenia, dwóch punktów kontrolnych, i drugiego punktu zakotwiczenia, czyli końca krzywej.</p>
<p>Zdefiniujmy zatem łańcuch współrzędnych: cztery współrzędne X (łańcuch będzie miał nazwę &#8216;px&#8217;), i cztery współrzędne Y (łańcuch o nazwie &#8216;py&#8217;)</p>
<p><strong>float px [] = new float[4];<br />
float py [] = new float[4];</strong></p>
<p>w ten sposób zdeklarowaliśmy oba łańcuchy, które są teraz gotowe do użycia. Każdy z nich ma cztery pozycje, w których będzie trzymał jedną współrzędną. Przypiszmy im zatem teraz wartości &#8211; współrzędne punktów kontrolnych i skrajnych dla krzywej, w układzie współrzędnych XY (liczonym od lewego górnego rogu okna).</p>
<p><strong>px[0] = 50; py[0] = 50</strong>;  //pierwszy punkt kontrolny &#8211; początek krzywej<br />
<strong>px[1] = 40; py[1] = 170;</strong> //drugi punkt kontrolny<br />
<strong>px[2] = 270; py[2] = 170;</strong> //trzeci<br />
<strong>px[3] = 250; py[3] = 250;</strong> //czwarty &#8211; koniec krzywej</p>
<p><strong>size(300,300);</strong> //otwórzmy okno o rozmiarach 300 x 300 pikseli</p>
<p><strong>noFill(); </strong>//wyłączmy wypełnianie obiektów (o tym później)</p>
<p><strong>bezier(px[0],py[0],  px[1],py[1],  px[2],py[2],  px[3],py[3]); </strong>//i narysujmy krzywą</p>
<p>Po wpisaniu powyższego kodu do edytora i naciśnięciu przycisku start, powinniśmy zobaczyć poniższy obraz :</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/bezier1.jpg"></a></p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/bezier_1.jpg"><img class="aligncenter size-full wp-image-206" title="bezier_1" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/bezier_1.jpg" alt="bezier_1" width="306" height="325" /></a>Wygląda ciekawie, ale nadal trochę tajemniczo..  Żeby zrozumieć lepiej, jak działają krzywe beziera, narysujmy punkty kontrolne. Dodajmy na końcu poniższe linie :</p>
<p><strong>fill(255,0,0);</strong> //zmieniamy kolor na czerwony (podając kolejno wartości r, g, b)<br />
<strong>ellipse(px[0], py[0] ,8,8);</strong> //punkt nr 1<br />
<strong>ellipse(px[1], py[1] ,8,8);</strong> //punkt nr 2<br />
<strong>ellipse(px[2], py[2] ,8,8);</strong> //punkt nr 3<br />
<strong>ellipse(px[3], py[3] ,8,8);</strong> //punkt nr 4</p>
<p>a żeby zobaczyć jak wygląda tak zwany &#8216;control polygon&#8217;, połączmy je liniami:</p>
<p><strong>stroke(50,100);</strong> //ustawiamy kolor i przezroczystość linii<br />
<strong>line(px[0], py[0] ,px[1], py[1]);</strong><br />
<strong>line(px[1], py[1] ,px[2], py[2]);</strong><br />
<strong>line(px[2], py[2] ,px[3], py[3]);</strong></p>
<p>Po dodaniu powyższych linii, uruchamiamy szkic (przyciskiem run, albo ctrl+R) i widzimy krzywą jak poniżej :</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/bezier_2.jpg"><img class="aligncenter size-full wp-image-204" title="bezier_2" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/bezier_2.jpg" alt="bezier_2" width="306" height="325" /></a></p>
<p>Patrząc na ten przykład, można łatwo zauważyć podstawową właściwość krzywej Beziera : początek i koniec są styczne do linii kontrolnych, a to można sprytnie wykorzystać przy tworzeniu bardziej skomplikowanych geometrii.</p>
<p>Spróbujmy teraz zrobić z tego coś ciekawszego, czyli wykorzystać replikację (poprzez użycie pętli FOR &#8211; więcej informacji o tym jak jej używać jest w <a href="http://www.projektowanieparametryczne.pl/?p=137" target="_self">poprzednim</a> tutorialu). Generalnie najciekawsze efekty daje niewielka modyfikacja współrzędnych punktów kontrolnych, i narysowanie wszystkich tak powstałych krzywych razem obok siebie. Dodajmy zatem :</p>
<p><strong>noFill();</strong> //wyłączamy wypełnianie<br />
<strong>for (int i=0;i&lt;20;i++)</strong> //uruchamiamy pętlę na 20 powtórzeń<br />
<strong>{</strong><br />
<strong>px[0] = px[0]+5;</strong> //przesuwamy punkt <strong>0</strong> w prawo<br />
<strong>py[1] = py[1]+8;</strong> // punkt 1 w dół<br />
<strong>py[2] = py[2]-4;</strong> //punkt 2 w górę<br />
<strong>px[3] = px[3]+2;</strong> //punkt 3 lekko w prawo<br />
<strong>bezier(px[0],py[0],  px[1],py[1],  px[2],py[2],  px[3],py[3]);</strong> //i rysujemy krzywą<br />
<strong>}</strong></p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/bezier_3.jpg"><img class="aligncenter size-full wp-image-205" title="bezier_3" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/bezier_3.jpg" alt="bezier_3" width="306" height="325" /></a></p>
<p>Ciekawą wizualizację krzywych <strong>razem</strong> z liniami kontrolnymi można uzyskać przenosząc dwie linijki kodu:</p>
<p><em><strong>for (int i=0;i&lt;20;i++)<br />
{</strong></em></p>
<p>nad linię z komendą <strong><em>fill(255,0,0); </em></strong>, ponieważ wtedy w pętli znajdzie się procedura rysowania linii i czerwonych kółek. Otrzymamy wtedy obraz pokazujący dokładnie &#8216;wędrówkę&#8217; punktów kontrolnych :</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/bezier_4.jpg"><img class="aligncenter size-full wp-image-207" title="bezier_4" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/bezier_4.jpg" alt="bezier_4" width="306" height="325" /></a></p>
<p>Przy zabawie parametrami można pójść trochę dalej, i dodając do nich kilka sinusów,  otrzymać geometrię jak poniżej :</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/bezier_51.jpg"></a><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/bezier_6.jpg"></a></p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/bezier_61.jpg"><img class="size-full wp-image-225     alignleft" title="bezier_6" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/bezier_61.jpg" alt="bezier_6" width="612" height="325" /></a></p>
<p>Pewnie ktoś z czytelników zapyta.. &#8216;ok, wporządku, ale do czego można tego teraz użyć&#8217; ? Otóż w parametrycznym modelowaniu często spotykamy się z modelowaniem jakiejś powierzchni (np dachu) przez przeciągnięcie jednego profilu wzdłuż krzywej (tzw. szyny &#8211; &#8217;sweep profile along rail curve&#8217; ), lub zbudowanie z wszystkich krzywych jednej powierzchni (&#8217;loft curves&#8217;). Tak też spróbujemy zrobić za kilka chwil.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>Najpierw jednak, aby ułatwić nam nieco modelowanie trójwymiarowych obiektów, i ich przestrzenną ocenę, <strong>musimy</strong> dodać do programu element interaktywny. Inaczej będziemy ciągle w dwuwymiarowym, statycznym świecie. Ta mała dygresja jest raczej <strong>konieczna</strong> do tego, żeby przejść do kolejnego, bardziej ekscytującego (!) etapu programowania w trzech wymiarach.</p>
<p>W Processing możemy pisać programy na dwa sposoby : liniowy, gdzie zwyczajnie wpisujemy komendy jedna po drugiej, np :</p>
<p><strong>size(300,300,P3D); </strong>//ustawiamy okno</p>
<p><strong>translate(150,150); </strong>//przesuwamy układ współrzędnych na środek ekranu (połowa szerokości, połowa wysokości)</p>
<p><strong>rotateX(PI/3); </strong>//obracamy układ współrzędnych wokół osi X<br />
<strong>rotateZ(PI*1.7); </strong>//i wokół osi Y</p>
<p><strong>box(50); </strong>//i rysujemy sześcian</p>
<p>W ten sposób program wykonuje wszystkie polecenia po kolei, i zatrzymuje się na końcu. Możemy w międzyczasie wykonywać pętle, definiować wiele graficznych elementów i pisać nieskończone ilości instrukcji &#8211; ale wszystko zostanie wykonane tylko raz.</p>
<p>Drugi sposób, to sposób nieliniowy, interaktywny i zorientowany zdarzeniowo. To znaczy, że po uruchomieniu programu, instrukcje będą wykonywane w niekończącej się pętli (ok 20-30 razy na sekundę), a program może w tym czasie rysować dowolne rzeczy, wydawać dźwięki, odgrywać video, i co najważniejsze <strong>reagować na zdarzenia</strong>. Takimi zdarzeniami zazwyczaj są manipulacje myszką i naciskanie klawiszy na klawiaturze, ale może to też być bardziej skomplikowany bodziec, jak na przykład obraz z kamery video, lub dźwięk z mikrofonu.</p>
<p>Program taki wygląda tak:</p>
<p><strong>void setup()<br />
{<br />
println(&#8221;ta instrukcja wykona się 1 raz&#8221;);<br />
}</strong></p>
<p><strong>void draw()<br />
{<br />
println(&#8221;ta instrukcja wykona się wiele razy&#8221;);<br />
}</strong></p>
<p>Czyli ma dwie części : setup, i draw. Pierwsza wykonuje się tylko raz, dokonujemy w niej ustawienia okna, początkowych zmiennych, ładujemy czcionki, obrazy i dźwięki. Druga (draw) to część która będzie wykonywać się w nieskończoność, dopóki nie zakończymy programu.</p>
<p>Ten sam program, w wersji interaktywnej będzie wyglądał tak :<br />
<strong>void setup() </strong><br />
<strong>{<br />
size(300,300,P3D); </strong>//ustawiamy okno (włączamy też tryb pracy w trzech wymiarach)<br />
<strong>}</strong></p>
<p><strong>void draw() </strong><br />
<strong>{<br />
background(160); </strong>//czyścimy tło przed narysowaniem czegokolwiek</p>
<p><strong>translate(150,150); </strong>//przesuwamy układ współrzędnych na środek ekranu (połowa szerokości, połowa wysokości)</p>
<p><strong>rotateX(mouseY*PI/300);</strong> //obracamy układ współrzędnych wokół osi X (wykorzystujemy pozycję myszki!)<br />
<strong>rotateZ(mouseX*PI/300);</strong> //i wokół osi Y</p>
<p><strong>box(50);</strong> //i rysujemy kostkę<br />
<strong>}</strong></p>
<p>Po uruchomieniu powyższego kodu, zobaczymy radośnie obracający się sześcian <img src='http://www.projektowanieparametryczne.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/box01.jpg"><img class="aligncenter size-full wp-image-231" title="box01" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/box01.jpg" alt="box01" width="306" height="325" /></a></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>Po tej małej dygresji zacznijmy więc nowy szkic (wybierając z menu File &gt;&gt; New). Na początek, tak jak poprzednio, deklarujemy współrzędnych punktów kontrolnych</p>
<p><strong>float px [] = new float[4];<br />
float py [] = new float[4];</strong></p>
<p>I przejdźmy do trybu 3D &#8211; robi się to poprzez deklarację <strong>size(szerokość, wysokość, tryb)</strong>.  Tryb może być wyrażony przez <strong>P3D</strong> &#8211; standardowy silnik Javy (działa w oknie przeglądarki stron www), albo przez <strong>OPENGL</strong> &#8211; szybszy i dużo lepszy graficznie silnik, ale działający tylko w oknie Processingu albo po skompilowaniu szkicu do pliku .exe.</p>
<p><strong>void setup()<br />
{<br />
size(600,400,P3D); </strong><strong><span style="font-weight: normal;">//tworzymy okno (tym razem trochę większe!)</span><br />
}</strong></p>
<p>i zaczynamy część &#8216;dynamiczną&#8217;</p>
<p><strong>void draw()<br />
{</strong><br />
<strong> background(160);</strong> //czyścimy tło<br />
<strong> translate(300,200);</strong>//przesuwamy układ współrzędnych na środek</p>
<p><strong> rotateX(mouseY*PI/300);</strong> //i obracamy go wokół osi X<br />
<strong> rotateZ(mouseX*PI/300);</strong> //i osi Z</p>
<p><strong> noFill();</strong> //bez wypełniania<br />
<strong> stroke(250,160)</strong>; //rysujemy białym, lekko przezroczystym kolorem</p>
<p>Współrzędne punktów będą teraz trochę inne, a nasza krzywa będzie przypominać odwróconą literę &#8216;U&#8217;. Narysujemy ją 120 razy, przesuwając ją stopniowo  (użyjemy znowu pętli FOR). Zauważ, że zamieniliśmy współrzędną Y ze współrzędną Z (gdzie współrzędna Y przesuwa się od -60 do 60).</p>
<p><strong>for (int i=-60;i&lt;60;i++)<br />
{<br />
px[0] = -100; py[0] = -50;<br />
px[1] =  -80;     py[1] = 150;<br />
px[2] =   80;      py[2] = 150;<br />
px[3] =  100;    py[3] = -50; </strong></p>
<p><strong> bezier(px[0],  i*2,  py[0],   <span style="font-weight: normal;">//współrzędne pierwszego punktu (początku krzywej)</span><br />
px[1 ],  i*2,  py[1],    <span style="font-weight: normal;">//współrzędne drugiego punktu</span><br />
px[2],  i*2,  py[2],   <span style="font-weight: normal;">// trzeciego</span><br />
px[3],  i*2,  py[3]); </strong><strong><span style="font-weight: normal;">//i czwartego (koniec)</span><br />
}</strong></p>
<p><strong>}</strong></p>
<p>Po uruchomieniu programu, widzimy naszą pierwszą prawdziwie trójwymiarową powierzchnię :</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/bezier_07.jpg"><img class="aligncenter size-full wp-image-244" title="bezier_07" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/bezier_07.jpg" alt="bezier_07" width="606" height="432" /></a></p>
<p>W tym momencie nasz &#8216;dach&#8217; jest poprostu zwyczajną powierzchnią &#8216;translacyjną&#8217;, czyli powstałą poprzez translację (przesunięcie) profilu w przestrzeni. Prawdziwa zabawa zacznie się jednak dopiero, gdy zaczniemy modulować profil podczas przesuwania. Jak to zrobić ? Wystarczy przy każdym przebiegu pętli zmienić lekko współrzędne punktów kontrolnych. Dobrze jest użyć do tego funkcji Sinus lub Cosinus, ponieważ łatwo nią sterować za pomocą amplitudy i okresu. Na przykład jeśli w naszej pętli zmienna<strong> i </strong>przechodzi od wartości -60 do 60, to dodając do którejś współrzędnej wyrażenie sin(i/60 * PI) * 50 , wartość wyrażenia przejdzie płynnie od sin(-PI)*50 do sin(PI)*50, czyli od -50 do 50, oczywiście płynnym ruchem, jak na sinusoidzie.</p>
<p>Dodając kilka takich kombinacji można uzyskać poniższy efekt :</p>
<p><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/bezier_08.jpg"><img class="aligncenter size-full wp-image-247" title="bezier_08" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/bezier_08.jpg" alt="bezier_08" width="606" height="432" /></a></p>
<p>A kod generujący krzywiznę wygląda tak :</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 6062px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">for (int i=-60;i&lt;60;i++)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 6062px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">{</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 6062px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">px[0] = -100;                   py[0] = -50+sin(i*PI/60.0)*25;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 6062px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">px[1] =  -80+sin(i*PI/45.0)*50; py[1] = 50;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 6062px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">px[2] =   80;                   py[2] = 50;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 6062px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">px[3] =  100+sin(i*PI/60.0)*25; py[3] = -50+sin(i*PI/40.0)*15;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 6062px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">bezier(px[0],  i*2,  py[0],</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 6062px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">px[1],  i*2+sin(i*PI/120.0)*150,  py[1],</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 6062px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">px[2],  i*2,  py[2],</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 6062px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">px[3],  i*2,  py[3]);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 6062px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">}</div>
<p><strong>for (int i=-60;i&lt;60;i++)<br />
{<br />
px[0] = -100;                                             py[0] = -50+sin(i*PI/60.0)*25;<br />
px[1] =  -80+sin(i*PI/45.0)*50;   py[1] = 50;<br />
px[2] =   80;                                                py[2] = 50;<br />
px[3] =  100+sin(i*PI/60.0)*25;  py[3] = -50+sin(i*PI/40.0)*15;</strong></p>
<p><strong>bezier(px[0],    i*2,     py[0],<br />
px[1 ],    i*2+sin(i*PI/120.0)*150,  py[1],<br />
px[2],    i*2,     py[2],<br />
px[3],    i*2,     py[3]);<br />
}</strong></p>
<p>Oczywiście jest to arbitralna zabawa liczbami i wyrażeniami matematycznymi, więc można dodawać i odejmować różne części wyrażeń, żeby uzyskać podobny, lub zupełnie inny efekt (np pionową fasadę zamiast poziomego dachu) &#8211; ale to już zależy od inwencji designera.</p>
<p>Aby zapisać tak wygenerowany &#8216;dach&#8217; musimy użyć biblioteki do eksportowania geometrii do plików DXF. Tak samo jak w poprzednim odcinku, zadeklarujemy użycie tej biblioteki na samym początku programu poprzez dodanie linii</p>
<p><strong>import processing.dxf.*;</strong></p>
<div>Aby rozpocząć &#8216;łapanie&#8217; geometrii przeznaczonej do zapisania na dysku, dodajemy linię</div>
<div>
<div><strong> beginRaw(DXF, &#8220;dach.dxf&#8221;);</strong></div>
</div>
<div>zaraz po linii</div>
<div><strong>void draw()</strong></div>
<div><strong>{</strong></div>
<div><strong><br />
</strong></div>
<div>a na samym końcu programu dodajemy<strong> endRaw(); <span style="font-weight: normal;">(tuż przed nawiasem kończącym program) </span></strong></div>
<div><strong><span style="font-weight: normal;"><strong>}</strong></span></strong></div>
<div><strong><span style="font-weight: normal;"><strong><br />
</strong></span></strong></div>
<div><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;">Działający w przeglądarce powyższy przykład wraz z pełnym kodem można obejrzeć <a href="http://www.projektowanieparametryczne.pl/processing/dach01/index.html" target="_blank">tutaj </a>(wymagana zainstalowana Java).</p>
<div>Geometria zostanie zapisana w pliku &#8216;dach.dxf&#8217; w tym samym folderze, w którym znajduje się nasz szkic (dobrze jest go najpierw zapisać poprzez File &gt;&gt; Save w głównym menu).</div>
<p></span></strong></span></strong></div>
<p><span style="font-weight: normal;">Należy pamiętać, żeby używać funkcji beginRaw(..) i endRaw() tylko wtedy kiedy chcemy zapisać geometrię, inaczej będzie ona spowalniać niepotrzebnie nasz program. Poza tym warto zapisywać geometrię bez żadnych obrotów &#8211; najlepiej poprostu włączyć i wyłączyć program trzymając kursor myszki poza oknem, wtedy dach będzie leżał poziomo na płaszczyźnie XY.  Można też zamienić linie obracające układ współrzędnych na <strong>rotateX(0);</strong> <strong>rotateZ(0);</strong> , lub zupełnie je wyłączyć/skomentować za pomocą symbolu //   (początek komentarza &#8211; tekst następujący po tym symbolu jest ignorowany).</span></p>
<p><span style="font-weight: normal;">Po wyeksportowaniu geometrii do pliku, możemy otworzyć go w programie CAD i zrobić z nim co nam się żywnie podoba <img src='http://www.projektowanieparametryczne.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </span></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p><span style="font-weight: normal;"><br />
<a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/dach021.jpg"><img class="aligncenter size-full wp-image-254" title="dach02" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/dach021.jpg" alt="dach02" width="640" height="390" /></a><a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/dach031.jpg"><img class="aligncenter size-full wp-image-255" title="dach03" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/11/dach031.jpg" alt="dach03" width="640" height="390" /></a><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.projektowanieparametryczne.pl/?feed=rss2&amp;p=197</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Digital Hinterlands (fotoreportaż)</title>
		<link>http://www.projektowanieparametryczne.pl/?p=163</link>
		<comments>http://www.projektowanieparametryczne.pl/?p=163#comments</comments>
		<pubDate>Thu, 08 Oct 2009 22:33:53 +0000</pubDate>
		<dc:creator>Przemek Jaworski</dc:creator>
				<category><![CDATA[generalnie]]></category>
		<category><![CDATA[bartlett]]></category>
		<category><![CDATA[ucl]]></category>
		<category><![CDATA[wystawa]]></category>

		<guid isPermaLink="false">http://www.projektowanieparametryczne.pl/?p=163</guid>
		<description><![CDATA[21go września 2009 odbyła się w Londynie konferencja Digital Architecture London, zorganizowana przez Ruairiego Glynna &#8211; twórcy i nauczyciela z University College of London. W związku z konferencją, pokazano wystawę najlepszych projektów studentów z Bartlett i AA z ostatnich lat &#8211; szczególnie tych które związane są z tematyką inteligentnej algorytmicznej architektury oraz tych, które używają [...]]]></description>
			<content:encoded><![CDATA[<p>21go września 2009 odbyła się w Londynie konferencja <a href="http://www.digital-architecture.org/london/" target="_blank">Digital Architecture London</a>, zorganizowana przez Ruairiego Glynna &#8211; twórcy i nauczyciela z University College of London. W związku z konferencją, pokazano wystawę najlepszych projektów studentów z Bartlett i AA z ostatnich lat &#8211; szczególnie tych które związane są z tematyką inteligentnej algorytmicznej architektury oraz tych, które używają algorytmów i fizycznych, niemalże robotycznych manifestacji, jako środka przekazu.</p>
<p><img style="border: 0px initial initial;" src="http://www.projektowanieparametryczne.pl/foto/0910dh/IMGP1929.JPG" alt="" width="640" height="426" /></p>
<p>Modele tegorocznego pawilonu AA.</p>
<p><img style="border: 0px initial initial;" src="http://www.projektowanieparametryczne.pl/foto/0910dh/IMGP1931.JPG" alt="" width="640" height="426" /></p>
<p><img style="border: 0px initial initial;" src="http://www.projektowanieparametryczne.pl/foto/0910dh/IMGP1935.JPG" alt="" width="640" height="426" /></p>
<p><img style="border: 0px initial initial;" src="http://www.projektowanieparametryczne.pl/foto/0910dh/IMGP1937.JPG" alt="" width="640" height="426" /></p>
<p>Johan Voodrouw i jego <a href="http://www.digital-architecture.org/hinterlands/exhibitor/printed-aedicules/" target="_blank">&#8216;Printed Aedicules&#8217;</a> (poniżej), to eksperymentalny projekt prezentacji idei i danych przestrzennych z wykorzystaniem tradycyjnego, płaskiego medium jakim jest książka. Forma została wydrukowana w technologii SLS (biały nylon).</p>
<p><img style="border: 0px initial initial;" src="http://www.projektowanieparametryczne.pl/foto/0910dh/IMGP1940.JPG" alt="" width="640" height="426" /></p>
<p><a href="http://www.digital-architecture.org/hinterlands/exhibitor/marilena-skavara/" target="_blank">Marilena Skavara</a> z kursu <a href="http://www.aac.bartlett.ucl.ac.uk" target="_blank">Adaptive Architecture and Computation</a>, prezentuje model fasady reagujący automatycznie na warunki nasłonecznienia. Algorytm sterujący jej elementami &#8216;uczy się&#8217; przez cały rok warunków pogodowych i dostosowuje zacienienie budynku tak, aby ten utrzymywał komfortową temperaturę.</p>
<p>Instalacja została wykonana z użyciem <a href="http://www.arduino.cc/" target="_blank">Arduino</a>, małych serwomotorów i języka programowania <a href="http://www.processing.org" target="_blank">Processing</a>. Video dostępne <a href="http://www.vimeo.com/6572761" target="_blank">tutaj</a>.</p>
<p><img style="border: 0px initial initial;" src="http://www.projektowanieparametryczne.pl/foto/0910dh/IMGP1941.JPG" alt="" width="640" height="426" /></p>
<p>Jedną z większych i bardziej zwracających uwagę instalacji, była &#8216;<a href="http://www.digital-architecture.org/hinterlands/exhibitor/tetsuro-nagata/" target="_blank">The Memory Theatre&#8217; Tetsuro Nagaty</a>, która pokazuje widza w magicznym lustrze, które jest opóźnione w stosunku do rzeczywistości o kilka sekund. Opóźnienie zmienia się, w zależności od położenia oglądającego, a czas przyspiesza lub zwalnia. Dodatkowo twarze widzów łapane są poprzez oprogramowanie do rozpoznawania kształtów, i umieszczane na specjalnej &#8216;mini wystawie&#8217;.</p>
<p><img style="border: 0px initial initial;" src="http://www.projektowanieparametryczne.pl/foto/0910dh/IMGP1926.JPG" alt="" width="640" height="426" /></p>
<p><a href="http://www.digital-architecture.org/hinterlands/exhibitor/mayhem/" target="_blank">&#8216;Crackology&#8217;</a> to praca operująca technikami parametrycznego urbanizmu, uzupełniająca tkankę miejską Sao Paulo strukturami wplecionymi w komunikacyjne i przestrzenne siatki miejskich interakcji. Bardzo ciekawa warstwa graficzna!</p>
<p><img style="border: 0px initial initial;" src="http://www.projektowanieparametryczne.pl/foto/0910dh/IMGP1947.JPG" alt="" width="640" height="426" /></p>
<p>Patrick Usborne</p>
<p><img style="border: 0px initial initial;" src="http://www.projektowanieparametryczne.pl/foto/0910dh/IMGP1921.JPG" alt="" width="640" height="426" /></p>
<p><img style="border: 0px initial initial;" src="http://www.projektowanieparametryczne.pl/foto/0910dh/IMGP1942.JPG" alt="" width="640" height="426" /></p>
<p>Generalnie trzeba przyznać, że wiele projektów pokazuje tradycyjny styl Bartlett, gdzie warstwa artystyczna dominuje przekaz, nie troszcząc się za bardzo o klarowne wyjaśnienie o co tak naprawdę chodzi w projekcie. Niewiele można tutaj zobaczyć tradycyjnych planów, sekcji, rysunków klatek schodowych i okien. Zamiast tego, wystawiający się &#8217;szybują&#8217; wysoko w świat imaginacji i graficzno-rzeźbiarskich metafor, inspirując, niepokojąc, i grając na szerokim wachlarzu emocji widza.</p>
<p>Mimo wszystko jednak, z tego całego misz-maszu, można zrozumieć, że ten bardzo awangardowy nurt architektury traktuje budynki i przestrzenie miejskie jako żywe organizmy, zwierzęce istoty, czujące i reagujące na zmiany otoczenia, a przede wszystkim na ludzi. To już nie jest tylko biomimetyka, algorytmy, połączenie biologii z komputerami, lecz cała warstwa znaczeń i symboli kreująca nowy paradygmat, w którym ludzie żyją już nie w &#8216;betonowej pustyni&#8217;, lecz &#8216;magicznym lesie&#8217;. Przestrzeń jest tutaj definiowana na nowo z każdym dniem, i potrafi zaskakiwać.</p>
<p>Należy jednak pamiętać, że to wszystko to tylko eksperymenty, a spójna wizja nowoczesnej architektury wynikającej z nowych technologii jest właśnie w trakcie tworzenia (i było to wielokrotnie podkreślane podczas konferencji), więc na klarowne deklaracje nowego stylu, lub epokowe &#8216;manifesty&#8217; będzie trzeba jeszcze poczekać.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.projektowanieparametryczne.pl/?feed=rss2&amp;p=163</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Wstęp do Processing</title>
		<link>http://www.projektowanieparametryczne.pl/?p=137</link>
		<comments>http://www.projektowanieparametryczne.pl/?p=137#comments</comments>
		<pubDate>Thu, 03 Sep 2009 22:19:05 +0000</pubDate>
		<dc:creator>Przemek Jaworski</dc:creator>
				<category><![CDATA[Processing]]></category>
		<category><![CDATA[algorytm]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[grafika]]></category>
		<category><![CDATA[komputacja]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.projektowanieparametryczne.pl/?p=137</guid>
		<description><![CDATA[Fala zainteresowania tematyką algorytmicznego (komputacyjnego) designu nie wydaje się słabnąć, a jako że na polskiej &#8217;scenie&#8217; designerskiej niewiele jest zasobów poświęconych temu zagadnieniu rozpoczynamy wątek wprowadzający w programowanie w  Processing &#8211; otwartej platformie do programowania dla designerów, architektów i grafików.
Po pierwsze &#8211; do czego może się Processing przydać w codziennej pracy designera ? Przede wszystkim do automatyzacji powtarzalnych zadań. [...]]]></description>
			<content:encoded><![CDATA[<p>Fala zainteresowania tematyką algorytmicznego (komputacyjnego) designu nie wydaje się słabnąć, a jako że na polskiej &#8217;scenie&#8217; designerskiej niewiele jest zasobów poświęconych temu zagadnieniu rozpoczynamy wątek wprowadzający w programowanie w  Processing &#8211; otwartej platformie do programowania dla designerów, architektów i grafików.</p>
<p>Po pierwsze &#8211; do czego może się Processing przydać w codziennej pracy designera ? Przede wszystkim do automatyzacji powtarzalnych zadań. To jednak brzmi mało zachęcająco, więc dodam, że można z powodzeniem używać Processing do definiowania najbardziej skomplikowanych form geometrycznych, takich jak np. powierzchnie dachów i fasad (z tym spotkałem się najczęściej). Tak naprawdę jednak, najwięcej korzyści przynosi użycie go do dynamicznego, i szybkiego wspomagania procesu projektowania, a szczególnie oceny poszczególnych pomysłów, i ewolucji rozwiązań. Tutaj nie chodzi już o to, żeby wygenerować jakąś formę, lecz bardziej o generowanie jej tyle razy, i w takich wariantach, żeby znaleźć jej nalepsze wcielenie (to podejście niektórzy nazywają &#8216;projektowaniem ewolucyjnym&#8217;, bądź &#8216;generatywnym&#8217;).</p>
<div id="attachment_143" class="wp-caption aligncenter" style="width: 516px"><img class="size-full wp-image-143" title="pulsing_cubes" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/09/pulsing_cubes.jpg" alt="pulsing_cubes" width="506" height="532" /><p class="wp-caption-text">przykładowy szkic z pulsującymi sześcianami</p></div>
<p>Po drugie &#8211; Processing daje dużą dozę interaktywności. Przede wszystkim w samym procesie projektowania, gdzie możemy oglądać generowaną formę/obiekt podczas jego ewolucji  i na nią wpływać poprzez np. klawiaturę albo myszkę. Możemy także w stosunkowo prosty sposób tworzyć proste instalacje multimedialne reagujące na widza lub otoczenie (ale to już osobny rozdział).</p>
<p>I wreszcie po trzecie &#8211; Processing jest na tyle prosty, że może w nim pracować każdy, kto miał trochę do czynienia z prostą matematyką lub logiką. Ma w sobie sporo stworzonych przez użytkowników bibliotek, które pozwalają na szybkie i łatwe zapisanie efektów pracy w plikach PDF, JPG lub np. DWG (przy eksportowaniu trójwymiarowych modeli). Poza tym styl pisania programów na tej platformie jest bardziej luźny, większość ludzi pisze &#8217;szkice&#8217;, czyli krótkie zlepki kodu generujące ciekawe efekty, zamiast pisać wielkie skomplikowane programy-giganty.</p>
<p>W skrócie, środowisko to nadaje się dla twórców, którzy nie chcą spędzać długich godzin szukając sposobu na narysowanie np. krzywych Beziera, tylko wolą poprostu usiąść i widzieć gotowy efekt w ciągu kilku chwil.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Dobrą rzeczą jest też to, że wokół platformy Processingu stworzyła się dość duża społeczność, która wymienia się doświadczeniami, fragmentami kodu i pomysłami.</p>
<p>Najwięcej ciekawych przykładów z kodem źródłowym można znaleźć na <a href="http://www.openprocessing.org/">http://www.openprocessing.org/</a> lub na oryginalnej stronie <a href="http://www.processing.org">www.processing.org</a> , powstało też kilka ciekawych <a href="http://www.processing.org/learning/books/index.html" target="_blank">książek</a>. Można by śmiało rzec, że Processing jest jedną z najlepszych platform edukacyjnych do nauki programowania i projektowania komputatywnego z tych istniejących na dziś dzień w internecie.</p>
<p>Sam program jest do ściągnięcia <a href="http://www.processing.org/download/">tuta</a>j na zasadach General Public License (czyli za darmo).</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Ok, przejdźmy zatem do środowiska :</p>
<p><img class="aligncenter size-full wp-image-138" title="processing_diagram" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/08/processing_diagram.jpg" alt="processing_diagram" width="720" height="800" /></p>
<p>Po otwarciu programu ukazuje się nam okno, jak to powyżej. Zintegrowane środowisko programowania, w skrócie IDE (z ang. Integrated Development Environment) jest dość proste, i składa się z kilku przycisków, rozwijalnego menu, okna wprowadzania i edycji kodu, oraz okna komunikatów.</p>
<p>Przyciski (od lewe):</p>
<p>START &#8211; służy uruchamianiu kodu, można też zrobić to naciskając CTRL+R, lub wybierając opcję &#8216;Run&#8217; z górnego menu &#8216;Sketch&#8217;. Powoduje to otwarcie osobnego okna, w którym wyświetla się graficzna manifestacja naszego programu.</p>
<p>STOP &#8211; zatrzymuje uruchomiony szkic, i zamyka jego osobne okno</p>
<p>NEW &#8211; tworzy nowy (pusty) szkic</p>
<p>OPEN &#8211; otwiera istniejący szkic zapisany na dysku</p>
<p>SAVE &#8211; zapisuje bieżący szkic</p>
<p>EXPORT &#8211; przydatna funkcja eksportująca nasz szkic jako stronę .html z appletem Javy, który uruchamia się po jej otwarciu. Oznacza to, że można bardzo prosto udostępnić DZIAŁAJĄCY szkic internetowej publice, do oglądania w zwykłej przeglądarce internetowej (!).  Dzieje się to oczywiście po zapisaniu tak wyeksportowanego szkicu na jakimś serwerze, lub dołączeniu go do istniejącej strony internetowej.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>Pierwszy kod</p>
<p>Standardowo, każdy szkic uruchamia się w oknie, które ma 100 na 100 pikseli. Aby to zmienić, należy na początku programu napisać :</p>
<p><strong>size(500,500);</strong></p>
<p>Co powoduje zwiększenie wymiaru okna do 500 na 500 pikseli, co możemy zobaczyć po naciśnięciu przycisku START.</p>
<p>Zmiany koloru tła dokonujemy za pomocą polecenia</p>
<p><strong>background(255,255,255);</strong></p>
<p>gdzie trzy liczby w nawiasie to kolejno wartość czerwieni, zielonego i niebieskiego (Red Green Blue), w zakresie 0-255, czyli 255,255,255 da nam kolor biały.</p>
<p>aby narysować koło piszemy</p>
<p><strong>ellipse(250,250,200,200);</strong></p>
<p>gdzie pierwsze dwie liczby to współrzędne X i Y środka, a dwie następne to średnica X i średnica Y (jako, że rysujemy tak naprawdę elipsę &#8211; ale podając dwie jednakowe liczby dostajemy koło).</p>
<p>Należy tutaj nadmienić, że w większości języków programowania współrzędne pikseli na ekranie liczy się od lewego górnego rogu (0,0) do prawego dolnego (szerokość, wysokość). Do zmiany i przesunięcia układu współrzędnych służą polecenia translate(), scale() i rotate(), ale o tym później.</p>
<p>Tak więc nasz program powinien wyglądać mniej więcej tak :</p>
<p><strong>size(500,500);</strong></p>
<p><strong>background(255,255,255);</strong></p>
<p><strong>ellipse(250,250,200,200);</strong></p>
<p>Po naciśnięciu START ukaże nam się taki obraz :</p>
<p><img class="aligncenter size-full wp-image-144" title="cwiczenie01" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/09/cwiczenie01.jpg" alt="cwiczenie01" width="506" height="532" /></p>
<p>Nic szczególnego tak naprawdę, ale czego można się spodziewać po trzech liniach kodu <img src='http://www.projektowanieparametryczne.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Aby dodać trochę złożoności naszemu prostemu szkicowi, musimy posłużyć się pętlą <strong>FOR</strong> , oraz sinusoidą. Pętla jest to pewien fragment kodu, który jest wykonywany wielokrotnie (dość ciekawy opis można znaleźć <a href="http://guidecpp.cal.pl/cplus,loops">tutaj</a>).  Typowa pętla wygląda tak :</p>
<p><strong>for (int i=0;i&lt;100;i++)  { &#8230; tutaj jest kod &#8230; }</strong></p>
<p>i jest nazwą używanej zmiennej (może to być k, j, m, a lub b, lub jakakolwiek nazwa, np. mojaZmienna ). 100 to ilość powtórzeń pętli, i++ to operacja wykonywana na zmiennej, &#8216;++&#8217; znaczy zwiększenie wartości o jeden po każdym przebiegu, analogicznie &#8216;&#8211;&#8217; powodowałoby jej zmniejszenie.</p>
<p>Int to typ zmiennej używanej w pętli, określający ją jako zmienną typu &#8216;integer&#8217;, czyli przyjmującą tylko całkowite wartości. W naszych szkicach będziemy narazie zamiennie używać tylko zmiennych <strong>int</strong> oraz <strong>float</strong> (zmiennoprzecinkowych, o większej precyzji).</p>
<p>Funkcję sinusoidalną możemy wykorzystać używając składnię sin(argument), gdzie argument to liczba z dowolnego zakresu, a wynik to liczba z zakresu od -1 do 1.</p>
<p><strong>sin (0) = 0, sin(PI/2) = 1</strong> itp. Podobnie używamy funkcji cos().</p>
<p>Przydadzą się też inne zmienne, np :</p>
<p><strong>float kat = 0;</strong> (deklaracja zmiennej &#8216;kąt&#8217; i nadanie jej wartości zero). Przy każdym kolejnym użyciu nie trzeba już deklarować typu zmiennej, wystarczy napisać po prostu kat = wartość;</p>
<p>oraz <strong>float promien;</strong> która zdefiniuje promień każdego z kółek.</p>
<p>spróbujmy zatem zamienić linę rysującą kółko na :</p>
<p><strong>for (int i=0; i&lt;50;i++)<br />
{<br />
float kat = i*PI/25.0;<br />
float promien = sin(kat*2)*20+20;<br />
ellipse(250+sin(kat)*200,250+cos(kat)*200,promien,promien);<br />
}</strong></p>
<p>Dla <strong>i</strong> rosnącego od 0 do 50, kąt przyjmuje wartość od 0 do 2*PI, czyli wykonuje pełny obrót. Promień zaś, arbitralnie zwiększa się i zmniejsza w zależności od zmian kąta &#8211; warto poeksperymentować tutaj wpisując różne wartości, można w bardzo łatwy sposób uzyskać bardzo ciekawe efekty graficzne !</p>
<p>Po naciśnięciu START naszym oczom powinna się ukazać następująca grafika :</p>
<p><img class="aligncenter size-full wp-image-145" title="cwiczenie02" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/09/cwiczenie02.jpg" alt="cwiczenie02" width="506" height="532" /></p>
<p>Zaś aby trochę ją ożywić, możemy dodać też polecenie <strong>fill()</strong> zmieniające wypełnienie każdego indywidualnego kółka w pętli. Tak samo jak w <strong>background() </strong>, podajemy kolejno wartości koloru czerwonego, zielonego i niebieskiego (0-255)</p>
<p><strong>fill(i*5,128+i*2.5,255-i*5);</strong></p>
<p>tak więc cały kod powinien teraz wyglądać tak :</p>
<p><strong>size(500,500);<br />
background(255,255,255);</strong></p>
<p><strong>for (int i=0; i&lt;50;i++)<br />
{</strong></p>
<p><strong>float kat = i*PI/25.0;<br />
float promien = sin(kat*2)*20+20;<br />
fill(i*5,128+i*2.5,255-i*5);<br />
ellipse(250+sin(kat)*200,250+cos(kat)*200,promien,promien);</strong></p>
<p><strong>}</strong></p>
<p>a efekt tak :</p>
<p><img class="aligncenter size-full wp-image-151" title="cwiczenie03" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/09/cwiczenie03.jpg" alt="cwiczenie03" width="506" height="532" /></p>
<p>Grafikę taką można zapisać jako bitmapę za pomocą polecenia saveFrame() , lub jako grafikę wektorową z użyciem biblioteki do eksportu PDF. W tym celu należy dodać deklarację użycia biblioteki :</p>
<p><strong>import processing.pdf.*;</strong></p>
<p>oraz dać znać szkicowi od którego momentu powinien &#8216;nagrywać&#8217; grafikę i zapisywać ją w pliku PDF &#8211; robi się to za pomocą polecenia</p>
<p><strong>beginRecord(PDF, &#8220;kolka.pdf&#8221;);</strong></p>
<p>a kończy poleceniem</p>
<p><strong>endRecord();</strong></p>
<p>tak więc cały kod wygląda teraz tak :</p>
<p><strong>import processing.pdf.*;</strong></p>
<p><strong>size(500,500);<br />
background(255,255,255);</strong></p>
<p><strong>beginRecord(PDF, &#8220;kolka.pdf&#8221;);</strong></p>
<p><strong>for (int i=0; i&lt;50;i++)<br />
{</strong></p>
<p><strong>float kat = i*PI/25.0;<br />
float promien = sin(kat*2)*20+20;<br />
fill(i*5,128+i*2.5,255-i*5);<br />
ellipse(250+sin(kat)*200,250+cos(kat)*200,promien,promien);</strong></p>
<p><strong>}</strong></p>
<p><strong>endRecord();</strong></p>
<p>wygenerowany plik PDF można obejrzeć <a href="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/09/kolka.pdf">tutaj</a></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Trzeba pamiętać, że kod zaprezentowany powyżej jest tylko jednym z dwóch sposobów pisania programów w Processing, gdyż do pisania aplikacji interaktywnych bardziej stosowny będzie układ zapętlony, gdzie program rysuje/tworzy grafikę lub trójwymiarowy model wiele razy na sekundę, pozwalając nam na interakcję.</p>
<p>O tym jednak w następnym odcinku.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.projektowanieparametryczne.pl/?feed=rss2&amp;p=137</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Bartlett Show: Mikro-światy, i AA Projects Review: Cyfrowe poszukiwania formy (fotoreportaż)</title>
		<link>http://www.projektowanieparametryczne.pl/?p=67</link>
		<comments>http://www.projektowanieparametryczne.pl/?p=67#comments</comments>
		<pubDate>Sun, 12 Jul 2009 21:07:27 +0000</pubDate>
		<dc:creator>Przemek Jaworski</dc:creator>
				<category><![CDATA[generalnie]]></category>
		<category><![CDATA[aa]]></category>
		<category><![CDATA[bartlett]]></category>
		<category><![CDATA[ucl]]></category>
		<category><![CDATA[wystawa]]></category>

		<guid isPermaLink="false">http://www.projektowanieparametryczne.pl/?p=67</guid>
		<description><![CDATA[

Londyńskie lato rozkwita w pełni, i jak co roku na przełomie czerwca i lipca można tu zobaczyć prace studentów wszystkich niemalże uczelni architektonicznych i artystycznych. Całkiem niedawno miałem okazję obejrzeć wystawę RCA Show, która obfitowała w architektoniczne i przestrzenne eksploracje stworzone z użyciem najnowszych parametrycznych i generatywnych narzędzi (mimo, że RCA jest raczej uczelnią artystyczną, [...]]]></description>
			<content:encoded><![CDATA[<p><code><br />
</code></p>
<p>Londyńskie lato rozkwita w pełni, i jak co roku na przełomie czerwca i lipca można tu zobaczyć prace studentów wszystkich niemalże uczelni architektonicznych i artystycznych. Całkiem niedawno miałem okazję obejrzeć wystawę <a href="http://www.rca.ac.uk">RCA</a> Show, która obfitowała w architektoniczne i przestrzenne eksploracje stworzone z użyciem najnowszych parametrycznych i generatywnych narzędzi (mimo, że RCA jest raczej uczelnią artystyczną, zorientowaną na product design, komunikację i grafikę). To samo można było zobaczyć na prezentacji projektów na University of Westminster, więc można śmiało stwierdzić, że temat stał się już stałym elementem studenckiej twórczości.  W niniejszym artykule chciałbym zabrać się za dwie najbardziej znane szkoły architektury w Londynie: Bartlett School of Architecture na University College of London, oraz Architectural Association.<br />
<code><br />
</code></p>
<h3>Bartlett Show : Mikro Światy</h3>
<p>Pierwsze co rzuca się w oczy oglądając projekty zrobione przez podopiecznych tutejszych wykładowców, to to, że technika wykonania, choćby najbardziej wymyślna, nie jest najważniejsza. Na wystawie można obejrzeć prace różnych &#8216;unitów&#8217;, które prowadzone są przez innych nauczycieli, i skupiają się na innych aspektach procesu projektowania. Niektóre zbaczają dość daleko z typowo architektonicznych trajektorii, i zagłębiają się w takie dziedziny jak produkcja filmowa, malarskie wizualizacje, trójwymiarowa typografia oraz ruchome &#8216;maszyny&#8217;, roboty i instalacje przestrzenne. Wszystko jednak ma bardzo szeroką i stabilną teoretyczną bazę, powstałą przez wytrwałe studiowanie esejów i filozoficznych wywodów oraz poszukiwanie odpowiedzi na fundamentalne pytania, a co najważniejsze, jest bardzo &#8216;ludzkie&#8217; w odbiorze. Projekty próbują wciągnąć nas w interakcję, lub złapać i utrzymać naszą uwagę pewną &#8216;teatralnością&#8217; i sposobem przedstawienia &#8211; w większości jako trójwymiarowe modele, lub kilkuplanowe(warstwowe) przezroczyste, lub przestrzennie powycinane rysunki, przekroje i plany &#8211; wszystkie tworzące swoiste &#8216;mikro światy&#8217;, w które można się zagłębić, i studiować godzinami.</p>
<p><img class="alignnone" title="bartlett show" src="http://www.projektowanieparametryczne.pl/foto/0907/IMGP0735.JPG" alt="" width="640" height="426" /></p>
<p><img class="alignnone" title="bartlett show" src="http://www.projektowanieparametryczne.pl/foto/0907/IMGP0736.JPG" alt="" width="640" height="426" /></p>
<p><img class="alignnone" title="bartlett show" src="http://www.projektowanieparametryczne.pl/foto/0907/IMGP0728.JPG" alt="" width="640" height="426" /></p>
<p>Unit 15 zajmujący się produkcją wideo prezentuje prace studentów na jednym dużym, i kilku mniejszych ekranach. Krótkie filmy używają różnych technik, najczęściej dwu- lub trzywymiarowej animacji, do przedstawienia np. przyszłościowej wizji miasta, albo stworzenia całkiem innej, niemalże fantastyczneo-komiksowej rzeczywistości, w której architektura jest pierwszoplanowym środkiem wyrazu.</p>
<p><img class="alignnone" title="bartlett show" src="http://www.projektowanieparametryczne.pl/foto/0907/IMGP0738.JPG" alt="" width="640" height="426" /></p>
<p><img class="alignnone" title="bartlett show" src="http://www.projektowanieparametryczne.pl/foto/0907/IMGP0739.JPG" alt="" width="640" height="426" /></p>
<p>W tej pracy z Unitu 18, parametryczne projektowanie zostało użyte do stworzenia części modelu (chociaż wydaje się, że nie jest ono najważniejszym elementem pomysłu, tylko środkiem wyrazu). Gdzieniegdzie widać ludzkie sylwetki pokazujące skalę.</p>
<p><img class="alignnone" title="bartlett show" src="http://www.projektowanieparametryczne.pl/foto/0907/IMGP0743.JPG" alt="" width="640" height="426" /></p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907/IMGP0750.JPG" alt="" width="640" height="426" /></p>
<p>W niektórych częściach wystawy spotkać można prace takie jak ta, skonstruowane z wielu niemalże mikroskopijnych elementów tworzących &#8216;mikro świat&#8217;. Wszystko ma tutaj sens, choć żeby go odkryć , trzeba poświęcić trochę czasu na studiowanie modelu i opisów, bo projekty takie jak ten opowiadają jakąś &#8216;historię&#8217;, czasem w lekko &#8216;teatralny&#8217; sposób, zamiast poprostu prezentować koncepcję.</p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907/IMGP0752.JPG" alt="" width="640" height="426" /></p>
<p>Drewniana struktura tensegrity podwieszona pod sufitem.</p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907/IMGP0758.JPG" alt="" width="640" height="426" /></p>
<p>Parametryczne studia przekryć dachowych różnych zastosowań &#8211; wydruki SLS.</p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907/IMGP0760.JPG" alt="" width="640" height="426" /></p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907/IMGP0761.JPG" alt="" width="640" height="426" /></p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907/IMGP0764.JPG" alt="" width="640" height="426" /></p>
<p>&#8220;Ekowizualne Morfologie&#8221; &#8211; wydruk SLS skorelowany z mapą świata.</p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907/IMGP0769.JPG" alt="" width="640" height="426" /></p>
<p>Projekty studentów z pierwszego roku.</p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907/IMGP0773.JPG" alt="" width="640" height="426" /></p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907/IMGP0782.JPG" alt="" width="640" height="426" /></p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907/IMGP0788.JPG" alt="" width="640" height="426" /></p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907/IMGP0793.JPG" alt="" width="640" height="426" /></p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907/IMGP0794.JPG" alt="" width="640" height="426" /><br />
<code><br />
</code></p>
<h3>AA Project Review : Cyfrowe poszukiwania formy</h3>
<p><code><br />
</code></p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907b/IMGP0798.JPG" alt="" width="640" height="426" /></p>
<p>Pierwsze co się rzuca w oczy po przybyciu na Bedford Square to duży, drewniany pawilon, tegoroczny zwycięzca konkursu przeprowadzonego wśród studentów AA. Ten, w przeciwieństwie do <a href="http://www.dezeen.com/2008/04/09/cspace-pavilion-by-alan-dempsey-and-alvin-huang-2/" target="_blank">zeszłorocznego</a>, nie stara się udawać, że spełnia jakąkolwiek funkcję &#8211; jest poprostu architektoniczną rzeźbą, wydzielającą przestrzeń i zachęcającą do jej eksploracji. Zaprojektowany cyfrowo szkielet został obłożony płatami cienkiego, elastycznego drewna sprowadzonego z Finlandii ( cały projekt był sponsorowany przez fińską firmę FinnForest ), które tworzy przyjemną atmosferę i jest przyjazne w odbiorze.</p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907b/IMGP0840.JPG" alt="" width="640" height="426" /></p>
<p>Testowe modele pawilonu z etapu konkursu. Na trójwymiarowym przekroju można dostrzec przestrzenną strukturę tworzącą rdzeń na którym spoczywają zewnętrzne warstwy drewna.</p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907b/IMGP0804.JPG" alt="" width="640" height="426" /></p>
<p>Generalnie oglądając wystawę prac studentów, ma się wrażenie, że technologie cyfrowego projektowania i fabrykacji są w AA nauczane i opanowane do granic perfekcji &#8211; na dzisiejsze techniczne możliwości &#8211; i posiadając umiejętności ich zastosowania można zbudować prawie wszystko. Głównymi technikami prezentacji są modele przestrzenne wycinane laserowo z kartonu, lub trójwymiarowe wydruki z drukarek proszkowych lub SLS, do większości prezentowanych obiektów dodane są także plansze z prezentacją idei, ale zawsze wyeksponowane drugoplanowo &#8211; główny nacisk jest położony na dobry model, z logiczną i przejrzystą konstrukcją i topologią połączeń elementów.</p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907b/IMGP0808.JPG" alt="" width="640" height="426" /></p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907b/IMGP0817.JPG" alt="" width="640" height="426" /></p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907b/IMGP0818.JPG" alt="" width="640" height="426" /></p>
<p>Niektóre modele studiują zupełnie organiczne sposoby na &#8216;hodowanie&#8217; struktury budynku, z wykorzystaniem algorytmów genetycznych lub samo-organizacji. Zazwyczaj projekty wykonane tymi technikami nadają się jedynie do wydrukowania na drukarce 3D, ze względu na stopień skomplikowania, który trudno oddać innymi technikami.</p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907b/IMGP0819.JPG" alt="" width="640" height="426" /></p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907b/IMGP0835.JPG" alt="" width="640" height="426" /></p>
<p>Prace unitu &#8216;<a href="http://www.aa-inter8.net/" target="_blank">Intermediate 8</a>&#8216; koncentrującego się na technikach algorytmicznych, w tle widać bardzo interesujący projekt tamy/zapory wodnej pełnej organicznych, płynnych elementów zaskakująco dobrze pasujących do wykresów sił i naprężeń w elementach konstrukcji.</p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907b/IMGP0836.JPG" alt="" width="640" height="426" /></p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907b/IMGP0845.JPG" alt="" width="640" height="426" /></p>
<p>Dach chroniący przed słońcem i deszczem na tarasie drugiego piętra szkoły jest także przedmiotem konkursu wśród studentów. W tym roku wygrała koncepcja zaprojektowana przez studentów kierunku <a href="http://www.aaschool.ac.uk/Default.aspx?section=school&amp;page=emtech%20MSc/March" target="_blank">Emegent Technologies</a>, wymodelowana w programie Grasshopper. Płaty drewna zostały wycięte maszyną CNC (razem z odpowiednio ustawionymi otworami na łączenia), następnie poddane procesowi laminacji, i zaraz po tym skręcone razem śrubami.</p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907b/IMGP0851.JPG" alt="" width="640" height="426" /></p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907b/IMGP0846.JPG" alt="" width="640" height="426" /></p>
<p>DRL  (Design Research Laboratory), które zostało założone przez Patricka Schumachera i Zahę Hadid, prezentuje  się dość ciekawie, jak zwykle wystawa obfituje w modele parametryczne i generatywne. Odniosłem jednak lekkie wrażenie, że to ciągle to samo.. ciekawe, ale chwilowo wygląda to jak powtórka z poprzednich lat. Może na świeższe powiewy pomysłowości przyjdzie nam czekać do następnego roku.</p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907b/IMGP0847.JPG" alt="" width="640" height="426" /></p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907b/IMGP0857.JPG" alt="" width="640" height="426" /></p>
<p>Bardzo ciekawe przekrycie dachowe wykonane z płaskich elementów wyciętych laserem, różnice w odstępach pomiędzy &#8216;żebrowaniem&#8217; modułów, oraz sama krzywizna powstają na skutek zróżnicowania położenia punktów podparcia (można by rzec, że jest to dość prosty adaptywny system konstrukcyjny).</p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907b/IMGP0848.JPG" alt="" width="640" height="426" /></p>
<p>Wydruki trójwymiarowe koncepcji generatywnych systemów konstrukcyjnych.</p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907b/IMGP0849.JPG" alt="" width="640" height="426" /></p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907b/IMGP0856.JPG" alt="" width="640" height="426" /></p>
<p>Bardzo ciekawy modularny model. Warto zwrócić uwagę na to jak  moduły reagują na zmianę lokalnej geometrii, odpowiadając zniekształceniem swojej wewnętrznej krzywizny.</p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907b/IMGP0859.JPG" alt="" width="640" height="426" /></p>
<p><img class="alignnone" src="http://www.projektowanieparametryczne.pl/foto/0907b/IMGP0860.JPG" alt="" width="640" height="426" /></p>
<p>Poza tym coraz większy nacisk widać też w nauczaniu tzw. parametrycznego urbanizmu &#8211; czyli różnych algorytmicznych technik analizy  i projektowania w dużej skali, gdzie modele takie jak te powyżej nie pokazują projektu masterplanu w sensie finalnym, lecz są specyficznymi sposobami prezentacji pewnych danych odzwierciedlających sposób funkcjonowania miasta. Nawet jeśli modele te są statyczne, zazwyczaj przedstawiają jakiś aspekt dynamicznych procesów zachodzących w tkance miejskiej, które to w oczach twórcy są ważne dla zrozumienia sposobu jej powstawania. W ten sposób można dojść do bardzo daleko idących, odkrywczych i ciekawych wniosków, bez narzucania jakiegoś konkretnego rozwiązania &#8211; co jest bardzo pomocne na pierwszych etapach projektowania w tak dużych skalach.</p>
<p><code><br />
</code></p>
<p>Obie szkoły prezentują bardzo wysoki poziom nauczania nowych technik projektowania, oraz zupełnie świeży i czasem nawet (pozornie) odrealniony sposób spoglądania na problemy architektoniczne. Studenci uczeni są zupełnie nowego, świeżego sposobu konstruowania przestrzennych rozwiązań, bez zbytniego przykładania wagi do już uznanych, istniejących standardów tworzenia koncepcji architektonicznych czy planistycznych. Zamiast tego każdy problem traktowany jest jako unikatowy, jedyny w swoim rodzaju.</p>
<p>Takie podejście ma swoją rację bytu, szczególnie w AA, i jest bardzo dobre właśnie wtedy kiedy używa się nowoczesnych algorytmicznych technik projektowania, które w wielu przypadkach produkują zaskakujące wyniki &#8211; często lepsze od tych przewidywanych. Nic nie jest tutaj pewne dopóki nie zostanie sprawdzone na kilka różnych sposobów, i przeanalizowane pod kątem różnych funkcjonalno-socjalno-ekologicznych kryteriów, oczywiście z pomocą nowoczesnego oprogramowania lub specjalnie pisanych (przez studentów) programów komputerowych.</p>
<p>Widać jednak dużą różnicę w podejściu konceptualnym do procesu projektowania w AA i Bartlett &#8211; AA koncentruje się bardziej na technologii, sposobie wynajdywania nowych rozwiązań przestrzennych i strukturalnych, podczas gdy Bartlett poprzez twórczość podopiecznych emanuje poetycką ekspresją formy, nie zawsze do końca popartą inżynierskimi analizami i &#8216;wyszlifowaną&#8217; cyfrową optymizacją &#8211; za to dużo bardziej artystyczną, wysublimowaną i awangardową.</p>
<p>Obie szkoły jednak prezentują najwyższy światowy poziom i sposób w jaki podchodzą do zagadnień projektowania przestrzeni dla człowieka pozwala przypuszczać, że szykuje nam się jakaś rewolucja. Kiedy nabierze ona rozpędu &#8211; nie wiadomo, ale z pewnością architektura nie jest już tym czym była kiedyś.</p>
<p>AA Project Review oraz Bartlett Show można zobaczyć co roku na przełomie czerwca i lipca, odpowiednio przy Bedford Square oraz przy głównym dziedzińcu University College of London w Londynie.</p>
<p>Strona AA <a href="http://www.aaschool.ac.uk" target="_blank">www.aaschool.ac.uk</a> , Bartlett <a href="http://www.bartlett.ucl.ac.uk" target="_blank">www.bartlett.ucl.ac.uk</a></p>
<p><code><br />
</code></p>
<p><code><br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.projektowanieparametryczne.pl/?feed=rss2&amp;p=67</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Processing</title>
		<link>http://www.projektowanieparametryczne.pl/?p=55</link>
		<comments>http://www.projektowanieparametryczne.pl/?p=55#comments</comments>
		<pubDate>Sun, 07 Jun 2009 13:36:56 +0000</pubDate>
		<dc:creator>Przemek Jaworski</dc:creator>
				<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://www.projektowanieparametryczne.pl/?p=55</guid>
		<description><![CDATA[Całkiem niedawno, na fali zainteresowania nowymi technikami tworzenia algorytmicznego designu powstał polski portal o Processing, bardzo prostym języku programowania dla architektów i designerów. Można za jego pomocą tworzyć interaktywne prezentacje multimedialne, instalacje (np. z użyciem Arduino) , projekty graficzne, trójwymiarowe formy i symulacje.  Sam program jest darmowy (licencja open source) i posiada bardzo dużą [...]]]></description>
			<content:encoded><![CDATA[<p>Całkiem niedawno, na fali zainteresowania nowymi technikami tworzenia algorytmicznego designu powstał polski portal o <a href="http://www.processing.org.pl">Processing</a>, bardzo prostym języku programowania dla architektów i designerów. Można za jego pomocą tworzyć interaktywne prezentacje multimedialne, instalacje (np. z użyciem Arduino) , projekty graficzne, trójwymiarowe formy i symulacje.  Sam program jest darmowy (licencja open source) i posiada bardzo dużą bazę prostych przykładów. Do ściągnięcia na <a href="http://www.processing.org">www.processing.org.</a></p>
<p>Poniżej załączam animację kilku technik parametrycznych i generatywnych, stworzonych z użyciem GC i Processing. Niektórzy ludzie spekulują, że projektowanie parametryczne nie jest do końca powiązane z generatywnym podejściem, dlatego załączam tą animację &#8211; pokazuje ona dość dobrze jak procesy generatywne &#8216;informują&#8217; parametryczne komponenty (np wiklina, lub tuby tworzące tetrahedrony &#8211; czworoboki foremne) i dopełniają siebie nawzajem.<br />
Oczywiście projektowanie parametryczne może istnieć bez generatywnego, a także generatywne bez, lub jedynie z niewielką pomocą projektowania parametrycznego &#8211; ale uważam, że to dwa komplementarne procesy.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="391" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=3023366&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="600" height="391" src="http://vimeo.com/moogaloop.swf?clip_id=3023366&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>A&#8217;propo generatywności, wśrod linków wideo wyświetlonych po powyższej animacji można znaleźć animację procesu tworzenia pola wektorów za pomocą cząsteczek (agentów), które tworzą ślady swoich trajektorii, stworzoną w Processing 1.0.3. Grafika została użyta na okładkę magazynu &#8216;Grafik&#8217; (wydanie czerwiec 2009).<br />
Program używa takich technik jak flocking (grupowanie w &#8217;stada&#8217;) i prostą sztuczną inteligencję.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.projektowanieparametryczne.pl/?feed=rss2&amp;p=55</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wstęp do Generative Components</title>
		<link>http://www.projektowanieparametryczne.pl/?p=26</link>
		<comments>http://www.projektowanieparametryczne.pl/?p=26#comments</comments>
		<pubDate>Wed, 27 May 2009 22:27:31 +0000</pubDate>
		<dc:creator>Przemek Jaworski</dc:creator>
				<category><![CDATA[GC]]></category>
		<category><![CDATA[projektowanie parametryczne]]></category>
		<category><![CDATA[warsztaty]]></category>

		<guid isPermaLink="false">http://www.projektowanieparametryczne.pl/?p=26</guid>
		<description><![CDATA[W dniach 29-31 maja na Wydziale Architektury Politechniki Wrocławskiej odbyły się warsztaty poświęcone Generative Components i projektowaniu parametrycznemu. Podczas trzech dni studenci poznali podstawy tworzenia krzywych i powierzchni podwójnie zakrzywionych, oraz używania  ich ze zmiennymi parametrami sterowanymi np. suwakami, lub punktami kontrolnymi. Szczególną uwagę poświęcono też zagadnieniu fabrykacji, czyli rozwijaniu powierzchni na płaszczyznę i dzieleniu [...]]]></description>
			<content:encoded><![CDATA[<p>W dniach 29-31 maja na Wydziale Architektury Politechniki Wrocławskiej odbyły się warsztaty poświęcone Generative Components i projektowaniu parametrycznemu. Podczas trzech dni studenci poznali podstawy tworzenia krzywych i powierzchni podwójnie zakrzywionych, oraz używania  ich ze zmiennymi parametrami sterowanymi np. suwakami, lub punktami kontrolnymi. Szczególną uwagę poświęcono też zagadnieniu fabrykacji, czyli rozwijaniu powierzchni na płaszczyznę i dzieleniu elementów na płaskie, &#8216;wycinalne&#8217; części.</p>
<p>Głównie skoncentrowaliśmy się na :</p>
<p>- replikacji punktów, linii, krzywych i płaszczyzn &#8211; czyli operowaniu na jednym obiekcie , który ma kilka lub więcej &#8216;instancji&#8217;. Generalnie, chodzi o odpowiednie wykorzystanie funkcji Series( początek, koniec, krok ).</p>
<p>- dziedziczeniu cech geometrycznych, czyli hierarchii połączeń w modelu. Punkty kontrolne sterują krzywymi, krzywe sterują powierzchniami, powierzchnie sterują panelami itp. Ta cecha była też wykorzystana do stworzenia reagującej na słońce  fasady, gdzie każdy element dziedziczy swoją orientację porównując swoje początkowe ustawienie z kierunkiem padania promieni słonecznych.</p>
<p>- tworzeniu powierzchni krzywoliniowych, i budowaniu na ich podstawie siatek punktów za pomocą listy parametrów UV (w dwuwymiarowym łańcuchu na przykład).</p>
<p>- fabrykacji stworzonych elementów.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-41" title="m-star21" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/05/m-star21.jpg" alt="m-star21" width="720" height="438" /><img class="aligncenter size-full wp-image-42" title="m-star11" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/05/m-star11.jpg" alt="m-star11" width="720" height="600" /></p>
<p style="text-align: center;">Praca Macieja Starowicza, krzywe BSpline użyte jako materiał do stworzenia wzoru perforacji fasady budynku.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-40" title="amfiteatr3" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/05/amfiteatr3.jpg" alt="amfiteatr3" width="720" height="551" />Praca Karoliny, parametryczny amfiteatr dostosowujący się do rzeźby terenu.</p>
<p style="text-align: center;">
<p style="text-align: center;"><img class="aligncenter size-full wp-image-43" title="kasiadudycz2" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/05/kasiadudycz2.jpg" alt="kasiadudycz2" width="720" height="512" />Katarzyna Dudycz, eksperymentalna forma konstrukcji dachu.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-48" title="jakub" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/05/jakub.jpg" alt="jakub" width="720" height="512" />Jakub Szkiłądź, przekrycie części miasta organiczną strukturą o dużej skali.</p>
<p style="text-align: center;">
<p style="text-align: center;">
<p style="text-align: center;"><img class="aligncenter size-full wp-image-44" title="kasiafilipiak" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/05/kasiafilipiak.jpg" alt="kasiafilipiak" width="720" height="512" />Kasia Filipiak, przestrzenna forma i jej rozwinięcia na płaszczyznę.</p>
<p style="text-align: center;">
<p style="text-align: center;"><img class="aligncenter size-full wp-image-45" title="olga2" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/05/olga2.jpg" alt="olga2" width="720" height="512" /></p>
<p style="text-align: center;">Olga Woronowicz, parametryczny dach. Topologia podziałów rozrysowana na płaszczyźnie, a następnie podniesiona na krzywoliniową powierzchnię jako pionowa projekcja. Czworokąty powstały jako połączenie punktów na krzywych bspline będących offsetem krawędzi dachu, wypełnienie środka środka już za pomocą arbitralnych trójkątów.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-46" title="szalet1" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/05/szalet1.jpg" alt="szalet1" width="640" height="455" /></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-47" title="szalet2" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/05/szalet2.jpg" alt="szalet2" width="640" height="455" /></p>
<p style="text-align: center;">Izabella Cichońska, projekt szaletu miejskiego. Wykorzystano tutaj łatwo rozwijalne, pojedynczo zakrzywione powierzchnie .</p>
<p style="text-align: center;">
<p style="text-align: center;"><img class="aligncenter size-full wp-image-49" title="fabrykacja02" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/05/fabrykacja02.jpg" alt="fabrykacja02" width="720" height="503" />elementy projektów przygotowane do fabrykacji.</p>
<p style="text-align: center;">
<p style="text-align: center;">
<p style="text-align: center;">
<p style="text-align: center;">
<p>(&#8230;)</p>
<p><img class="aligncenter size-full wp-image-134" title="imgp9924" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/05/imgp9924.jpg" alt="imgp9924" width="720" height="480" /></p>
<p><img class="aligncenter size-full wp-image-133" title="imgp9923" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/05/imgp9923.jpg" alt="imgp9923" width="720" height="480" /></p>
<p><img class="aligncenter size-full wp-image-132" title="imgp9922" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/05/imgp9922.jpg" alt="imgp9922" width="720" height="480" /></p>
<p><img class="aligncenter size-full wp-image-131" title="imgp9920" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/05/imgp9920.jpg" alt="imgp9920" width="720" height="480" /></p>
<p><img class="aligncenter size-full wp-image-130" title="imgp9915" src="http://www.projektowanieparametryczne.pl/wp-content/uploads/2009/05/imgp9915.jpg" alt="imgp9915" width="720" height="480" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.projektowanieparametryczne.pl/?feed=rss2&amp;p=26</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

