import rhinoscriptsyntax as rs import random as ran #anfang allobjs = rs.AllObjects() rs.DeleteObjects(allobjs) def make_box(insertion=[0,0,0],xsize=10,ysize=10,zsize=10): corners = [[0,0,0], [xsize,0,0], [xsize,ysize,0], [0,ysize,0], [0,0,zsize], [xsize,0,zsize], [xsize,ysize,zsize], [0,ysize,zsize]] box= rs.AddBox(corners) rs.MoveObject(box, (-xsize/2,-ysize/2, 0) ) rs.MoveObject(box, insertion) return(box) p_num=20 #crv=rs.AddLine([0,0,0], [100,0,50]) #crv= rs.AddPolyline ([[0,0,0], [50,0,50], [70,40,20],[100,0,0]]) crv= rs.AddCurve ([[0,0,0], [50,0,50], [70,40,20],[100,0,0]]) #rs.RebuildCurve(crv,3,10) c_len=rs.CurveLength(crv) seg_len = c_len/ p_num print seg_len pts=rs.DivideCurveEquidistant(crv,seg_len,create_points=True, return_points=True) #pts= rs.CurvePoints(crv) for p in pts: rs.AddCircle(p,seg_len) param=rs.CurveClosestPoint(crv,p) normal= rs.CurveTangent(crv, param) t_angle=rs.Angle([0,0,0], normal) box=make_box(p, xsize=seg_len, ysize=4*seg_len,zsize=seg_len/4) rs.RotateObject(box,p, t_angle[0],[0,0,1])