############################## import rhinoscriptsyntax as rs import random, time, sys ### sys.path.append("P:/") ### 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(0) # nomen est omen rs.EnableRedraw(1) ###_________________________________________# ### basic settings for grid to fit UN_slab # ### # 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 from DM_lib as dm: UnoGridCoords = dm.UnoGridCoords # get gridCoords L*D*H = 1760 UnoPanelCoords = dm.UnoPanelCoords # get panelCoords [frontPanels, backPanels, sidePanels, upSidePanels] / default arguments s.u. ################____________________________# dm.newEmptyLayer("UNO::setUp", [120,120,140]) ################## ################## if 1: rs.AddCurve( [dm.getUnoCoord(0,0,0), dm.getUnoCoord(0,0,39), dm.getUnoCoord(10,0,39), dm.getUnoCoord(10,0,0), dm.getUnoCoord(10,3,0), dm.getUnoCoord(0,3,0), dm.getUnoCoord(0,3,39), dm.getUnoCoord(10,3,39)], 1) rs.ObjectColor(rs.AddLine( dm.getUnoCoord(0, 0, 0), dm.getUnoCoord(0, 1, 0) ), [222, 0, 0] ) rs.ObjectColor(rs.AddLine( dm.getUnoCoord(0, 0, 0), dm.getUnoCoord(1, 0, 0) ), [0, 222, 0] ) rs.ObjectColor(rs.AddLine( dm.getUnoCoord(0, 0, 0), dm.getUnoCoord(0, 0, 2) ), [0, 0, 222] ) rs.ObjectPrintWidth( rs.AllObjects()[0:3], 1.0 ) #rs.AddPoints( UnoGridCoords ) rs.ZoomExtents() UnoPanelCoords = dm.getUNpanelCoords(anzL=10*3, anzH=39, anzD=3, stepL=1, stepH=4, stepD=1) frontPanels = UnoPanelCoords[0] backPanels = UnoPanelCoords[1] sidePanels = UnoPanelCoords[2] upSidePanels = UnoPanelCoords[3] allPanels = UnoPanelCoords[4] #for i,coordList in enumerate(allPanels[0:1000]): # dm.esc() # if i%2==0: # rs.AddCurve( coordList, 1 ) # dm.textDots( coordList ) # print i #def myPanel( panel, normLen=1, counter=1 ): #p0,p1,p2,p3 = panel #crv = rs.AddCurve( panel, 1 ) #lin = rs.AddLine( p0, p2 ) #zVal = p0[2] #nVec = dm.normVec3pnts( p0,p1,p2 ) #nVec = rs.VectorScale( nVec, 15-normLen*zVal*0.01 ) #cenPt = dm.pntCentroid( panel ) #rs.AddPoint( cenPt ) #rs.AddCurve( panel, 1 ) #if not counter: #rs.AddCurve( [p0, rs.VectorAdd(cenPt, nVec), cenPt], 1 ) #for i, panel in enumerate(frontPanels): #intervall = i%5 #myPanel( panel, normLen=10, counter=intervall ) ### DEMO panel #def myPanel_0( panelCoords, tDots=0 ): #p0,p1,p2,p3 = panelCoords #if tDots: # dm.textDots(panelCoords) # coords = panelCoords #coords.append(coords[0]) # crv = rs.AddCurve( panelCoords, 2) # rs.ObjectPrintWidth( crv, 2) #nVec = dm.normVec3pnts( p0,p1,p2 ) #nVec = rs.VectorScale(nVec, rs.Distance(p0, p1)*0.3) # cenPt = dm.pntCentroid([p0,p1,p2]) # rs.AddCurve( [cenPt, rs.VectorAdd(cenPt, nVec), p3], 1 ) def myPanel_1( panelCoords, tDots=0): p0,p1,p2,p3= panelCoords if tDots : dm.textDots(panelCoords) centp = dm.pntCentroid(panelCoords) rs.AddPoint(centp) rad = rs.Distance(p1, p3)/ 4.0 circ = rs.AddCircle(centp, rad) axisX = rs.VectorSubtract( p0, p3) rs.RotateObject(circ, centp, 60.0, axis=axisX) hang1 = rs.AddLine( centp, p1) rs.ObjectPrintWidth( circ, 2) rs.ObjectColor(circ, [60,100,200]) rs.ObjectColor(hang1, [90,130,247]) for i, panelCoords in enumerate(frontPanels[0:150]): pass #rs.AddCurve( panelCoords, 1) #myPanel_1( panelCoords, 0 ) for i, panelCoords in enumerate(backPanels[0:]): pass #rs.AddCurve( panelCoords, 1) #myPanel_0( panelCoords ) for i, panelCoords in enumerate(sidePanels[0:]): pass #myPanel_0( panelCoords) for i, panelCoords in enumerate(upSidePanels[0:]): pass #myPanel_0( panelCoords, 0) for i, panelCoords in enumerate(allPanels[0:]): pass rs.AddCurve( panelCoords, 1) myPanel_1( panelCoords, 0 ) #_____________________________here you go: dm.newEmptyLayer("myPROJ", [200,100,200]) #____________________________:here you end ################################### rs.ZoomExtents() rs.EnableRedraw(1) ### 4 the MACs dm.printDisplay(1) dm.newEmptyLayer("Default")