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
-
Symbol drawn at its size
Scales the unit-size symbol shapes to the placed symbol's length.
v′ = v × k
P&ID line geometry and connections addons/pid/lib/symbols.js64-bit- CadCraft
-
Symbol turned and moved
Rotates symbol entities about the origin and moves them to a point.
x′ = pₓ + x cos θ − y sin θ; y′ = p_y + x sin θ + y cos θ
P&ID line geometry and connections addons/pid/lib/symbols.js64-bit- CadCraft
-
Size units per drawing unit
How many inches or millimeters one drawing unit is.
factor = (meters per drawing unit) ÷ 0.0254 or ÷ 0.001
Pipe runs: layout, 3D solid and schedule addons/piping/lib/mep-core.js64-bit- CadCraft
-
Feet per drawing unit
The factor that turns drawing units into feet for the takeoff export.
feet = (meters per drawing unit) ÷ 0.3048
Pipe runs: layout, 3D solid and schedule addons/piping/lib/mep-core.js64-bit- CadCraft
-
Segments of a run
Each straight stretch of a run with its length, unit direction, left normal and distance from the start.
t = (b − a) ÷ |b − a|; n = (−t_y, t_x); s₀ = Σ earlier lengths
Pipe runs: layout, 3D solid and schedule addons/piping/lib/mep-core.js64-bit- CadCraft
-
Point at a distance along a run
The point a given distance along the centerline.
Pipe runs: layout, 3D solid and schedule addons/piping/lib/mep-core.js64-bit- CadCraft
-
Nearest point on a run
The point of a run's centerline closest to a given point.
at = clamp((p − a)·t, 0, length)
Pipe runs: layout, 3D solid and schedule addons/piping/lib/mep-core.js64-bit- CadCraft
-
Turn between two directions
The signed angle from one direction to the next.
turn = atan2(t₁ × t₂, t₁ · t₂)
Pipe runs: layout, 3D solid and schedule addons/piping/lib/mep-core.js64-bit- CadCraft
-
Bend at a corner
Where an elbow starts and ends, its center and its angles.
T = R × tan(θ ÷ 2); p₁ = V − t_in T; p₂ = V + t_out T; c = p₁ + n_in R
Pipe runs: layout, 3D solid and schedule addons/piping/lib/mep-core.js64-bit- CadCraft
-
Cross-section outline
The points of a rectangular, round or flat-oval section used to build the 3D solid.
round: (r cos a, r + r sin a), a = −¾π + 2πj ÷ N
Pipe runs: layout, 3D solid and schedule addons/piping/lib/mep-core.js64-bit- CadCraft
-
Signed volume of a closed mesh
The volume enclosed by a set of polygons, positive when the faces point outward.
V = Σ a · (b × c) ÷ 6 over the fan triangles of each face
Pipe runs: layout, 3D solid and schedule addons/piping/lib/mep-core.js64-bit- CadCraft
-
Solid through a row of sections
One closed solid from the cross-sections along a run, with its two ends capped.
Pipe runs: layout, 3D solid and schedule addons/piping/lib/mep-core.js64-bit- CadCraft
-
Numbers in CSV exports
How a number cell is written in a CSV file.
Pipe runs: layout, 3D solid and schedule addons/piping/lib/mep-core.js64-bit- CadCraft
-
Takeoff mark coordinates
Rounds the points of each takeoff mark before they are stored in the takeoff project.
v′ = round(v × 10⁶) ÷ 10⁶
Pipe runs: layout, 3D solid and schedule addons/piping/lib/mep-core.js64-bit- CadCraft
-
Scale of the takeoff sheet
Feet per PDF point for the sheet the takeoff is measured on, and the mapping of drawing points to PDF points.
K = 72 ÷ 25.4; feet per point = (feet per drawing unit) ÷ (m₀ × K)
Pipe runs: layout, 3D solid and schedule addons/piping/lib/mep-core.js64-bit- CadCraft
-
Cleaning a run's data
Checks a run's points, sizes, elevation, slope and valves before the run is stored.
Pipe runs: layout, 3D solid and schedule addons/piping/lib/pipe.js64-bit- CadCraft
-
Move, rotate, scale or mirror a run
The run's points, scale, elevation, symbol size and valve positions after a transform.
s = √|m₀m₃ − m₁m₂|; k′ = k ÷ s; z′ = z × s
Pipe runs: layout, 3D solid and schedule addons/piping/lib/pipe.js64-bit- CadCraft
-
Elevation along a run
The centerline elevation a given plan distance along the run.
z(s) = z₀ − slope × s
Pipe runs: layout, 3D solid and schedule addons/piping/lib/pipe.js64-bit- CadCraft
-
Branches onto other runs
Finds where a run's end sits on another run and works out the tee or wye, its angle and how far the branch is cut back.
sin φ = |t_main × t_branch|; cut = (OD_main ÷ 2) ÷ sin φ; gap = OD_branch ÷ sin φ
Pipe runs: layout, 3D solid and schedule addons/piping/lib/pipe.js64-bit- CadCraft
-
Elbows, reducers and trimmed pieces
Places an elbow at each turn and a reducer at each size change, and trims the straight pieces to fit.
T = R × tan(θ ÷ 2); reducer length = 1.5 × max(OD₁, OD₂)
Pipe runs: layout, 3D solid and schedule addons/piping/lib/pipe.js64-bit- CadCraft
-
Sections for the 3D pipe
The cross-sections along the centerline that the 3D solid is built from.
elbow steps = max(2, ceil(θ ÷ 15°)); z = z₀ − slope × s − OD ÷ 2
Pipe runs: layout, 3D solid and schedule addons/piping/lib/pipe.js64-bit- CadCraft
-
Drawing units to feet or meters, and the slope factor
Converts a plan length to feet or meters and corrects it for the run's slope.
ft = du × k ÷ 12; m = du × k × 25.4 ÷ 1000; factor = √(1 + slope²)
Pipe runs: layout, 3D solid and schedule addons/piping/lib/pipe.js64-bit- CadCraft
-
Pipe length by size
The length of pipe of each size in a run, in plan and along the slope.
len = Σ lenOut(segment) × √(1 + slope²)
Pipe runs: layout, 3D solid and schedule addons/piping/lib/pipe.js64-bit- CadCraft
-
Schedule totals
Pipe length and steel weight by material and size, fitting counts, and the totals.
weight = (weight per length) × length; total = Σ rows
Pipe runs: layout, 3D solid and schedule addons/piping/lib/pipe.js64-bit- CadCraft
-
Slope label
The slope written on the drawing and in the schedule: a fraction of an inch per foot, or a percentage.
in/ft = slope × 12; % = slope × 100
Pipe runs: layout, 3D solid and schedule addons/piping/lib/pipe.js64-bit- CadCraft
-
Plan of a run
The lines and arcs drawn for a run: a single centerline, or two side lines with elbow arcs and reducers.
side line = centerline ± n × OD ÷ 2; elbow arcs at R ± OD ÷ 2
Pipe runs: layout, 3D solid and schedule addons/piping/lib/pipe.js64-bit- CadCraft
-
Size label
The size written beside a pipe: NPS, DN, or a tube size with its outside diameter in millimeters.
mm = OD (in) × 25.4
Pipe runs: layout, 3D solid and schedule addons/piping/lib/pipe.js64-bit- CadCraft
-
Typed pipe size
Matches what a person types (2, 1-1/2, 1.5, DN50) to a size of the pipe table.
Pipe runs: layout, 3D solid and schedule addons/piping/main.js64-bit- CadCraft
-
Typed slope
Turns a typed slope into fall per unit of run.
imperial: slope = (inches per foot) ÷ 12; metric: slope = percent ÷ 100
Pipe runs: layout, 3D solid and schedule addons/piping/main.js64-bit- CadCraft
-
Point pulled onto a centerline
Moves a picked point that lies on a pipe onto that pipe's centerline.
moved when distance ≤ max(OD ÷ 2, slack) + 1e-9
Pipe runs: layout, 3D solid and schedule addons/piping/main.js64-bit- CadCraft
-
Schedule table on the drawing
The rows of the pipe schedule placed in the drawing.
Pipe runs: layout, 3D solid and schedule addons/piping/main.js64-bit- CadCraft
-
Schedule CSV export
The pipe schedule written as a CSV file: pipe by size, fittings, and each run with its elevations.
elevation = z × k (in) or z × k × 25.4 (mm)
Pipe runs: layout, 3D solid and schedule addons/piping/main.js64-bit- CadCraft
-
Valve and fitting symbols placed on a run
Rotates a symbol's entities to the run's direction and moves them to their place.
x′ = pₓ + x cos θ − y sin θ; y′ = p_y + x sin θ + y cos θ
Pipe runs: layout, 3D solid and schedule addons/piping/lib/symbols.js64-bit- CadCraft
-
Loads at the joints
Turns roof, snow and ceiling loads in kPa into forces in kN at the joints of the frame.
top chord: w = (dead × L + snow × Δx) × spacing; bottom chord: w = ceiling × Δx × spacing; half to each end
Truss member forces and timber checks addons/trusscraft/lib/analysis.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Wind and uplift forces at the joints
Forces at the top-chord joints from wind pressure normal to the roof and from a net uplift on plan.
F = p × spacing × L; n = (−Δz, Δx) ÷ L; joint force = −n F ÷ 2
Truss member forces and timber checks addons/trusscraft/lib/analysis.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Load across each chord member
The load per meter across each chord member, per load case, used for bending between panel points.
c = |Δx| ÷ L; dead: w c; snow and uplift: w c²
Truss member forces and timber checks addons/trusscraft/lib/analysis.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Linear solve
Solves a square system of linear equations.
Truss member forces and timber checks addons/trusscraft/lib/analysis.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Member forces by the method of joints
The axial force in every member and the support reactions for one set of joint loads.
Σ member pulls + reactions = load at every joint; members + 3 = 2 × joints
Truss member forces and timber checks addons/trusscraft/lib/analysis.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Member check
The utilization of one member under an axial force and a bending moment.
tension: T ÷ (Ft·CD·A); compression: fc ÷ (Fc·CD·Cp), Cp = q − √(q² − α ÷ c), q = (1 + α) ÷ 2c, α = FcE ÷ (Fc·CD), FcE = 0.822 Emin ÷ (le ÷ d)²
Truss member forces and timber checks addons/trusscraft/lib/analysis.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Governing combination for a member
The load combination that gives a member its highest utilization, with the largest and smallest force over all combinations.
Truss member forces and timber checks addons/trusscraft/lib/analysis.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Smallest sizes that pass
The smallest timber size for the top chord, the bottom chord and the webs that keeps every member at or under a utilization of 1.
Truss member forces and timber checks addons/trusscraft/lib/analysis.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Deflection estimate
The largest vertical deflection at a bottom-chord joint and the span-to-deflection ratio.
δ = Σ N n L × 1000 ÷ (E A)
Truss member forces and timber checks addons/trusscraft/lib/analysis.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Frame member stiffness
The stiffness of each member of the attic frame, turned into the frame's axes and added to the whole.
EA = E b d; EI = E b d³ ÷ 12; K = Tᵀ k T
Truss member forces and timber checks addons/trusscraft/lib/frame.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Uniform load on a level beam
The joint forces and moments that stand in for a uniform load on the floor or ceiling tie.
end force = w L ÷ 2; end moment = w L² ÷ 12
Truss member forces and timber checks addons/trusscraft/lib/frame.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Frame displacements, forces and moments
Solves the frame and reads each member's axial force and each beam's largest moment.
N = (EA ÷ L)(u_b − u_a); M = max(|Ma|, |Mb|, |w L² ÷ 8 − (|Ma| + |Mb|) ÷ 2|)
Truss member forces and timber checks addons/trusscraft/lib/frame.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Frame support reactions
The reactions at the two supports of the attic frame.
R = Σ K·D − F for the support's row
Truss member forces and timber checks addons/trusscraft/lib/frame.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Load combinations
Member forces, chord moments and reactions for each combination of the load cases.
force = Σ factor × case force; M = |w| L² ÷ momentDiv
Truss member forces and timber checks addons/trusscraft/lib/design.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Point loads from carried trusses
Adds point loads, such as the reactions of jack trusses on a girder, at the nearest top-chord joint.
Truss member forces and timber checks addons/trusscraft/lib/design.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Attic frame sizing passes
Repeats the frame solve and the sizing of an attic truss until the sizes settle.
Truss member forces and timber checks addons/trusscraft/lib/design.js64-bit- CadCraft
- BimCraft
- ModelCraft
- PartCraft
-
Stub forces and the governing force per member
The force in each bearing stub and, for the joints and the drawing, the force of largest size in each member over all combinations.
stub force = −vertical reaction; governing = value with the largest |force|
Truss member forces and timber checks addons/trusscraft/lib/design.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.