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
-
Plant sizes in project units
The factor that turns a plant's mature height and spread in meters into project units.
project units per meter = 1 ÷ (1200 ÷ 3937) for feet
Overhead line checks: clearances, support loads and sizing powerline/landscape-obstacles.js64-bit- CivilCraft
-
Tree canopy as a ring
The outline of a plant's canopy used to find where a span passes over it.
12 points on the circle of radius r: (x + r·cos(2πk ÷ 12), y + r·sin(2πk ÷ 12))
Overhead line checks: clearances, support loads and sizing powerline/landscape-obstacles.js64-bit- CivilCraft
-
A plant as an obstacle
A single plant's canopy radius, height and ground level as an obstacle under a line.
radius = max(spread ÷ 2, 0.1); height = mature height
Overhead line checks: clearances, support loads and sizing powerline/landscape-obstacles.js64-bit- CivilCraft
-
Foundation volume shown in cubic yards
The foundation volume in the support's properties, in cubic yards for a feet project.
yd³ = m³ × 1.307951
Overhead line checks: clearances, support loads and sizing powerline/powerline-ui.js64-bit- CivilCraft
-
Length of a span in the network
The electrical length of each overhead span.
length = √(Δx² + Δy²) × m per unit
Power network: load current and voltage drop powerline/network.js64-bit- CivilCraft
-
Snapping to the nearest node
Finds the support or equipment a route end or a piece of equipment connects to.
nearest node with distance × m per unit ≤ snap + 1e−9
Power network: load current and voltage drop powerline/network.js64-bit- CivilCraft
-
Resistance, reactance and ampacity of an edge
The electrical data of a span or cable route, with parallel cables counted.
R = R₂₀ ÷ n; X = X ÷ n (0.08 or 0.35 Ω/km by default); ampacity × n
Power network: load current and voltage drop powerline/network.js64-bit- CivilCraft
-
Loads summed upstream
The active and reactive power each edge carries, and the current each load draws.
Q = P·tan(acos pf); I = √(P² + Q²) ÷ (√3·U)
Power network: load current and voltage drop powerline/network.js64-bit- CivilCraft
-
Current, voltage drop and node voltage
The current and voltage drop in each edge and the voltage and cumulative drop at each node.
ΔU = √3·I·(L ÷ 1000)·(R·cos φ + X·sin φ); drop % += ΔU ÷ (U × 1000) × 100; U node = U·(1 − drop ÷ 100)
Power network: load current and voltage drop powerline/network.js64-bit- CivilCraft
-
Numbers in the file
Turns a value into the fixed-decimal text the file carries, and newtons into decanewtons.
text = v.toFixed(d); daN = N ÷ 10, 2 decimals
Line study file (.DON) export and import powerline/don.js64-bit- CivilCraft
-
Signed line angle at each support
The turn of the line at each support in degrees, counter-clockwise positive.
turn = atan2 of the span ahead − atan2 of the span behind, wrapped to ±180°
Line study file (.DON) export and import powerline/don.js64-bit- CivilCraft
-
Support coordinates and heights written
Each support's position, ground level, pole length, height above ground and line angle as written to the file.
X = x × m per unit, 3 decimals; Hauteur = typed height × m per unit + embedment
Line study file (.DON) export and import powerline/don.js64-bit- CivilCraft
-
Section tension and catenary parameter written
The reference temperature, horizontal tension and catenary parameter of each section as written to the file.
Parametre = H ÷ w, 3 decimals; TensionIni = H ÷ 10 daN, 2 decimals
Line study file (.DON) export and import powerline/don.js64-bit- CivilCraft
-
Reading a number
Turns a field's text into a number, accepting a decimal comma.
Line study file (.DON) export and import powerline/don.js64-bit- CivilCraft
-
Angles in grades
Converts a line angle given in grades to degrees.
degrees = grades × 0.9
Line study file (.DON) export and import powerline/don.js64-bit- CivilCraft
-
A study file into a line
Turns the supports read from a file into a line in project units.
x = X (m) ÷ m per unit; voltage kV = V ÷ 1000
Line study file (.DON) export and import powerline/don.js64-bit- CivilCraft
-
Clear-sky beam and diffuse irradiance
The irradiance outside the atmosphere, the beam transmittance, and the beam and diffuse irradiance at the ground.
τ_b = a₀ + a₁·exp(−k ÷ cos Z); G_on = 1367·(1 + 0.033·cos(2πn ÷ 365)); G_bn = G_on·τ_b; τ_d = 0.271 − 0.294·τ_b
Clear-sky solar irradiance pv/daylight-bim-sky.js64-bit- CivilCraft
-
Node merging
One analysis node for every group of points that lie within 1 mm of each other.
same node when |p − n| ≤ 1 mm
Analytical frame model from the drawn members analysis.js64-bit- DetailCraft
-
Splitting a member at the points on it
The stations along a drawn member where another member's end or a node load lies on it.
s = (q − start)·u; foot = start + u·s; cut when |foot − q| ≤ 2 mm and 2 mm < s < L − 2 mm
Analytical frame model from the drawn members analysis.js64-bit- DetailCraft
-
End points of each piece
The two points of every piece a split member becomes.
p = start + u·s
Analytical frame model from the drawn members analysis.js64-bit- DetailCraft
-
Section properties per profile
Area, second moments of area and torsion constant of each profile in use, with the reduced bending stiffness of cracked concrete.
Iy′ = f·Iy, Iz′ = f·Iz
Analytical frame model from the drawn members analysis.js64-bit- DetailCraft
-
Which column feet are supports
Decides which column feet are held: those with a base plate, or with no member going lower at that node.
support when lowest z at the node ≥ node z − 1 mm
Analytical frame model from the drawn members analysis.js64-bit- DetailCraft
-
Point load on a split member
Moves a point load from its distance along the drawn member to the piece it falls on.
a′ = max(0, a − s0)
Analytical frame model from the drawn members analysis.js64-bit- DetailCraft
-
Distributed load on a split member
Cuts a uniform or linearly varying load into the part that falls on each piece.
w(s) = w + (w₂ − w)·(s − a) ÷ (b − a)
Analytical frame model from the drawn members analysis.js64-bit- DetailCraft
-
Sections the drawn members use
The area and second moments of area listed for each profile in the model.
Analytical frame model from the drawn members analysis.js64-bit- DetailCraft
-
One bolt's shear strength
The single-shear design strength of one bolt in kN.
φRn = 0.75 × Fnv × (π·d² ÷ 4) ÷ 1000
Connection autopilot starting sizes autopilot.js64-bit- DetailCraft
-
End shear from a uniform load
The end shear of a beam when only a uniform load per meter is given.
R = w × L ÷ 1000 ÷ 2
Connection autopilot starting sizes autopilot.js64-bit- DetailCraft
-
Shear tab rows and plate
Bolt diameter, number of rows, edge distance and plate thickness for a shear tab.
clear = d − 2(tf + r); maxRows = ⌊(clear − 2·edge) ÷ 75⌋ + 1; need = max(2, ⌈R ÷ φRn⌉)
Connection autopilot starting sizes autopilot.js64-bit- DetailCraft
-
End plate rows and plate
Bolt rows, plate width, thickness and gauge for an end plate.
rows wanted = max(4, 2·⌈R ÷ φRn ÷ 4⌉); width = max(150, bf rounded up to 10); gauge = max(90, round(0.55·bf ÷ 5)·5)
Connection autopilot starting sizes autopilot.js64-bit- DetailCraft
-
Base plate size and rod spacing
Plate length and width, rod diameter, hole and rod spacing for a column base.
length = max(300, (depth + 150) rounded up to 25); sx = length − 100
Connection autopilot starting sizes autopilot.js64-bit- DetailCraft
-
Rounding up to a step
Rounds a size up to the next multiple of a step.
⌈v ÷ step − 1e-9⌉ × step
Connection autopilot starting sizes autopilot.js64-bit- DetailCraft
-
Box round each part and footing
The center, axes and half sizes of the box used for the first, coarse test.
c = o + x̂·L ÷ 2 + v̂·voff; h = (L ÷ 2, width ÷ 2, depth ÷ 2)
Clash check between parts clash.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
Point inside a section outline
Whether a point lies inside a closed outline.
Clash check between parts clash.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
Reported depth and location
The depth and the point each clash is reported with.
depth = round(depth × 10) ÷ 10
Clash check between parts clash.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.jsExact- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.js64-bit- DetailCraft
-
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.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.