Calculeaf Features Blog Guide Pricing Open app

2D structural frames

A 2D Frame is a structural sketch on the page: nodes, members, supports, and loads. Solve runs a linear-elastic plane-frame analysis (three degrees of freedom per node: ux, uy, rz). Result names enter worksheet scope at the frame’s place in evaluation order, so math below the frame can use reactions, member forces, deflections, and stresses like any other variable.

A 2D frame region showing a simply-supported beam, sketch tools, deflection, reactions, and the Details side panel.
2D Frame. Tools on top, sketch in the middle, Details on the side. Solve writes names such as ss_RyA into the sheet.

Place a frame

  1. On the Insert tab, choose 2D Frame (tooltip: Insert 2D frame — sketch members, supports and loads, then solve).
  2. Click the page. An empty frame region appears with the toolbar, a blank sketch, and the Details panel open on Selection.
  3. Set Unit and Prefix before you sketch if you already know them — changing Unit later rescales the same numbers; Prefix is prepended to every result name.

The status bar starts with: Sketch nodes and members, add supports and loads, then Solve. An unstable or unsupported model shows an error there instead of writing names.

Sketch tools

The first toolbar row:

  • Select — move nodes and members. Shift-click a member, or ⌘-click / Ctrl-click , to add members to the selection. Alt-drag, right-drag, or middle-drag to pan. With Callouts on, click a diagram to pin a value.
  • Node — click empty space to place a joint. Click a member to split it at that station (the original member becomes two, sharing the new node).
  • Member — click two nodes to connect them. A rubber band follows the pointer after the first click.
  • Load — click a node for a joint load (Fx, Fy, M), or a member for a member load (point or UDL).
  • Delete — click a support symbol to remove that support (the node stays). Or delete the current selection (node, member, or load).
  • Solve — analyse the frame (tooltip: Solve the frame). The region also re-solves when you change a property that affects the model.

Unit, Prefix, and Snap

  • Unit — length unit for the sketch coordinates and distance fields: m, mm, cm, ft, in. Node x / y and load distances are in this unit.
  • Prefix — short identifier prepended to every result name (max 16 characters, must be a valid name). Default is fr. Use a different prefix on each frame so two frames on one sheet do not collide — the demo beam uses ss.
  • Snap — when ticked, node placement snaps to the spacing in the number field (shown in the current Unit). Untick to place freely.

A typical workflow

  1. Choose Unit (m for a building frame, mm for a detail).
  2. Set Prefix (for example ss or portal).
  3. Node — place joints. Select each node and set Support and a short Label (A, B, C). Labels become the suffix on result names.
  4. Member — connect the nodes. Select each member, set End i / End j releases, and assign a Section.
  5. Open Details → Sections, add a section, set E and dimensions, then Apply to selected or Apply to all.
  6. Load — click nodes and members. Type magnitudes as numbers or as sheet variable names defined above the frame.
  7. Press Solve. Tick the view overlays you need, then Fit so the whole model sits in the canvas.
  8. In math below the frame, type the Prefix and pick names from autocomplete — ss_RyA =, ss_MmAB =.

Supports

Select a node. Details → Selection shows x, y, Support, and Label. Support types:

SupportRestrainedFree
Freenoneux, uy, rz
Pinux, uyrz (rotation)
Fixedux, uy, rz
Rolleruy (vertical)ux, rz — a horizontal roller
V-rollerux (horizontal)uy, rz — a vertical-wall roller

After Solve, the same panel lists Deflections (x, y, Total, rz) and Reactions for the restrained directions only (Rx, Ry, M).

Details Selection panel for node A with Support set to Pin and reaction results after Solve.
Selection for a node. Support and Label drive both the sketch symbol and the result-name suffix (A → ss_RyA).

Members

Select a member. Selection shows:

  • Label — suffix on member result names (AB → ss_MmAB).
  • Length — read-only, from the two nodes and the current Unit.
  • End i / End jFixed (moment-resisting) or Pin (released moment at that end). Use Pin at both ends for a truss bar; Fixed–Fixed for a beam-column.
  • Section — pick from the Sections catalogue. A preview shows A, I, and c (extreme-fiber distance) once dimensions are valid.
  • Add load — attaches a member load without switching to the Load tool.

Shift-click several members to assign one section to all of them. After Solve, Selection lists peak Forces (Moment, Shear, Axial), Stresses (if a section is assigned), and Deflections, each with a station along the member.

Without a section, Solve still runs using the frame defaults (E, A, I). Stress overlays and stress names need a section on that member.

Loads

Magnitudes accept a number or a sheet variable defined above the frame (placeholder: number or variable). Sign convention: the sketch Y axis points up, so a downward force or UDL is a negative number.

Nodal load

Click a node with the Load tool. Selection title: Nodal load.

  • Fx, Fy — global components.
  • M — in-plane moment. The unit follows the force unit (N → N·m, kN → kN·m, lbf → lbf·ft, kip → kip·ft).
  • Unit — N, kN, MN, lbf, kip.

Member load — Point

Click a member. Type can be Point or UDL. For Point:

  • Fx, Fy — global components.
  • From — which end the distance is measured from (end i or end j).
  • Dist — distance from that end, in the frame Unit or a sheet variable.
  • Unit — same force units as a nodal load.

