compas_tf.floor_guide
¤
Classes¤
FloorGuide
¤
FloorGuide(size_grid_x=3000, size_grid_y=3000, size_column_head=250, size_column_head_chamfer=100, size_outer_ribs=100, size_inner_ribs=60, size_inner_beams=60, size_wedge=100, size_tsections=27, height=650, rise=453, size_oculus=1000, wedge_plane_angle=-10, bay_height=3000)
Provides geometry parameters for building column heads and edge beams.
Depending if the column is bigger than column head, there is either cutters of a beam of a separate block.
Attributes¤
bed_top_planes
property
¤
Best-fit top plane of each bed panel, ordered to match the 3 wedges.
The beds are the last (bottom) plate layer; each bed panel sits under
one wedge. The boolean wedge bottoms are cut by these planes so the
wedges land on the beds instead of stopping in the air. Mirrors the
per-panel construction in :pyattr:beds.
beds
property
¤
Bed plates as a flat list, three panels (rows) deep.
Each plate is tagged with plate.bed_row (0, 1 or 2) so a consumer
can split the beds into their three rows without having to know the
panel boundaries.
block_level_bottom
property
¤
Bottom level of the block - used for ribs and wedges.
boundary_parabolas
property
¤
Boundary parabolas along the outer and inner rib axes, each flanked by two t-section offsets at +/- size_tsections.
column_cutters
property
¤
PlateElements that carve the column head as boolean-difference cutters.
Built from the three wedge construction planes plus the two side planes
of the quarter column polygon. The plane fan is intersected with three
horizontal levels (top at z=0, and two lower levels) to produce six
cutter quads, each lofted into a closed PlateElement so it can be
registered as a SolidDifferenceModifier source against the column.
The cutters are authored in the guide's local frame (column head near
z=0); FloorModel.add_floor_guide applies the guide transformation so
they line up with the column at the correct elevation.
Returns:
| Type | Description |
|---|---|
list[:class:`compas_tf.plate.PlateElement`]
|
|
construction_planes
property
¤
Plane pairs each corresponds to the long edge of 2d plan plate edges. In the next function we would make two other pair polylines form indicies to construct rectangles.
oculus
property
¤
Oculus constructed from the inner beam 2 beam first plane rotated around origin 4 times. Oculus is made from 5 plates elements: 4x boundary beams 1x inner plate connecting the 4 beams
outer_ribs_bottom
property
¤
Lowest z coordinate reached by the outer rib plates.
Used as the bottom level of the boolean blocks that cut the column, so the column is cut down exactly to the deepest point of the outer ribs.
quarter_column_polygon
property
¤
The column head polygon from which the ribs will start.
wedges_inner_beams
property
¤
3 wedges + 2 sherpa connections + 3 collumn cutting blocks
Methods:¤
brep_meshes
¤
brep_meshes(variant=None) -> list
The geometry of every plate the guide produces - what :meth:get_brep converts.
column_cutters_for
¤
Column-head cutter solids in a column's LOCAL frame.
:attr:column_cutters are authored in the guide's world frame - at the
bay corner, with the head top near z=0. This recentres them on the
column axis (xy -> 0) and lifts the head top to the column top
(z = column_height), which is the frame a column feature is applied
in. Pass the result straight to
:meth:compas_tf.column.ColumnElement.add_cutters.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
column_height
|
float
|
Local height of the target column; its head top sits at this z. |
required |
Returns:
| Type | Description |
|---|---|
list[:class:`compas.datastructures.Mesh`]
|
Closed cutter solids in the column's local frame. |
corner_point_column
¤
Column base center in plan for one quarter (the grid corner).
Mirrors the position the columns and supports are placed at: the bottom-left corner of the quarter grid, inset by half the column size.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
column_size
|
float
|
Column cross-section side length in mm. |
200
|
Returns:
| Type | Description |
|---|---|
class:`compas.geometry.Point`
|
|
plates
¤
plates() -> list
Every :class:compas_tf.plate.PlateElement the guide produces, flattened.
Each group is a lazy property, so this builds them all on first call.
quadratic_points
staticmethod
¤
Generate points along a quadratic Bezier curve (parabola).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
p0
|
:class:`compas.geometry.Point`
|
Start point. |
required |
p1
|
:class:`compas.geometry.Point`
|
Control point. |
required |
p2
|
:class:`compas.geometry.Point`
|
End point. |
required |
divisions
|
int
|
Number of points to generate along the curve. |
7
|
Returns:
| Type | Description |
|---|---|
class:`compas.geometry.Polyline`
|
Polyline of points along the Bezier curve. |