########################################### ### #WS24 DM2 HUE6_A Philipp Filipovic ### ########################################### ########################################### import rhinoscriptsyntax as rs ### import random, time, sys ### sys.path.append("P:/WWW/filipovp/") ### 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, 1) # 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(state=1) ### nomen est omen / printDisplay(state=1, scale=1000, thickness=1, color="Display") rs.EnableRedraw(0) ### MAC >> problem ! ###_________________________________________# ### basic settings for grid to fit UN_slab # ### # ! no need 2 change ! floors = H = dm.H = 40 # default=40 / incl roof slabs = L = dm.L = 11 # default=11 depth = D = dm.D = 4 # default= 4 / division in building_depth floorHeight = fH = dm.fH = 4.0 # default= 4.0 / 4.0*(H-1) = 156 meters # ############# # get gridCoords L*D*H = 1760 UnoGridCoords = dm.getUnoGridCoords() # get from DM_lib as dm #################___________________________# dm.newEmptyLayer("UNO::setUp::points", [150,150,200] ) dm.newEmptyLayer("UNO::setUp::geo", [150, 20,150] ) dm.newEmptyLayer("UNO::setUp::crv", [200, 100, 100]) dm.newEmptyLayer("UNO::setUp", [120,120,140] ) ################ lengthVec = lVec = rs.VectorUnitize(rs.VectorSubtract( dm.getUnoCoord(0, 0, 0), dm.getUnoCoord(1, 0, 0) )) ## rs.AddPoint( dm.getUnoCoord(1, 0, 0) ) depthVec = dVec = rs.VectorUnitize(rs.VectorSubtract( dm.getUnoCoord(0, 1, 0), dm.getUnoCoord(0, 0, 0) )) ## rs.AddPoint( dm.getUnoCoord(0, 1, 0) ) ################ if 0: ### DEMOs / SETUP >> dont' exec @ homework ! if 1: rs.AddLine( dm.getUnoCoord(0, 0, 0), dm.getUnoCoord(10, 0, 0) ) rs.AddLine( dm.getUnoCoord(0, 0, 0), dm.getUnoCoord( 0, 3, 0) ) rs.AddLine( dm.getUnoCoord(0, 0, 0), dm.getUnoCoord( 0, 0, 39) ) rs.CurveArrows(rs.AllObjects()[0], arrow_style=2) rs.CurveArrows(rs.AllObjects()[1], arrow_style=2) rs.CurveArrows(rs.AllObjects()[2], arrow_style=2) rs.ObjectColor(rs.AllObjects()[2], [0, 222, 0] ) rs.ObjectColor(rs.AllObjects()[1], [222, 0, 0] ) rs.ObjectColor(rs.AllObjects()[0], [0, 0, 222] ) rs.ObjectPrintWidth( rs.AllObjects()[0:3], 1.0 ) p0 = dm.getUnoCoord( 0, 0, 0) p1 = dm.getUnoCoord( 10, 0, 0) p2 = dm.getUnoCoord( 10, 3, 0) p3 = dm.getUnoCoord( 0, 3, 0) unoBaseCoords = [p0, p1, p2, p3, p0] unoBaseCrv = rs.AddCurve( unoBaseCoords, 1) unoTopCoords = [dm.getUnoCoord( 0, 0, 39), dm.getUnoCoord( 10, 0, 39), dm.getUnoCoord( 10, 3, 39), dm.getUnoCoord( 0, 3, 39), dm.getUnoCoord( 0, 0, 39), ] unoTopCrv = rs.AddCurve( unoTopCoords, 1) rs.ZoomExtents() def gC (l=1, d=2, h=3): cor = dm.getUnoCoord(l, d, h) return cor #__________________________________________________ dm.newEmptyLayer("myPROJ", [100,100,100]) rs.CurrentLayer("UNO::setUp::crv") p0 = gC (l=9, d=1, h=38) p1 = rs.VectorAdd ( p0, rs.VectorScale( dVec, 50.0)) p2 = gC (5,3,34) p3 = gC (5,0,34) p4 = gC (7,0,34) p5 = gC (7,3,34) p6 = gC (7,3,29) p7 = gC (5,3,29) p8 = gC (4,3,29) p9 = rs.VectorAdd ( p8, rs.VectorScale( dVec, 20.0)) p10 = gC (1,3,24) p11 = gC (1,2,24) p12 = gC (1,1,24) p13 = gC (7,1,24) p14 = gC (7,3,19) p15 = gC (5,3,19) p16 = gC (3,3,19) p17 = gC (3,0,19) p18 = rs.VectorAdd ( p17, rs.VectorScale( dVec, -10.0)) p19 = rs.VectorAdd ( p18, rs.VectorScale( lVec, -50.0)) p20 = gC (8,3,17) p21 = gC (5,3,15) p22 = gC (4,3,15) p23 = gC (3,2,15) p24 = gC (3,1,15) p25 = gC (3,0,15) p26 = gC (9,0,10) p27 = gC (9,2,10) p28 = gC (9,3,10) p29 = gC (5,3,6) p30 = gC (1,3,6) p31 = gC (1,1,6) coords = [p0, p1, p2, p3, p4, p5, p6, p7, p8, p9 ,p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31] #rs.AddCurve (coords,1 ) #Leitlinie, Straight crvDiv = 310 #Radius checkpoints crv = rs.AddCurve (coords,2 ) coords = rs.DivideCurve (crv, crvDiv, create_points=False ) #rs.AddPoints (coords) for cor in coords: pass #rs.AddCircle (cor, 5.5) #rs.CurvePerpFrame ( ) dom = rs.CurveDomain ( crv ) print "dom =", dom dom = rs.CurveDomain ( crv ) [1] print "dom =", dom #pX = rs.EvaluateCurve ( crv, dom*0.5) #planeX = rs.CurvePerpFrame (crv, dom*0.5) #rs.AddCircle ( planeX, 5.5) #paraX = rs.CurveClosestPoint( crv, coords[10] ) #planeX = rs.CurvePerpFrame (crv, paraX) #rs.AddCircle ( planeX, 5.5) circDiv = 16 allCoordsLists = [] for cor in coords: paraX = rs.CurveClosestPoint( crv, cor ) planeX = rs.CurvePerpFrame (crv, paraX) circ = rs.AddCircle ( planeX, 3) #Schlauch Durchmesser circCoords = rs.DivideCurve(circ,circDiv,0) # rs.DeleteObject( circ ) #Kreise Loeschen allCoordsLists.append(circCoords) i = 0 for i in range(circDiv): coords = [] for list in allCoordsLists: pX = list[i] coords.append (pX) rs.ObjectColor (rs.AddCurve(coords, 2), [0,100,100]) #Outline rs.CurrentLayer("myPROJ") if 0: p0 = dm.getUnoCoord( 0, 0, 0) p1 = dm.getUnoCoord( 10, 0, 0) p2 = dm.getUnoCoord( 10, 3, 0) p3 = dm.getUnoCoord( 0, 3, 0) unoBaseCoords = [p0, p1, p2, p3, p0] unoBaseCrv = rs.AddCurve( unoBaseCoords, 1) unoTopCoords = [dm.getUnoCoord( 0, 0, 39), dm.getUnoCoord( 10, 0, 39), dm.getUnoCoord( 10, 3, 39), dm.getUnoCoord( 0, 3, 39), dm.getUnoCoord( 0, 0, 39), ] unoTopCrv = rs.AddCurve( unoTopCoords, 1) #Outline verbindung if 0: Outline_anz=50 Outline_coords_1 = rs.DivideCurve(unoBaseCrv, Outline_anz, create_points=0) Outline_coords_2 = rs.DivideCurve(unoTopCrv, Outline_anz, create_points=0) Outline_coords_2 += Outline_coords_2 Outline_coords_2 += Outline_coords_2 for i in range(Outline_anz): p1 = Outline_coords_1[i] p2 = Outline_coords_2[i+int(Outline_anz*0.1)] p3 = Outline_coords_2[i+int(Outline_anz*0.2)] rs.AddLine( p1, p2 ) rs.AddLine( p1, p3 ) #__________________________________________________ ################################### dm.zA( proz=0.95 ) rs.EnableRedraw(1) ### 4 the MACs #dm.printDisplay(1) dm.newEmptyLayer("Default")