Sunday, October 31, 2010

Iterate through all objects in Grasshopper Document


Namespace: Grasshopper.Kernel

object class : GH_Document
Attributes : public IList Objects { get; }
// this return all the objects(components) in the Grasshopper file.


Friday, October 15, 2010

Display.DisplayPipeline RhinoCommon


from David Rutten: link

Dim cd As New Rhino.Display.CustomDisplay(True)
cd.AddPoint(New Point3d(0,0,0))
cd.AddPoint(New Point3d(1,0,0), Color.DarkRed, PointStyle.Simple, 5)
cd.AddLine(New Line(New Point(0,0,0), New Point(1,0,0)), Color.DarkGreen, 4)
cd.AddVector(New Point3d(5,5,0), New Vector3d(0,0,10), Color.OrangeRed, True)

'from this point onwards the viewports will show the above geometry.

cd.Dispose()
'Once Dispose has been called the preview will be cleared. You can no longer use this instance of CustomDisplay from now on.

Thursday, October 14, 2010

Wednesday, October 13, 2010

UbiMash - PROTOTYPING RESPONSIVE MODELS WITH PHYSICAL COMPUTING AND PARAMETRIC DESIGN

PROTOTYPING RESPONSIVE MODELS WITH PHYSICAL COMPUTING AND PARAMETRIC DESIGN
UbiMash : link


Publisher-Subscriber Architecture of UbiMash: image after UbiMash

Tuesday, October 12, 2010

Polyline Network Surface on Rhino


An example of using Rhinoscript for creating a Netwrok Surface in Rhino:

Original Link: Polyline Network Surface

Option Explicit
‘Script written by Howard Jiho Kim
‘Script version Monday, March 10, 2008 12:46:21 PM

Call Main()
Sub Main()

Dim strObject, strObject2, arrObjects
Dim netCrv(100)
Dim i
Dim arrNew
i=0

arrObjects = Rhino.GetObjects(“Pick some curves”, 4)

If IsArray(arrObjects) Then

For Each strObject In arrObjects

If Rhino.IsPolyline(strObject) Then
netCrv(i) = SubDividePolyline(strObject)
Print netCrv(i)
Rhino.SelectObject netCrv(i)
i=i+1
End If

Next

End If

Rhino.Command(“NetworkSrf”)

End Sub

Function SubDividePolyline(strObject)
Dim arrV
arrV = Rhino.PolylineVertices(strObject)
Dim arrSubD() : ReDim arrSubD(2 * UBound(arrV))
Dim i

For i=0 To UBound(arrV)-1

arrSubD(i*2) = arrV(i)
arrSubD(i*2+1) = Array( (arrV(i)(0) + arrV(i+1)(0))/ 2.0, _
(arrV(i)(1) + arrV(i+1)(1))/ 2.0, _
(arrV(i)(2) + arrV(i+1)(2))/ 2.0)
Next

arrSubD(UBound(arrSubD)) = arrV(UBound(arrV))
SubDividePolyline = Rhino.AddCurve(arrSubD)

End Function

Tuesday, October 5, 2010

Steps to reach a equally divided surface patches

Link: http://gernot.xarch.at/kunsthaus_graz/___03sep30_nurbsflaeche_skin_pers_ohne.html



kunsthaus graz Project: image from wikimedia commons

Freeform Origami | Software

A very interesting application:
This software is a design software that allows users to interact with origami forms while altering the crease pattern of the model. The software can keep:

Developability (foldable from a piece of paper)
Flat-foldability (foldable into a flat shape)
Planarity of facets (paper do not twist in 3D form)
Point coordinate coincidence
Paper size
Available on September 2010


http://www.youtube.com/watch?v=T35So_88mio&feature=player_embedded