Member load — UDL

  • DirGlobal Y (sketch vertical) or Local y (perpendicular to the member).
  • From, Start, End — the loaded segment, measured from the chosen end. Leave Start at 0 and End at the member length for a full-span UDL.
  • w1, w2 — intensity at Start and End. Equal values are a uniform load; different values are a trapezoid / triangle.
  • Unit — N/m, kN/m, N/mm, lbf/ft, kip/ft.

Sections

Details → Sections is the catalogue for this frame. Pick a type, press Add, then edit the selected section:

  • Name — shown in the list and in the member Section dropdown.
  • Type — I-beam, Square hollow (SHS), Rectangular hollow (RHS), Circular hollow (CHS), Angle, Circular bar, Square bar.
  • Dims — unit for the dimension fields: mm, cm, m, in, ft (independent of the sketch Unit).
  • E — Young’s modulus, number or sheet variable, with unit Pa, kPa, MPa, GPa, psi, or ksi.
  • Axis — on I-beam, RHS, and Angle: Strong / Weak (Angle also has X-X and Y-Y). This picks which I is used in bending.
  • Dimension fields — numbers or sheet variables. A diagram labels each size (h, b, tw, tf on an I-beam; B, t on SHS; and so on).
  • Preview — A, I, and c once the dimensions are valid.
  • Apply to selected / Apply to all — assign this section to members.
  • Delete section — removes it from the catalogue (members that used it lose the assignment).
Details Sections tab with an I-beam editor, dimension diagram, and A / I / c preview.
Sections. Add a type, set E and dimensions (numbers or sheet variables), then Apply to selected or Apply to all.
TypeDimensions
I-beamh overall depth, b flange width, tw web, tf flange
Square hollowB outer width, t wall
Rectangular hollowH outer depth, B outer width, t wall
Circular hollowD outer diameter, t wall
Angled vertical leg, b horizontal leg, t thickness
Circular bard diameter
Square bara side

View overlays

The second toolbar row, after a successful Solve:

  • Deflection — dashed displaced shape (on by default).
  • Moment, Shear, Axial — force diagrams along each member.
  • Stress — combined stress diagram. Members without a section have nothing to draw.
  • Reactions — support arrows and values (on by default).
  • Callouts — hover a diagram for values; click to pin. Off by default.
  • Scale — 20–100% slider for diagram amplitude (moment, shear, axial, stress, deflection).
  • Fit — frames the whole model in the canvas (tooltip: Fit the frame in view). Use this after you sketch, or if Details is covering a support.
  • Zoom readout — current camera zoom. Scroll the sketch to zoom; Alt / right / middle-drag to pan.

Grid lives on the status bar, not the toolbar. Hide / Tools on the sketch collapses the toolbar. Details re-opens the side panel if you hid it; the panel’s own Hide collapses it.

Callouts

Tick Callouts. Hover a moment, shear, axial, stress, or deflection diagram — a tooltip follows the station. Click to pin it. Click a pinned callout to remove that one. Pins are stored with the region.

Result names

After Solve, names appear in autocomplete for math below the frame. The pattern is {Prefix}_{quantity}{Label} — one underscore only. A node labelled B becomes ss_uyB, not ss_uy_B. If a label is empty, the node or member id is used.

Whole-model peaks

NameMeaningUnit
{p}_dmaxPeak resultant deflectionm
{p}_MmaxPeak bending momentN·m
{p}_VmaxPeak shearN
{p}_NmaxPeak axial forceN
{p}_axmaxPeak axial stressPa
{p}_bmaxPeak bending stressPa
{p}_tmaxPeak shear stressPa
{p}_smaxPeak combined stressPa

Per node (label A)

NameMeaning
{p}_uxA, {p}_uyA, {p}_rzADisplacement and rotation
{p}_RxA, {p}_RyA, {p}_RmAReactions (only if the node is restrained)

Per member (label AB)

NameMeaning
{p}_NAB, {p}_VABAxial and shear at end i
{p}_MiAB, {p}_MjABMoments at ends i and j
{p}_NmAB, {p}_VmAB, {p}_MmABPeak axial, shear, moment on the member
{p}_dxAB, {p}_dyAB, {p}_dABPeak |ux|, |uy|, and resultant deflection
{p}_axAB, {p}_bAB, {p}_tAB, {p}_sABPeak axial, bending, shear, and combined stress

On the demo beam (Prefix ss, pin A, roller B, 6 m span, UDL −8 kN/m) you can write:

ss_RyA =
ss_RyB =
ss_MmAB =
ss_dmax =

Display units follow the sheet unit system (SI shows kN and mm when the values are large or small; USCS uses lbf / kip and inches). Pin a display unit on the result chip the same way as any math region.

Evaluation and the rest of the sheet

The frame is a region. It participates in Evaluate All at its order / position. Loads and section dimensions that reference sheet variables read those names from scope above the frame. Results are then available below it — including as the output of a plot sweep or a sweep table.

Copy and paste the region like any other block. The Prefix, sections, and callouts travel with it. Delete removes the sketch and its names from the next evaluate.