Brings run points into the viewer frame and writes the opening sizes and positions to the screen list, the CSV and the BCF.
How the precision is kept
Positions are brought into the viewer frame in 64-bit (millimeters divided by 1000, then 4x4 matrices). The numbers a person reads in the CSV and the BCF text are rounded to whole millimeters, so the export carries 1 mm resolution.
Calculations under this policy
4 calculations in 1 source file. The code is read from the released app when this page loads. It is the calculation people run, not a copy kept for this page.
The insulation, gap and position written into the BCF description.
The description rounds insulation, gap, x, y and z with Math.round; the BCF position itself is the 64-bit world point divided by 1000 (meters) in worldOf.
The gap and the needed clearance shown in the list in the display unit.
Meters are multiplied by 1000 to millimeters and passed to lenMark with the display unit; the unit conversion and rounding are in model-units.js, which is not in this review.
world mm ÷ 1000 to meters, then coordination matrix and model matrix; export values rounded with Math.round.
Number types
64-bit numbers.
Tolerances
None in this file; the clearance and opening sizes are computed in other files.
Limits
CSV and BCF description columns (insulation, gap, X, Y, Z, through length, size) are rounded to whole millimeters before they are written.
Approach: 64-bit, stated limit
The arithmetic is 64-bit, but the method or the data sets the accuracy: a solver tolerance, a mesh, a step size, a datum shift, a table. The limit is stated where the result is shown.