2008-12-12

首次使用rhinoscript进行定位


这是一个中庭玻璃屋顶的设计。平面上是个椭圆形,立面是个拱形。需要用三角形分割,保证最大构件尺寸在2米左右。这样的设计用autocad是很费时间的。首先在rhino中建立三位面片模型。在rhinoscript当中我设置了两个参数:一个是最外围椭圆的等分数量;另一个是等高线。可以利用这两个参数反复计算,直到得出满意的结果。另外可以标出每个杆件的长度或者端点的坐标编号等等均可以得到非常方便的实现。

Call Main()

Sub Main()

Const rhObjectCurve = 4

Dim arrObjects,k,n,i,line,line1,line2,line3,t1,t2,t3,po

n=100

arrObjects = Rhino.GetObjects("Pick curves", rhObjectCurve )

c=UBound(arrObjects)

ReDim a(c)

For k=0 To c Step 1

a(k)= Rhino.DivideCurve(arrObjects(k), n)

If k>0 Then

For i =0 To n Step 2
line1=rhino.AddLine (a(k-1)(i),a(k)(i+1))

line2=rhino.AddLine (a(k-1)(i+2),a(k)(i+1)) line3=rhino.AddLine (a(k)(i+1),a(k)(i+3))

Dim zi

zi=200

t1=Rhino.CurveLength (line1)

po=rhino.CurveMidPoint(line1)

Rhino.addtext "L=" & int(t1) ,po,zi

t2=Rhino.CurveLength (line2)

po=rhino.CurveMidPoint(line2)

Rhino.addtext "L=" & int(t2) ,po,zi

t3=Rhino.CurveLength (line3)

po=rhino.CurveMidPoint(line3)

Rhino.addtext "L=" & int(t3) ,po,zi


Next


End If


Next


End Sub

1 评论:

Unknown 说...

非常好,能把脚本运用到实际项目中去,我刚毕业,也用rhino scripting and grasshopper做了一些项目,个人也正在研究中。认识你很高兴,有空可以来我博客交流:)
popabczhang.blogspot.com
对于这个玻璃顶,我有个问题比较不解,外圆周等分后,内圆周的等分数应该也是相同的吧?那样的话,会不会里面太密,撑杆的最长最短尺寸最后分别是多少?是否在合理的工程范围内。谢谢

2009年2月1日 00:44

发表评论

2