#################################### ### DM2_w24 # AGruber@tugraz.at ### ### chiaraH ### ### stockholm ### #################################### ############################## import rhinoscriptsyntax as rs import random, time, sys, os sys.path.append("D:\dm2") ### import DM_lib as dm ### reload( dm ) ############################## rs.UnitSystem(4) # km = 5, meters = 4, cm = 3 etc rs.ShowGrid(None, 0) # grid > 0 = off rs.ShowGridAxes(None, 0) # y/y/z axen display > 0/1 = off/on #rs.ViewDisplayMode(rs.CurrentView(), "wireframe") rs.Command("cplane w t enter", 0) # cPlane World Top dm.PointRadius(displayModeX=0, rad=3, styl=3) dm.printDisplay(0) # nomen est omen rs.EnableRedraw(0) #dm.eAA() if 1: ##################################### sys.path.append("P:/FINALE/chiaraH/") ### hier musstu *deinen* pfad angeben import housesStockholm houses = housesStockholm.houses print "houses names =", houses import houseCoords allCoords = houseCoords.allCoords print "allCoords =", allCoords ##################################### if 0: ### wenn OSM_file nicht vorhanden: houses = [ rs.ObjectsByName(nam)[0] for nam in houses ] ### aus names_liste >> IDs_liste ! #rs.SelectObjects( houseIDs ) rs.HideObjects( rs.AllObjects() ) rs.ShowObjects( houses ) houseX = houses[1] rs.SelectObject( houseX ) #coords = dm.getSurfacePoints( houseX ) #dm.textDots( coords ) #dm.textDots( dm.getSurfacePoints( houses[0] ) ) #dm.textDots( dm.getSurfacePoints( houses[2] ) ) if 1: dm.newEmptyLayer("PROJ::tst", [0,0,100]) for coords in allCoords: rs.AddCurve( coords, 2 ) rs.AddCurve( coords, 1 ) #coords = allCoords[0] #dm.textDots( coords[0:] ) #pult = rs.AddCurve( [ coords[7], coords[0], coords[2], coords[1] ], 1) #rs.AddLine( coords[1], dm.pntInbetween(coords[1], coords[4]) ) #rs.ObjectColor( rs.AllObjects()[0:2], [11,222,11] ) #rs.ObjectPrintWidth( rs.AllObjects()[0:2], 1.1 ) # #coords = allCoords[2] #dm.textDots( coords[0:] ) #pult = rs.AddCurve( [ coords[0], coords[5], coords[1], coords[4] ], 1) #rs.AddLine( coords[1], dm.pntInbetween(coords[1], coords[2]) ) #rs.ObjectColor( rs.AllObjects()[0:2], [11,222,11] ) #rs.ObjectPrintWidth( rs.AllObjects()[0:2], 1.1 ) # #coords = allCoords[5] #dm.textDots( coords[0:] ) #pult = rs.AddCurve( [ coords[5], coords[6], coords[4], coords[3] ], 1) #rs.AddLine( coords[4], dm.pntInbetween(coords[4], coords[1]) ) #rs.ObjectColor( rs.AllObjects()[0:2], [11,222,11] ) #rs.ObjectPrintWidth( rs.AllObjects()[0:2], 1.1 ) # #coords = allCoords[7] #dm.textDots( coords[0:] ) #pult = rs.AddCurve( [ coords[5], coords[6], coords[4], coords[3] ], 1) #rs.AddLine( coords[4], dm.pntInbetween(coords[4], coords[1]) ) #rs.ObjectColor( rs.AllObjects()[0:2], [11,222,11] ) #rs.ObjectPrintWidth( rs.AllObjects()[0:2], 1.1 ) #pCoords = allCoords[6] ##dm.textDots(coords[0:] ) #teilen = 100 #crv1 = rs.AddCurve([pCoords[0],pCoords[5],pCoords[1],pCoords[4]],1) #ptsCrv1 = rs.DivideCurve(crv1,teilen) #rs.DeleteObject(crv1) #crv2 = rs.AddCurve([pCoords[7],pCoords[6],pCoords[2],pCoords[3]],1) #ptsCrv2 = rs.DivideCurve(crv2,teilen) #rs.DeleteObject(crv2) # #for i in range (len(ptsCrv1)): # rs.AddCurve([ptsCrv1[i],ptsCrv2[i]]) # #rs.ObjectColor( rs.AllObjects()[0:2], [11,222,11] ) #rs.ObjectPrintWidth( rs.AllObjects()[0:2], 1.1 ) ########### #pCoords = allCoords[3] ##dm.textDots(coords[0:] ) # #dicke = random.uniform(0.2,1.2) #teilen = 100 #runter = random.uniform(0,-6) # #vecRein1 = rs.VectorCreate(pCoords[4],pCoords[1]) #rein = random.uniform(0.1,0.3) #HochNeu1 = rs.VectorAdd(pCoords[1],[0,0,runter]) #HochNeu1 = rs.VectorAdd(HochNeu1,rs.VectorScale(vecRein1,rein)) #crv1 = rs.AddCurve([pCoords[0],pCoords[5],HochNeu1,pCoords[4]],1) #ptsCrv1 = rs.DivideCurve(crv1,teilen) #rs.DeleteObject(crv1) # #pCrvDep1 = [] #for i in range(len(ptsCrv1)): # pCor = rs.VectorAdd(ptsCrv1[i],[0,0,dicke]) # pCrvDep1.append(pCor) ############################################ #import random #import rhinoscriptsyntax as rs # #def create_curved_microphone(base_point, height, radius, curve_amount): # """Creates a curved microphone with a base point, height, radius, and curvature.""" # # Define control points for a smooth curve # mid_point = rs.PointAdd(base_point, [curve_amount, 0, height * 0.5]) # top_point = rs.PointAdd(base_point, [curve_amount * 1.5, 0, height]) # # # Create a smooth curve (interp curve) # curve = rs.AddInterpCurve([base_point, mid_point, top_point], degree=3) # # # Create a pipe for the microphone stem (curved) # handle = rs.AddPipe(curve, [0, 1], [radius, radius * 0.8]) # # # Microphone head (sphere) # mic_head = rs.AddSphere(top_point, radius * 1.5) # # # Clean up the temporary curve # rs.DeleteObject(curve) # # return handle, mic_head # #def Pult1(pCoords): # dicke = random.uniform(0.2, 1.2) # teilen = 100 # runter = random.uniform(0, -6) # # vecRein1 = rs.VectorCreate(pCoords[4], pCoords[1]) # rein = random.uniform(0.1, 0.3) # HochNeu1 = rs.VectorAdd(pCoords[1], [0, 0, runter]) # HochNeu1 = rs.VectorAdd(HochNeu1, rs.VectorScale(vecRein1, rein)) # crv1 = rs.AddCurve([pCoords[0], pCoords[5], HochNeu1, pCoords[4]], 1) # ptsCrv1 = rs.DivideCurve(crv1, teilen) # rs.DeleteObject(crv1) # # pCrvDep1 = [] # for i in range(len(ptsCrv1)): # pCor = rs.VectorAdd(ptsCrv1[i], [0, 0, dicke]) # pCrvDep1.append(pCor) # # vecRein2 = rs.VectorCreate(pCoords[3], pCoords[2]) # HochNeu2 = rs.VectorAdd(pCoords[2], [0, 0, runter]) # HochNeu2 = rs.VectorAdd(HochNeu2, rs.VectorScale(vecRein2, rein)) # crv2 = rs.AddCurve([pCoords[7], pCoords[6], HochNeu2, pCoords[3]], 1) # ptsCrv2 = rs.DivideCurve(crv2, teilen) # rs.DeleteObject(crv2) # # pCrvDep2 = [] # for i in range(len(ptsCrv2)): # pCor = rs.VectorAdd(ptsCrv2[i], [0, 0, dicke]) # pCrvDep2.append(pCor) # # for i in range(len(ptsCrv1)): # rs.AddCurve([ptsCrv1[i], ptsCrv2[i], pCrvDep2[i], pCrvDep1[i], ptsCrv1[i]], 1) # # # Add two unique microphones # mic_positions = [ # rs.PointAdd(pCoords[0], [random.uniform(-4, 0), random.uniform(-2, 2), random.uniform(14, 18)]), # rs.PointAdd(pCoords[0], [random.uniform(-4, 0), random.uniform(-2, 2), random.uniform(14, 18)]) # ] # # for pos in mic_positions: # height = 8 # radius = random.uniform(0.1, 0.2) # curve_amount = random.uniform(1, 2) # Add random curvature # create_curved_microphone(pos, height, radius, curve_amount) ################################################################### def Pult1(pCoords): #pCoords = allCoords[4] dm.textDots(coords[0:] ) dicke = random.uniform(0.2,1.2) teilen = 100 runter = random.uniform(0,-6) vecRein1 = rs.VectorCreate(pCoords[4],pCoords[1]) rein = random.uniform(0.1,0.3) HochNeu1 = rs.VectorAdd(pCoords[1],[0,0,runter]) HochNeu1 = rs.VectorAdd(HochNeu1,rs.VectorScale(vecRein1,rein)) crv1 = rs.AddCurve([pCoords[0],pCoords[5],HochNeu1,pCoords[4]],1) ptsCrv1 = rs.DivideCurve(crv1,teilen) rs.DeleteObject(crv1) pCrvDep1 = [] for i in range(len(ptsCrv1)): pCor = rs.VectorAdd(ptsCrv1[i],[0,0,dicke]) pCrvDep1.append(pCor) vecRein2 = rs.VectorCreate(pCoords[3],pCoords[2]) HochNeu2 = rs.VectorAdd(pCoords[2],[0,0,runter]) HochNeu2 = rs.VectorAdd(HochNeu2,rs.VectorScale(vecRein2,rein)) crv2 = rs.AddCurve([pCoords[7],pCoords[6],HochNeu2,pCoords[3]],1) ptsCrv2 = rs.DivideCurve(crv2,teilen) rs.DeleteObject(crv2) pCrvDep2 = [] for i in range(len(ptsCrv2)): pCor = rs.VectorAdd(ptsCrv2[i],[0,0,dicke]) pCrvDep2.append(pCor) for i in range (len(ptsCrv1)): rs.AddCurve([ptsCrv1[i], ptsCrv2[i], pCrvDep2[i], pCrvDep1[i],ptsCrv1[i]],1) #rs.ObjectColor( rs.AllObjects()[0:2], [11,222,11] ) #rs.ObjectPrintWidth( rs.AllObjects()[0:2], 1.1 ) def Pult2(pCoords): #pCoords = allCoords[4] dm.textDots(coords[0:] ) dicke = random.uniform(0.2,1.2) teilen = 100 runter = random.uniform(0,-6) vecRein1 = rs.VectorCreate(pCoords[4],pCoords[1]) rein = random.uniform(0.1,0.3) HochNeu1 = rs.VectorAdd(pCoords[1],[0,0,runter]) HochNeu1 = rs.VectorAdd(HochNeu1,rs.VectorScale(vecRein1,rein)) crv1 = rs.AddCurve([pCoords[0],pCoords[5],HochNeu1,pCoords[4]],2) ptsCrv1 = rs.DivideCurve(crv1,teilen) rs.DeleteObject(crv1) pCrvDep1 = [] for i in range(len(ptsCrv1)): pCor = rs.VectorAdd(ptsCrv1[i],[0,0,dicke]) pCrvDep1.append(pCor) vecRein2 = rs.VectorCreate(pCoords[3],pCoords[2]) HochNeu2 = rs.VectorAdd(pCoords[2],[0,0,runter]) HochNeu2 = rs.VectorAdd(HochNeu2,rs.VectorScale(vecRein2,rein)) crv2 = rs.AddCurve([pCoords[7],pCoords[6],HochNeu2,pCoords[3]],2) ptsCrv2 = rs.DivideCurve(crv2,teilen) rs.DeleteObject(crv2) pCrvDep2 = [] for i in range(len(ptsCrv2)): pCor = rs.VectorAdd(ptsCrv2[i],[0,0,dicke]) pCrvDep2.append(pCor) for i in range (len(ptsCrv1)): rs.AddCurve([ptsCrv1[i], ptsCrv2[i], pCrvDep2[i], pCrvDep1[i],ptsCrv1[i]],1) #rs.ObjectColor( rs.AllObjects()[0:2], [11,222,11] ) #rs.ObjectPrintWidth( rs.AllObjects()[0:2], 1.1 ) for i in range(len(allCoords)): if random.uniform(0,100) < 50: Pult1(allCoords[i]) else: Pult2(allCoords[i]) #for i in range(len(allCoords)): # prozent = random.uniform(0,100) # if prozent < 33: # Pult1(allCoords[i]) # elseif prozent < 66 : # Pult2(allCoords[i]) # else: # Pult3(allCoords[i]) rs.ZoomExtents() ################## END dm.printDisplay(1) rs.CurrentLayer( "Default" )