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

  • Design moment strength at an axial load

    The largest design moment the strength diagram allows at a given axial force.

    linear interpolation between the two diagram points that bracket Pu

    Concrete member and slab checks on a solved frame frame/rc-design.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Moment magnification of a slender column

    The magnified design moment of a non-sway column about one axis.

    Pc = π² (0.4 Ec Ig ÷ (1 + βdns)) ÷ (k L)²; δ = Cm ÷ (1 − Pu ÷ 0.75 Pc) ≥ 1; Mc = δ max(M₂, Pu (15 + 0.03 h)); Ec = 4700 √f′c

    Concrete member and slab checks on a solved frame frame/rc-design.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Drawn section against the concrete section

    Checks that the analyzed section's area and inertias agree with the b × h the bars were given for.

    |A − b h| ≤ 0.05 b h; I within 5 % of b h³ ÷ 12 × 1, 0.70 or 0.35

    Concrete member and slab checks on a solved frame frame/rc-design.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Beam flexure ratio

    The utilization of a beam in bending about one or both axes.

    |My| ÷ φMny + |Mz| ÷ φMnz

    Concrete member and slab checks on a solved frame frame/rc-design.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Column axial force and bending ratio

    The utilization of a column under axial force with one or two moments.

    one moment: the ray ratio on its diagram; two, Pu ≥ 0.1 f′c Ag: max(r_y + r_z − Pu ÷ (φ Po), Pu ÷ φPn,max); two, lower Pu: |My| ÷ φMny(Pu) + |Mz| ÷ φMnz(Pu)

    Concrete member and slab checks on a solved frame frame/rc-design.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Design moments of the slab's bar layers

    The moment each of the four bar layers must carry so that bending and twisting are both covered.

    M*x = Mx + |Mxy|, M*y = My + |Mxy|; if one is negative: 0, and the other raised by Mxy² ÷ |that moment|

    Concrete member and slab checks on a solved frame frame/slab-design.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Slab reinforcement and shear

    The steel required and provided per meter in each layer, and the one-way shear check of a slab.

    d = h − cover − bar ÷ 2 (outer layer); provided = (π d_b² ÷ 4) × 1000 ÷ s; need = max(required, ρ_min × 1000 × h); ratio = need ÷ provided

    Concrete member and slab checks on a solved frame frame/slab-design.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Concrete stiffness for the analysis

    The elastic modulus, shear modulus and density given to concrete members.

    E = 4700 √f′c; G = E ÷ 2.4; ρ = 2400 kg/m³

    Concrete member and slab checks on a solved frame frame/frame-concrete.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Cracked stiffness factor

    The share of the gross stiffness used for cracked members.

    0.70 columns; 0.35 beams; 1 when not cracked

    Concrete member and slab checks on a solved frame frame/frame-concrete.js
    • CadCraft
    • BimCraft
    • DetailCraft
    Exact
  • Area of a bar

    The cross-section area of a reinforcing bar from its diameter.

    A = π d² ÷ 4

    Concrete member and slab checks on a solved frame frame/frame-concrete.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Approximate period

    The building's approximate fundamental period from its height and structural system.

    Ta = Ct × (hn ÷ 1000)^x, hn in mm

    Seismic loads and story drift to ASCE 7-22 frame/loads-asce7.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Upper limit factor on the period

    The factor Cu that caps a period taken from analysis.

    table of SD1 against Cu, straight lines between rows

    Seismic loads and story drift to ASCE 7-22 frame/loads-asce7.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Seismic response coefficient

    The coefficient Cs that multiplies the building's weight to give the base shear.

    Cs = SDS ÷ (R ÷ Ie), at most SD1 ÷ (T R ÷ Ie) or SD1 TL ÷ (T² R ÷ Ie), at least max(0.044 SDS Ie, 0.01) and 0.5 S1 ÷ (R ÷ Ie) where S1 ≥ 0.6

    Seismic loads and story drift to ASCE 7-22 frame/loads-asce7.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Height exponent

    The exponent k of the vertical distribution of the story forces.

    k = 1 for T ≤ 0.5 s; 2 for T ≥ 2.5 s; 1 + (T − 0.5) ÷ 2 between

    Seismic loads and story drift to ASCE 7-22 frame/loads-asce7.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Base shear and story forces

    The base shear, the force on each floor and the shear in each story.

    V = Cs W; Cvx = wx hx^k ÷ Σ wi hi^k; Fx = Cvx V; Vx = Σ F from the top down

    Seismic loads and story drift to ASCE 7-22 frame/loads-asce7.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Story force on a rigid floor

    Puts a story force on a floor at its master point, with the accidental torsion.

    Mz = −((x₀ − x_m) Fy − (y₀ − y_m) Fx) ± 0.05 × plan size × F

    Seismic loads and story drift to ASCE 7-22 frame/loads-asce7.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Design drift against the allowable

    The design story drift and its ratio to the allowable drift.

    δ = Cd δ_e ÷ Ie; allowed = 0.020, 0.015 or 0.010 × story height; ratio = δ ÷ allowed

    Seismic loads and story drift to ASCE 7-22 frame/loads-asce7.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Suggested floor levels

    The heights at which level members meet, offered as the building's floors.

    z = (z_a + z_b) ÷ 2 of a level member; levels within 1 mm are one; stored z rounded to 0.1 mm

    Seismic loads and story drift to ASCE 7-22 frame/frame-concrete.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Floor weights into newtons

    Turns the floor weights typed in kN into the N the procedure works in.

    w (N) = w (kN) × 1000

    Seismic loads and story drift to ASCE 7-22 frame/frame-concrete.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Period of the analyzed frame

    The fundamental period in each direction from the floor weights and the frame's displacements under the seismic forces.

    T = 2π √(Σ wᵢ δᵢ² ÷ (g Σ fᵢ δᵢ))

    Seismic loads and story drift to ASCE 7-22 frame/frame-concrete.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Weight of each floor from the loads

    The vertical load of chosen load cases gathered at each floor, as its seismic weight.

    node load = node forces + member equivalent loads + plate corner loads; each node's load goes to the floor at or above it

    Seismic loads and story drift to ASCE 7-22 frame/frame-concrete.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • A number as report text

    Writes a value with a fixed number of decimals.

    text = v.toFixed(d); 0 when |v| < 0.5 × 10⁻ᵈ

    Numbers in the frame analysis report frame/frame-report.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Force in kN

    A force in newtons printed in kilonewtons.

    kN = N ÷ 1000, 2 decimals; kN·m = N·mm ÷ 10⁶, 2 decimals

    Numbers in the frame analysis report frame/frame-report.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Reactions, largest displacement and the envelope

    Gathers each set's reactions, the node that moves most, each member's extremes, and the largest value of each force over all sets.

    displacement = √(ux² + uy² + uz²); envelope = the value with the largest magnitude over the sets

    Numbers in the frame analysis report frame/frame-report.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Deflection as a span ratio

    Prints a member's deflection as L over a whole number.

    'L/' + round(L ÷ deflection)

    Numbers in the frame analysis report frame/frame-report.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Demand and capacity as text

    Prints a design check's demand and capacity in kN or kN·m.

    kN = round(N ÷ 10) ÷ 100; kN·m = round(N·mm ÷ 10⁴) ÷ 100; ratios to 3 decimals

    Numbers in the frame analysis report frame/frame-design.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Utilization as a percentage

    Prints a utilization ratio as a percentage with one decimal.

    round(ratio × 1000) ÷ 10, 1 decimal

    Numbers in the frame analysis report frame/frame-design.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • A number in the concrete and seismic tables

    Writes a value with a chosen number of decimals.

    round(v × 10ᵈ) ÷ 10ᵈ, then d decimals

    Numbers in the frame analysis report frame/frame-concrete.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Values in the shared problem list

    The found and required values attached to a failed concrete check or drift.

    utilization rounded to 0.0001; drift rounded to 0.01 mm

    Numbers in the frame analysis report frame/frame-concrete.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Slab and wall rows of the report

    For each slab or wall: its largest deflection, its largest positive and negative moments, twisting moment and shear.

    max and min of the plates' center values; Q = √(Qx² + Qy²); w = largest node displacement; kN·m/m = N·mm/mm ÷ 1000, 2 decimals

    Numbers in the frame analysis report frame/plate-draw.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Values in a slab problem

    The required and provided steel, or the shear and its strength, attached to a failed slab check.

    steel rounded to 0.1 mm²/m; shear to 0.1 kN/m

    Numbers in the frame analysis report frame/slab-design.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Deflected shape

    The members' deflected shape, enlarged so it can be seen.

    drawn point = point + scale × displacement; scale = 0.015 × model size ÷ largest displacement

    Analysis results drawn on the model frame/frame-draw.js
    • CadCraft
    • BimCraft
    • DetailCraft
    32-bit, display only
  • Force diagram beside a member

    A filled diagram of one internal force drawn square to each member, with its largest value labeled.

    height = value × 0.08 × model size ÷ largest value

    Analysis results drawn on the model frame/frame-draw.js
    • CadCraft
    • BimCraft
    • DetailCraft
    32-bit, display only
  • Plate contours

    Each plate as two triangles colored by its corner values, with the largest values labeled.

    color = ramp(|value| ÷ largest |value|); kN·m/m = N·mm/mm ÷ 1000

    Analysis results drawn on the model frame/plate-draw.js
    • CadCraft
    • BimCraft
    • DetailCraft
    32-bit, display only
  • Arcs into chords

    Replaces each bulge arc of a path by straight chords that stay within a tolerance of the arc.

    θ = 4 atan(b); r = chord ÷ (2 sin(|θ| ÷ 2)); steps = ⌈|θ| ÷ (2 acos(1 − min(tol, r) ÷ r))⌉

    Laser job paths, fill lines and run estimate laser/laser-geom.js
    • CadCraft
    • PartCraft
    64-bit
  • Signed area of a loop

    The area of a closed path, used to tell which loop is the larger when one lies in another.

    A = ½ Σ (xᵢ yᵢ₊₁ − xᵢ₊₁ yᵢ)

    Laser job paths, fill lines and run estimate laser/laser-geom.js
    • CadCraft
    • PartCraft
    64-bit
  • Length of a path

    The total length of a flattened path.

    L = Σ √(Δx² + Δy²)

    Laser job paths, fill lines and run estimate laser/laser-geom.js
    • CadCraft
    • PartCraft
    64-bit
  • Which loop lies in which

    Counts how many other loops contain each loop, so inner shapes are cut first.

    two edge midpoints inside the other loop, and the other loop larger in area

    Laser job paths, fill lines and run estimate laser/laser-geom.js
    • CadCraft
    • PartCraft
    64-bit
  • Turn into and out of the fill direction

    Rotates a point by the fill angle so the fill lines are horizontal, and back.

    x′ = x cos a − y sin a; y′ = x sin a + y cos a; a in degrees × π ÷ 180

    Laser job paths, fill lines and run estimate laser/laser-geom.js
    • CadCraft
    • PartCraft
    64-bit
  • Fill lines of a closed shape

    The scan lines that fill the even–odd region of the loops, with the spans to burn on each line.

    y_k = (k + 0.5) × interval + offset; x = a_x + (b_x − a_x)(y − a_y) ÷ (b_y − a_y)

    Laser job paths, fill lines and run estimate laser/laser-geom.js
    • CadCraft
    • PartCraft
    64-bit
  • Machine coordinates

    Moves every point so the job's lower left corner is the machine's 0, 0.

    x_machine = x − x_origin; y_machine = y − y_origin

    Laser job paths, fill lines and run estimate laser/laser-plan.js
    • CadCraft
    • PartCraft
    64-bit
  • Burn length, travel and time

    The length burned, the length traveled with the laser off, and the time of the job.

    burn = Σ d × passes; time = Σ (d ÷ speed) × 60 × passes

    Laser job paths, fill lines and run estimate laser/laser-plan.js
    • CadCraft
    • PartCraft
    64-bit
  • Fill lines into moves

    Turns the fill lines back to drawing coordinates and adds the overscan before and after each line.

    start = first − dir × overscan; end = last + dir × overscan

    Laser job paths, fill lines and run estimate laser/laser-plan.js
    • CadCraft
    • PartCraft
    64-bit
  • Picture rows into moves

    Lays a picture's burn levels on its rectangle as rows of moves with a power for each run.

    cols = round(w ÷ interval); dx = w ÷ cols; y = y₀ + h − (r + 0.5) dy; power = min + (max − min) × level ÷ 255

    Laser job paths, fill lines and run estimate laser/laser-plan.js
    • CadCraft
    • PartCraft
    64-bit
  • Gray value of each engraving cell

    The average gray of the picture's pixels under each cell of the engraving grid.

    gray = Σ w × pixel ÷ Σ w, w = overlap area of pixel and cell

    Burn levels of an engraved picture laser/laser-image.js
    • CadCraft
    • PartCraft
    32-bit in part
  • Burn level of each cell

    Turns the gray values into burn levels from 0 to 255 by the chosen method.

    darkness = 1 − (gray ÷ 255)^gamma; threshold: darkness > t; gray steps: round(round(darkness × (n − 1)) ÷ (n − 1) × 255)

    Burn levels of an engraved picture laser/laser-image.js
    • CadCraft
    • PartCraft
    32-bit in part
  • Points written to a file

    Each point's northing, easting and elevation as text.

    text = v.toFixed(3); 0 when |v| < 0.0005

    Layout point files and as-built comparison layout/layout-points.js
    • CadCraft
    • BimCraft
    64-bit
  • Points read from a file

    Turns the northing, easting and elevation text of a row into numbers.

    x = Number(E); y = Number(N); z = Number(Z) or none

    Layout point files and as-built comparison layout/layout-points.js
    • CadCraft
    • BimCraft
    64-bit
  • Difference between a design and an as-built point

    The offsets in x, y and height, the horizontal and 3D distance, and whether the point is within tolerance.

    dh = √(dx² + dy²); d3 = √(dh² + dz²); out when dh > tol or |dz| > tolZ

    Layout point files and as-built comparison layout/layout-points.js
    • CadCraft
    • BimCraft
    64-bit
  • Matching points by nearness

    Pairs each design point with the closest unused as-built point within a radius.

    pairs sorted by horizontal distance, taken closest first; radius = 10 × tol by default

    Layout point files and as-built comparison layout/layout-points.js
    • CadCraft
    • BimCraft
    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.