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.

  • 6,917 calculations in 1,248 source files
  • 143 exact
  • 6,286 in 64-bit
  • 335 with a 32-bit step
  • Last reviewed

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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    64-bit
  • 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.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • 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.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • 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.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Linear solve

    Solves a square system of linear equations.

    Truss member forces and timber checks addons/trusscraft/lib/analysis.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • 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.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • 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.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • 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.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • 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.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • 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.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • 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.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • 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.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • 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.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • 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.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • 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.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • 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.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • 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.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • 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.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit

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.