\nCodon

Free-form & flat quads with Rhino.Python

Posted in examples, tutorials by pierre forissier on October 5, 2011

Fossile-like structures made of flat quad panels. Panels can be assembled along their folded sides. The script works with free from surfaces (trimmed or not_see conditional minimum distance between any point evaluated within surface domain and the base surface_as per Python Primer example)

CODE:
import rhinoscriptsyntax as rs
import random #import  random module

def SurfaceQuad():
    idSurface=rs.GetObject("Select Surface",8,True,False)
    if not idSurface:return
    intCountU = rs.GetInteger("Number of panels in U direction",20,10)
    if not intCountU:return
    intCountV = rs.GetInteger("Number of panels in V direction",7,5)
    if not intCountV:return
    uDomain=rs.SurfaceDomain(idSurface,0)
    vDomain=rs.SurfaceDomain(idSurface,1)
    uStep=uDomain[1] - uDomain[0]
    uStep=uStep / intCountU
    vStep=vDomain[1] - vDomain[0]
    vStep=vStep / intCountV

    #Tolerance in between panels
    dblTolU = uStep/100
    dblTolV = dblTolU*intCountU/intCountV

    rs.EnableRedraw(False)

    for v in rs.frange(vDomain[0],vDomain[1]-vStep-vDomain[0],vStep):
        for u in rs.frange (uDomain[0],uDomain[1]-uStep-uDomain[0],uStep):
            #Evaluate panel coordinates on idSurface

(more…)

Tagged with: , ,

Shingles flow

Posted in examples, tutorials by pierre forissier on March 28, 2011

Script developed to populate free-form surfaces with overlapping irregular panels otherwise known as ‘shingles’. Sculpture project for North Scotland by biomorphis.

Call Main()
Sub Main()
Dim strSurface : strSurface = Rhino.GetObject(“Select original surface”,8)
Dim arrDomU, arrDomV
arrDomU = Rhino.SurfaceDomain(strSurface, 0)
arrDomV = Rhino.SurfaceDomain(strSurface, 1)
Dim strDivU : strDivU = Rhino.GetReal(“Please enter number of divisions in u direction”,200)
Dim strDivV : strDivV = Rhino.GetReal(“Please enter number of divisions in V direction”,20)
Dim n,t,p
Dim dblParameterU,dblParameterUGap
Dim dblParameterV
Dim dblParameterVLap
Dim arrPtU(),arrPtUOffset(),arrPtOverlap(),arrPtUGap()
Dim arrPtUV(),arrPtUVOffset(),arrPtUVOverlap(),arrPtUVGap()
Dim arrCtrPt()
Dim strLoft1,strLoft2
Dim arrObjects
Dim arrVecNorm
Dim arrKnot, arrKnotOffset,arrVectilt,arrKnotOverLap,arrKnotGap,arrKnotOffsetGap
Dim strSrfShingle,strShingleExtrudePath
Dim dblOverLap: dblOverLap = 0.2
Call Rhino.EnableRedraw(False)
For n=0 To strDivV
Dim dblVPercent: dblVPercent = ((arrDomV(1)-arrDomV(0))/strDivV)*0.3*rnd
dblParameterV=arrDomV(0)+((arrDomV(1)-arrDomV(0))/strDivV)*n + dblVPercent
dblParameterVLap=dblParameterV+((arrDomV(1)-arrDomV(0))/strDivV)*dblOverLap
For t=0 To strDivU
Dim dblUPercent : dblUPercent = (arrDomU(1)-arrDomU(0))/strDivU*0.3*rnd
dblParameterU=arrDomU(0)+((arrDomU(1)-arrDomU(0))/strDivU)*t + dblUPercent
dblParameterUGap=dblParameterU-((arrDomU(1)-arrDomU(0))/strDivU)*0.04′>>>>> gap dimension
arrKnot = Rhino.EvaluateSurface(strSurface,Array(dblParameterU,dblParameterV))
arrKnotOverLap = Rhino.EvaluateSurface(strSurface,Array(dblParameterUGap,dblParameterVLap))
arrKnotGap = Rhino.EvaluateSurface(strSurface,Array(dblParameterUGap,dblParameterV))
arrVecNorm = Rhino.SurfaceNormal(strSurface,Array(dblParameterUGap,dblParameterV))
If isarray(arrVecNorm)Then
Dim dblSlateTilt : dblSlateTilt = (10+5*rnd)
arrVectilt = Rhino.VectorScale(arrVecNorm,dblSlateTilt)
arrKnotOffset= Rhino.PointAdd(arrKnot,arrVectilt)
arrKnotOffsetGap= Rhino.PointAdd(arrKnotGap,arrVectilt)
End If
(more…)
Tagged with: , , ,

T-Splines towers

Posted in examples by pierre forissier on December 11, 2009

Exploring T-Splines options and manual operations.

Tagged with: , , ,

T-Splines frame

Posted in examples by pierre forissier on December 10, 2009

Pavilion modelled with T-Splines trial version for rhino. It’s a really nice plug-in….

Tagged with: , , ,

Hugo Häring – Lamella Roof

Posted in examples by peterguthrie on November 3, 2008

A 3d diversion (away from proper work) inspired by fascinating photos on flickr by seier+seier+seier of an agricultural building by German architect Hugo Häring from the 1920s.

Modeled in rhino3d using panelingtools. The timber structural components ended up being curved which isn’t correct, and strictly speaking I could have modeled it using other methods. The trickiest part was probably working out the shape of the component. All dimensions are guessed… Rendered in 3dstudio with vray as always.

hugo häring (2)

hugo häring (4)

hugo häring (3)

hugo häring (1)

hugo häring model

hugo häring component

An example of a structure which would be much more difficult to model without panelingtools:

Image and video hosting by TinyPic

tubes pavilion

Posted in examples by peterguthrie on October 16, 2008

pt tubes01

This is a little PanelingTools/rhino/3dstudio/HDR experiment. The panelingtools part was quick and very straightforward, then I dropped it into a home made HDR dome environment in 3d studio and applied a translucent material to the tubes.

I’ve no idea what its meant to be, just a result of getting carried away with panelingtools!

pt tubes02

pt tubes03

Follow

Get every new post delivered to your Inbox.

Join 25 other followers