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
-
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
-
Cleaning a stored coordinate
The rounding applied to every coordinate and angle a transform stores.
|n − round(n)| < 10⁻⁶ → round(n); else round(n × 10⁶) ÷ 10⁶
Move, rotate and mirror transform.js64-bit- DetailCraft
-
A member's new rotation
The rotation that puts a member's section axis where the transform sent it.
rotation = atan2(−want·u₀, want·v₀) × 180 ÷ π, brought into 0 to 360
Move, rotate and mirror transform.js64-bit- DetailCraft
-
A member through the transform
The new end points, rotation, position, holes and copes of a member.
Move, rotate and mirror transform.js64-bit- DetailCraft
-
Mirrored angle with a top or bottom position
Shifts a mirrored angle's line so the steel lands where the mirror image is.
d = A·v̂·voff − v̂′·voff; start, end += d
Move, rotate and mirror transform.js64-bit- DetailCraft
-
A footing through the transform
The new position and rotation of a footing.
rotate: rot + deg; mirror: 2·φ − rot; both brought into 0 to 360
Move, rotate and mirror transform.js64-bit- DetailCraft
-
Center of a selection
The plan middle of the selection, used as the point to rotate about.
((x_min + x_max) ÷ 2, (y_min + y_max) ÷ 2, z_min)
Move, rotate and mirror transform.js64-bit- DetailCraft
-
Offset of a drag
The offset a dragged part is moved by: onto a grid node, or in steps.
node − held point, or round(raw ÷ step) × step
Move, rotate and mirror transform.js64-bit- DetailCraft
-
A part's solid for drawing
The mesh of a part: its profile extruded, with copes cut.
3D view view3d.js32-bit, display only- DetailCraft
-
Mitre ends on the mesh
Moves the end vertices of a mesh onto the mitre's cut plane.
3D view view3d.js32-bit, display only- DetailCraft
-
The part under the pointer
Which part a click hits and where the ray meets it.
3D view view3d.js32-bit, display only- DetailCraft
-
Viewport scale from 1:n
Paper units per model unit for a drawing scale 1:n.
s = mm per model unit ÷ mm per paper unit ÷ n
Paper sizes, drawing scales and viewport aim sheets.js64-bit- CadCraft
-
Scale 1:n from a viewport scale
The n of 1:n that a viewport's stored scale stands for.
n = mm per model unit ÷ mm per paper unit ÷ s
Paper sizes, drawing scales and viewport aim sheets.js64-bit- CadCraft
-
List of standard and custom scales
The scales offered for a drawing: the standard ones and the drawing's own that the standard list lacks.
custom n = drawing ÷ paper; kept when |n − listed n| ≥ 1e-6 × n for every listed scale
Paper sizes, drawing scales and viewport aim sheets.js64-bit- CadCraft
-
Name of a viewport scale
The text a viewport scale reads as: a standard name when it is one, else 1:n.
Paper sizes, drawing scales and viewport aim sheets.js64-bit- CadCraft
-
Ratio text for a scale that is not listed
Writes 1:n or n:1 for a scale with no standard name.
n ≥ 1: "1:n"; n < 1: "(1 ÷ n):1"
Paper sizes, drawing scales and viewport aim sheets.js64-bit- CadCraft
-
Largest standard scale that fits
Picks the largest listed scale at which the window still fits the viewport.
largest s with s ≤ sFit × (1 + 1e-9)
Paper sizes, drawing scales and viewport aim sheets.js64-bit- CadCraft
-
Viewport center and scale for a model window
The model point a viewport looks at and the scale at which a model window fits it.
sFit = min(w ÷ Δx, h ÷ Δy); center = ((minX + maxX) ÷ 2, (minY + maxY) ÷ 2)
Paper sizes, drawing scales and viewport aim sheets.js64-bit- CadCraft
-
Standard paper for a sheet size
Finds the standard paper a sheet of w × h is, either way round.
|standard side − side| ≤ 0.005 × side, both sides in mm
Paper sizes, drawing scales and viewport aim sheets.js64-bit- CadCraft
-
Space for viewports on a sheet
The rectangle inside the border and above the title block, in paper units.
x0 = sheet x0 + 15 mm × k; y0 = sheet y0 + 47 mm × k; x1 = sheet x0 + (W − 15 mm) × k; y1 = sheet y0 + (H − 15 mm) × k; k = 1 ÷ mm per paper unit
Paper sizes, drawing scales and viewport aim sheets.js64-bit- CadCraft
-
Viewport of a new sheet
The size, paper position, model center and scale of the viewport a new sheet starts with.
Paper sizes, drawing scales and viewport aim sheets.js64-bit- CadCraft
-
Clusters of the model
Groups the model's visible objects whose bounding boxes are within a gap of each other, and returns each group's box.
Automatic sheet layout autosheet.js64-bit- CadCraft
-
Gap that separates parts
The distance below which two objects count as one part.
gap = max(Δx, Δy, 1e-9) × 0.04
Automatic sheet layout autosheet.js64-bit- CadCraft
-
Size of a part's viewport at a scale
The paper width and height a part needs at a scale 1:n, with padding and a caption band.
w = Δx × s + 2 × 4 mm × k; h = Δy × s + 2 × 4 mm × k + 7 mm × k; k = 1 ÷ mm per paper unit
Automatic sheet layout autosheet.js64-bit- CadCraft
-
Shelf packing
Places boxes in rows inside the free zone and returns each box's lower-left corner, or nothing when they do not fit.
Automatic sheet layout autosheet.js64-bit- CadCraft
-
Scale and place for every part on one paper
Chooses the scale or scales and the position of each viewport on a given paper.
Automatic sheet layout autosheet.js64-bit- CadCraft
-
Scale on automatic paper
With no scale given and automatic paper, the scale the largest part gets on the default paper.
Automatic sheet layout autosheet.js64-bit- CadCraft
-
Viewport placed for a part
The viewport stored for each part: paper size and center, model center and scale.
h = packed h − 7 mm × k; paper center = (x + w ÷ 2, y + 7 mm × k + h ÷ 2); model center = midpoint of the window
Automatic sheet layout autosheet.js64-bit- CadCraft
-
Point coordinates
The x, y and z of one point record.
x = X × scaleₓ + offsetₓ (and the same for y and z)
LAS and LAZ point coordinates las.js64-bit- CadCraft
- BimCraft
- CivilCraft
-
Scale, offset and bounds from the header
Reads the header's scale, offset, minimum and maximum and refuses a scale that cannot be used.
LAS and LAZ point coordinates las.js64-bit- CadCraft
- BimCraft
- CivilCraft
-
64-bit counts and offsets
Reads an unsigned 64-bit integer (LAS 1.4 point count, extended record positions and lengths).
value = hi × 2³² + lo
LAS and LAZ point coordinates las.js64-bit- CadCraft
- BimCraft
- CivilCraft
-
Points the file really holds
The number of whole point records between the first point and the end of the point data.
available = ⌊(end − offset to points) ÷ record length⌋, at most the header's count
LAS and LAZ point coordinates las.jsExact- CadCraft
- BimCraft
- CivilCraft
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.