import rhinoscriptsyntax as rs import random as ran rs.DeleteObjects(rs.AllObjects()) rs.EnableRedraw(False) #Box kreieren 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) ########ALTE BEFEHLE######### """ #mit Linie crv = rs.AddLine([0,0,0],[100,0,50]) rs.RebuildCurve(crv,1,10) pts = rs.CurvePoints(crv) print pts for p in pts: #rs.AddCircle(p, 10) make_box(p) """ """ #mit Polylinie 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]],3) rs.RebuildCurve(crv,3,10) pts = rs.CurvePoints(crv) print pts for p in pts: #rs.AddCircle(p, 10) make_box(p) """ ########NEUER BEFEHL######### p_num = 20 #crv = rs.AddPolyine([[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]], 3) rs.RebuildCurve(crv, 1, p_num) c_len = rs.CurveLength(crv) seg_len = c_len / p_num print c_len pts = rs.DivideCurveEquidistant(crv, seg_len, create_points=True, return_points=True) 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)[0] box = make_box(p, xsize=seg_len, ysize=4*seg_len, zsize=seg_len/4) rs.RotateObject(box,p,t_angle,[0,0,1])