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

  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    32-bit, display only
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    32-bit, display only
  • Legend range

    The least and largest value of a plotted result, for the legend.

    Simulation workspace: plot values and the hover probe ws-simulation.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    32-bit, display only
  • 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.js
    • PartCraft
    32-bit, display only
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    32-bit, display only
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    32-bit in part
  • 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.js
    • PartCraft
    32-bit in part

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.