BarShapePlacementUtil
Module with the bar shape placement utility class
BarShapePlacementUtil
Canonical path: StdReinfShapeBuilder.BarShapePlacementUtil.BarShapePlacementUtil
Implementation of the bar shape placement utility.
This class can be used to calculate the placement of longitudinal bars in relation to multiple transverse shapes (e.g. stirrup, s-hook). An example use-case is the calculation of the position of the longitudinal bar in the corner of a stirrup or at the intersection of the legs of two stirrups.
add_shape
add_shape(shape_id: int | str, shape: BendingShape)
Add a shape to the shape list
Parameters:
-
shape_id(int | str) –ID of the reference shape
-
shape(BendingShape) –Shape
get_placement
Calculate the local placement line inside the local X/Y coordinate system of the shapes
Parameters:
-
reinf_def–Reinforcement definition
-
param_dict–Parameter dictionary
-
local_angles–Rotation from global to local coordinate system
Returns:
-
–
Placement line in local coordinate system
-
–
Cover at the start of the line
-
–
Cover at the end of the line
get_placement_at_shape_side
get_placement_at_shape_side(
shape_id: int | str,
side_number: int,
ref_pnt_fac: float,
b_above_side: bool,
placement_diameter: float,
local_angles: RotationAngles,
) -> tuple[Line2D, float, float]
Calculate the local placement line at a given leg of the reference shape in its local coordinate system
Parameters:
-
shape_id(int | str) –ID of the reference shape
-
side_number(int) –Number of the leg of the reference shape, beginning with 1
-
ref_pnt_fac(float) –Factor for the reference point calculation. (-1 = at the side from left to right)
-
b_above_side(bool) –When set to True, the placement line is created above the leg
-
placement_diameter(float) –Diameter of the longitudinal bar
-
local_angles(RotationAngles) –Rotation from global to local coordinate system
Returns:
-
Line2D–Placement line in local coordinate system
-
float–Cover at the start of the line
-
float–Cover at the end of the line
get_placement_at_shape_side_intersection
get_placement_at_shape_side_intersection(
shape_id1: int | str,
side_number1: int,
shape_id2: int | str,
side_number2: int,
shape_id3: int | str,
side_number3: int,
b_above_side3: bool,
placement_diameter: float,
local_angles: RotationAngles,
) -> tuple[Line2D, float, float]
Calculates the placement line on the specified leg of the third reference shape, starting at the intersection with the leg of the first reference shape and ending a the intersection with leg of the second reference shape.
Parameters:
-
shape_id1(int | str) –ID of the first reference shape
-
side_number1(int) –Number of the leg of the first reference shape, beginning with 1
-
shape_id2(int | str) –ID of the second reference shape
-
side_number2(int) –Number of the leg of the second reference shape, beginning with 1
-
shape_id3(int | str) –ID of the third reference shape
-
side_number3(int) –Number of the leg of the third reference shape, beginning with 1
-
b_above_side3(bool) –When True, the placement line will be calculated above the leg, otherwise below
-
placement_diameter(float) –Diameter of the longitudinal bar
-
local_angles(RotationAngles) –Rotation from global to local coordinate system
Returns:
-
Line2D–Placement line in local coordinate system
-
float–Cover at the start of the line
-
float–Cover at the end of the line
get_placement_from_bending_roller
get_placement_from_bending_roller(
shape_id: int | str,
side_number: int,
b_roller_start_point: bool,
placement_base_line: Line2D | Line3D,
b_placment_start_point: bool,
placement_diameter: float,
local_angles: RotationAngles,
) -> float
Get the placement cover from the bending roller of a defined side number
Parameters:
-
shape_id(int | str) –ID of the reference shape
-
side_number(int) –Number of the shape leg
-
b_roller_start_point(bool) –True = roller at the start point / False = roller at the end point
-
placement_base_line(Line2D | Line3D) –Base line of the placement
-
b_placment_start_point(bool) –True = placement start point / False = placement end point
-
placement_diameter(float) –Diameter of the longitudinal bar
-
local_angles(RotationAngles) –Rotation from global to local coordinate system
Returns:
-
float–Local placement cover to a placement base line
get_placement_from_side_intersection
get_placement_from_side_intersection(
shape_id1: int | str,
side_number1: int,
b_above_side1: bool,
shape_id2: int | str,
side_number2: int,
b_above_side2: bool,
placement_base_line: Line2D,
b_placment_start_point: bool,
placement_diameter: float,
local_angles: RotationAngles,
) -> float
Get the placement cover from the side intersection of two defined side numbers.
Parameters:
-
shape_id1(int | str) –ID of the first shape
-
side_number1(int) –Number of the first shape leg
-
b_above_side1(bool) –Cover above the first side: True/False
-
shape_id2(int | str) –ID of the second shape
-
side_number2(int) –Number of the second shape leg
-
b_above_side2(bool) –Cover above the second side: True/False
-
placement_base_line(Line2D) –Base line of the placement
-
b_placment_start_point(bool) –True = placement start point / False = placement end point
-
placement_diameter(float) –Diameter of the longitudinal bar
-
local_angles(RotationAngles) –Rotation from global to local coordinate system
Returns:
-
float–Local placement cover to a placement base line
get_placement_in_corner
get_placement_in_corner(
shape_id: int | str,
corner_number: int,
placement_diameter: float,
local_angles: RotationAngles,
) -> Point3D
Calculate the placement point for a longitudinal bar in the corner of the given reference shape
Parameters:
-
shape_id(int | str) –ID of the reference shape
-
corner_number(int) –Number of the corner in the reference shape, beginning with 1
-
placement_diameter(float) –Diameter of the longitudinal bar
-
local_angles(RotationAngles) –Rotation from global to local coordinate system
Returns:
-
Point3D–Position of corner bar in the local coordinate system of the reference shape.
get_placement_in_side_corners
get_placement_in_side_corners(
shape_id: int | str,
side_number: int,
placement_diameter: float,
local_angles: RotationAngles,
) -> tuple[Line2D, float, float]
Calculate the placement line on the entire length of the specified leg of the reference shape.
Note, that the calculation cannot be done in the first leg!
Parameters:
-
shape_id(int | str) –ID of the reference shape
-
side_number(int) –Number of the shape's leg, beginning with 1
-
placement_diameter(float) –Diameter of the longitudinal bar
-
local_angles(RotationAngles) –Rotation from global to local coordinate system
Returns:
-
Line2D–Placement line in local coordinate system
-
float–Cover at the start of the line
-
float–Cover at the end of the line
get_placement_in_side_intersection
get_placement_in_side_intersection(
shape_id1: int | str,
side_number1: int,
b_above_side1: bool,
shape_id2: int | str,
side_number2: int,
b_above_side2: bool,
placement_diameter: float,
local_angles: RotationAngles,
) -> Point2D | Point3D
Get the placement point at the intersection of two legs.
Parameters:
-
shape_id1(int | str) –ID of the first reference shape
-
side_number1(int) –Leg number of the first reference shape, beginning with 1
-
b_above_side1(bool) –True will calculate the placement point above the first leg, False below
-
shape_id2(int | str) –ID of the second reference shape
-
side_number2(int) –Leg number of the second reference shape, beginning with 1
-
b_above_side2(bool) –True will calculate the placement point above the second leg, False below
-
placement_diameter(float) –Diameter of the longitudinal bar
-
local_angles(RotationAngles) –Rotation from global to local coordinate system
Returns:
get_placent_line_cover_from_side
get_placent_line_cover_from_side(
shape_id: int | str, side_number: int, b_above_side: bool
) -> tuple[Line3D, float]
Get the placement line cover from a shape leg by side number
Parameters:
-
shape_id(int | str) –ID of the reference shape
-
side_number(int) –Number of the shape leg
-
b_above_side(bool) –Cover above the side: True/False
Returns:
-
Line3D–Placement line
-
float–Local placement cover
get_side_length
Gets the leg's length of the given shape
Parameters:
-
shape_id(int | str) –ID of the reference shape
-
side_number(int) –Number of the leg
Return
Length of the leg