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
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
Level heights
The height of each storey, from its placement or its Elevation.
z = round(z × toMm × 1000) ÷ 1000
IFC import ifc-import.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
Numbers in the model file
How the model's numbers are written to the file.
The model file and what it stores model.js64-bit- DetailCraft
-
A point of a member
Checks and stores a member's start or end point.
The model file and what it stores model.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
A number in the file
How each length and coordinate is written.
text = toFixed(2); |v| < 0.005 → 0.00
DSTV NC files nc1.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
Reading an NC file back
The header values and block rows read from an NC file.
DSTV NC files nc1.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
Length of a center line
The length along a bar's center line.
Σ straight lengths + Σ r·π ÷ 2
Reinforcing bars and the bending schedule rebar.js64-bit- DetailCraft
-
Bottom mat bars
The size, shape, count and position of the bottom bars each way.
A = run − 2·cover; hook B = min(hook leg, room); offset_i = −width ÷ 2 + cover + d_b ÷ 2 + i·spacing
Reinforcing bars and the bending schedule rebar.js64-bit- DetailCraft
-
Starter bars
The length and position of each starter bar.
z0 = bottom + cover + d_bX + d_bY; A = top + projection − z0; position = ((i − (n − 1) ÷ 2)·s_x, (j − (n − 1) ÷ 2)·s_y)
Reinforcing bars and the bending schedule rebar.js64-bit- DetailCraft
-
Clear spacing check
Warns when bars are closer than the minimum clear spacing.
clear = spacing − d_b ≥ max(25.4, d_b) for ASTM bars, max(20, d_b) for BS bars
Reinforcing bars and the bending schedule rebar.js64-bit- DetailCraft
-
Concrete volume
The volume of a footing in cubic meters.
V = L × B × H × 10⁻⁹
Reinforcing bars and the bending schedule rebar.js64-bit- DetailCraft
-
Bar marks and schedule weights
Groups identical bars under one mark and totals their length and weight.
total length = length × count; weight each = mass × length ÷ 1000; total weight = weight each × count
Reinforcing bars and the bending schedule rebar.js64-bit- DetailCraft
-
The schedule as a table
The figures printed in the bending schedule and its export.
sizes and cut length: whole mm; total length: m, 2 decimals; kg/m: 3 decimals; weights: 2 and 1 decimals
Reinforcing bars and the bending schedule rebar.js64-bit- DetailCraft
-
A dimension figure
The number printed on a dimension line of the shop drawing.
figure = round(value)
Single-part shop drawing shop.js64-bit- DetailCraft
-
Hole stations along the part
The chain of dimensions from the start of the part through each hole to its end.
step_i = x_i − x_{i−1}; overall = L
Single-part shop drawing shop.js64-bit- DetailCraft
-
Scales of the view
The scale along the part and the scale across it.
first n in the list with size ÷ n ≤ room; paper = X0 + x ÷ n
Single-part shop drawing shop.js64-bit- DetailCraft
-
Mitre cut angles
The angle from square of each cut end, in the web's plane and across the flanges.
angle = atan(|k|) × 180 ÷ π, 1 decimal
Single-part shop drawing shop.js64-bit- DetailCraft
-
Weight in the title block
The weight of one part and of the whole quantity.
total = weight × count
Single-part shop drawing shop.js64-bit- DetailCraft
-
Risers, run and pitch
The number of risers, the riser height, the run and the pitch.
n = max(2, ⌈rise ÷ max riser − 1e-9⌉); r = rise ÷ n; run = (n − 1)·going; pitch = atan2(r, going)
Straight stair geometry stair.js64-bit- DetailCraft
-
Stringer axis
The line the stringers run on, and where it meets the lower and upper floor.
k = r ÷ g; drop = (depth ÷ 2 − 50) ÷ cos(atan k); z(a) = k·(a + g) − drop; a0 = drop ÷ k − g, a1 = (rise + drop) ÷ k − g
Straight stair geometry stair.js64-bit- DetailCraft
-
Tread plates
The size and position of each tread.
depth = going + nosing; middle = (i − 1)·going − nosing + depth ÷ 2; top = i·r
Straight stair geometry stair.js64-bit- DetailCraft
-
Riser, going and comfort checks
Warnings when the riser, the going or twice the riser plus the going is outside its range.
102 ≤ r ≤ 178; going ≥ 279; 600 ≤ 2r + going ≤ 650
Straight stair geometry stair.js64-bit- DetailCraft
-
Rotation about a vertical line
The matrix and offset that turn points about a point in plan.
A = [[c, −s], [s, c]]; t = center − A·center; c = cos(deg·π ÷ 180), s = sin(deg·π ÷ 180)
Move, rotate and mirror transform.js64-bit- DetailCraft
-
Mirror in a vertical plane
The matrix and offset that reflect points across a line in plan.
A = 2·d·dᵀ − I; t = p₁ − A·p₁; d = (p₂ − p₁) ÷ |p₂ − p₁|
Move, rotate and mirror transform.js64-bit- DetailCraft
-
A point through the transform
The new position of a point.
p′ = A·p + t
Move, rotate and mirror transform.js64-bit- DetailCraft
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.