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
-
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
-
Velocity beyond a wall
The value used just outside the region so that the velocity at a wall equals the wall's own.
u_ghost = 2 × u_wall − u_inside
2D flow solver (finite volume) cfd/fv.js64-bit- CadCraft
-
Value at a cell face
The value carried across a cell face by the flow.
central ½(a + b) when |u| h ÷ ν ≤ 2, else the upwind value
2D flow solver (finite volume) cfd/fv.js64-bit- CadCraft
-
Time step
The largest stable time step for the current velocities.
dt = min(0.4 h ÷ u_max, 0.2 h² ÷ ν, 0.8 ν ÷ u_max²)
2D flow solver (finite volume) cfd/fv.js64-bit- CadCraft
-
Momentum step for u
The predicted x velocity at each face after one time step.
u* = u + dt (−convection + ν ∇²u + source)
2D flow solver (finite volume) cfd/fv.js64-bit- CadCraft
-
Pressure equation
Sets up the pressure equation that makes the velocity field divergence-free.
∇²p = (∇·u*) ÷ dt
2D flow solver (finite volume) cfd/fv.js64-bit- CadCraft
-
Pressure solve
Solves the pressure equation by conjugate gradient.
2D flow solver (finite volume) cfd/fv.js64-bit- CadCraft
-
Velocity correction
Removes the pressure gradient from the predicted velocities.
u = u* − dt (p_right − p_left) ÷ h
2D flow solver (finite volume) cfd/fv.js64-bit- CadCraft
-
Tracer transport
Moves a tracer with the flow and lets it diffuse, one time step.
limiter φ(r) = (r + |r|) ÷ (1 + |r|); C′ = C − dt (∇·flux) + dt × source
2D flow solver (finite volume) cfd/fv.js64-bit- CadCraft
-
Run to a steady state
Steps the flow until it stops changing or a limit is reached.
change = max |u′ − u| ÷ dt
2D flow solver (finite volume) cfd/fv.js64-bit- CadCraft
-
Velocity at cell centers
The velocity at the center of each cell.
u_c = ½(u_left + u_right); v_c = ½(v_bottom + v_top)
2D flow solver (finite volume) cfd/fv.js64-bit- CadCraft
-
Velocity at a point
The velocity at any point of the region.
2D flow solver (finite volume) cfd/fv.js64-bit- CadCraft
-
Stream function
The stream function at the cell corners.
ψ(i, j) = ψ(i, j − 1) + U(i, j − 1) × h_y
2D flow solver (finite volume) cfd/fv.js64-bit- CadCraft
-
VTK export
Writes velocity, pressure and tracer fields as a legacy ASCII VTK file.
2D flow solver (finite volume) cfd/fv.js64-bit- CadCraft
-
Mixing time
The time at which a tracer's spread falls below a target.
CV = √(Σ (c − mean)² ÷ n) ÷ mean
2D flow solver (finite volume) cfd/fv.js64-bit- CadCraft
-
Lattice directions and weights
The nine directions of the lattice and the weight of each.
w = 4/9, 1/9 (×4), 1/36 (×4)
2D mixing solver (lattice Boltzmann) cfd/lbm.js64-bit- CadCraft
-
Mixer set-up
Creates the grid, the solid mask, the force field and the starting distributions.
2D mixing solver (lattice Boltzmann) cfd/lbm.js64-bit- CadCraft
-
Equilibrium distributions
The equilibrium the flow and the tracer relax toward.
f_eq = w ρ (1 + 3 c·u + 4.5 (c·u)² − 1.5 u²); g_eq = w C (1 + 3 c·u)
2D mixing solver (lattice Boltzmann) cfd/lbm.js64-bit- CadCraft
-
Collision step
Density, velocity and tracer value of each cell, and the relaxation of its distributions.
ρ = Σ f; u = (Σ f c + ½ F) ÷ ρ; f ← f − (f − f_eq) ÷ τ + source
2D mixing solver (lattice Boltzmann) cfd/lbm.js64-bit- CadCraft
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.