Skip to main content

Module checks

Module checks 

Source
Expand description

Structural design checks: typed findings about a design that resolves but can’t be built or flown as described.

A finding is an Severity::Error when the design is physically impossible and a simulation of it would be wrong, usually on the flattering side: a motor wider than its mount (Loft reported +69% apogee for one), or fins whose root touches no part of the tube they belong to. A Severity::Warning marks something unusual that can be real, such as a motor mount that sticks out of the airframe. Callers that simulate should refuse designs with errors.

Lengths are compared with LENGTH_TOLERANCE_M of slack, so round-off never raises a finding.

See docs/physics/design.md.

Enums§

Finding
A problem found in a design. Serialized with a kind tag.
Severity
How serious a finding is.

Constants§

COARSE_GENERAL_TOLERANCE_M
ISO 2768-1:1989, table 1, tolerance class c (coarse): the permissible deviation of a linear dimension with no tolerance of its own. Each entry is (upper size, ± deviation), m, for sizes above the previous entry’s and up to and including this one’s; the first band starts at 0.5 mm, included, below which the standard sets none. The standard is for machined parts; hpr borrows its coarse class for hobby airframe parts, which no standard covers.
DRAWING_TOLERANCE_M
The tolerance of a three-place inch dimension on AeroTech’s RMS dimensional drawings, m: 0.005 in (0.127 mm), the .XXX entry of their title blocks.
NARROWER_THAN_NOMINAL_M
The nominal motor sizes whose cases are narrower than their names, with the largest case outside diameter, m: AeroTech’s RMS dimensional drawings (RMS-18/20, RMS-24/40, RMS-29/40-120 and HP RMS-29/120, archived from aerotech-rocketry.com in 2005; inches, .XXX to DRAWING_TOLERANCE_M) give the cases as 0.698, 0.938 and 1.125 in across, so at most 0.703, 0.943 and 1.130 in. Each entry is (nominal size, largest case). ThrustCurve.org and RASP files carry the nominal size, so a “29 mm” motor is 29 mm in hpr, and an AeroTech RMS-29 case at most 28.70 mm in the hand; other makers’ cases may differ. The same drawings give 38, 54, 75 and 98 mm cases as 1.500, 2.125, 2.965 and 3.870 in, so at the +0.005 in limit each is at least as wide as its name, and those sizes get no slack.

Functions§

check
Every check on a design and all its configurations.
check_configuration
The checks on one configuration’s motors in layout. The configuration need not be one of the rocket’s own, so a candidate motor can be checked before it is stored.
check_layout
The checks on the structure alone.
fit_tolerance_m
How far an internal part may reach past the room in its parent and still be a fit, m: the coarse general tolerance (COARSE_GENERAL_TOLERANCE_M) of the room’s diameter. A part drawn that much wider than a bore of that size, both made to the tolerance, can be made as a fit: the bore at +t and the part at −t close a diametral interference of 2t, a radial one of t. 0.5 mm for a bore of 6 to 30 mm, 0.8 mm for 30 to 120 mm, 1.2 mm for 120 to 400 mm; none below 0.5 mm, and 4 mm past 4 m.
has_errors
Whether any finding is an error.
motor_fit_slack_m
How much wider than its mount’s bore a motor’s diameter may be and only warn, m: for a nominal size in NARROWER_THAN_NOMINAL_M, how much wider the name is than the largest case (0.144 mm at 18 mm, 0.048 mm at 24 mm, 0.298 mm at 29 mm, so a 29 mm motor fits a 1.140 in bore); for any other diameter, none.