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)






import math


import sys                                  # load System Library

# Get all the system paths
print(sys.path)

roopNum = 20
originPt = [0.0, 0.0, 0.0]
originPt_x = 0
originPt_y = 0

for i in range(roopNum):

    if(i == 0):
        fn0 = 0
        fn1 = 0  #the initial term of Fibonacci number
        fn  = 1  #the first term of Fibonacci number
    else:
        fn = fn1 + fn0 #Fibonacci progression

    rs.AddPoint(originPt)
    # move_pt = [(0,0),(0,0),(1,0),(1,1),(-1,1),(-1,-2),(4,-2),(4,6),(-9,6),(-9,-15)]

    # get the quater
    origin_qt = round(math.sin(math.radians(90*i+45)))
    # reverse for first two quaters
    origin_qt *= -1

    # mit move


import rhinoscriptsyntax as rs
import math


import sys                                  # load System Library

# Get all the system paths
print(sys.path)

# sys.path.append( "lib/" )                ## set relative path,
sys.path.append( "P:/dm2/lib/")            ## set absolute path to our P:// Drive

# Import our own library file (uncomment to use it)
# import my_dm2_lib as dm2lib

# reload the library in case wie change something in the meantime (uncomment to use it only while changing code)
# reload(dm2lib)

"""
# ------------------------ Pyramiden --------------------------

n = 10

for x in range(n+1):
    for y in range(n+1):
        if(y < x and y < -x + n):
        # if(y > x and y > -x + n):
        # if(y < x):
        # if(y > x):
            rs.AddCircle([x, y, 0.0], 0.5)

# ------------ 3D version Pyramiden ------------------------------

for x in range(n+1):
    for y in range(n+1):
        for z in range(n+1):
            if(z < x and z < -x + n and z < y and z < -y + n):
                # if(y > x and y > -x + n):
                # if(y < x):
                # if(y > x):
                rs.AddCircle([x, y, z], 0.5)
"""
# ---------------- Archimedische Spirale --------------------------

n = 20
width_var = 0.5
curve_pt_var = []

for n in range(n+1):
    t = (math.pi/4) * n
    x = (1 + width_var * t) * math.cos(t)
    y = (1 + width_var * t) * math.sin(t)
    z = (5 + width_var * t) * math.tan(t)
    point = (x,y)
    rs.AddPoint(point)
    curve_pt_var.append(point)

rs.AddCurve(curve_pt_var, 2)


import math



import sys                                  # load System Library

# Get all the system paths
print(sys.path)

roopNum = 20
originPt = [0.0, 0.0, 0.0]
originPt_x = 0
originPt_y = 0

for i in range(roopNum):

    if(i == 0):
        fn0 = 0
        fn1 = 0  #the initial term of Fibonacci number
        fn  = 1  #the first term of Fibonacci number
    else:
        fn = fn1 + fn0 #Fibonacci progression

    rs.AddPoint(originPt)
    # move_pt = [(0,0),(0,0),(1,0),(1,1),(-1,1),(-1,-2),(4,-2),(4,6),(-9,6),(-9,-15)]

    # get the quater
    origin_qt = round(math.sin(math.radians(90*i+45)))
    # reverse for first two quaters
    origin_qt *= -1

    # mit move


import rhinoscriptsyntax as rs
import math


import sys                                  # load System Library

# Get all the system paths
print(sys.path)

# sys.path.append( "lib/" )                ## set relative path,
sys.path.append( "P:/dm2/lib/")            ## set absolute path to our P:// Drive

# Import our own library file (uncomment to use it)
# import my_dm2_lib as dm2lib

# reload the library in case wie change something in the meantime (uncomment to use it only while changing code)
# reload(dm2lib)

"""
# ------------------------ Pyramiden --------------------------

n = 10

for x in range(n+1):
    for y in range(n+1):
        if(y < x and y < -x + n):
        # if(y > x and y > -x + n):
        # if(y < x):
        # if(y > x):
            rs.AddCircle([x, y, 0.0], 0.5)

# ------------ 3D version Pyramiden ------------------------------

for x in range(n+1):
    for y in range(n+1):
        for z in range(n+1):
            if(z < x and z < -x + n and z < y and z < -y + n):
                # if(y > x and y > -x + n):
                # if(y < x):
                # if(y > x):
                rs.AddCircle([x, y, z], 0.5)
"""
# ---------------- Archimedische Spirale --------------------------



rs.AddCurve(curve_pt_var, 2)