New site

Thursday, September 25, 2008

complex surface structures




Back into rhinoscipting here is a project i have developed for making a buildable structure from complex surface , the script takes an input surface and then it divides it in square sections, then it runs a macro wich makes an "x" form component in each squared sections. some improvements are posible you could add more pipe sections around each section, any way to understand it better here is the code feel free to use it and let me know any comments please.
Option Explicit
'Script written by Rodrigo Medina
'Script copyrighted by designplaygrounds
'Script version Tuesday, August 12, 2008 5:45:47 PM

Call Main()
Sub Main()
Const Objecttype=8

secu=15
secv=15

ReDim collec(secu,secv)
'inputs
Dim strsurface,Udomain,Vdomain,Uparam,Vparam,arrpoints,i,j,secu,secv
strsurface=rhino.GetObject("select surface",Objecttype)
If IsNull (strsurface) Then Exit Sub
'surface domains
Udomain=Rhino.SurfaceDomain(strsurface,0)
Vdomain=Rhino.SurfaceDomain(strsurface,1)
'looping
For i= 0 To secu
For j =0 To secv
Uparam=Udomain(0)+ i*((Udomain(1)-Udomain(0))/secu)
Vparam =Vdomain(0) + j*((Vdomain(1)-Vdomain(0))/secv)
arrpoints=rhino.evaluatesurface(strsurface,array(Uparam,Vparam))
'Rhino.AddPoint arrpoints
' function its only for making smooth unions between elements
'Call rhino.addsphere(arrpoints,1)
'charge the 2 diomension array with the size in i and j
collec(i,j)= arrpoints

Next

Next
'names for the points inside the array
Dim npoint1,npoint2,npoint3,npoint4
'position of the poinst inside of the array
For i= 0 To secu -1
For j= 0 To secv -1
npoint1=collec(i,j)
npoint2=collec(i+1,j+1)
npoint3=collec(i+1,j)
npoint4=collec(i,j+1)
Call pipe(npoint1,npoint2)
Call pipe(npoint3,npoint4)

Next
Next

End Sub

Function pipe(npoint1,npoint2)
Dim strline,strcmd,pipeRadius
strline= rhino.addline(npoint1,npoint2)
'radius of the pipe element
pipeRadius=1
strcmd ="! _Pipe _SelID " & strline & " " & pipeRadius & " _Enter _Enter"
Call rhino.command(strcmd)
End Function
Function pipe(npoint3,npoint4)
Dim strline2,strcmd,pipeRadius
strline2= rhino.addline(npoint3,npoint4)
pipeRadius=1
strcmd ="! _Pipe _SelID " & strline2 & " " & pipeRadius & " _Enter _Enter"
Call rhino.command(strcmd)
End Function

urban furniture




This is a quick project i developed for a friend who needed an urban furniture concept the main idaea was to make an organic design so the result is the one you see on the renders it is a group of trash containers to separate oragnic and inorganic waste, it has a central pole, the base its suposed to be reminisent of the branches of a tree and at the upper part of the pole there is an ilumination system of leds wich is powered by a solar cell wich is located at the top of the surface, to make this organic modeling posible i used t splines tools for rhino.

Related Posts with Thumbnails