Téléverser les fichiers vers "bimr"
This commit is contained in:
parent
47a52920b1
commit
06e5930ae2
1 changed files with 38 additions and 0 deletions
38
bimr/curved.py
Normal file
38
bimr/curved.py
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
# BIMR example : curved.py
|
||||
import random
|
||||
random.seed(128)
|
||||
|
||||
# Control points
|
||||
BASE = [(-1500,-300),(0,1000),(850,800),(300,0),(500,-800),(0,-1000),(-500,-800),(-300,0)]
|
||||
N_LEVELS = 8
|
||||
N_FRAMES = 40
|
||||
FRAME_H = 180
|
||||
FRAME_D = 35
|
||||
FRAME_T = 10
|
||||
SLAB_T = 150
|
||||
LEVEL_H = FRAME_H + 2 * SLAB_T
|
||||
|
||||
for lvl in range(N_LEVELS):
|
||||
z_bot = lvl * LEVEL_H
|
||||
z_ceil = z_bot + FRAME_H + SLAB_T
|
||||
|
||||
pts_xy = [(bx + int(random.uniform(-150, 150)),
|
||||
by + int(random.uniform(-150, 150)))
|
||||
for bx, by in BASE]
|
||||
|
||||
c = Curve([Point(x, y, z_bot) for x, y in pts_xy])
|
||||
|
||||
# Floor slab
|
||||
Slab(c, SLAB_T, z_bot)
|
||||
|
||||
# Facade frames
|
||||
arc = CurveLen(c)
|
||||
fw = max(50, min(300, int(arc / N_FRAMES)))
|
||||
div = list(Divide(c, N_FRAMES))
|
||||
for i, pt in enumerate(div):
|
||||
nxt = div[(i + 1) % N_FRAMES]
|
||||
Frame(pt, (nxt.x - pt.x, nxt.y - pt.y, 0), fw, FRAME_H, FRAME_D, FRAME_T)
|
||||
|
||||
# Ceiling slab
|
||||
c_ceil = Curve([Point(x, y, z_ceil) for x, y in pts_xy])
|
||||
Slab(c_ceil, SLAB_T, z_ceil)
|
||||
Loading…
Add table
Reference in a new issue