|
|
| Menüeintrag |
|---|
| Keiner |
| Arbeitsbereich |
| Reinforcement |
| Standardtastenkürzel |
| Keiner |
| Eingeführt in Version |
| 0.19 |
| Siehe auch |
| Keiner |
Das Werkzeug Reinforcement Bewehrungsbiegeplan ermöglicht dem Anwender einen Bewehrungsbiegeplan aus Bewehrungsstäben abzuleiten.
Dieses Werkzeug ist Teil des Arbeitsbereichs Reinforcement; dieser ist ein externer Arbeitsbereich, der mit dem Addon-Manager installiert werden kann.
Biegeplan für Bewehrungsstäbe
1. Wähle die Bewehrung und Bewehrung2-Objekte, die den Biegeplan für Stäbe aufgenommen werden sollen. Oder wähle
Struktur-Objekte zum Aufnehmen der
Bewehrungs-Objekte, die von diesen in dem Biegeplan für Stäbe verwaltet werden. Wenn nichts ausgewählt ist, wird der Biegeplan für Stäbe für alle
Bewehrung- und Bewehrung2-Objekte, die in der Zeichnung enthalten sind, erstellt.
2. Dann Biegeplan aus den Bewehrungswerkzeugen auswählen.
3. Eine Dialog-Box wird sich öffnen, wie unten gezeigt.
4. Daten nach den Anforderungen anpassen.
5. Auf OK oder Übernehmen klicken, um die Biegungsliste für Bewehrungsstäbe zu erstellen.
6. Die Schaltfläche Abbrechen drücken, um die Dialog-Box zu verlassen.
Allgemein:
Daten zur Bewehrungsform: Die Daten in Bezug auf die Spalte Bewehrungsform im Biegeplan
Daten zu den Abmessungen der Bewehrungsstahlform-Säule: Die Daten zu den Abmessungen der Bewehrungsform in der Spalte Bewehrungsform
Siehe auch: Arch API,Reinforcement-API und Grundlagen der Skripterstellung in FreeCAD.
Das Werkzeug Reinforcement Biegeplan kann in Makros und von der Python-Konsole aus mit folgender Funktion verwendet werden:
getBarBendingSchedule(
rebar_objects: Optional[List] = None,
column_headers: Optional[Dict[str, Tuple[str, int]]] = None,
column_units: Optional[Dict[str, str]] = None,
dia_weight_map: Optional[Dict[float, FreeCAD.Units.Quantity]] = None,
rebar_length_type: Optional[
Literal["RealLength", "LengthWithSharpEdges"]
] = None,
reinforcement_group_by: Optional[Literal["Mark", "Host"]] = None,
font_family: Optional[str] = None,
font_size: float = 5,
column_width: float = 60,
row_height: float = 30,
rebar_shape_column_header: str = "Rebar Shape (mm)",
rebar_shape_view_directions: Union[
Union[FreeCAD.Vector, WorkingPlane.Plane],
List[Union[FreeCAD.Vector, WorkingPlane.Plane]],
] = FreeCAD.Vector(0, 0, 0),
rebar_shape_stirrup_extended_edge_offset: float = 2,
rebar_shape_color_style: str = "shape color",
rebar_shape_stroke_width: float = 0.35,
rebar_shape_include_dimensions: bool = True,
rebar_shape_dimension_font_size: float = 3,
rebar_shape_edge_dimension_units: str = "mm",
rebar_shape_edge_dimension_precision: int = 0,
include_edge_dimension_units_in_dimension_label: bool = False,
rebar_shape_bent_angle_dimension_exclude_list: Union[
List[float], Tuple[float, ...]
] = (45, 90, 180),
helical_rebar_dimension_label_format: str = "%L,r=%R,pitch=%P",
output_file: Optional[str] = None,
) -> xml.ElementTree.Element
rebar_objects zurück.rebar_objects ist eine Liste von <ArchRebar._Rebar>- oder <rebar2.BaseRebar>-Objekten, für die ein Biegungsplan erstellt werden soll. Wenn keine Angabe erfolgt, werden alle ArchRebars- und rebar2.BaseRebar-Objekte mit eindeutiger Markierung aus ActiveDocument ausgewählt.column_headers ist ein Wörterbuch mit den Schlüsseln: „Host”, „Mark”, „RebarsCount”, „Diameter”, „RebarLength”, „RebarsTotalLength” und den Werten als Tupel aus column_header und ihrer Sequenznummer. Beispiel: {
"Host": ("Member", 1),
"Mark": ("Mark", 2),
"RebarsCount": ("Anzahl der Bewehrungsstäbe", 3),
"Diameter": ("Durchmesser in mm", 4),
"RebarLength": ("Länge in m/Stück", 5),
"RebarsTotalLength": ("Gesamtlänge in m", 6),
}
Die Spaltensequenznummer auf 0 setzen, um die Spalte auszublenden.
column_units ist ein Wörterbuch mit den Schlüsseln „Diameter“, „RebarLength“, „RebarsTotalLength“ und den entsprechenden Einheiten als Wert. Beispiel: {
"Diameter": "mm",
"RebarLength": "m",
"RebarsTotalLength": "m",
}
dia_weight_map ist ein Wörterbuch mit dem Durchmesser als Schlüssel und dem entsprechenden Gewicht als Wert. Syntax: {
6: FreeCAD.Units.Quantity("0.222 kg/m"),
8: FreeCAD.Units.Quantity("0.395 kg/m"),
10: FreeCAD.Units.Quantity("0.617 kg/m"),
12: FreeCAD.Units.Quantity("0.888 kg/m"),
...,
}
rebar_length_type gibt den Typ der Bewehrungslänge an, der für die Berechnung des Biegungsplans verwendet wird; er kann „RealLength” oder „LengthWithSharpEdges” sein.reinforcement_group_by gibt an, wie Bewehrungsobjekte gruppiert werden sollen; dies kann „Mark” oder „Host” sein.font_family gibt die Schriftartfamilie des Datentextes an.font_size gibt die Schriftgröße des Datentextes an.column_width gibt die Breite jeder Spalte in der SVG-Datei der Biegeleiste an.row_height gibt die Höhe jeder Zeile in der SVG-Datei der Biegeleiste an.rebar_shape_column_header gibt die Spaltenüberschrift für die Spalte „Bewehrungsform” an.rebar_shape_view_directions ist eine Liste der Blickrichtungen für jede Bewehrungsform. Sie kann entweder vom Typ FreeCAD.Vector oder WorkingPlane.Plane ODER deren Liste sein. FreeCAD.Vector(0, 0, 0) beibehalten, um view_directions automatisch auszuwählen.rebar_shape_stirrup_extended_edge_offset gibt den Versatz der verlängerten Endkanten des Bügels an, sodass sich die Endkanten des Bügels mit einem Biegewinkel von 90 Grad nicht mit den Kanten des Bügels überlappen.rebar_shape_color_style gibt den Farbstil der Bewehrungsstäbe an. Dies kann „shape color” oder „color_name oder hex_value_of_color” sein. „shape color” bedeutet, dass die Farbe der Bewehrungsform ausgewählt wird.rebar_shape_stroke_width gibt die Strichstärke der Bewehrungsstäbe in der SVG-Datei der Bewehrungsform an.rebar_shape_include_dimensions gibt an, ob die Abmessungen jeder Bewehrungsstabkante und die Abmessungen des Biegewinkels in die SVG-Datei der Bewehrungsform aufgenommen werden sollen.rebar_shape_dimension_font_size gibt die Schriftgröße des Maßtextes in der SVG-Datei für die Bewehrungsform an.rebar_shape_edge_dimension_units gibt die Einheiten an, die für die Maße der Bewehrungskanten in der SVG-Datei für die Bewehrungsform verwendet werden sollen.rebar_shape_edge_dimension_precision gibt die Anzahl der Dezimalstellen an, die für die Länge der Bewehrung als Maßbeschriftung in der SVG-Datei mit der Bewehrungsform angezeigt werden sollen. Diesen Wert auf „None“ setzen, um die vom Benutzer bevorzugte Genauigkeit der Einheiten aus den FreeCAD-Einheiteneinstellungen zu verwenden.include_edge_dimension_units_in_dimension_label gibt an, ob die Einheiten für die Kantenlänge der Bewehrung in der Maßangabe in der SVG-Datei für die Bewehrungsform angezeigt werden sollen.rebar_shape_bent_angle_dimension_exclude_list gibt die Liste der Biegewinkel an, deren Maße nicht in die SVG-Datei für die Bewehrungsform aufgenommen werden sollen.helical_rebar_dimension_label_format gibt das Format der Bemaßungsbeschriftung für spiralförmige Bewehrungsstäbe in der SVG-Datei für die Bewehrungsform an. Z. B. „%L,r=%R,pitch=%P“, wobei:%L -> Länge der spiralförmigen Bewehrungsstäbe %R -> Helixradius von spiralförmigen Bewehrungsstäben %P -> Steigung der spiralförmigen Bewehrungsstäbe
output_file Gibt die Ausgabedatei an, in die die generierte SVG-Datei mit dem Biegungsplan geschrieben werden soll.
from pathlib import Path
import FreeCAD, Draft, Arch
from ColumnReinforcement import SingleTie
from BarBendingSchedule import BBSfunc
Rect1 = Draft.makeRectangle(400, 400)
Structure1 = Arch.makeStructure(Rect1, height=1600)
Structure1.ViewObject.Transparency = 80
Rect2 = Draft.makeRectangle(500, 500)
Structure2 = Arch.makeStructure(Rect2, height=1600)
Structure2.ViewObject.Transparency = 80
Structure2.Placement = FreeCAD.Placement(FreeCAD.Vector(1000, 0, 0), FreeCAD.Rotation(FreeCAD.Vector(0, 0, 1), 0))
FreeCAD.ActiveDocument.recompute()
# Create Straight Rebars
rebar_group = SingleTie.makeSingleTieFourRebars(
l_cover_of_tie=40,
r_cover_of_tie=40,
t_cover_of_tie=40,
b_cover_of_tie=40,
offset_of_tie=100,
bent_angle=135,
extension_factor=8,
dia_of_tie=8,
number_spacing_check=True,
number_spacing_value=10,
dia_of_rebars=16,
t_offset_of_rebars=40,
b_offset_of_rebars=40,
rebar_type="StraightRebar",
hook_orientation="Top Inside",
hook_extend_along="x-axis",
l_rebar_rounding=None,
hook_extension=None,
structure=Structure1,
facename="Face6",
).rebar_group
# Assign Mark to straight rebars
for straight_rebar in rebar_group.RebarGroups[1].MainRebars:
straight_rebar.Mark = "main_sb"
# Create LShaped Rebars with hook along x-axis
rebar_group = SingleTie.makeSingleTieFourRebars(
l_cover_of_tie=40,
r_cover_of_tie=40,
t_cover_of_tie=40,
b_cover_of_tie=40,
offset_of_tie=100,
bent_angle=90,
extension_factor=8,
dia_of_tie=8,
number_spacing_check=True,
number_spacing_value=10,
dia_of_rebars=16,
t_offset_of_rebars=-40,
b_offset_of_rebars=-40,
rebar_type="LShapeRebar",
hook_orientation="Top Outside",
hook_extend_along="x-axis",
l_rebar_rounding=2,
hook_extension=100,
structure=Structure2,
facename="Face6",
).rebar_group
# Assign Mark to lshape rebars
for lshape_rebar in rebar_group.RebarGroups[1].MainRebars:
lshape_rebar.Mark = "main_lb"
FreeCAD.ActiveDocument.recompute()
COLUMN_UNITS = {
"Diameter": "mm",
"RebarLength": "m",
"RebarsTotalLength": "m",
}
COLUMN_HEADERS = {
"Host": ("Member", 1),
"Mark": ("Mark", 2),
"RebarsCount": ("No. of Rebars", 3),
"Diameter": ("Diameter in " + COLUMN_UNITS["Diameter"], 4),
"RebarLength": ("Length in " + COLUMN_UNITS["RebarLength"] + "/piece", 5),
"RebarsTotalLength": ("Total Length in " + COLUMN_UNITS["RebarsTotalLength"], 6),
}
DIA_WEIGHT_MAP = {
6: FreeCAD.Units.Quantity("0.222 kg/m"),
8: FreeCAD.Units.Quantity("0.395 kg/m"),
10: FreeCAD.Units.Quantity("0.617 kg/m"),
12: FreeCAD.Units.Quantity("0.888 kg/m"),
14: FreeCAD.Units.Quantity("1.206 kg/m"),
16: FreeCAD.Units.Quantity("1.578 kg/m"),
18: FreeCAD.Units.Quantity("2.000 kg/m"),
20: FreeCAD.Units.Quantity("2.466 kg/m"),
22: FreeCAD.Units.Quantity("2.980 kg/m"),
25: FreeCAD.Units.Quantity("3.854 kg/m"),
28: FreeCAD.Units.Quantity("4.830 kg/m"),
32: FreeCAD.Units.Quantity("6.313 kg/m"),
36: FreeCAD.Units.Quantity("7.990 kg/m"),
40: FreeCAD.Units.Quantity("9.864 kg/m"),
45: FreeCAD.Units.Quantity("12.490 kg/m"),
50: FreeCAD.Units.Quantity("15.410 kg/m"),
}
output_file = str(Path.home() / "BarBendingSchedule.svg")
# Create Bar Bending Schedule for all rebars in model
BBSfunc.getBarBendingSchedule(
rebar_objects=None,
column_headers=COLUMN_HEADERS,
column_units=COLUMN_UNITS,
dia_weight_map=DIA_WEIGHT_MAP,
rebar_length_type="LengthWithSharpEdges",
reinforcement_group_by="Host",
font_family="DejaVu Sans",
font_size=5,
column_width=60,
row_height=30,
rebar_shape_column_header="Rebar Shape (" "mm)",
rebar_shape_view_directions=FreeCAD.Vector(0, 0, 0),
rebar_shape_stirrup_extended_edge_offset=2,
rebar_shape_color_style="shape color",
rebar_shape_stroke_width=0.35,
rebar_shape_include_dimensions=True,
rebar_shape_dimension_font_size=3,
rebar_shape_edge_dimension_units="mm",
rebar_shape_edge_dimension_precision=0,
include_edge_dimension_units_in_dimension_label=False,
rebar_shape_bent_angle_dimension_exclude_list=(45, 90, 180),
helical_rebar_dimension_label_format="%L,r=%R,pitch=%P",
output_file=output_file,
)