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

  • Do two boxes overlap

    Whether two oriented boxes overlap by more than the tolerance.

    separated on axis l when |T·l| > r_A + r_B − tol

    Clash check between parts clash.js
    • DetailCraft
    64-bit
  • Point inside a section outline

    Whether a point lies inside a closed outline.

    Clash check between parts clash.js
    • DetailCraft
    64-bit
  • Distance to the nearest outline edge

    The shortest distance from a point to any edge of an outline.

    t = clamp((p − a)·(b − a) ÷ |b − a|², 0, 1); d = |p − a − t·(b − a)|

    Clash check between parts clash.js
    • DetailCraft
    64-bit
  • How far a point is inside a part

    The distance from a point to the outside of a part, zero when it is outside.

    depth = min(x, L − x, distance to each outline edge)

    Clash check between parts clash.js
    • DetailCraft
    64-bit
  • Ray to the far side of the material

    How far a ray from an edge runs before it meets another edge of the section, to place a sample point in the middle of a flange or web.

    t = (w × e) ÷ (d × e), u = (w × d) ÷ (d × e)

    Clash check between parts clash.js
    • DetailCraft
    64-bit
  • Sample points across and along a part

    The points of one part that are tested inside the other.

    stations n = clamp(⌈(t1 − t0) ÷ 10⌉, 2, 40)

    Clash check between parts clash.js
    • DetailCraft
    64-bit
  • Stretch of a part that can reach the other

    The range along one part's axis where it can meet the other part's box.

    t0 = max(0, min x − pad), t1 = min(L, max x + pad); pad = √(h_u² + h_v²)

    Clash check between parts clash.js
    • DetailCraft
    64-bit
  • Reported depth and location

    The depth and the point each clash is reported with.

    depth = round(depth × 10) ÷ 10

    Clash check between parts clash.js
    • DetailCraft
    64-bit
  • Distance from a point to a member line

    The shortest distance from a point to the segment between a member's two ends.

    k = clamp((P − a)·(b − a) ÷ |b − a|², 0, 1); d = |P − (a + k·(b − a))|

    Finding joints between members connections.js
    • DetailCraft
    64-bit
  • Is a member vertical

    Whether a member stands vertical, the condition for a column to take a connection.

    |Δx| < 1 mm and |Δy| < 1 mm and |Δz| ≥ 1 mm

    Finding joints between members connections.js
    • DetailCraft
    64-bit
  • Members end to end in line

    Pairs of member ends that meet in line, with the gap between them.

    along = d·d̂_a; off = |d − d̂_a·along|; in line when |d̂_a·d̂_b| ≥ 0.9999, off ≤ 1 mm, |d| ≤ 50 mm

    Finding joints between members connections.js
    • DetailCraft
    64-bit
  • Beam end at a column

    Which beam ends land on a column, and whether they meet its flange, its web or come in skewed.

    flange when |away·v̂| > 0.9999; web when |away·û| > 0.9999; else skew

    Finding joints between members connections.js
    • DetailCraft
    64-bit
  • Members meeting at an angle

    Pairs of I-shaped member ends that share a point and are not in line, with the angle between them.

    angle = acos(clamp(ê_A·ê_B, −1, 1)) × 180 ÷ π

    Finding joints between members connections.js
    • DetailCraft
    64-bit
  • Plate size written into the profile name

    The thickness and width digits of a plate's profile name, which is how a connection plate's section reaches the built part.

    text = Number(v.toFixed(1))

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Bolt length rounded up to 5 mm

    The length of a bolt from its grip and the allowance.

    length = ⌈(grip + allowance) ÷ 5 − 1e-9⌉ × 5

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Anchor rod hole and washer sizes

    The hole diameter, washer size and washer thickness for an anchor rod, from the table in AISC Design Guide 1.

    mm = inches × 25.4

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    Exact
  • End plate, its holes and bolts

    Where an end plate sits against the column and where each bolt row goes.

    center = N + away·(faceOff + tp ÷ 2); z_i = z_c + ((rows − 1) ÷ 2 − i)·pitch; hole = face ± ŵ·gauge ÷ 2

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Edge distance and spacing checks

    Warnings when bolt edge distances, pitch or gauge are under the EN 1993-1-8 Table 3.3 minimums.

    e1, e2 ≥ 1.2·d0; p1 ≥ 2.2·d0; p2 ≥ 2.4·d0

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Shear tab: beam cut-back

    How far a square, skewed or sloped beam is cut back so every corner of its end clears the column face by the gap.

    setback = max over corners of (faceOff + gap − c·n) ÷ cos A; cos A = dir·n

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Shear tab: plate and bolt row

    The tab's two end points, its rotation, and the position of each bolt in the row.

    length = (rows − 1)·pitch + 2·edge; v_i = ev + ((rows − 1) ÷ 2 − i)·pitch; s_bolt = s_face + eh

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Shear tab: skew and slope

    The beam's skew in plan and its slope, reported with the connection.

    skew = acos(min(1, away·n)); slope = asin(min(1, |dir_z|))

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Base plate and anchor rods

    The base plate's position under the column and the four rod positions and lengths.

    rod = B ± ĉ_v·sx ÷ 2 ± ĉ_u·sy ÷ 2; rod length = embed + grout + tp + projection

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Plate washers on the rods

    The size, thickness and position of each plate washer and the hole in it.

    hole = rod + 25.4 ÷ 16; z = top of plate + thickness ÷ 2

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Splice: joint middle and cut-backs

    The middle of the joint between two spliced members and how far each is cut back to leave the joint gap.

    mid = J + out·(dJ·out) ÷ 2; setback = max(0, gap ÷ 2 − (dJ·out) ÷ 2)

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Splice: flange plates and bolts

    The length of the flange cover plates and the position of every flange bolt.

    L_F = gap + 2·(2·edge + (n − 1)·pitch); s = ±(gap ÷ 2 + edge + i·pitch); gauge = bf − 80 when not given

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Splice: web plates and bolts

    The height and length of the web cover plates and the position of every web bolt.

    clear = d − 2·(tf + r); H_W = ⌊(clear − 20) ÷ 5⌋·5 when not given; L_W = gap + 2·(2·edge + (cols − 1)·pitch_x)

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Gusset: plane of the plate

    The gusset's normal and the direction across it, from the brace and the support.

    n_P = unit(d × x̂_S); w = unit(n_P × x̂_S)

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Gusset: brace cut-back

    How far the brace is cut back to clear every member at the joint and a base plate there.

    need = max over corners of (off + gap − c·n) ÷ (d·n); setback = largest need

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Gusset: bolt line

    The position of each bolt along the brace and its matching hole in the gusset.

    s_k = setback + edge + k·pitch; Q = P + n_P·(o − (P − N)·n_P)

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Gusset: plate size

    How far the gusset runs along and across its support, and the width in its profile name.

    a0 = min a − margin, a1 = max a + margin; width = round(w1 − w0)

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Mitre: where the two center lines meet

    The closest points of the two members' center lines and the joint point between them.

    s_A = (b·e − d) ÷ (1 − b²), s_B = (e − b·d) ÷ (1 − b²); b = x̂_A·x̂_B, d = x̂_A·r, e = x̂_B·r; J = (P_A + P_B) ÷ 2

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Mitre: cut plane

    The angle between the two members and the plane that halves it.

    angle = acos(clamp(ê_A·ê_B, −1, 1)); n = unit(ê_B − ê_A); out = unit(−(ê_A + ê_B)); w = unit(ê_A × ê_B)

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Mitre: the two cut faces

    The point each member's cut plane passes through, set back for the gap and the plates.

    face_A = J − n·off, face_B = J + n·off; off = gap ÷ 2 + plate thickness

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Mitre: where a section edge meets the cut

    Where a line along the member through a point of its section crosses the cut plane, in the plane's own two directions.

    k = n·(face − Q) ÷ (n·x̂); X = Q + x̂·k − face

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Mitre: bolt rows and gauge

    The rows of bolts between the flanges of the two end plates and their gauge.

    rows spread from c0 + weld + d0 to c1 − weld − d0; gauge = max(⌈2.4·d0 ÷ 5⌉·5, round(width ÷ 2 ÷ 5)·5) when not given

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Mitre: weld length round the cut section

    The length of the all-round weld between a member's slanted end and its plate.

    length = perimeter ÷ |n·x̂|

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Mitre: stiffener position and size

    Where the pair of web stiffeners sits past the cut and how big each is.

    at = far + dist + t ÷ 2; height = d − 2·tf; width = (bf − tw) ÷ 2

    Connection plates, holes, bolts and cut-backs connections.js
    • DetailCraft
    64-bit
  • Two directions across an axis

    Two unit directions square to a bolt or torch axis, used to lay out the sample grid.

    u = unit(a × h); v = a × u

    Constructability checks constructability.js
    • DetailCraft
    64-bit
  • Socket access to a bolt

    Whether a socket over a bolt head or nut runs into another part, and how much free length there is.

    R_s = 1.96·d ÷ 2 + wall; grid step = max(2.5, R_s ÷ 8); stations at 0, ¼, ½, ¾ and 1 × socket length

    Constructability checks constructability.js
    • DetailCraft
    64-bit
  • Room between neighboring bolts

    Whether the socket over one bolt touches the head of the next.

    lat = |dv − A·(dv·A)|; need = 1.96·d_max ÷ 2 + wall + 1.96·d_min ÷ 2

    Constructability checks constructability.js
    • DetailCraft
    64-bit
  • Fillet weld size limits

    The smallest and largest fillet weld allowed for the thinner of the two parts joined.

    min = 3, 5, 6 or 8 mm for thickness up to 6.35, 12.7, 19.05 mm or more; max = t when t < 6.35, else t − 1.6

    Constructability checks constructability.js
    • DetailCraft
    64-bit
  • Torch access along an all-round weld

    The share of an all-round fillet weld's line where a torch on the 45 degree bisector is blocked.

    start s0 = r·√2 + 1; direction = unit(outward + away); tested every 5 mm for the reach

    Constructability checks constructability.js
    • DetailCraft
    64-bit
  • Slope of a hollow section

    The slope of a tube, used to decide whether an open upper end lets rain in.

    slope = asin(|Δz| ÷ length) × 180 ÷ π

    Constructability checks constructability.js
    • DetailCraft
    64-bit
  • Steel and bar weight in the status line

    The total weight of all steel parts and of all reinforcing bars, shown under the drawing.

    steel = Σ part weight; bars = Σ row total weight

    Weight totals in the status line and panels detailcraft.js
    • DetailCraft
    64-bit
  • Steel weight of a selection

    The weight of the selected members plus the main plate of each selected connection.

    steel = Σ weight of selected members and connection plates

    Weight totals in the status line and panels detailcraft.js
    • DetailCraft
    64-bit
  • Cut length and weight of one part

    The cut length, weight and weight per meter shown for a selected member.

    Weight totals in the status line and panels detailcraft.js
    • DetailCraft
    64-bit
  • A dimension figure

    The number printed on a dimension line, and the value recorded for the sheet.

    figure = round(value)

    Dimensions and views on drawing sheets drawings.js
    • DetailCraft
    64-bit
  • A chain of dimensions with its overall

    The run of dimensions between successive positions and the overall dimension beside it.

    step_i = v_i − v_{i−1}; overall = v_n − v_0

    Dimensions and views on drawing sheets drawings.js
    • DetailCraft
    64-bit
  • Positions to dimension

    The sorted list of distinct positions a chain is drawn through.

    keep v when v − previous kept > 0.5 mm

    Dimensions and views on drawing sheets drawings.js
    • DetailCraft
    64-bit
  • Sheet scale

    The largest standard scale at which a view fits its room on the paper.

    first n in the list with size ÷ n ≤ room

    Dimensions and views on drawing sheets drawings.js
    • DetailCraft
    Exact

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.