#DM2 Hausuebung 03 #Melissa Schnell #Gruppe Gruber 01 import rhinoscriptsyntax as rs import random, time, sys ### sys.path.append("P:/WWW\kleeblaettchen04") ### add path where "DM_lib.py" can be found !!! import DM_lib as dm ### reload(dm) ############################## rs.EnableRedraw(0) dm.eA() # Sph_1 if 1: #damit es ein und ausgeschalten werden kann(0=ausschalten) vec1 = [10,20,40] vec1 = [0,0,40] print "radius_1 =", rs.VectorLength( vec1 ) coords1 = [vec1] anz1 = 2500 rad1 = 20 cen1 = [random.randint(0,10),random.randint(0,20), 40] cen1_Z = 40 #cen1 = [0,0,0] ang1 = 360/60 for i in range (anz1): angle1 = ang1*i vector1 = rs.VectorRotate(vec1,angle1,[random.uniform(-50,50),random.uniform(-50,50),random.uniform(-50,50)]) vector1 = rs.VectorScale(vector1, 10) vector1 = rs.VectorAdd(vector1, cen1) coords1.append( vector1 ) #print vector1 points = rs.AddPoints(coords1) rs.ObjectColor(points, [0,200,220]) # Sph_2 if 1: vec2 = [0,0,40] rad_2 = rs.VectorLength( vec2 ) print "radius_2 =", rad_2 coords2 = [vec2] #rs.AddPoint(vec2) anz2 = 2500 rad2 = 20 cen2 = [random.randint(0,5),random.randint(0,10), 1500] cen2_Z = 1500 ang2 = 360/60 for i in range (anz2): angle2 = ang2*i vector2 = rs.VectorRotate(vec2,angle2,[random.uniform(-50,50),random.uniform(-50,50),random.uniform(-50,50)]) vector2 = rs.VectorScale(vector2, 10) vector2 = rs.VectorAdd(vector2, cen2) #points2=rs.AddPoint(vector2) coords2.append( vector2 ) points2=rs.AddPoints(coords2) rs.ObjectColor(points2, [0,200,0]) #Cube Mitte anzahl = 10 seitenLength = 400 step = seitenLength/(anzahl-1) if 1: cubeCoords = [] coords_U = [] coords_O = [] for i in range(anzahl+0): #Dreifachschleife for j in range(anzahl+0): for k in range(anzahl+0): pnt = [i*step, j*step, k*step] pnt = rs.VectorAdd( pnt, [-seitenLength*0.5,-seitenLength*0.5, -seitenLength*0.5 + (cen1_Z+cen2_Z)*0.5] ) #cubeCoords.append( pnt ) if k==0: coords_U.append(pnt ) if k==anzahl-1: coords_O.append(pnt ) if k>0 and k < (anzahl-1): cubeCoords.append( pnt ) points = rs.AddPoints(cubeCoords) rs.ObjectColor(points, [0, 0, 255]) rs.ObjectColor( rs.AddPoints(coords_O), [0,200,0]) rs.ObjectColor( rs.AddPoints(coords_U), [0,200,220]) #Linien Mitte unten ptMU = random.choice(coords_U) rad1 = rs.Distance(cen1, coords1[1]) print "rad1", rad1 for cor in coords_U: #rs.AddLine( cor, cen1 ) vec = rs.VectorSubtract( cor, cen1 ) vec = rs.VectorUnitize( vec ) vec = rs.VectorScale( vec, rad1) pX = rs.VectorAdd( cen1, vec ) line_mu = rs.AddLine( cor, pX ) rs.AddPoint( pX ) rs.ObjectColor(line_mu, [0,200,220]) #Linien Mitte oben ptMO = random.choice(coords_O) rad2 = rs.Distance(cen2, coords2[1]) print "rad2", rad2 for cor in coords_O: #rs.AddLine( cor, cen2 ) vec = rs.VectorSubtract( cor, cen2 ) vec = rs.VectorUnitize( vec ) vec = rs.VectorScale( vec, rad2) pX = rs.VectorAdd( cen2, vec ) line_mo = rs.AddLine( cor, pX ) rs.AddPoint( pX ) rs.ObjectColor(line_mo, [0,200,0]) #Cube Unten anzahl = 10 seitenLength = 400 step = seitenLength/(anzahl-1) if 1: cubeCoords = [] coords_O = [] for i in range(anzahl+0): #Dreifachschleife for j in range(anzahl+0): for k in range(anzahl+0): pnt = [i*step, j*step, k*step] pnt = rs.VectorAdd( pnt, [-seitenLength*0.5,-seitenLength*0.5, -seitenLength*0.5 - (cen1_Z+cen2_Z)*0.5] ) #cubeCoords.append( pnt ) if k==anzahl-1: coords_O.append(pnt ) if k < (anzahl-1): cubeCoords.append( pnt ) points = rs.AddPoints(cubeCoords) rs.ObjectColor(points, [0, 0, 255]) rs.ObjectColor( rs.AddPoints(coords_O), [0,200,220]) #Cube Oben anzahl = 10 seitenLength = 400 step = seitenLength/(anzahl-1) if 1: cubeCoords = [] coords_U = [] for i in range(anzahl+0): #Dreifachschleife for j in range(anzahl+0): for k in range(anzahl+0): pnt = [i*step, j*step, k*step] pnt = rs.VectorAdd( pnt, [-seitenLength*0.5,-seitenLength*0.5, -seitenLength*0.5 + (cen1_Z+cen2_Z)*1.5] ) #cubeCoords.append( pnt ) if k==0: coords_U.append(pnt ) if k > 0 : cubeCoords.append( pnt ) points = rs.AddPoints(cubeCoords) rs.ObjectColor(points, [0, 0, 255]) rs.ObjectColor( rs.AddPoints(coords_U), [0,200,0]) #Linien ganz oben ptU = random.choice(coords_U) rad1 = rs.Distance(cen2, coords2[1]) for cor in coords_U: #rs.AddLine( cor, cen2 ) vec = rs.VectorSubtract( cor, cen2 ) vec = rs.VectorUnitize( vec ) vec = rs.VectorScale( vec, rad2) pX = rs.VectorAdd( cen2, vec ) line_o = rs.AddLine( cor, pX ) rs.AddPoint( pX ) rs.ObjectColor(line_o, [0,200,0]) #Linien ganz unten ptO = random.choice(coords_O) rad1 = rs.Distance(cen1, coords1[1]) for cor in coords_O: #rs.AddLine( cor, cen1 ) vec = rs.VectorSubtract( cor, cen1 ) vec = rs.VectorUnitize( vec ) vec = rs.VectorScale( vec, rad1) pX = rs.VectorAdd( cen1, vec ) line_u = rs.AddLine( cor, pX ) rs.AddPoint( pX ) rs.ObjectColor(line_u, [0,200,220]) print "FINI"