Rebars#
- class opstool.preprocessing.Rebars[source]#
A class to create the rebar point.
- add_rebar_circle(xo, radius, dia, gap, n=None, angle1=0.0, angle2=360, matTag=None, color='black', group_name=None)[source]#
Add the rebars along a circle.
Parameters#
- xolist[float, float]
Center coords, [(xc, yc)].
- radius: float
radius.
- diafloat
rebar dia.
- gapfloat
Rebar space
- nNone
The number of rebars, if not None, update the Arg gap according to n.
- angle1float
The start angle, degree
- angle2float
The end angle, deree
- matTagint
OpenSees mat Tag for rebar previously defined.
- colorstr or rgb tuple.
Color to plot rebar.
- group_namestr
Assign rebar group name.
Returns#
None
- add_rebar_line(points, dia, gap, n=None, closure=False, matTag=None, color='black', group_name=None)[source]#
Add rebar along a line, can be a line or polygon.
Parameters#
- pointslist[list[float, float]]
A list of rebar coords, [(x1, y1), (x2, y2),…,(xn, yn)]
- diafloat
Rebar dia.
- gapfloat
Rebar space.
- nNone
The number of rebars, if not None, update the Arg gap according to n.
- closure: bool, default=False
If True, the rebar line is a closed loop.
- matTagint
OpenSees mat Tag for rebar previously defined.
- colorstr or rgb tuple.
Color to plot rebar.
- group_namestr
Assign rebar group name
Returns#
None
Example#
import opstool as opst
outlines = [[0, 0], [2, 0], [2, 2], [0, 2]]
coverlines = opst.offset(outlines, d=0.05)
cover = opst.add_polygon(outlines, holes=[coverlines])
holelines = [[0.5, 0.5], [1.5, 0.5], [1.5, 1.5], [0.5, 1.5]]
core = opst.add_polygon(coverlines, holes=[holelines])
sec = opst.SecMesh()
sec.assign_group(dict(cover=cover, core=core))
sec.assign_mesh_size(dict(cover=0.02, core=0.05))
sec.assign_group_color(dict(cover="gray", core="green"))
sec.mesh()
Add Rebars:
# add rebars
rebars = opst.Rebars()
rebar_lines1 = opst.offset(outlines, d=0.05 + 0.032 / 2)
rebars.add_rebar_line(
points=rebar_lines1, dia=0.032, gap=0.1, color="red",
)
rebar_lines2 = opst.offset(holelines, d=-(0.05 + 0.02 / 2))
rebars.add_rebar_line(
points=rebar_lines2, dia=0.020, gap=0.1, color="black",
)
rebar_lines3 = [[0.3, 0.3], [1.7, 0.3], [1.7, 1.7], [0.3, 1.7]]
rebars.add_rebar_line(
points=rebar_lines3, dia=0.026, gap=0.15, closure=True,
color="blue",
)
# add to the sec
sec.add_rebars(rebars)
Visualization:
sec.get_sec_props(display_results=False, plot_centroids=False)
sec.centring()
sec.view(fill=True, engine='mpl')