[2]:
import opstool as opst
cover_d = 0.05
all_ = opst.add_circle(xo=[0, 0], radius=0.75)
core = opst.add_circle(xo=[0, 0], radius=0.75 - cover_d)
cover = all_ - core
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.assign_ops_matTag(dict(cover=1, core=2))
sec.mesh()
# add rebars
rebars = opst.Rebars()
rebars.add_rebar_circle(xo=[0, 0], radius=0.75 - 0.026 / 2 - cover_d,
dia=0.026, gap=0.15, matTag=3)
# add to the sec
sec.add_rebars(rebars)
#----------------------------------------------------------------
sec.get_sec_props(display_results=True, plot_centroids=False)
sec.centring()
# sec.rotate(45)
sec.view(fill=True, engine='plotly', save_html=None, on_notebook=True)
Section Properties ┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ Symbol ┃ Value ┃ Definition ┃ ┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ │ A │ 1.760E+00 │ Cross-sectional area │ │ Asy │ 1.508E+00 │ Shear area y-axis │ │ Asz │ 1.508E+00 │ Shear area z-axis │ │ centroid │ (7.886E-18, 1.602E-18) │ Elastic centroid │ │ Iy │ 2.465E-01 │ Moment of inertia y-axis │ │ Iz │ 2.465E-01 │ Moment of inertia z-axis │ │ Iyz │ -3.930E-18 │ Product of inertia │ │ Wyt │ 3.286E-01 │ Section moduli of top fibres y-axis │ │ Wyb │ 3.286E-01 │ Section moduli of bottom fibres y-axis │ │ Wzt │ 3.286E-01 │ Section moduli of top fibres z-axis │ │ Wzb │ 3.286E-01 │ Section moduli of bottom fibres z-axis │ │ J │ 4.929E-01 │ Torsion constant │ │ phi │ 0.000E+00 │ Principal axis angle │ │ mass │ 1.760E+00 │ Section mass │ │ rho_rebar │ 8.749E-03 │ Ratio of reinforcement │ └───────────┴────────────────────────┴────────────────────────────────────────┘