############################## import rhinoscriptsyntax as rs import random, time, sys ### sys.path.append("P:/WWW/lsb24802/dm2/") ### add path where "DM_lib.py" can be found !!! import DM_lib as dm ### reload(dm) ############################## rs.UnitSystem(3) rs.ShowGrid(view=None, show=0) rs.ShowGridAxes(view=None, show=0) rs.ViewDisplayMode(view=None, mode="Wireframe") rs.EnableRedraw(0) dm.PointRadius(displayModeX=0, rad=3, styl=1) rs.DeleteObjects(rs.AllObjects()) #hu_04 #laurenz baumgartner #12227424 print "-----------------------------" print "hu_04" print "-----------------------------" print "laurenz baumgartner" print "-----------------------------" print "12227424" print "-----------------------------" l= random.randint(1,20) #kantenlaenge #punkte basiswuerfel pktA= [0,0,0] pktB= rs.VectorAdd(pktA, [l,0,0]) pktC= rs.VectorAdd(pktB, [0,l,0]) pktD= rs.VectorAdd(pktC, [-l,0,0]) pktE= rs.VectorAdd(pktA, [0,0,l]) pktF= rs.VectorAdd(pktE, [l,0,0]) pktG= rs.VectorAdd(pktF, [0,l,0]) pktH= rs.VectorAdd(pktG, [-l,0,0]) basecrv= rs.AddCurve([pktA, pktB, pktC, pktD, pktA], 1) topcrv= rs.AddCurve([pktE, pktF, pktG, pktH, pktE], 1) #basiswuerfel newcoords = [] for x in range(l+1): for y in range(l+1): for z in range(l+1): #z += 16 cor = [x,y,z] newcoords.append(cor) colourcube=rs.AddPoints(newcoords) rs.AddCurve(newcoords, 2) for pnt in colourcube: colo = [255,255,0] rs.ObjectColor(pnt, colo) cen= dm.pntInbetween(pktA, pktG) cen2= rs.VectorAdd(cen, [0,0,3*l]) coords = rs.DivideCurve(topcrv, l, 0) #draht for i, cor in enumerate(coords): vec= rs.VectorSubtract(cor, cen2) unitVec= rs.VectorUnitize(vec) scaleVec= rs.VectorScale(unitVec, l) circPnt= rs.VectorAdd(cen2,unitVec) if 1==1: rs.AddLine(cor, circPnt) rs.ObjectColor(rs.AddPoint(circPnt),[200,20,20]) #bulb coords = [] for i in range(500): circPnt= rs.VectorRotate(circPnt, random.uniform(-90,90), [random.uniform(-1,1) for i in range(3)]) coords.append( rs.VectorAdd( cen2, circPnt ) ) colourcoords= rs.AddPoints( coords ) rot=[255,127,127] blau=[63,191,191] gruen=[0,127,0] farbe=[rot,blau,gruen] farbauswahl= random.choice(farbe) rs.ObjectColor(colourcoords, farbauswahl) #gewinde Anzahl= 30 deltaAngle=360/Anzahl p1= rs.VectorAdd(cen,[0,0,l/2]) p2= rs.VectorAdd(cen,[0,0,l]) p3= rs.VectorAdd(cen,[0,0,l*1.5]) for i in range(Anzahl): vecX = rs.VectorRotate(vec, deltaAngle*i,[0,0,1]) vecX = rs.VectorAdd(vecX,cen) rs.AddPoint(vecX) for i in range(Anzahl): vecX = rs.VectorRotate(vec, deltaAngle*i,[0,0,1]) vecX = rs.VectorAdd(vecX,p1) rs.AddPoint(vecX) for i in range(Anzahl): vecX = rs.VectorRotate(vec, deltaAngle*i,[0,0,1]) vecX = rs.VectorAdd(vecX,p2) rs.AddPoint(vecX) for i in range(Anzahl): vecX = rs.VectorRotate(vec, deltaAngle*i,[0,0,1]) vecX = rs.VectorAdd(vecX,p3) rs.AddPoint(vecX) rs.ZoomExtents print "fini"