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

  • Mat settlement and contact pressure

    The largest and smallest settlement of the mat and the largest spring pressure.

    q = k_s × w ÷ 1000; reaction = Σ k_node × w ÷ 1000

    Settlement, flexible mats, pile groups and retaining walls foundation.js
    • DetailCraft
    64-bit
  • Mat bending moments and shear

    The largest sagging and hogging moments per meter each way and the largest transverse shear.

    M = max and min of the node moments ÷ 1000; V = max √(q_x² + q_y²) away from the columns

    Settlement, flexible mats, pile groups and retaining walls foundation.js
    • DetailCraft
    64-bit
  • Hogging capacity of plain concrete

    The hogging moment a mat with no top bars can take.

    capacity = 0.60 × 0.42·λ·√f′c × (H² ÷ 6) × 1000 ÷ 10⁶

    Settlement, flexible mats, pile groups and retaining walls foundation.js
    • DetailCraft
    64-bit
  • Spring pressure at a point

    The soil pressure at any point of the mat from the settlements of the nodes round it.

    q = k_s ÷ 1000 × bilinear blend of the four corner settlements

    Settlement, flexible mats, pile groups and retaining walls foundation.js
    • DetailCraft
    64-bit
  • Pile group reactions

    The load each pile takes under a vertical load and two moments.

    R_i = P ÷ n + M_x·y_i ÷ Σy² + M_y·x_i ÷ Σx²

    Settlement, flexible mats, pile groups and retaining walls foundation.js
    • DetailCraft
    64-bit
  • Cantilever retaining wall

    Overturning, sliding and bearing of a cantilever wall with level backfill.

    K_a = tan²(45° − φ ÷ 2); P_a = ½·K_a·γ·H_t²; e = B ÷ 2 − (M_r − M_o) ÷ W

    Settlement, flexible mats, pile groups and retaining walls foundation.js
    • DetailCraft
    64-bit
  • A real number in the file

    How every length, coordinate, direction component and weight is written.

    text = toFixed(6), trailing zeros dropped; |v| < 1e-9 → 0

    IFC export ifc.js
    • DetailCraft
    64-bit
  • Storey of an element

    Which storey an element is put in: the highest level at or below its lowest point.

    level z ≤ lowest point + 0.5 mm

    IFC export ifc.js
    • DetailCraft
    64-bit
  • Placement of a part

    The origin and the two axes each part is placed with, relative to its storey.

    location = (p_x, p_y, p_z − level z); Axis = part x; RefDirection = part u

    IFC export ifc.js
    • DetailCraft
    64-bit
  • Profile dimensions

    The section dimensions written for each profile type.

    IFC export ifc.js
    • DetailCraft
    64-bit
  • Mitre cut plane

    The plane that clips a part's extrusion at a mitre end.

    normal = unit(−sg·ku, −sg·kv, sg); point = (0, voff, x0)

    IFC export ifc.js
    • DetailCraft
    64-bit
  • Hole openings

    The position, direction, depth and radius of each hole's opening.

    depth = thickness + 2; start = center − axis·depth ÷ 2; radius = d ÷ 2

    IFC export ifc.js
    • DetailCraft
    64-bit
  • Cope openings

    The box that cuts each cope out of a part.

    center v = voff ± (depth ÷ 2 − cope depth ÷ 2 + 0.5); box = (width + 2) × (cope depth + 1) × (cope length + 1)

    IFC export ifc.js
    • DetailCraft
    64-bit
  • Bolts and anchor rods

    The placement, diameter and length written for each bolt and rod.

    IFC export ifc.js
    • DetailCraft
    64-bit
  • Reinforcing bar center lines

    The center line of each placed bar as lines and true arcs, with the bar's radius.

    point = origin + s·ŝ + t·t̂; arc through start, middle and end; radius = d_b ÷ 2

    IFC export ifc.js
    • DetailCraft
    64-bit
  • Length and weight properties

    The cut length and weight written in each part's property set.

    IFC export ifc.js
    • DetailCraft
    64-bit
  • Length unit to millimeters

    The factor that turns the file's lengths into millimeters.

    toMm = prefix × 1000; converted units: toMm = factor × prefix × 1000

    IFC import ifc-import.js
    • DetailCraft
    64-bit
  • A placement's axes

    The three axes and origin of an IFC axis placement.

    Z = unit(Axis); X = unit(Ref − Z·(Ref·Z)); Y = Z × X

    IFC import ifc-import.js
    • DetailCraft
    64-bit
  • Placements combined

    One placement expressed inside another.

    X′ = A·X, Y′ = A·Y, Z′ = A·Z, O′ = A·O + O_A

    IFC import ifc-import.js
    • DetailCraft
    64-bit
  • A rectangle from a closed outline

    Recognizes a four-point outline as a rectangle and reads its center, axes and size.

    square when |ê_i·ê_{i+1}| ≤ 1e-4; center = mean of the four points

    IFC import ifc-import.js
    • DetailCraft
    64-bit
  • Matching a profile to the catalog

    Decides whether a profile from the file is one of the catalog shapes.

    match when every |catalog − file| ≤ 0.5 mm

    IFC import ifc-import.js
    • DetailCraft
    64-bit
  • Reusing a custom profile

    Decides whether two profiles from the file are the same custom profile.

    same when all dimensions agree after rounding to 0.01 mm

    IFC import ifc-import.js
    • DetailCraft
    64-bit
  • Level heights

    The height of each storey, from its placement or its Elevation.

    z = round(z × toMm × 1000) ÷ 1000

    IFC import ifc-import.js
    • DetailCraft
    64-bit
  • Grid lines

    Which grid axes become numbered or lettered grid lines, and where.

    x line when |d_y| > 0.9999; y line when |d_x| > 0.9999; position rounded to 0.001 mm

    IFC import ifc-import.js
    • DetailCraft
    64-bit
  • Member line from the extrusion

    The start and end of a member from its extruded solid.

    start = O × toMm; end = start + ext·depth

    IFC import ifc-import.js
    • DetailCraft
    64-bit
  • Plate from a rectangular solid

    The thickness, width and length of a plate from the three sizes of its box.

    thickness = smallest size; length = largest; plate when thickness < 0.25 × middle size

    IFC import ifc-import.js
    • DetailCraft
    64-bit
  • Member rotation and stored coordinates

    The rotation that puts the section the way the file has it, and the values stored for the member.

    rot = atan2(U·v₀, U·u₀) × 180 ÷ π; stored: ends to 0.001 mm, rotation to 0.001°

    IFC import ifc-import.js
    • DetailCraft
    64-bit
  • Holes from round openings

    The face, position and diameter of each hole read from an opening.

    d = round(2·r × 10) ÷ 10; x, y rounded to 0.001 mm

    IFC import ifc-import.js
    • DetailCraft
    64-bit
  • Copes from rectangular openings

    The length and depth of a cope read from a box-shaped opening.

    length = round(reach × 2) ÷ 2; depth = round(reach × 2) ÷ 2

    IFC import ifc-import.js
    • DetailCraft
    64-bit
  • Bolts from fasteners

    The diameter, length, head point and direction of each bolt read from the file.

    d, length rounded to 0.1 mm; head rounded to 0.001 mm

    IFC import ifc-import.js
    • DetailCraft
    64-bit
  • Numbers in the model file

    How the model's numbers are written to the file.

    The model file and what it stores model.js
    • DetailCraft
    64-bit
  • A point of a member

    Checks and stores a member's start or end point.

    The model file and what it stores model.js
    • DetailCraft
    64-bit
  • Member rotation and minimum length

    Brings a member's rotation into 0 to 360 degrees and refuses a member shorter than 1 mm.

    rotation = ((r mod 360) + 360) mod 360; length = √(Δx² + Δy² + Δz²) ≥ 1 mm

    The model file and what it stores model.js
    • DetailCraft
    64-bit
  • Grid lines from spacings

    The position of each grid line from the list of spacings typed.

    at_i = at_{i−1} + spacing_{i−1}

    The model file and what it stores model.js
    • DetailCraft
    64-bit
  • Spacings shown for existing grid lines

    The spacings text filled into the grid dialog from the stored grid positions.

    spacing = (at_i − at_{i−1}) to 3 decimals

    The model file and what it stores model.js
    • DetailCraft
    64-bit
  • A loose bolt as stored

    The diameter, length, head point and direction kept for a bolt that is not part of a connection.

    d, length, head: round(v × 1000) ÷ 1000; axis_i = round(a_i ÷ |a| × 10⁶) ÷ 10⁶

    The model file and what it stores model.js
    • DetailCraft
    64-bit
  • A number in the file

    How each length and coordinate is written.

    text = toFixed(2); |v| < 0.005 → 0.00

    DSTV NC files nc1.js
    • DetailCraft
    64-bit
  • Header sizes and weights

    The length, section sizes, weight and paint surface written in the header.

    plates: weight = t × steel density ÷ 1000 (kg/m²); others: paint surface = perimeter ÷ 1000

    DSTV NC files nc1.js
    • DetailCraft
    64-bit
  • Skew cut angles of a mitre

    The web and flange cut angles written in the header for a mitred I-shape.

    web = −atan(kv) × 180 ÷ π; flange = atan(ku) × 180 ÷ π

    DSTV NC files nc1.js
    • DetailCraft
    64-bit
  • Web contour with copes

    The outline of the web face, notched for copes or ending on the mitre cut.

    cope corners at (length, depth), (L − length, depth), (L − length, h − depth) …

    DSTV NC files nc1.js
    • DetailCraft
    64-bit
  • Flange contour after copes

    Where a flange starts and ends once the copes on its side are cut.

    x0 = cope length when cope depth ≥ t, else 0

    DSTV NC files nc1.js
    • DetailCraft
    64-bit
  • Contours at a mitre end

    The end points of the web and flange contours where a plane cut crosses them.

    x = x0 + ku·u + kv·v at the web's middle plane and at each flange's outside face

    DSTV NC files nc1.js
    • DetailCraft
    64-bit
  • Hole positions on each face

    The x and y of each hole in the file's own face coordinates.

    web: y = offset + d ÷ 2; flange of an I: y = bf ÷ 2 − offset; plate: y = offset + b ÷ 2

    DSTV NC files nc1.js
    • DetailCraft
    64-bit
  • Reading an NC file back

    The header values and block rows read from an NC file.

    DSTV NC files nc1.js
    • DetailCraft
    64-bit
  • ASTM bar sizes in metric

    The diameter, mass per meter, area and bend diameter of bars #3 to #11.

    d_b = in × 25.4; mass = lb/ft × 1.48816394; area = in² × 645.16; bend D = 6·d_b (to #8) or 8·d_b

    Reinforcing bars and the bending schedule rebar.js
    • DetailCraft
    64-bit
  • Metric bar area and mass

    The section area and mass per meter of bars H8 to H40.

    area = π·d² ÷ 4; mass = area × 7850 × 10⁻⁶

    Reinforcing bars and the bending schedule rebar.js
    • DetailCraft
    64-bit
  • Number of bars and their spacing

    How many bars go across a width at no more than a given spacing, and the spacing that results.

    n = max(2, ⌈w ÷ s − 1e-9⌉ + 1); spacing = w ÷ (n − 1)

    Reinforcing bars and the bending schedule rebar.js
    • DetailCraft
    64-bit
  • Hook leg length

    The out-to-out length of a standard 90 degree hook leg.

    ASTM: D ÷ 2 + d_b + 12·d_b; BS: the tabulated end projection P

    Reinforcing bars and the bending schedule rebar.js
    • DetailCraft
    64-bit
  • Cut length of a bent bar

    The length of bar to cut for a straight, L or U shape given its out-to-out sizes.

    ASTM L: A + B − 2k + (π ÷ 2)·r_c; U: A + B + C − 4k + π·r_c; k = D ÷ 2 + d_b, r_c = D ÷ 2 + d_b ÷ 2; BS L: A + B − 0.5r − d; U: A + B + C − r − 2d

    Reinforcing bars and the bending schedule rebar.js
    • DetailCraft
    64-bit
  • Center line of a bar

    The center line of a bar in its own plane as straight pieces and quarter-circle arcs.

    arc radius r_c = D ÷ 2 + d_b ÷ 2; points c + r_c·(cos a, sin a)

    Reinforcing bars and the bending schedule rebar.js
    • DetailCraft
    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.