######################### https://www.openstreetmap.org/export ### AGruber@tugraz.at ### https://osmbuildings.org/ ### OSM demo 2024/12 ### ######################### ############################## import rhinoscriptsyntax as rs import sys, math, random ### sys.path.append("P:/") ### sys.path.append("P:/WWW/deni2000/DM2/UE09") ### sys.path.append("P:/WWW/deni2000") import OSM_lib as osm ### import DM_lib as dm ### reload(dm) ############################## reload (osm) rs.UnitSystem(4) # meters = 4 rs.ShowGrid(None, 0) rs.ShowGridAxes(None, 1) rs.EnableRedraw(0) currentMode = rs.ViewDisplayMode(rs.CurrentView()) dm.PointRadius(displayModeX="all", rad=3, styl=3, verbose=0) #rs.ViewDisplayMode(rs.CurrentView(), "wireframe") rs.Redraw() ############################## ####################### ##OSMpath = "D:/OSM/osmData/" OSMpath = "P:/WWW/deni2000/DM2/UE09/" ####################### OSMfile = "map.osm" ############################## # if 0: #osm.eAA() # erase absolutely all objects, even hidden & locked osm.OSMi(OSMfile, OSMpath, move2Guinea=1) if 1: dm.newEmptyLayer("IMPORTcoords", [120,10,20]) ################### import UE09alexandriaCoords12X as alexCoords reload(alexCoords) allCoords = alexCoords.allCoords ################### print "len allCoords", len(allCoords) print "cor", allCoords[10] for coordList in allCoords[0:]: pass rs.AddPoints(coordList) bigCoordsList = [] for pnt in rs.ObjectsByLayer("IMPORTcoords"): bigCoordsList.append( rs.PointCoordinates( pnt ) ) rs.DeleteObjects(rs.ObjectsByLayer("IMPORTcoords")) print len(bigCoordsList) coords = bigCoordsList[:] print coords[109] coordsSorted = sorted( coords, key=lambda sortKey: (sortKey[2]) ) # rs.AddCurve( coords, 2) lowestZ = coordsSorted[0][2] print lowestZ for i,cor in enumerate(coordsSorted): rs.AddPoint( cor ) if i%1000==0: pass #rs.Redraw() allPoints = rs.ObjectsByLayer("IMPORTcoords") for i,pnt in enumerate(allPoints): cor = rs.PointCoordinates( pnt ) if cor[2] > 0.0: target = [cor[0],cor[1], random.uniform(lowestZ,0.0)] target[0] += random.uniform(-10,10) target[1] += random.uniform(-10,10) movVec = rs.VectorSubtract(target, cor) rs.MoveObject( pnt, movVec ) if i%1000==0: rs.Redraw() #################################### rs.CurrentLayer("Default") #rs.ViewDisplayMode(None, "ghosted")