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