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§
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
.XXXentry 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,
.XXXtoDRAWING_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+tand the part at−tclose a diametral interference of2t, a radial one oft. 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.