Section library (.ohlsec)#

A section library holds standard profiles — angles, channels, I and H sections, tubes, round bars, pole shafts — and their materials. A structure at level 3 refers to its sections there by id, so every structure of a project line shares one set of profiles (see How structures refer to it). OpenOHL computes each profile's properties from its dimensions; values you give replace the computed ones.

All profiles are your data (supplier tables, drawings). OpenOHL ships only an invented example, libraries/sections/example-sections.ohlsec, with one profile of each shape — its dimensions are made up.

The file is TOML with units on every quantity, like the other libraries; an unknown key is an error that names it.

format = "ohl-sections"          # optional header
version = 1
name = "Project sections"
description = "Angles and tubes of the tower family"
default_material = "steel-a"     # for sections naming no material

[[material]]
id = "steel-a"                   # letters, digits, - _ .
name = "Steel A"
elasticity = "210 GPa"           # E
shear_modulus = "81 GPa"         # G (default E / 2.6)
density = "7850 kg/m3"           # default 0
yield = "355 MPa"                # fy, optional
ultimate = "490 MPa"             # fu, optional
partial_factors = { gamma_m0 = 1.0, gamma_m1 = 1.1 }   # optional, by name

[[section]]
id = "L-61x7"
name = "Angle 61 × 7"
description = ""
shape = "equal_angle"
material = "steel-a"             # optional: default_material
h = "61 mm"
t = "7 mm"
r = "8 mm"                       # root radius (default 0)

Partial factors are kept by name for the code checks (plugins) that will use them; OpenOHL itself does not read them.

Shapes#

Section axes: y along the width b, z along the height h. iy is about y — the strong axis of an I section. Positions (the centroid) are measured from the lower left of the profile's outline box: the heel of an angle, the back of a channel's web at its bottom flange.

shape Dimensions Drawn as
equal_angle h, t, r legs h along y and z from the heel
unequal_angle h (along z), b (along y), t, r the same
channel h, b, tw, tf, r web along z, flanges towards +y, parallel flanges
i_section h, b, tw, tf, r I and H sections, parallel flanges
rectangular_hollow h, b, t sharp corners
circular_hollow d (outside), t tube
round_bar d solid
polygonal_hollow sides, d (across flats), t a pole's shaft, a side at the bottom
general h, b (outline box) nothing computed: give area, iy, iz (and what else is needed)

r (root radius, the fillets between the plates) may be left out (0). A dimension a shape does not take is an error ("b is not a dimension of equal_angle").

Properties#

Computed for every shape (Section::properties):

Property Key to give it Unit (no heading)
area A area mm2, cm2
second moments about y, z iy, iz cm4, mm4, in4 about the centroid
product ∫yz dA, principal values and angle iu, iv cm4 angles: u major, v minor
torsion constant it cm4 see below
elastic moduli about y, z (and u, v) wel_y, wel_z cm3, mm3, in3 second moment over the farthest fibre
plastic moduli about y, z wpl_y, wpl_z cm3 about the axis halving the area
radii of gyration about y, z, u, v gyration_y, gyration_z, gyration_u, gyration_v mm √(I / A)
shear areas along y, z shear_area_y, shear_area_z mm2 see below

A given value replaces the computed one; radii of gyration you do not give follow from the final area and second moments, principal values you do not give from the final iy, iz.

What is exact and what is approximate:

  • Area, centroid, second moments, principal axes, elastic and plastic moduli are exact for the drawn shape, root radii included. Not drawn: the toe radii of angles and flanges, sloped flanges, the corner radii of rectangular tubes (sharp corners). For a profile whose table values include those, give the table's values.
  • Torsion constant: exact for tubes and round bars; Bredt's formula on the mid-wall line for rectangular and polygonal tubes; the sum of b·t³/3 over the plates for angles, channels and I sections (fillets left out).
  • Shear areas: the plates parallel to the shear for angles, channels, I sections (web between the flanges; both flanges) and rectangular tubes (in proportion to the sides); half the area for round and polygonal tubes; 0.9 A for a round bar.
  • A general section has only what you give; its elastic and plastic moduli and torsion constant stay unknown unless given.

Wind on the profile#

The body wind of a level 3 structure is computed from the surface of its profiles (the member wind of the finite-element check). Section::wind_width(direction) gives the profile's width seen by the wind: the extent of its outline normal to a wind blowing in the section's plane at direction (from y towards z). Per metre of member, the projected area is that width × 1 m (wind_area_per_length).

Approximation: the silhouette of the whole outline. An angle's two legs do not shield each other (at 45° the width is the diagonal extent of the legs), a tube's width is its diameter in every direction, and no drag factor is applied here — the structure model's drag is the one factor the member wind applies; shielding and the solidity rules of a lattice face from a code are a later step. A general section's width is that of its outline box.

Several files#

The applications and ohl read one section library: the project line's, or the file or folder given. Libraries can be merged in code (SectionLibrary::merge: a section or material whose id is already there is left out, the earlier one wins); a user's own section library beside the project's is not read yet. In one file an id given twice is an error; a folder of .ohlsec files is read in name order, an id in two of them an error. A material a section names may be in another file read together; a material missing from all of them is reported.

How structures refer to it#

A member of a structure (in its type's .ohls, or a separate .ohlfe model) names its section by id,

[[member]]
id = "leg1"
nodes = ["B1", "A1"]
section = "L-61x7"

and the id is looked up in the project's section library first, then in the structure's own [[section]] tables (read by the finite-element check, Structure analysis): the profile's properties and its material's E, G, density and yield. An id in neither is refused, naming it. A structure file alone does not check its ids against a library: the structure model does, when it is built.

In a project the section library is stored like the other library kinds of the project file, per project line (kind sections), so every structure of the line uses the same profiles: when the project opens without one, the .ohlsec files of the Sections/ folder next to it (else those next to it) are copied in — never the shipped example — and exported with the other libraries (see Library editors). For a line file the Sections/ folder (else the files next to it) is read directly. ohl line and ohl structures fe take --sections <file|folder>; ohl line reads the Sections/ folder next to the line by default.

Member groups (one section for many members) are set in the structure application (Design › Groups): the group's section is written on each of its members, so it resolves the same way.

View this page's source on GitHub