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

get_rebars_num()[source]#

Returns the number of rebars in each layer.

Returns#

list[int]

The number of rebars in each layer.

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')
../../_images/sec.Rebars_2_5.png