本帖最后由 Jorin 于 2014-4-10 11:06 编辑
请参考http://bbs.rhino3d.asia/thread-23244-1-1.html
这里再提供一个纯python的方式
[mw_shl_code=python,true]#coding=utf-8
import rhinoscriptsyntax as rs
lines=rs.GetObjects("选择曲线",rs.filter.curve)
level=rs.GetReal("迭代次数(1-6)",5,1,6)
rs.EnableRedraw(False)
def CreatLine(points):
n=len(points)
ll=[]
for i in range(n-1):
lid=rs.AddLine(points,points[i+1])
ll.append(lid)
return ll
def Excute(line):
points=rs.DivideCurve(line,3)
pt2=rs.AddPoint(points[2])
mid=rs.RotateObject(pt2,points[1],-60,copy=True)
points.insert(2,mid)
ll=CreatLine(points)
rs.DeleteObjects([pt2,mid,line])
return ll
def run(lines,level):
for line in lines:
ll=Excute(line)
if level>1:
run(ll,level-1)
run(lines,level)[/mw_shl_code] |