Flowing Bits http://flowingbits.com random peices of computational design Wed, 22 May 2013 04:02:31 +0000 en-US hourly 1 https://wordpress.org/?v=4.4.11 Selectable Preview: Visual and Intuitive Grasshopper Selection http://flowingbits.com/tool/selectable-preview-component-for-grasshopper/ http://flowingbits.com/tool/selectable-preview-component-for-grasshopper/#comments Fri, 17 May 2013 11:10:24 +0000 http://flowingbits.com/?p=143 SelectablePreview is a simple component that generates selectable preview geometry, helping users to select grasshopper geometry in Rhino viewport. While in most other parametric software packages, users can select objects directly in the modeling environment as input, in grasshopper, user...

The post Selectable Preview: Visual and Intuitive Grasshopper Selection appeared first on Flowing Bits.

]]>
SelectablePreview is a simple component that generates selectable preview geometry, helping users to select grasshopper geometry in Rhino viewport. While in most other parametric software packages, users can select objects directly in the modeling environment as input, in grasshopper, user can only preview the unselectable geometry. Although this greatly improves the performance of grasshopper, from time to time, users feel the frustration of seeing the geometry but not being able to select it. SelectablePreview is designed for this kind of situation. It not only generates the geometry in rhino, but the outputs of the component also correspond to the selection. Moreover, the selected geometry can be locked within the component for further manipulation.This component hopes to create a more visual and intuitive design experience for grasshopper users.



Component Select

Select the objects in the Rhino Environment

This screenshot demonstrate the use of this component. The component will be under User>Preview Tab after you installed the component. If the SelectablePreview Component is connected to any geometry in grasshopper, it will generate preview geometries that are selectable in the Rhino environment. Users can simply pick what they see on the screen and the component output will correspond to what they have selected. Output P and I ┬áprovide the ┬ápath and index of the selected object for users. Users can also choose to maintain the original tree structure for the output by right click on the component and select “toggle maintain path.”

Component Locked

Lock the selection for Grasshopper

Once the objects are selected, users can double click the button on the component to change the state of the component. When the state changes from “select” to “locked,” the output of the component will be assigned to the previously selected objects and will no longer respond to selection in Rhino. This locked data will be persistent through saving and reading grasshopper file.

Grasshopper assembly download is available at Selectable Preview at food4Rhino.

 

The post Selectable Preview: Visual and Intuitive Grasshopper Selection appeared first on Flowing Bits.

]]>
http://flowingbits.com/tool/selectable-preview-component-for-grasshopper/feed/ 11
A Simple Way to Learn Rhino Common through Rhino Python http://flowingbits.com/note/a-simple-way-to-learn-rhino-common/ http://flowingbits.com/note/a-simple-way-to-learn-rhino-common/#comments Tue, 06 Nov 2012 13:06:29 +0000 http://flowingbits.com/?p=102 I was asked a couple of times about what is the best way to learn Rhino Common, which are the library that Rhino Grasshopper and Rhino Python is based on. Of course there are always the helpful McNeel Rhino Common...

The post A Simple Way to Learn Rhino Common through Rhino Python appeared first on Flowing Bits.

]]>
I was asked a couple of times about what is the best way to learn Rhino Common, which are the library that Rhino Grasshopper and Rhino Python is based on. Of course there are always the helpful McNeel Rhino Common developer page and Grasshopper discussion forum on VB .net and C# available that we can learn from.

However, if you are already familiar with Rhino Python or Rhinoscript, a even simpler method is available. This method will allow users to see what actual Rhino Common functions are used in the Rhino Python functions and learn from it. I will show how this method works.

In Rhino Python editor, there is a somewhat “buggy” debugger available.

rhino python editor

rhino python editor

Break points can be inserted to the editor.(Click on the empty area by the line or go to that line and click the toggle break point button.)

break point in rhino python editor

break point in rhino python editor

When running the script in debug mode, the script will stop at the break point.

step into in rhino python debugger

“step into” function in rhino python debugger

If you use the step into function of the debugger, you can step into the actual Python code. A new tab will automatically pop up if the definition is in some other file. For example, here is the rs.CurveFrame function. You can learn so much about Rhino Common from stepping through the code.

curve frame function

curve frame function

The post A Simple Way to Learn Rhino Common through Rhino Python appeared first on Flowing Bits.

]]>
http://flowingbits.com/note/a-simple-way-to-learn-rhino-common/feed/ 6
Circular, Conical Mesh and Offset Mesh http://flowingbits.com/idea/circular-conical-mesh-and-offset-mesh/ Wed, 31 Oct 2012 11:54:11 +0000 http://flowingbits.com/?p=79 There are two special cases in the planar quadrilateral mesh family, namely, circular mesh and conical mesh. Both meshes have some interesting geometric properties. For more information, see the paper by Liu at el. Below are the geometric facts summarized...

