import rhinoscriptsyntax as rs
import random as ran

if rs.IsLayer("Default"):
    rs.CurrentLayer("Default")
else:
    rs.AddLayer("Default")
    rs.CurrentLayer("Default")

delobjs = rs.ObjectsByLayer("Default")
rs.DeleteObjects(delobjs)

#xsize=10
#ysize=5
#zsize=8
#corners = [(0,0,0), (xsize,0,0), (xsize,ysize,0), (0,ysize,0),
#           (0,0,zsize),(xsize,0,zsize),(xsize,ysize,zsize),(0,ysize,zsize)]
#box = rs.AddBox(corners)

def make_box(insertion, xsize,ysize,zsize):
    corners = [(0,0,0), (xsize,0,0), (xsize,ysize,0), (0,ysize,0),
           (0,0,zsize),(xsize,0,zsize),(xsize,ysize,zsize),(0,ysize,zsize)]
    box=rs.AddBox(corners)
    rs.MoveObject(box,insertion)
#make_box((0,0,0),2.17,94.74,15)
#make_box(insertion=(5,0,0), xsize=1)
baseline= rs.ObjectsByLayer("baseline")[0]

pts = rs.DivideCurve(baseline,5)
for p in pts:
    make_box(p,2,-1,94.74)

make_box((0,0,0),25.66,15,94.74)

make_box((+1,1,94.74),23.66,13,5)

make_box((-1,0,99.74),27.66,15,5)

make_box((+1,1,104.74),23.66,13,11.5)

make_box((-1,0,116.24),27.66,15,5)

make_box((+2.5,1,121.24),20.66,13,11.5)

def make_letter_upsidedown(insertion=(0,0,0), letter="1", xsize=10, ysize=10, zsize=10):
    mytext = rs.AddText(letter,(0,zsize,0),height=zsize, font = "Arial")
    crv = rs.ExplodeText(mytext,True)[0]
    path= rs.AddLine([0,0,0],[0,0,ysize])
    obj = rs.ExtrudeCurve(crv, path)
    rs.CapPlanarHoles(obj)
    rs.DeleteObjects([crv, path])
    rs.RotateObject(obj, [0,0,0], 90, [1,0,0])
    rs.RotateObject(obj, [0,0,0], 180, [0,1,0])
    bbx = rs.BoundingBox(obj)
    #print bbx
    #rs.AddPolyline(bbx)
    rs.MoveObject(obj, (-bbx[0][0], -bbx[0][1], -bbx[0][2]))
    scalex = xsize/rs.Distance(bbx[0],bbx[1])
    rs.MoveObject(obj, (-xsize/2, -ysize/2,0))
    rs.MoveObjects(obj, insertion)
    scalez = zsize/rs.Distance(bbx[1],bbx[4])
    rs.ScaleObject(obj,(0,0,0), (scalex,1,scalez))


make_letter_upsidedown((6,0,106), "U", 3.6, 1,7)
make_letter_upsidedown((10.5,0,106), "U", 3.6, 1,7)
make_letter_upsidedown((14.8,0,106), "U", 3.6, 1,7)
make_letter_upsidedown((18.8,0,106), "U", 3.6, 1,7)
make_letter_upsidedown((18.8,0,106), "U", 3.6, 1,7)


#make_letter_upsidedown((6,1,106), "|", 1, 1)
#make_letter_upsidedown((10.5,1,106), "_", 1, 1)
#make_letter_upsidedown((14.8,1,106), "_", 1, 1)
#make_letter_upsidedown((18.8,1,106), "_", 1, 1)

import rhinoscriptsyntax as rs
import random as ran


if rs.IsLayer("Standard"):
    rs.CurrentLayer("Standard")
else:
    rs.AddLayer("Standard")
    rs.CurrentLayer("Standard")

delobjs = rs.ObjectsByLayer("Standard")
rs.DeleteObjects(delobjs)

#delobjs = rs.ObjectsByType(1)
#rs.DeleteObjects(delobjs)

#win = rs.ObjectsByLayer("Standard")
#plane = rs.CurvePlane(win[1])
#pts = []
#for i in range(8000):
#    x= ran.randint(1,2258)
#    y= 0
#    z= ran.randint(0,1782)
#    pts.append([x,y,z])
#    for w in win:
#        if rs.PointInPlanarClosedCurve(pts[-1], w, plane):
#            pts.pop(-1)
#
#for p in pts:
#    rs.AddPoint(p)


import rhinoscriptsyntax as rs
import random as ran


if rs.IsLayer("Default"):
    rs.CurrentLayer("Default")
else:
    rs.AddLayer("Default")
    rs.CurrentLayer("Default")

#delobjs = rs.ObjectsByLayer("Standard")
#rs.DeleteObjects(delobjs)

delobjs = rs.ObjectsByType(1)  
rs.DeleteObjects(delobjs)
rs

#Fen = rs.ObjectsByLayer("PUnkte")
#plane = rs.CurvePlane(Fen[0])
#pts = []
for i in range(3000):
    x= ran.randint(0,25)
    y= 0
    z= ran.randint(0,94)
    pts.append([x,y,z])
#    for F in Fen:
#        if rs.PointInPlanarClosedCurve(pts[-1], F, plane):
#            pts.pop(-1)

for p in pts:
    rs.AddPoint(p)


#Fen = rs.ObjectsByLayer("PUnkte")
#plane = rs.CurvePlane(Fen[0])
#pts = []
for i in range(300):
    x= ran.randint(1,24)
    y= 1
    z= ran.randint(104,116)
    pts.append([x,y,z])
#    for F in Fen:
#        if rs.PointInPlanarClosedCurve(pts[-1], F, plane):
#            pts.pop(-1)

for p in pts:
    rs.AddPoint(p)

#_____________________________________________________


def meander():
    meander_pt = [(0,0,0), (0,0,4), (4,0,4), (4,0,1), (2,0,1), (2,0,2), (3,0,2), (3,0,3), (1,0,3), (1,0,0), (5,0,0), (5,0,5), (-1,0,5), (-1,0,0), (0,0,0)]

    meander = rs.AddPolyline(meander_pt)
    path = rs.AddLine([0,0,0], [0,2,0])
    meander_obj = rs.ExtrudeCurve( meander, path)

    rs.CapPlanarHoles(meander_obj)
    # print(meander_obj)
    # rs.MoveObject(meander_obj, (0,0,1))
    return meander_obj


for x in range(0,4):
    for y in range(0,4):

            rs.MoveObject(meander(), ((x*7),(y*0), 94.74))

for x in range(0,4):
    for y in range(0,4):

            rs.MoveObject(meander(), ((x*7),(y*0), 116))
