import rhinoscriptsyntax as rs import random, time, sys ### sys.path.append("P:\WWW\ultimum\DM2") ### import DM_lib as dm ### reload( dm ) rs.EnableRedraw(0) dm.printDisplay(1) rs.ViewDisplayMode(rs.CurrentView(), "wireframe") reload(dm) dm.newEmptyLayer("notes",[120,10,105]) def notes(type): #Verformungsgrad ver = 0.2 #VecSetUp xVec = [1,0,0] zVec = [0,0,1] yVec = [0,1,0] pZ = [0,0,0] #Notenknopf pO = [] for i in range (4): if i==0 or i==2: abs = zVec else: abs = rs.VectorScale(zVec,2) p2 = rs.VectorAdd(pZ,rs.VectorRotate(rs.VectorScale(abs,2),90*i,yVec)) pO.append(p2) pO.append(pO[0]) crvB = rs.AddInterpCurve(pO,3,start_tangent = xVec,end_tangent = xVec) pH1 = rs.VectorAdd(pO[1],rs.VectorScale(zVec,20)) crvpnts = rs.DivideCurve(crvB,16,0) rs.DeleteObject(crvB) pH2 = rs.VectorAdd(crvpnts[3],rs.VectorScale(zVec,20-crvpnts[3][2])) pntsBod = [] for i in range(len(crvpnts)): crvpnts2 = rs.VectorScale(rs.VectorAdd(pZ,crvpnts[i]),random.uniform(1,(ver/2)+1)) pntsBod.append(crvpnts2) pntsBod.append(pntsBod[0]) rs.AddInterpCurve(pntsBod,3,start_tangent = xVec,end_tangent = xVec) #Hals if type ==2: pntHals = [pO[1],pH1] crvHals = rs.AddCurve(pntHals,1) crvHals2 = rs.DivideCurve(crvHals,10,0) pntsHals = [] pntsHals.append(pntsBod[3]) pntsHals2 = [] pntsHals2.append(pntsBod[4]) pntsHalsZ = [] for i in range(1,10): crvHals3 = rs.VectorAdd(crvHals2[i],rs.VectorScale(xVec,random.uniform(-ver,ver))) pntsHalsZ.append(crvHals3) pntsHals.append(crvHals3) for i in range(9): crvHals4 = rs.VectorAdd(pntsHalsZ[i],xVec) pntsHals2.append(crvHals4) rs.DeleteObject(crvHals) rs.AddLine(pntsHals[-1],pntsHals2[-1]) rs.AddInterpCurve(pntsHals,3) rs.AddInterpCurve(pntsHals2,3) print crvpnts[3][0] notes(1) rs.EnableRedraw(1)