<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4886776295657058459</id><updated>2012-01-14T03:50:31.148+01:00</updated><category term='grasshopper'/><category term='architecture'/><title type='text'>FreeFormFever</title><subtitle type='html'>40 degrees and rising - Notes on the exploration of hot CAD-based design-tools</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://freeformfever.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4886776295657058459/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://freeformfever.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Heinz Schmiedhofer</name><uri>http://www.blogger.com/profile/07773767526898731830</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_zs4s_2i1_O8/SaqfnzTraYI/AAAAAAAACS0/gcSZPQIp9rM/S220/schmiedhofer.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4886776295657058459.post-4957487141190120384</id><published>2009-03-01T13:00:00.006+01:00</published><updated>2009-03-04T21:58:53.225+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='grasshopper'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Spaceframe from two surfaces, featuring parametric struts and nodes (Grasshopper)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zs4s_2i1_O8/Sa7AQa-NdFI/AAAAAAAACXk/5SvWckgvclE/s1600-h/spaceframeb+01.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 208px;" src="http://3.bp.blogspot.com/_zs4s_2i1_O8/Sa7AQa-NdFI/AAAAAAAACXk/5SvWckgvclE/s400/spaceframeb+01.jpg" alt="" id="BLOGGER_PHOTO_ID_5309392399067083858" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here's a solution for generating spaceframes from two surfaces. Struts and joints are real reactive components. As mentioned before, surfaces are first segmented by quad-mesh-faces, from which i derive lists of respective vertices. Since this is done for two surfaces, corresponding points on both of them can easily be connected with struts. For these, an additional script component had to be added, since there's no way i know of that can get me groupwise lofts from one large list of profiles. (And even if there was one, a tiny script definitely is the cleaner way, at least until david will come up with more advanced ways of dealing with data-streams).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zs4s_2i1_O8/Sa7nqPEQGII/AAAAAAAACYc/x7Lz29-zn1k/s1600-h/spaceframe.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 142px;" src="http://1.bp.blogspot.com/_zs4s_2i1_O8/Sa7nqPEQGII/AAAAAAAACYc/x7Lz29-zn1k/s400/spaceframe.jpg" alt="" id="BLOGGER_PHOTO_ID_5309435723501279362" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Due to the topology of meshes, i get lots of redundant surfaces, which, because of their opposing orientation, can't be detected automatically. Also, some unecessary cross-wise struts show up. These issues could be addressed by skipping a strut where there is already another differently oriented one, which on the other hand leads to missing parts at the structure-boundaries. However, i might take care of that later.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://rapidshare.com/files/204197836/spaceframe.zip"&gt;&lt;/a&gt;&lt;a href="http://rapidshare.com/files/205363664/spaceframe02.zip"&gt;http://rapidshare.com/files/205363664/spaceframe02.zip&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4886776295657058459-4957487141190120384?l=freeformfever.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freeformfever.blogspot.com/feeds/4957487141190120384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://freeformfever.blogspot.com/2009/03/spaceframes-from-two-surfaces.html#comment-form' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4886776295657058459/posts/default/4957487141190120384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4886776295657058459/posts/default/4957487141190120384'/><link rel='alternate' type='text/html' href='http://freeformfever.blogspot.com/2009/03/spaceframes-from-two-surfaces.html' title='Spaceframe from two surfaces, featuring parametric struts and nodes (Grasshopper)'/><author><name>Heinz Schmiedhofer</name><uri>http://www.blogger.com/profile/07773767526898731830</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_zs4s_2i1_O8/SaqfnzTraYI/AAAAAAAACS0/gcSZPQIp9rM/S220/schmiedhofer.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_zs4s_2i1_O8/Sa7AQa-NdFI/AAAAAAAACXk/5SvWckgvclE/s72-c/spaceframeb+01.jpg' height='72' width='72'/><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4886776295657058459.post-5114028883970497259</id><published>2009-03-01T12:00:00.003+01:00</published><updated>2009-03-04T21:05:50.274+01:00</updated><title type='text'>Parametric Openings between two Surfaces (Grasshopper)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zs4s_2i1_O8/Sa6eI3NLHEI/AAAAAAAACW8/V2fo8GXanb0/s1600-h/openings04.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 231px;" src="http://3.bp.blogspot.com/_zs4s_2i1_O8/Sa6eI3NLHEI/AAAAAAAACW8/V2fo8GXanb0/s400/openings04.jpg" alt="" id="BLOGGER_PHOTO_ID_5309354885811739714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;By applying the previously described way of scripted data-splitting (introduced with real reactive components in one of my earlier posts) on two surfaces, it is possible to connect these in various ways. This is an example featuring parametric 'openings', steerable via attractors along with two individual scaling factors.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zs4s_2i1_O8/Sa6eQqDUp1I/AAAAAAAACXE/nzmk7vBGbCg/s1600-h/openings01.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 200px;" src="http://3.bp.blogspot.com/_zs4s_2i1_O8/Sa6eQqDUp1I/AAAAAAAACXE/nzmk7vBGbCg/s400/openings01.jpg" alt="" id="BLOGGER_PHOTO_ID_5309355019719714642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://rapidshare.com/files/205248607/parametric_openings.zip"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;http://rapidshare.com/files/205248607/parametric_openings.zip&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4886776295657058459-5114028883970497259?l=freeformfever.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freeformfever.blogspot.com/feeds/5114028883970497259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://freeformfever.blogspot.com/2009/03/parametric-openings-between-two.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4886776295657058459/posts/default/5114028883970497259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4886776295657058459/posts/default/5114028883970497259'/><link rel='alternate' type='text/html' href='http://freeformfever.blogspot.com/2009/03/parametric-openings-between-two.html' title='Parametric Openings between two Surfaces (Grasshopper)'/><author><name>Heinz Schmiedhofer</name><uri>http://www.blogger.com/profile/07773767526898731830</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_zs4s_2i1_O8/SaqfnzTraYI/AAAAAAAACS0/gcSZPQIp9rM/S220/schmiedhofer.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_zs4s_2i1_O8/Sa6eI3NLHEI/AAAAAAAACW8/V2fo8GXanb0/s72-c/openings04.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4886776295657058459.post-8325070685279607382</id><published>2009-03-01T11:00:00.003+01:00</published><updated>2009-03-04T21:06:10.362+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='grasshopper'/><title type='text'>Real Reactive Components (Grasshopper)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zs4s_2i1_O8/Saq3Wgkth0I/AAAAAAAACUo/ZNJNHrXdHRM/s1600-h/rc03.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 214px;" src="http://4.bp.blogspot.com/_zs4s_2i1_O8/Saq3Wgkth0I/AAAAAAAACUo/ZNJNHrXdHRM/s400/rc03.jpg" alt="" id="BLOGGER_PHOTO_ID_5308256708138469186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For anyone interested in real reactive components: here is a way this can be done in grasshopper with very little c# scripting involved:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zs4s_2i1_O8/SaqzOJzCVOI/AAAAAAAACUY/S6kyYYOoxJA/s1600-h/rc01.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 106px;" src="http://3.bp.blogspot.com/_zs4s_2i1_O8/SaqzOJzCVOI/AAAAAAAACUY/S6kyYYOoxJA/s400/rc01.jpg" alt="" id="BLOGGER_PHOTO_ID_5308252166539072738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The script-part segments a NURBS-patch into quad-mesh-faces, which are used to derive meaningful vertex-pointsets from:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zs4s_2i1_O8/Saq0EWlxMYI/AAAAAAAACUg/gU65-ndoAVQ/s1600-h/rc02.jpg"&gt;&lt;img style="cursor: pointer; width: 238px; height: 247px;" src="http://3.bp.blogspot.com/_zs4s_2i1_O8/Saq0EWlxMYI/AAAAAAAACUg/gU65-ndoAVQ/s400/rc02.jpg" alt="" id="BLOGGER_PHOTO_ID_5308253097686020482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As a very simple result, a pyramid-component whose corner-vertices sit on derived UV-points can be steered via attractors. the height of a pyramid depends on the distance of its base-barycenter to an attractor-point.&lt;br /&gt;&lt;br /&gt;This kind of workflow implies some very interesting applications, which will be subject to successive posts.&lt;br /&gt;&lt;br /&gt;&lt;p size="9pt" style="padding: 0px; margin-bottom: 3px; margin-top: 3px;"&gt;&lt;a href="http://rapidshare.com/files/204203764/RealReactiveComponent.zip"&gt;http://rapidshare.com/files/204203764/RealReactiveComponent.zip&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4886776295657058459-8325070685279607382?l=freeformfever.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freeformfever.blogspot.com/feeds/8325070685279607382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://freeformfever.blogspot.com/2009/03/real-reactive-components.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4886776295657058459/posts/default/8325070685279607382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4886776295657058459/posts/default/8325070685279607382'/><link rel='alternate' type='text/html' href='http://freeformfever.blogspot.com/2009/03/real-reactive-components.html' title='Real Reactive Components (Grasshopper)'/><author><name>Heinz Schmiedhofer</name><uri>http://www.blogger.com/profile/07773767526898731830</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_zs4s_2i1_O8/SaqfnzTraYI/AAAAAAAACS0/gcSZPQIp9rM/S220/schmiedhofer.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zs4s_2i1_O8/Saq3Wgkth0I/AAAAAAAACUo/ZNJNHrXdHRM/s72-c/rc03.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4886776295657058459.post-4478988636968572927</id><published>2009-03-01T10:00:00.003+01:00</published><updated>2009-03-04T21:06:41.832+01:00</updated><title type='text'>Ruled Surfaces #3: Reactive Facade (Grasshopper)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zs4s_2i1_O8/Sa61vw1oIeI/AAAAAAAACXc/4PAGuptSAIU/s1600-h/facade.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 230px;" src="http://4.bp.blogspot.com/_zs4s_2i1_O8/Sa61vw1oIeI/AAAAAAAACXc/4PAGuptSAIU/s400/facade.jpg" alt="" id="BLOGGER_PHOTO_ID_5309380842884702690" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nothing spectacular, facade reacting on attractor-point. Ruled surfaces in any case. One single C# component was used for splitting the loft-profiles for an arbitrary number of level-curves. Definition-file will be added later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4886776295657058459-4478988636968572927?l=freeformfever.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freeformfever.blogspot.com/feeds/4478988636968572927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://freeformfever.blogspot.com/2009/03/ruled-surfaces-3-reactive-facade.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4886776295657058459/posts/default/4478988636968572927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4886776295657058459/posts/default/4478988636968572927'/><link rel='alternate' type='text/html' href='http://freeformfever.blogspot.com/2009/03/ruled-surfaces-3-reactive-facade.html' title='Ruled Surfaces #3: Reactive Facade (Grasshopper)'/><author><name>Heinz Schmiedhofer</name><uri>http://www.blogger.com/profile/07773767526898731830</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_zs4s_2i1_O8/SaqfnzTraYI/AAAAAAAACS0/gcSZPQIp9rM/S220/schmiedhofer.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zs4s_2i1_O8/Sa61vw1oIeI/AAAAAAAACXc/4PAGuptSAIU/s72-c/facade.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4886776295657058459.post-523566682080404959</id><published>2009-03-01T09:00:00.005+01:00</published><updated>2009-03-04T21:24:25.404+01:00</updated><title type='text'>Ruled Surfaces #2: Generate Ruled Surfaces from a surface-UV-grid for Lasercutting (Grasshopper)</title><content type='html'>This is my version of something i have seen on &lt;a href="http://www.liftarchitects.com/"&gt;www.liftarchitects.com&lt;/a&gt;. In addition to their solution, i come up with the possibility to choose my own vector for loft-rulings. I use one C# script component for the separation of lofts, along with another which just lets me choose between three methods (see below) of providing a generic list of vectors defining the directions of rulings, before they are passed through the component based on the status of an integer-slider. I didn't find an easier way to do this, although the script itself is piece of cake ;)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zs4s_2i1_O8/SawFI_VIpPI/AAAAAAAACV4/kV0Grd9JPOk/s1600-h/lasercut03.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 194px;" src="http://2.bp.blogspot.com/_zs4s_2i1_O8/SawFI_VIpPI/AAAAAAAACV4/kV0Grd9JPOk/s400/lasercut03.jpg" alt="" id="BLOGGER_PHOTO_ID_5308623712760145138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;rulings are parallel to global z-direction (developable)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zs4s_2i1_O8/SawFIcEOOcI/AAAAAAAACVw/VD5auDDqxWE/s1600-h/lasercut02.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 188px;" src="http://2.bp.blogspot.com/_zs4s_2i1_O8/SawFIcEOOcI/AAAAAAAACVw/VD5auDDqxWE/s400/lasercut02.jpg" alt="" id="BLOGGER_PHOTO_ID_5308623703293966786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;an appropriate ruling-direction can be chosen explicitly (developable)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zs4s_2i1_O8/SawFIJZeJwI/AAAAAAAACVo/vzdBhpndF3U/s1600-h/lasercut01.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 201px;" src="http://1.bp.blogspot.com/_zs4s_2i1_O8/SawFIJZeJwI/AAAAAAAACVo/vzdBhpndF3U/s400/lasercut01.jpg" alt="" id="BLOGGER_PHOTO_ID_5308623698282817282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;rulings are surface-normals. &lt;/span&gt;&lt;span style="font-style: italic;"&gt;general ruled surfaces. &lt;/span&gt;&lt;span style="font-style: italic;"&gt;(non-developable)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note that the third variant, the one based on surface normals, consists of non-torsal ruled surfaces, which in general are non-developable, meaning that they cannot be projected to a plane without distortion, and one will get some irregularities when trying to produce the structure this way.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zs4s_2i1_O8/SawNQxfRW8I/AAAAAAAACWA/SYrqhDrRvlY/s1600-h/lasercut04.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 165px;" src="http://3.bp.blogspot.com/_zs4s_2i1_O8/SawNQxfRW8I/AAAAAAAACWA/SYrqhDrRvlY/s400/lasercut04.jpg" alt="" id="BLOGGER_PHOTO_ID_5308632642576538562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What i didn't add yet is a method for the production of vertical slots at intersections of struts, but since i am going to lasercut such a construction soon, i will have to add it within the next days. I'm also planning to add a fourth method which will average rulings for each loft individually. This could come in handy if the input-surface is not too twisted. Watch out for that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4886776295657058459-523566682080404959?l=freeformfever.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freeformfever.blogspot.com/feeds/523566682080404959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://freeformfever.blogspot.com/2009/03/ruled-surfaces-with-grasshopper-2.html#comment-form' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4886776295657058459/posts/default/523566682080404959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4886776295657058459/posts/default/523566682080404959'/><link rel='alternate' type='text/html' href='http://freeformfever.blogspot.com/2009/03/ruled-surfaces-with-grasshopper-2.html' title='Ruled Surfaces #2: Generate Ruled Surfaces from a surface-UV-grid for Lasercutting (Grasshopper)'/><author><name>Heinz Schmiedhofer</name><uri>http://www.blogger.com/profile/07773767526898731830</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_zs4s_2i1_O8/SaqfnzTraYI/AAAAAAAACS0/gcSZPQIp9rM/S220/schmiedhofer.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zs4s_2i1_O8/SawFI_VIpPI/AAAAAAAACV4/kV0Grd9JPOk/s72-c/lasercut03.jpg' height='72' width='72'/><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4886776295657058459.post-4796575604529993631</id><published>2009-03-01T08:00:00.010+01:00</published><updated>2010-09-30T17:39:40.462+02:00</updated><title type='text'>Ruled Surfaces #1: D-Form Explorer (Grasshopper)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zs4s_2i1_O8/Sawwej0_UUI/AAAAAAAACWQ/4IONQwfqmqk/s1600-h/dforms02.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 372px;" src="http://4.bp.blogspot.com/_zs4s_2i1_O8/Sawwej0_UUI/AAAAAAAACWQ/4IONQwfqmqk/s400/dforms02.jpg" alt="" id="BLOGGER_PHOTO_ID_5308671362334675266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here are some examples i am currently preparing for a set of lectures on Architectural Geometry to be held at TU Vienna starting in about two weeks. Since the main focus will lie on ruled surfaces, which are especially interesting for architectural applications when it comes to actually building a freeform design, these definitions will generate models based on these special surfaces.&lt;br /&gt;&lt;br /&gt;First, we have a rather simple, but nevertheless very nice application. 'D-Forms' consist of two non-elastic surfaces-patches (e.g. paper) sharing the same perimeter. You can produce such objects by cutting out these patches from e.g. paper, starting to glue them together at arbitrarily chosen points along the two perimeters. The rest will follow automatically such that the shape will be closed. (Note that for the first image i just couldn't resist to apply some filleting onto the edges ;)&lt;br /&gt;&lt;br /&gt;In grasshopper, i select two closed bspline-curves, which serve as bases for two extrusions. These are then centered around the coordinate origin, after which they are assigned a boolean difference. To alter the result, you can change the height of one of the extrusions, as well as its rotation angle. Of course, it is also possible to alter the input curves.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zs4s_2i1_O8/SawwfbOe_uI/AAAAAAAACWg/M6zba0dSm04/s1600-h/dform05.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 176px;" src="http://2.bp.blogspot.com/_zs4s_2i1_O8/SawwfbOe_uI/AAAAAAAACWg/M6zba0dSm04/s400/dform05.jpg" alt="" id="BLOGGER_PHOTO_ID_5308671377205559010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In order to easily arrange nice results without leaving the context of grasshopper, i added two sliders allowing the user to shift their design to a free parking slot before baking it.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zs4s_2i1_O8/Sawwf30pTdI/AAAAAAAACWo/X56yHn27aZs/s1600-h/dform06.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 195px;" src="http://3.bp.blogspot.com/_zs4s_2i1_O8/Sawwf30pTdI/AAAAAAAACWo/X56yHn27aZs/s400/dform06.jpg" alt="" id="BLOGGER_PHOTO_ID_5308671384881810898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Using the 'unroll surface' command in rhino, the surfaces can be projected onto the base plane without distortion (since they are developable), after which you can cut them out and glue them together. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Have a look at &lt;a href="http://www.wills-watson.co.uk/"&gt;Tony Wills' webpage&lt;/a&gt;, who is the source of the D-Forms concept. Thanks to Georg Suter for some valuable feedback on this one !&lt;br /&gt;&lt;br /&gt;&lt;a href="http://rapidshare.com/files/204525827/dform_explorer.zip"&gt;http://rapidshare.com/files/204525827/dform_explorer.zip&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4886776295657058459-4796575604529993631?l=freeformfever.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freeformfever.blogspot.com/feeds/4796575604529993631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://freeformfever.blogspot.com/2009/03/blog-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4886776295657058459/posts/default/4796575604529993631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4886776295657058459/posts/default/4796575604529993631'/><link rel='alternate' type='text/html' href='http://freeformfever.blogspot.com/2009/03/blog-post.html' title='Ruled Surfaces #1: D-Form Explorer (Grasshopper)'/><author><name>Heinz Schmiedhofer</name><uri>http://www.blogger.com/profile/07773767526898731830</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_zs4s_2i1_O8/SaqfnzTraYI/AAAAAAAACS0/gcSZPQIp9rM/S220/schmiedhofer.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zs4s_2i1_O8/Sawwej0_UUI/AAAAAAAACWQ/4IONQwfqmqk/s72-c/dforms02.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
