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

  • Carcass depth behind a face frame

    The depth the carcass is built with when a face frame takes part of the cabinet's depth.

    d = max(1, d − frame thickness)

    CabinetCraft parts, fronts and face frames addons/cabinetcraft/lib/build.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Face-frame openings and overlay fronts

    The rails, the openings between them and the doors or drawer fronts that cover each opening.

    opening h = (box h − (2 + mids) × rail) ÷ (mids + 1); front h = opening h + lap below + lap above; pair door w = (opening w + 2 × overlay − gap) ÷ 2

    CabinetCraft parts, fronts and face frames addons/cabinetcraft/lib/build.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Door and blind panel of a blind corner

    The door over the open part of a blind corner cabinet and the panel over the blind part.

    door w = (w − blind) − reveal; panel w = blind − reveal; h = box h − reveal

    CabinetCraft parts, fronts and face frames addons/cabinetcraft/lib/build.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Part size stored in the cut list

    Adds one part with its length, width, thickness and material.

    CabinetCraft parts, fronts and face frames addons/cabinetcraft/lib/build.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Frame rail length and counts

    The length of the frame's rails and how many rails and mid rails a cabinet needs.

    rail length = w − 2 × stile − blind

    CabinetCraft parts, fronts and face frames addons/cabinetcraft/lib/build.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Doors and drawer fronts counted by size

    Groups equal fronts into one cut-list line with a quantity.

    CabinetCraft parts, fronts and face frames addons/cabinetcraft/lib/build.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    Exact
  • Drawer boxes of a face-frame cabinet

    The sides, ends and bottom of each drawer box behind a face frame.

    box h = min(front h − clearance, opening h − 20 mm); end = bw − 2t; bottom = (bw − 2t + 2g) × (slide − 2t + 2g); bw = opening w − 2 × slide gap

    CabinetCraft parts, fronts and face frames addons/cabinetcraft/lib/build.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Dowels of a corner cabinet

    The number of dowels a corner cabinet's drilling needs.

    dowels = dowel holes ÷ 2

    CabinetCraft parts, fronts and face frames addons/cabinetcraft/lib/build.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Curved cabinet outline in the cell's own axes

    The outline points of a made-to-order curved cabinet, measured from the cell's origin along its two axes.

    (x′, y′) = ((q − o) · u, (q − o) · n)

    CabinetCraft parts, fronts and face frames addons/cabinetcraft/lib/build.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Closing panel of an angled corner

    The height of the panel that closes a corner which is not a right angle.

    height = cabinet h − plinth height

    CabinetCraft parts, fronts and face frames addons/cabinetcraft/lib/build.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Picked room corner

    A corner of the room outline picked on the plan, snapped to the grid.

    p = round(x ÷ g) × g; g = 50 (mm job) or 2 (inch job)

    CabinetCraft room picking and dry-run units addons/cabinetcraft/main.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Direction of the picked outline

    Whether the corners were picked clockwise, which decides the sign of each arc's sweep.

    Σ (xᵢ × yᵢ₊₁ − xᵢ₊₁ × yᵢ) < 0 means clockwise

    CabinetCraft room picking and dry-run units addons/cabinetcraft/main.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Sheet size in the program's units

    The sheet size, thickness and rapid rate the dry run checks a G-code program against.

    k = (1 ÷ 25.4 or 1) × (25.4 or 1); sheet = job sheet × k; rapid (inch program) = rapid ÷ 25.4

    CabinetCraft room picking and dry-run units addons/cabinetcraft/main.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Numbers on labels and the maker review

    Writes a number with at most 2 decimals.

    text = round(v × 100) ÷ 100

    CabinetCraft room picking and dry-run units addons/cabinetcraft/main.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Job converted to the other unit

    Every size in the job converted from millimeters to inches or back when the job's unit is changed.

    to inches: round(v × (1 ÷ 25.4) × 16) ÷ 16; to millimeters: round(v × 25.4)

    Cabinet job edits that change sizes addons/cabinetcraft/lib/edit.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Gap at a door or window

    The width of the gap put in a run's floor row so that the cabinets after it clear an opening.

    width = ⌈(at + w + clear − start) × 10⌉ ÷ 10

    Cabinet job edits that change sizes addons/cabinetcraft/lib/edit.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Filler for a leftover

    Adds a filler as wide as the space a row leaves on its wall.

    filler width = rest, when 0.5 < rest ≤ 75 mm

    Cabinet job edits that change sizes addons/cabinetcraft/lib/edit.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Notch of a new L or U room

    The first size of the notch when a rectangular room is made L or U shaped.

    notch width = round(W ÷ 3); notch depth = round(D ÷ 2)

    Cabinet job edits that change sizes addons/cabinetcraft/lib/edit.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Drilling distances in inches

    The 32 mm system's drilling and hardware distances for the inch rule set.

    value = round(mm × (1 ÷ 25.4) × 10⁴) ÷ 10⁴

    Cabinet parts from a box and construction rules addons/cabinetcraft/lib/model.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Box sizes

    The box height without the plinth, the inside width and the depth the back takes.

    boxH = h − kick; iw = w − 2t; backDepth = backSetback + backT

    Cabinet parts from a box and construction rules addons/cabinetcraft/lib/model.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Door and drawer front sizes

    The size and position of every door and drawer front in the cabinet's front view.

    one door: (w − reveal) × (boxH − reveal); a pair: each (w − 2·reveal) ÷ 2 wide; n drawer fronts: each (boxH − n·reveal) ÷ n high

    Cabinet parts from a box and construction rules addons/cabinetcraft/lib/model.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Longest drawer slide that fits

    Picks the drawer slide length from the rule's list for the cabinet's inside depth.

    room = panel depth − backDepth − drawerBackClear; the longest listed L with L ≤ room + 1e-9

    Cabinet parts from a box and construction rules addons/cabinetcraft/lib/model.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Part list of one cabinet

    Every part of a cabinet with its length, width, thickness, material, quantity and banded edges.

    back in grooves: (iw + 2·groove) × (boxH − n·t + n·groove); shelf: (iw − 2·shelfClear) × (inside depth − shelfFront); drawer end: iw − 2·slideGap − 2·drawerT

    Cabinet parts from a box and construction rules addons/cabinetcraft/lib/model.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Size checks on a cabinet

    Reports a cabinet that is too narrow, too low or too shallow for its parts, or whose drawers do not fit.

    iw ≤ 0; boxH ≤ 2t; inside depth ≤ shelfFront; Σ fronts + n·reveal > boxH + 1e-9

    Cabinet parts from a box and construction rules addons/cabinetcraft/lib/model.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Linear stock to buy

    The number of pieces and the total length of each hardwood section in the job.

    length = Σ qty × length; pieces = Σ qty

    Cabinet job totals: linear stock and sheet count addons/cabinetcraft/lib/sheets.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Sheets used by a nested job

    The total number of sheets over all materials, with each material's own count and efficiency.

    sheets = Σ sheets per material

    Cabinet job totals: linear stock and sheet count addons/cabinetcraft/lib/sheets.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    Exact
  • Label position on the sheet

    Where each label is printed on the page, so that it lands on the die-cut label.

    x = left + col × (label width + gap x); y = top + row × (label height + gap y)

    Part labels on label sheets addons/cabinetcraft/lib/cutlist/labels.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Bar code module width

    The width of the narrowest bar of a label's Code 128 bar code, fitted to the space beside the id text.

    module = min(0.33 mm, room ÷ (code width + 20))

    Part labels on label sheets addons/cabinetcraft/lib/cutlist/labels.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Pieces from quantities

    One entry per piece to cut, from rows with a quantity.

    Cutting profile pieces from stock bars addons/windows/lib/cutlist/bars.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Length a bar takes

    The length of bar used by a set of pieces, with the saw kerf and the saving when mitred ends share a cut.

    used = Σ (length + kerf) − depth × min(⌊mitred ends ÷ 2⌋, mitred pieces − 1)

    Cutting profile pieces from stock bars addons/windows/lib/cutlist/bars.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Fewest bars for one stock length

    Which pieces go on which bar, and whether the count is proven to be the fewest.

    bound = ⌈Σ (length + kerf) ÷ usable − 1e-9⌉; usable = stock − trim at both ends

    Cutting profile pieces from stock bars addons/windows/lib/cutlist/bars.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Bars, cut positions, offcuts and waste

    The list of bars with each piece's start position, the offcut left on each bar and the totals.

    pos accumulates length + kerf; offcut = stock − trims − used; waste % = round((1 − piece length ÷ stock length) × 10⁴) ÷ 100

    Cutting profile pieces from stock bars addons/windows/lib/cutlist/bars.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Totals over all profiles

    The number of bars, the piece length, the stock length and the waste over every profile and color.

    waste = Σ stock length − Σ piece length

    Cutting profile pieces from stock bars addons/windows/lib/cutlist/bars.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Raw double, read

    A 64-bit value read from eight bytes of the bit stream.

    Numbers in a DWG file, read and written bit for bit dwg/bits-read.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Bit double, read

    A value stored as a two-bit code: a full 64-bit value, exactly 1.0 or exactly 0.0.

    Numbers in a DWG file, read and written bit for bit dwg/bits-read.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Double with default, read

    A value stored as the bytes in which it differs from a default value.

    Numbers in a DWG file, read and written bit for bit dwg/bits-read.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • 64-bit whole number, read

    An unsigned 64-bit whole number from two 32-bit halves.

    value = high × 2³² + low

    Numbers in a DWG file, read and written bit for bit dwg/bits-read.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Bit long long, read

    A whole number of up to seven bytes, the count given by three bits.

    value = Σ byteᵢ × 256ⁱ

    Numbers in a DWG file, read and written bit for bit dwg/bits-read.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Handle reference, read

    An object handle, absolute or as an offset from another handle.

    value = Σ byte × 256ᵏ; codes 6, 8, A, C: ref + 1, ref − 1, ref + value, ref − value

    Numbers in a DWG file, read and written bit for bit dwg/bits-read.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Modular char, read

    A signed whole number stored seven bits per byte.

    value = Σ (byte & 0x7F) × 2^(7i); the last byte carries 6 bits and the sign

    Numbers in a DWG file, read and written bit for bit dwg/bits-read.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Raw double, written

    A 64-bit value written as its eight bytes.

    Numbers in a DWG file, read and written bit for bit dwg/bits-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Bit double, written

    A value written as a two-bit code for exactly 0.0 or 1.0, or as a full 64-bit value.

    Numbers in a DWG file, read and written bit for bit dwg/bits-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Double with default, written

    A value written as a two-bit code when it equals its default, or in full.

    Numbers in a DWG file, read and written bit for bit dwg/bits-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Thickness, written

    A thickness written as one bit when it is zero, or as a bit double.

    Numbers in a DWG file, read and written bit for bit dwg/bits-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Bit long, written

    A 32-bit whole number in its short or full form.

    Numbers in a DWG file, read and written bit for bit dwg/bits-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    Exact
  • Bit short, written

    A 16-bit whole number in its short or full form.

    Numbers in a DWG file, read and written bit for bit dwg/bits-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    Exact
  • Bit long long, written

    A 64-bit whole number as a three-bit byte count and its bytes.

    Numbers in a DWG file, read and written bit for bit dwg/bits-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    Exact
  • Point, written

    The three coordinates of a point as bit doubles.

    Numbers in a DWG file, read and written bit for bit dwg/bits-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Handle bytes, written

    A handle as its bytes, most significant first.

    byte = v mod 256; v = ⌊v ÷ 256⌋

    Numbers in a DWG file, read and written bit for bit dwg/bits-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    Exact
  • Rational tag value

    A TIFF RATIONAL (two 32-bit integers) as one number.

    value = numerator ÷ denominator

    TIFF scan resolution raster/tiff.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • CivilCraft
    • PartCraft
    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.