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

  • Equality in post conditions

    The == and != tests a post definition can make on two values.

    G-code written by text post definitions cam-postdef.js
    • PartCraft
    64-bit
  • Stock size variables

    The stock's diameter, side lengths and corners that a post can print in its header.

    sx = maxₓ − minₓ; d = 2 × r

    G-code written by text post definitions cam-postdef.js
    • PartCraft
    64-bit
  • Number and position text

    How a number and a position are turned into text for the script.

    number → 12 significant digits; position → 9 decimals, then 12 significant digits

    Numbers in a PartCraft script file script.js
    • PartCraft
    64-bit
  • Sketch geometry and dimensions

    Writes a sketch's points, circles, relations and dimension values.

    Numbers in a PartCraft script file script.js
    • PartCraft
    64-bit
  • A feature value read from a script

    Reads a setting such as a depth, given as a number or as an expression.

    Numbers in a PartCraft script file script.js
    • PartCraft
    64-bit
  • Mesh points in meters, Z up

    Converts the part's mesh vertices for the USD file.

    (x, y, z) mm → (x, −z, y) ÷ 1000 m

    USD export of a part or assembly usd-partcraft.js
    • PartCraft
    64-bit
  • Instance placement

    Turns an assembly instance's placement matrix from millimeters, Y up, to meters, Z up.

    M′ = A · M · A⁻¹; translation ÷ 1000

    USD export of a part or assembly usd-partcraft.js
    • PartCraft
    64-bit
  • Volume and mass attributes

    The volume in cubic meters and the mass in kilograms written on each part.

    volume m³ = V mm³ × 10⁻⁹; mass kg = V mm³ × ρ g/cm³ × 10⁻⁶

    USD export of a part or assembly usd-partcraft.js
    • PartCraft
    64-bit
  • Parameter values per variant

    The value each driving parameter ends up with in each variant.

    value = parameter to 12 significant digits

    Variant pack: parameter table, sizes and library bodies variants.js
    • PartCraft
    64-bit
  • Numbers in variants.csv

    How a table value is written into the CSV file.

    Variant pack: parameter table, sizes and library bodies variants.js
    • PartCraft
    64-bit
  • Size of a variant

    The width, depth and height of each variant written to variants.json.

    size = max − min per axis, to 4 decimals

    Variant pack: parameter table, sizes and library bodies variants.js
    • PartCraft
    64-bit
  • Volume written per variant

    The volume_mm3 figure of each variant in variants.json.

    volume to 9 significant digits

    Variant pack: parameter table, sizes and library bodies variants.js
    • PartCraft
    64-bit
  • Variant body in library coordinates

    Turns a variant's mesh to Z up, anchors it at the back middle bottom and rounds it for the library item.

    (x, y, z) → (x, −z, y), shifted to the anchor, rounded to d decimals

    Variant pack: parameter table, sizes and library bodies variants-item.js
    • PartCraft
    64-bit
  • Rounding helper

    Rounds a value to a number of decimals for the library item.

    r(v, d) = round(v × 10ᵈ) ÷ 10ᵈ

    Variant pack: parameter table, sizes and library bodies variants-item.js
    • PartCraft
    64-bit
  • Preset figures

    The gravity, pressure and temperature each world starts from.

    Environment: gravity, ambient pressure and temperature env/env.js
    • PartCraft
    64-bit
  • Gravity in solver units

    Gravity in mm/s² for a gravity load.

    g mm/s² = g m/s² × 1000

    Environment: gravity, ambient pressure and temperature env/env.js
    • PartCraft
    64-bit
  • Ambient pressure in MPa

    The ambient pressure in the solvers' unit.

    p MPa = p Pa ÷ 10⁶

    Environment: gravity, ambient pressure and temperature env/env.js
    • PartCraft
    64-bit
  • Gauge pressure

    The pressure that loads the wall of a sealed volume.

    gauge = absolute − ambient

    Environment: gravity, ambient pressure and temperature env/env.js
    • PartCraft
    64-bit
  • Weight of a mass

    Weight in newtons from a mass in kilograms.

    W = m × g

    Environment: gravity, ambient pressure and temperature env/env.js
    • PartCraft
    64-bit
  • Loads filled in from the environment

    Gives a solver job its gravity, gauge pressures and ambient temperatures.

    Environment: gravity, ambient pressure and temperature env/env.js
    • PartCraft
    64-bit
  • Cache key

    A short text that says whether the environment changed since a result was made.

    Environment: gravity, ambient pressure and temperature env/env.js
    • PartCraft
    64-bit
  • Default thresholds

    The heights the filter uses when the caller gives none.

    h₀ = 0.3 × cell; h_max = 6 × cell; low noise = slope × cell × 3 + 3 × h₀

    Ground points from an unclassified point cloud ground-classify.js
    • CivilCraft
    64-bit
  • Lowest point per cell

    Sorts the points into grid cells and keeps the lowest of each.

    column = ⌊(x − minₓ) ÷ cell⌋; row = ⌊(y − min_y) ÷ cell⌋

    Ground points from an unclassified point cloud ground-classify.js
    • CivilCraft
    64-bit
  • Stray low points

    Drops single points that lie far below their neighbors.

    stray when median(neighbors) − z > low-noise limit

    Ground points from an unclassified point cloud ground-classify.js
    • CivilCraft
    64-bit
  • Opening with growing windows

    Marks cells that stand above the opened surface as objects, round by round.

    wₖ = 2ᵏ + 1; dhₖ = min(h_max, slope × (wₖ − wₖ₋₁) × cell + h₀); object when z − opened > dhₖ

    Ground points from an unclassified point cloud ground-classify.js
    • CivilCraft
    64-bit
  • Morphological opening

    The minimum, then the maximum, over a square window around each cell.

    Ground points from an unclassified point cloud ground-classify.js
    • CivilCraft
    64-bit
  • Coordinates read from a row

    Takes the northing, easting and elevation of one line of a point file.

    Survey point files: reading and writing points.js
    • CivilCraft
    64-bit
  • Points written as a PNEZD file

    Writes point number, northing, easting, elevation and description, comma separated.

    N, E and Z written with dec decimals (3 by default)

    Survey point files: reading and writing points.js
    • CivilCraft
    64-bit
  • Point count per group

    Counts the points of each description group.

    Survey point files: reading and writing points.js
    • CivilCraft
    Exact
  • Stand-in ground for a road with no survey

    The elevation and extent of the flat ground a corridor is drawn on when the project has no surface.

    z = mean of the PVI elevations, rounded to 0.01; margin = (60 m or 200 ft) + 6 × (z_max − z_min)

    Project: stand-in ground, volumes and saved points project.js
    • CivilCraft
    64-bit
  • Cut and fill inside the daylight lines

    The total cut and fill and the figures per graded item.

    Project: stand-in ground, volumes and saved points project.js
    • CivilCraft
    64-bit
  • Points in the project file

    Writes each survey point to the .civilcraft.json file.

    Project: stand-in ground, volumes and saved points project.js
    • CivilCraft
    64-bit
  • Conversion constants and two-decimal rounding

    The pound and inch factors and the helper that writes two decimals.

    lb = kg × 2.20462262185; in = mm ÷ 25.4; f2(v) = round(v × 100) ÷ 100

    KISS file: quantities, sizes and weights kiss.js
    • DetailCraft
    64-bit
  • Weight and plate area fields

    The weight and area written on a line, in metric or imperial units.

    weight = kg, or kg × 2.20462262185 lb; area = m², or m² × 10.7639104167 sq ft

    KISS file: quantities, sizes and weights kiss.js
    • DetailCraft
    64-bit
  • Inches as a fraction to 1/16

    Writes a plate or bolt size in inches and sixteenths.

    n = round(inches × 16); whole = ⌊n ÷ 16⌋; fraction reduced by halving

    KISS file: quantities, sizes and weights kiss.js
    • DetailCraft
    64-bit
  • Size designation

    The type code and size text of a part's profile.

    KISS file: quantities, sizes and weights kiss.js
    • DetailCraft
    64-bit
  • Detail line: quantity, length, weight, area

    One D line of the file for a part mark.

    plate area m² = width × length ÷ 10⁶

    KISS file: quantities, sizes and weights kiss.js
    • DetailCraft
    64-bit
  • Hole counts by size

    The labor lines that count a part's holes by diameter and thickness.

    KISS file: quantities, sizes and weights kiss.js
    • DetailCraft
    64-bit
  • Area, mass per meter, width, depth and perimeter

    Fills in the values every member, bill of materials and drawing reads from a profile.

    mass kg/m = published value, else area mm² × 10⁻⁶ × ρ kg/m³

    Steel profiles: area, mass per meter and sizes profiles.js
    • DetailCraft
    64-bit
  • Plate name

    The name of a plate profile from its thickness and width.

    PL<t>x<w>, each to 2 decimals

    Steel profiles: area, mass per meter and sizes profiles.js
    • DetailCraft
    64-bit
  • Thickness a hole goes through

    The material thickness on the face a hole is made in.

    Steel profiles: area, mass per meter and sizes profiles.js
    • DetailCraft
    64-bit
  • Profile summary in the properties panel

    The rows of sizes, area and mass shown for a profile.

    area cm² = area mm² ÷ 100

    Steel profiles: area, mass per meter and sizes profiles.js
    • DetailCraft
    64-bit
  • Custom profile sizes

    Checks the sizes of a profile a person defines.

    Steel profiles: area, mass per meter and sizes profiles.js
    • DetailCraft
    64-bit
  • A part's solid

    Builds the side faces and end caps of one steel part.

    USD export of the steel model usd-detailcraft.js
    • DetailCraft
    64-bit
  • Millimeters to meters

    Converts a world point for the USD file.

    (x, y, z) m = (x, y, z) mm ÷ 1000

    USD export of the steel model usd-detailcraft.js
    • DetailCraft
    64-bit
  • Length and weight attributes

    The length in meters and the weight in kilograms written on each part.

    length m = length mm ÷ 1000

    USD export of the steel model usd-detailcraft.js
    • DetailCraft
    64-bit
  • Paper length of a notation in inches

    Reads a fraction, a mixed number or a decimal as inches.

    1-1/2 → 1 + 1 ÷ 2; 1/4 → 1 ÷ 4

    Sheet scale read from the sheet's text scaletext.js
    • TakeoffCraft
    64-bit
  • Ratio of a notation and its listed scale

    Every scale notation in the text, each matched to a listed scale.

    ratio = (feet × 12 + inches) ÷ paper inches, rounded to 3 decimals

    Sheet scale read from the sheet's text scaletext.js
    • TakeoffCraft
    64-bit
  • Which scale a sheet gets

    The most frequent scale on the sheet, and the other scales found.

    Sheet scale read from the sheet's text scaletext.js
    • TakeoffCraft
    Exact
  • Stock figure from text

    Reads a stock cell such as 1,200 or Out of stock as a number, or as in stock or not.

    Supplier stock and lead-time check lib-supply/supply.js
    • TakeoffCraft
    • DetailCraft
    64-bit

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.