############################## ### DM2_w24 hu_03_setUp ### ### _diag / 2024 10 17 ### ############################## import rhinoscriptsyntax as rs import random, time, sys ### sys.path.append("P:/") ### add path where "DM_lib.py" can be found !!! import DM_lib as dm ### reload(dm) import random as rd, math #import math ############################## 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()) dm.PointRadius(displayModeX=0, rad=3, styl=0, verbose=0) dm.PointRadius(displayModeX=1, rad=4, styl=7, verbose=0) ### start if 1: coords=[] anzahl=10 xVal=1.3 yVal=1.5 zVal=1.7 for i in range(anzahl): for j in range (anzahl): for k in range (anzahl): x=i*xVal+random.uniform(0.5, 0.9) y=j*xVal+random.uniform(0.13, 0.4) z=k*xVal+random.uniform(0.13, 0.96) cor=[x,y,z] coords.append(cor) Kubus1=rs.AddPoints(coords) # for pt in Kubus1: # dm.esc() # rs.ObjectColor(pt, [random.uniform(50,100),200,200]) # rs.Command("-SetObjectDisplayMode selID "+str(pt)+" enter \"shaded\" enter", 0) ######Kugel if 1: length = 40 anz = 1000 rad = 30.0 elevation = 5 center = [5, 5, elevation] sphere_points = [] sphere_coords = [] for i in range(anz): dm.esc() ###soll Notfallstopp ermoeglichen theta = math.acos(1 - 2 * (i + 0.5) / anz) phi = math.pi * (1 + 5**0.5) * i x = rad * math.sin(theta) * math.cos(phi) y = rad * math.sin(theta) * math.sin(phi) z = rad * math.cos(theta) if x> 10: pt = rs.AddPoint( rs.VectorAdd(center, [x, y, z]) ) sphere_points.append(pt) sphere_coords.append(rs.VectorAdd(center, [x, y, z])) if x<-8 : pt = rs.AddPoint( rs.VectorAdd(center, [x, y, z]) ) sphere_points.append(pt) sphere_coords.append(rs.VectorAdd(center, [x, y, z])) for pt in sphere_points: dm.esc() rs.ObjectColor(pt, [200,200,200]) rs.Command("-SetObjectDisplayMode selID "+str(pt)+" enter \"shaded\" enter", 0) #Verbindung for i in range(anz): p1 = sphere_points[i] p2 = Kubus1[i+int(anz*0.1)] p3 = Kubus1[i+int(anz*0.2)] rs.AddLine( p1, p2 ) rs.AddLine( p1, p3)