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
-
Mean outward normal at picked nodes
The direction used for pressure and normal force at each node of a picked face.
n = Σ face normals ÷ |Σ face normals|
Voxel grid of a part voxel.js32-bit in part- PartCraft
-
Cubes near picked faces
Marks the cubes whose centers are within a distance of picked faces, for preserve and obstacle regions.
kept when the distance from the cube center to the faces' triangles ≤ dist
Voxel grid of a part voxel.js64-bit- PartCraft
-
Section outline at its anchor
The section's outline moved so the chosen anchor point sits on the member's line, with its width, height and radius.
w = u_max − u_min; h = v_max − v_min; R = max |point|
Structural members and their cut list weldment.js64-bit- PartCraft
-
Member orientation
The across and depth directions of a member's section about its line.
v = up − (up·d) d, normalized; u = v × d; then rotated about d
Structural members and their cut list weldment.js64-bit- PartCraft
-
When line ends meet
The distance within which two line ends count as one joint.
tol = 10⁻⁶ × max(1, largest |end point|, longest member)
Structural members and their cut list weldment.js64-bit- PartCraft
-
How far a member runs past a corner
The extra length a raw member needs so a miter cut still has material.
ext = min(50 R, R ÷ max(tan(angle ÷ 2), 0.02)) + R
Structural members and their cut list weldment.js64-bit- PartCraft
-
Miter cut plane
The plane halfway between two members that both are cut on.
n = (d_in + d_out) ÷ |d_in + d_out|; offset = n·P
Structural members and their cut list weldment.js64-bit- PartCraft
-
Butt cut planes
Where the through member ends and where the other is cut square against it.
reach = max |(u U + v V)·d| over the outline; offsets = ∓(d·P) ∓ reach
Structural members and their cut list weldment.js64-bit- PartCraft
-
Gusset plate
The triangular plate in a corner and the angle listed for it.
corners (0, 0), (s, 0), (s d_out·x, s d_out·y); angle = acos(x·d_out)
Structural members and their cut list weldment.js64-bit- PartCraft
-
Cut length and end angles of a member
The length of each finished piece along its line and the angle of each end cut, as stored in the cut list.
length = round((max s − min s) × 10) ÷ 10, s = (vertex − a)·d; angle = round(acos(|cut·d|) × 180 ÷ π × 100) ÷ 100
Structural members and their cut list weldment.js32-bit in part- PartCraft
-
Cut list rows
Groups identical pieces and counts them.
same piece when section, length to one decimal, both angles and both end kinds match
Structural members and their cut list weldment.js32-bit in part- PartCraft
-
Cut list CSV
Writes the cut list as CSV text.
member: length with one decimal; cap: w × h with one decimal
Structural members and their cut list weldment.js32-bit in part- PartCraft
-
Cage move from the gizmo
The transform applied to the selected cage vertices while the gizmo is dragged.
M = W_now × W_start⁻¹
Freeform cage edits from the workspace ws-form.js64-bit- PartCraft
-
Point for a new face
The position stored when a face is drawn by clicks.
existing vertex within 9 px, else ray ∩ plane y = 0 rounded to 0.001
Freeform cage edits from the workspace ws-form.js64-bit- PartCraft
-
Direction of an edge extrusion
The direction and distance open edges are extruded by.
d = Σ (edge middle − face center); offset = d ÷ |d| × distance
Freeform cage edits from the workspace ws-form.js64-bit- PartCraft
-
Tolerance for joining a new face
The distance within which a new face's points join existing cage vertices.
tol = 10⁻⁶ × max(1, size setting)
Freeform cage edits from the workspace ws-form.js64-bit- PartCraft
-
Picked point as an anchor
The anchor position in the part's own axes and the face normal at the pick.
p = M⁻¹ p_pick, each coordinate rounded to 6 decimals; n = (b − a) × (c − a) ÷ length
Anchor points of manual annotations ws-illustrate.js64-bit- PartCraft
-
Is a face square to the tool axis
Decides whether a picked flat or round face can be machined from the setup's tool axis.
accepted when ||n·axis| − 1| ≤ 10⁻⁹
Machining picks and readouts ws-manufacture.js64-bit- PartCraft
-
Matching a pick to one already stored
Decides whether a clicked face is already in the operation's geometry, to add or remove it.
same when names agree and |at − ref| < 10⁻³
Machining picks and readouts ws-manufacture.js64-bit- PartCraft
-
Numbers shown in the panel
Formats stock sizes, feeds, gouge depth and remaining stock for the panel.
text = value rounded to dp decimals (3 by default), trailing zeros dropped
Machining picks and readouts ws-manufacture.js64-bit- PartCraft
-
Part mesh for scripts
The open part as a triangle mesh a script can compute on through part().
Script workspace: the part handed to scripts and picked values ws-script.js32-bit in part- PartCraft
-
Picked point and nearest node
The coordinates of the clicked point and the mesh node closest to it.
node = the hit triangle's corner with the least √(Δx² + Δy² + Δz²) to the hit point
Script workspace: the part handed to scripts and picked values ws-script.js32-bit in part- PartCraft
-
Field values at the picked node or element
The value of each shown field at the picked node or element.
Script workspace: the part handed to scripts and picked values ws-script.js64-bit- PartCraft
-
Deformed shape for drawing
The drawn position of each surface corner when a displacement field deforms the shape.
drawn position = position + scale × displacement
Script workspace: the part handed to scripts and picked values ws-script.js32-bit, display only- PartCraft
-
Element size of a live analysis level
The element size the coarse and refined live solves use.
h = base size × level factor
Simulation workspace: plot values and the hover probe ws-simulation.js64-bit- PartCraft
-
Mode shape magnitude
The size of the mode shape's displacement at each plot vertex.
|u| = √(u_x² + u_y² + u_z²)
Simulation workspace: plot values and the hover probe ws-simulation.js32-bit in part- PartCraft
-
Safety factor plot values
The safety factor at each plot vertex, for coloring.
safety = min(yield ÷ stress, 100)
Simulation workspace: plot values and the hover probe ws-simulation.js32-bit, display only- PartCraft
-
Legend range
The least and largest value of a plotted result, for the legend.
Simulation workspace: plot values and the hover probe ws-simulation.js64-bit- PartCraft
-
Result under the pointer
The stress, displacement, strain and safety factor at the point under the pointer.
value = w₀v₀ + w₁v₁ + w₂v₂; safety = yield ÷ stress
Simulation workspace: plot values and the hover probe ws-simulation.js32-bit in part- PartCraft
-
Barycentric weights
The three weights of a point inside a triangle.
w₁ = (d₁₁d₂₀ − d₀₁d₂₁) ÷ (d₀₀d₁₁ − d₀₁²); w₂ = (d₀₀d₂₁ − d₀₁d₂₀) ÷ (d₀₀d₁₁ − d₀₁²); w₀ = 1 − w₁ − w₂
Simulation workspace: plot values and the hover probe ws-simulation.js64-bit- PartCraft
-
Deformed plot positions
The drawn position of each plot vertex when the deformed shape is shown.
drawn position = position + scale × displacement
Simulation workspace: plot values and the hover probe ws-simulation.js32-bit, display only- PartCraft
-
Automatic deformation scale
The factor the displacements are multiplied by so the deformed shape can be seen.
raw = 0.08 × box diagonal ÷ largest |u|, rounded up to 1, 2, 5 or 10 × 10ᵉ
Simulation workspace: plot values and the hover probe ws-simulation.js32-bit, display only- PartCraft
-
Rounding to 3 decimals
Rounds a number to a multiple of 0.001 before it is stored.
round(v × 1000) ÷ 1000
Add-on display bodies: stored coordinates and placement addons/addon-bodies.js64-bit- PartCraft
-
Body coordinates as stored
The box corners or mesh positions, offset and turn of one body as they go into the part file.
Add-on display bodies: stored coordinates and placement addons/addon-bodies.js64-bit- PartCraft
-
Body placed in the world
Turns a body's points about the Y axis and moves them by its offset.
x′ = x cos a + z sin a + t_x; y′ = y + t_y; z′ = −x sin a + z cos a + t_z; a = rotY × π ÷ 180
Add-on display bodies: stored coordinates and placement addons/addon-bodies.js64-bit- PartCraft
-
Box of all add-on bodies
The least and largest coordinates of every placed add-on body.
Add-on display bodies: stored coordinates and placement addons/addon-bodies.js64-bit- PartCraft
-
Rounding for the panel
Rounds a result to a few significant digits before the panel words it.
Advanced simulation add-on: result summary and color bands addons/advanced-sim/lib/results.js64-bit- PartCraft
-
Summary rows
The load reached, largest displacement and stress, plastic strain, contact force and penetration of a result.
load = √(F_x² + F_y² + F_z²) × λ; penetration % = 100 × penetration ÷ h
Advanced simulation add-on: result summary and color bands addons/advanced-sim/lib/results.js64-bit- PartCraft
-
Color bands and legend
Splits the plot mesh into bands of equal value range and gives each band's limits.
band = floor((v − lo) ÷ (hi − lo) × n), clamped to 0 … n − 1; limits: lo + (hi − lo) × i ÷ n
Advanced simulation add-on: result summary and color bands addons/advanced-sim/lib/results.js64-bit- PartCraft
-
A flat face's box in its own plane
The extent of a flat face along two axes lying in its plane.
u = (n × t) ÷ |n × t|; v = n × u; box = least and largest p·u and p·v over the face's triangle corners
Advanced simulation add-on: finding contact pairs addons/advanced-sim/lib/setup.js32-bit in part- PartCraft
-
Facing faces within a gap
The pairs of flat faces that face each other, with their gap and overlap.
n·m ≤ −cos 0.5°; d = (o_B − o_A)·n with −1e-6 ≤ d ≤ gap; overlap = w × h
Advanced simulation add-on: finding contact pairs addons/advanced-sim/lib/setup.js64-bit- PartCraft
-
Triangle areas and centroids
The area and center of each mesh triangle.
area = |(b − a) × (c − a)| ÷ 2; centroid = (a + b + c) ÷ 3 × 1000
Magnetics add-on: field readout, flux lines and exports addons/magnetics/lib/results.js64-bit- PartCraft
-
Area, mean and peak flux density of each body
Each body's area in mm², its area-weighted mean |B| and its largest |B|.
mean B = Σ(Bₑ × areaₑ) ÷ Σ areaₑ
Magnetics add-on: field readout, flux lines and exports addons/magnetics/lib/results.js32-bit in part- PartCraft
-
Result against a hand formula
The value the result gives where a template's hand formula applies, and its relative difference.
got = Σ(v × w) ÷ Σ w; diff = got ÷ want − 1
Magnetics add-on: field readout, flux lines and exports addons/magnetics/lib/results.js32-bit in part- PartCraft
-
Flux lines
Contour segments of the vector potential A, and the flux between neighboring lines.
levelᵢ = lo + ΔA × (i + 1), ΔA = (hi − lo) ÷ (k + 1); t = (L − aᵢ) ÷ (aⱼ − aᵢ)
Magnetics add-on: field readout, flux lines and exports addons/magnetics/lib/results.js32-bit in part- PartCraft
-
Top of the color scale
The |B| that the top color stands for.
Magnetics add-on: field readout, flux lines and exports addons/magnetics/lib/results.js32-bit, display only- PartCraft
-
Number format of the exports
How a number is written into the CSV and VTK files.
Magnetics add-on: field readout, flux lines and exports addons/magnetics/lib/results.js64-bit- PartCraft
-
Field table (CSV)
One row per triangle: center, region, area and B.
Magnetics add-on: field readout, flux lines and exports addons/magnetics/lib/results.js32-bit in part- PartCraft
-
VTK file
The mesh in mm with B per triangle and A per node.
Magnetics add-on: field readout, flux lines and exports addons/magnetics/lib/results.js32-bit in part- PartCraft
-
Summary table (CSV)
Peak B, each body's area, mean and peak B, forces, torque and the hand-formula check.
Magnetics add-on: field readout, flux lines and exports addons/magnetics/lib/results.js32-bit in part- PartCraft
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.