The post Circular, Conical Mesh and Offset Mesh appeared first on Flowing Bits.

]]>
There are two special cases in the planar quadrilateral mesh family, namely, circular mesh and conical mesh. Both meshes have some interesting geometric properties. For more information, see the paper by Liu at el.

Below are the geometric facts summarized from this paper. A circular mesh is a quad mesh that all of the vertices in a face lies on a circle; while a conical mesh is a quad mesh that all edges emanating out of a single vertex lies on a cone. These meshes both have non-trivial offset meshes that guarantees planar support structure: when the corresponding edges between two meshes constructs a face, the face is always planar. A trivial offset mesh is a scaled and translated version of the original mesh, which is the only possible offset mesh that guarantees planar support for a triangulated mesh. Offset meshes are useful in building structure from planar material. See these projects, dragonfly by Tom Wiscombe and honeycomb morphologies by Andrew Kudless for example, although some projects take advantage of the material to cope with the non-planar issue.

Dragonfly by Tom Wiscombe

Offset Mesh: Dragonfly by Tom Wiscombe



Honeycomb Morphologies by Andrew Kudless

Offset Mesh: Honeycomb by Andrew Kudless

In the previously mentioned paper, the author provides two different methods to construct a conical mesh, which one is more of a top-down approach and the other is more bottom-up. The top-down approach takes a mesh that is almost a conical mesh, which can be obtained by conjugate curve network, and apply an optimization process on the mesh to ensure the conical property. A conjugate curve network consists of two sets of curves that are always perpendicular, such as min/max principal curve, contour and gradient curves etc. The bottom up process applies subdivision scheme such as Catmull Clark and Doo Sabin on a rough quad mesh and optimize along the subcivision steps.

Before reading this paper, I always consider mesh and subdivision are more useful tools for animation and visualization than architectural construction. However, I am now convinced that through the research of discrete differential geometry, they can help to improve the constructability. I will test these ideas in the future.

The post Circular, Conical Mesh and Offset Mesh appeared first on Flowing Bits.

]]>
Planar Quadrilateral : Grasshopper Workshop @ Tamkang University http://flowingbits.com/workshop/planar-quadrilateralgrasshopper-workshop-tamkang-university/ Thu, 25 Oct 2012 18:33:57 +0000 http://flowingbits.com/?p=19 This workshop is invited by professor Chen-Cheng Chen from the architecture department of Tamkang University. It focuses on the particular geometry of planar quadrilateral(PQ) mesh. PQ mesh draws interests from architects in recent years because of its constructability. There are...

The post Planar Quadrilateral : Grasshopper Workshop @ Tamkang University appeared first on Flowing Bits.

]]>
scale-translation-surface

scale-translation-surface

This workshop is invited by professor Chen-Cheng Chen from the architecture department of Tamkang University. It focuses on the particular geometry of planar quadrilateral(PQ) mesh. PQ mesh draws interests from architects in recent years because of its constructability. There are many advantages using PQ over triangulation when discretizing a freeform surface. For more information on PQ mesh and descretization, see paper A parametric strategy for free-form glass structures using quadrilateral planar facets by Glymph at el. and Discrete Surfaces for Architectural Design by Pottmann et al.

PQ strip

PQ strip


The paper by Glymph at el. introduces several methods to construct a PQ mesh. One is called “translation surface” and the other “scale-translation surface.” These method generates discrete versions of the freeform surfaces using PQ strips. While in the translation surface method, the strips are discrete versions of conic developable surfaces; in scale-translation surface, the strips are discrete versions of conic developable surfaces. If we increase the division points on the section curve, the strip will eventually become a developable surface. Here is the procedure to build a scale-translation surface in grasshopper.

Planar Quad Unroll

Planar Quad Unroll

PQ grasshopper definition

PQ grasshopper definition

There are two things worth noting in the definition. First, the graph mapper controls the scaling of section curve along the rail. Second, the relative component matches the four vertices of a quad face.

If the model is going to be fabricated with planar material, tabs might need to be added to the faces for construction. See the details in the installation by Skylar Tibbits for reference. Also, the geometry needs to be flattened for cutting. In the definition, Clusters are used to improve the re-usability of components. A Cluster is a collection of components that are packed into a single component. Because of the datatree management issue, clusters will sometimes produce undesired results when connected by multiple inputs. Currently, it is not as robust as comparable features in GenerativeComponents or CATIA. However, using clusters is still a good practice that makes your canvas less chaotic.

Download the definition file here.

cluster

cluster in the definition

The post Planar Quadrilateral : Grasshopper Workshop @ Tamkang University appeared first on Flowing Bits.

]]>