显示标签为“script”的博文。显示所有博文
显示标签为“script”的博文。显示所有博文
2009-02-01

随机立面脚本

做的商业性项目越来越多了,发现“随机”的利用频率越来越多了,干脆利用下午时间编了此脚本。脚本还未完善,元素可以任选,但前提是y轴高度不变(原因1:一般情况下不需要。原因2:自身有点懒)
图片是很简单的随机填充,但是可充分利不同的元素会得到更多的结果。














Leia Mais…
2008-12-22

拍平的脚本

网上看到过很多实例,实在找不到代码就自己写了。把空间上的面拍平到xy平面上,可以根据标注的编号对位。 我想做工作模型应该蛮适用的。



























Leia Mais…
2008-12-16

Grasshopper的初试

Leia Mais…

rhinoscript

非常简单但很实用的脚本.不管做异型还是规整的几何体,都能用的上。

脚本如下:

Call Main()

Sub Main()

Const rhObjectCurve = 4

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

Dim zi

n=20

zi=0.4

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

c=UBound(arrObjects)

ReDim a(c),line1(n),line2(n)
For k=0 To c Step 1

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

If k>0 Then

For i =0 To n Step 1

line1(i)=rhino.AddLine (a(k-1)(i),a(k)(i))

If i>0 Then

line2(i)=rhino.AddLine (a(k)(i-1),a(k)(i))

End If

t1=Rhino.CurveLength (line1(i))

po=rhino.CurveMidPoint(line1(i))

Rhino.addtext "NO."&k*n+i+1&"=" & int(t1)*500&"mm" ,po,zi

If i>0 Then

t2=Rhino.CurveLength (line2(i))

po=rhino.CurveMidPoint(line2(i))

Rhino.addtext "NO."&k*n+i+1&"="& int(t2)*500&"mm" ,po,zi

End If

Next

For i=0 To n-1 Step 1

rhino.addloftsrf array(line1(i),line1(i+1))

Next

End If

Next

End Sub

Leia Mais…
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

Leia Mais…
2