Resources Numerical accuracy
Calculations
Every calculation under our calculation policies: what it works out, its formula and the precision it runs at. Open one to see its code as it is in the released app.
Calculations
-
Joint merge
Reuses an existing joint when a new one is asked for at the same place.
Truss geometry, cut list and shop outputs addons/trusscraft/lib/geometry.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Member length and angle
The centerline length and the slope angle of a member between two joints.
len = √(Δx² + Δz²); angle = |atan2(Δz, Δx)| in degrees
Truss geometry, cut list and shop outputs addons/trusscraft/lib/geometry.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Frame of a named truss type
The joints and members of a king, queen, Howe, Pratt, Fink, scissor, mono or attic truss from span, pitch and overhang.
rise(x) = min(x, span − x) × tan(pitch); panel points at span × i ÷ n
Truss geometry, cut list and shop outputs addons/trusscraft/lib/geometry.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Bearing stubs under a raised heel
Adds a vertical stub under each heel joint when the heel is raised.
Truss geometry, cut list and shop outputs addons/trusscraft/lib/geometry.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Heel depth and raise
The heel depth the chords need at the outer face and how far a taller stated heel raises the truss.
needed = d_bottom ÷ 2 + d_top ÷ (2 cos pitch); raise = max(0, heel − needed)
Truss geometry, cut list and shop outputs addons/trusscraft/lib/geometry.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Roof section along a truss line
The height of the roof's underside along the line a truss stands on.
z = start + (n·p − c) ÷ speed on each face; highest face wins
Truss geometry, cut list and shop outputs addons/trusscraft/lib/profile.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Profile simplification
Removes repeated points and points that lie on a straight line between their neighbors.
Truss geometry, cut list and shop outputs addons/trusscraft/lib/profile.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Height of a profile at x
The profile's height at a distance along the truss.
z = z₀ + (z₁ − z₀)(x − x₀) ÷ (x₁ − x₀)
Truss geometry, cut list and shop outputs addons/trusscraft/lib/profile.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
What a profile is
Decides whether a roof section is a plain triangle, has a flat top, has a valley across it, and is symmetric.
Truss geometry, cut list and shop outputs addons/trusscraft/lib/profile.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Frame from a roof profile
The joints and members of a truss whose top chord follows the roof's section.
pitch = atan(slope of the first panel), or atan(steepest profile slope) when the left end stands on a post
Truss geometry, cut list and shop outputs addons/trusscraft/lib/profile.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Chord pieces
Joins chord members that run straight on through a joint into one piece of timber, with its length.
joined when acos(|u·v|) < 0.5°; len = √(Δx² + Δz²)
Truss geometry, cut list and shop outputs addons/trusscraft/lib/cutlist.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Cut length and end angles
The length to cut each piece and the angle of each end cut.
cut = joint length − set_A − set_B + (d ÷ 2)(tan A + tan B); web set = (host depth ÷ 2) ÷ max(0.2, sin φ)
Truss geometry, cut list and shop outputs addons/trusscraft/lib/cutlist.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Member list values
The length, angle, force and utilization shown for each member.
Truss geometry, cut list and shop outputs addons/trusscraft/lib/cutlist.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Joint schedule and plate choice
The members meeting at each joint with their angles and forces, and the first plate of the table that fits.
plate: capacity ≥ largest |force| and min(w, h) ≥ min(deepest member + 25, 152)
Truss geometry, cut list and shop outputs addons/trusscraft/lib/cutlist.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Bird's mouth cut
The plumb cut of a rafter seat and the depth left above it.
plumb = seat × tan(pitch); left = depth − plumb × cos(pitch)
Truss geometry, cut list and shop outputs addons/trusscraft/lib/cutlist.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Jig drawing at full size
The outline of every member on the 1:1 jig sheet.
corner = joint ± (−Δz, Δx) ÷ L × d ÷ 2
Truss geometry, cut list and shop outputs addons/trusscraft/lib/fab.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Stock plan
Nests the cut pieces of a truss set onto stock lengths and lists them as CSV.
Truss geometry, cut list and shop outputs addons/trusscraft/lib/fab.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Member as a solid
A closed box for one member from its two end points, depth and thickness, with its volume.
V = |Σ a · (b × c) ÷ 6| over the 12 triangles
Truss geometry, cut list and shop outputs addons/trusscraft/lib/bodies.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Members placed in plan and height
The 3D end points of every member of a laid-out truss.
p = a + x × (b − a) ÷ span; z = z₀ + node z + raise + base
Truss geometry, cut list and shop outputs addons/trusscraft/lib/bodies.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
STL export
The truss set written as an ASCII STL file.
text = round(v × 1000) ÷ 1000
Truss geometry, cut list and shop outputs addons/trusscraft/lib/bodies.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
OBJ export
The truss set written as an OBJ file.
Truss geometry, cut list and shop outputs addons/trusscraft/lib/bodies.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Millimeters to drawing coordinates
Places truss drawings in a CadCraft drawing at a point and a scale.
X = at_x + x × k; Y = at_y + y × k
Truss geometry, cut list and shop outputs addons/trusscraft/lib/cadplan.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Member outlines in the elevation
The closed outline drawn for each member in the truss elevation.
corner = joint ± (−Δz, Δx) ÷ L × d ÷ 2
Truss geometry, cut list and shop outputs addons/trusscraft/lib/cadplan.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Force labels in the force diagram
The force written beside each member.
Truss geometry, cut list and shop outputs addons/trusscraft/lib/cadplan.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Schedule rows in the drawing
The cut list and joint schedule as rows of a table drawn in CadCraft.
Truss geometry, cut list and shop outputs addons/trusscraft/lib/cadplan.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Dimension labels on the elevation picture
The span, overhang, pitch, rise and heel written on the truss elevation.
Truss geometry, cut list and shop outputs addons/trusscraft/lib/drawing.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Outline area
The signed area of the roof outline.
A = ½ Σ (xᵢ yᵢ₊₁ − xᵢ₊₁ yᵢ)
Truss layout over a roof addons/trusscraft/lib/layout.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Where a truss line crosses the outline
The points where a station line enters and leaves the roof outline.
v = a_v + (u − a_u) ÷ (b_u − a_u) × (b_v − a_v)
Truss layout over a roof addons/trusscraft/lib/layout.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Trusses along an outline
The station, end points and span of each truss over a plain outline, and the actual spacing.
bays = ceil(length ÷ spacing); step = length ÷ bays; span = v₁ − v₀
Truss layout over a roof addons/trusscraft/lib/layout.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Ridge direction
The direction the ridge runs, which the trusses span across.
Truss layout over a roof addons/trusscraft/lib/roofset.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Valley pairs of a roof plan
Finds pairs of valley lines that meet at a wing's ridge, with the wing's axis and reach.
Truss layout over a roof addons/trusscraft/lib/roofset.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Valley truss set
The span, rise, base height and position of each valley truss of a wing roof over a main roof.
ridge height = (W ÷ 2) tan(wing pitch); rise = d × tan(main pitch); span = 2 d tan(main pitch) ÷ tan(wing pitch)
Truss layout over a roof addons/trusscraft/lib/roofset.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Stations along the ridge
The truss stations of a roof and the stretches of each station that lie inside the outline.
bays = ceil(length ÷ spacing); u = u₀ + inset + i × step
Truss layout over a roof addons/trusscraft/lib/roofset.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
A truss from a roof section
Decides the form of the truss at a station, its design key, and the values stored for it.
common truss pitch = atan(2 × apex ÷ span)
Truss layout over a roof addons/trusscraft/lib/roofset.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Jack trusses in a hip end
The jack and corner trusses between the end wall and a girder truss, and where each bears on the girder.
count = ceil((width − 2 × inset) ÷ spacing); v = v₀ + inset + k × step
Truss layout over a roof addons/trusscraft/lib/roofset.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Member lines for the picture
The 3D end points of every member, for drawing.
Truss layout 3D picture addons/trusscraft/lib/view3d.js32-bit, display only- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
View projection
Turns 3D points into picture coordinates for a view direction.
x′ = x cos A − y sin A; y′ = −(z cos E + (x sin A + y cos A) sin E)
Truss layout 3D picture addons/trusscraft/lib/view3d.js32-bit, display only- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Picture output
Scales the projected lines to the picture size and writes them as SVG.
Truss layout 3D picture addons/trusscraft/lib/view3d.js32-bit, display only- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Height of a roof face over a point
The height of a face's plane above a plan point.
z = start + (n·p − c) ÷ speed
Roof faces, ridges and areas from an outline addons/trusscraft/lib/bim/res-skeleton.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Solver tolerance
Sets the tolerance every merge, split and overlap test in the roof solver uses.
scale = max(1, width, depth of the outline); eps = 1e-7 × scale
Roof faces, ridges and areas from an outline addons/trusscraft/lib/bim/res-skeleton.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Edge lines
The direction, inward normal and line offset of each eave edge.
u = (b − a) ÷ |b − a|; n = (−u_y, u_x); c = n·a
Roof faces, ridges and areas from an outline addons/trusscraft/lib/bim/res-skeleton.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Corner velocity
How a corner of the shrinking polygon moves per unit of height.
n_a·v = v_a; n_b·v = v_b; determinant = n_a × n_b
Roof faces, ridges and areas from an outline addons/trusscraft/lib/bim/res-skeleton.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Next event height
Finds the height at which the polygon next changes: an edge starts to move, an edge shrinks to nothing, or a reflex corner reaches another edge.
collapse: t = T + length ÷ closing rate; split: t = T + distance ÷ approach rate
Roof faces, ridges and areas from an outline addons/trusscraft/lib/bim/res-skeleton.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Advance to the event
Moves every corner to the event height and records its path as a roof line and a face boundary.
p′ = p + v × (t_next − T)
Roof faces, ridges and areas from an outline addons/trusscraft/lib/bim/res-skeleton.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Clean-up after an event
Merges corners that met, removes edges folded onto each other as ridges, splits a loop a corner has cut, and closes loops with no area left.
Roof faces, ridges and areas from an outline addons/trusscraft/lib/bim/res-skeleton.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Shared part of two folded edges
The stretch two opposite edges on one line have in common, which becomes a ridge.
Roof faces, ridges and areas from an outline addons/trusscraft/lib/bim/res-skeleton.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Face boundaries chained into polygons
Joins the boundary pieces of a face into closed loops.
Roof faces, ridges and areas from an outline addons/trusscraft/lib/bim/res-skeleton.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Collinear points removed from a face
Drops points of a face polygon that lie on the line between their neighbors.
removed when |u × v| ÷ max(|u|, |v|) ≤ tolerance
Roof faces, ridges and areas from an outline addons/trusscraft/lib/bim/res-skeleton.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Roof lines joined end to end
Joins the pieces of one ridge, hip or valley into a single line.
joined when ends meet within tolerance and cos θ ≥ 1 − 1e-9
Roof faces, ridges and areas from an outline addons/trusscraft/lib/bim/res-skeleton.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Faces kept
Builds each face's plan polygon and drops slivers.
Roof faces, ridges and areas from an outline addons/trusscraft/lib/bim/res-skeleton.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
A calculation is added only after its source was read. Each statement can be checked in the code shown on its policy's page; the app repositories are public. When a release changes a calculation, its page says so until it has been read again.