{"$schema":"nativecad-dfm-bundle/1","size":"full","packs":[{"$schema":"nativecad-dfm-pack/1","id":"aerospace","title":"Aerospace -- drone frames, motor mounts, payload rails and airframe hardware","sector":"aerospace","version":"2026-09-03","summary":"Multirotor frame and motor-mount dimensions, flight-controller and battery-bay standards, payload rails, fixed-wing basics, aerospace fastener locking, weight/CG budgeting and the environmental tests a small UAS airframe is held to.","aliases":["drone","quadcopter","uav","multirotor","aircraft","airframe","motor mount","prop","propeller","payload rail","fpv","wing","aerospace bracket"],"crossSector":false,"size":"full","sources":[{"id":"rtca-do160g","title":"RTCA DO-160G Environmental Conditions and Test Procedures for Airborne Equipment","url":"https://www.rtca.org/content/standards-guidance-materials","accessed":"2026-09-03"},{"id":"faa-14cfr107","title":"FAA 14 CFR Part 107 -- Small Unmanned Aircraft Systems","url":"https://www.ecfr.gov/current/title-14/chapter-I/subchapter-F/part-107","accessed":"2026-09-03"},{"id":"easa-2019-947","title":"EASA Implementing Regulation (EU) 2019/947 -- UAS Open Category rules and weight classes","url":"https://www.easa.europa.eu/en/document-library/regulations/commission-implementing-regulation-eu-2019947","accessed":"2026-09-03"},{"id":"ms21042","title":"MS21042 / SAE AS21042 Nut, Self-Locking, 250 Deg F, Reduced Hex","url":"https://www.sae.org/standards/content/as21042/","accessed":"2026-09-03"},{"id":"ms20426","title":"MS20426 Rivet, Solid, 100 Deg Countersunk Head","url":"https://standards.nasa.gov/standard/other/ms20426","accessed":"2026-09-03"},{"id":"nasm33540","title":"NASM33540 General Practices for Safety Wiring and Cotter Pinning","url":"https://standards.nasa.gov/standard/asd-stan/nasm33540","accessed":"2026-09-03"},{"id":"tmotor-mn-series","title":"T-Motor MN-series brushless motor mechanical drawings (bolt pattern, shaft, thread)","url":"https://store.tmotor.com/","accessed":"2026-09-03"},{"id":"iflight-xing-motor","title":"iFlight XING-series brushless motor mechanical drawings","url":"https://shop.iflight.com/","accessed":"2026-09-03"},{"id":"oscar-liang-frame-guide","title":"Oscar Liang FPV quadcopter frame size and build guides","url":"https://oscarliang.com/category/frame/","accessed":"2026-09-03"},{"id":"sandia-isogrid-handbook","title":"Sandia National Laboratories / NASA isogrid design handbook (Meyer et al., triangular rib-pattern structures)","url":"https://www.osti.gov/biblio/5117252","accessed":"2026-09-03"},{"id":"matweb-materials","title":"MatWeb Material Property Data (aerospace aluminium, composites, engineering plastics)","url":"https://www.matweb.com/","accessed":"2026-09-03"},{"id":"mil-std-1913-picatinny","title":"MIL-STD-1913 Dimensioning of Accessory Mounting Rail for Small Arms Weapons (Picatinny rail)","url":"https://www.everyspec.com/MIL-STD/MIL-STD-1900-1999/MIL-STD-1913_10592/","accessed":"2026-09-03"},{"id":"asme-b1-1-unc","title":"ASME B1.1 Unified Inch Screw Threads (UN and UNR Thread Form)","url":"https://www.asme.org/codes-standards/find-codes-standards/b1-1-unified-inch-screw-threads-un-unr-thread-form","accessed":"2026-09-03"},{"id":"loctite-243-263-tds","title":"Loctite 243 and 263 Threadlocker Technical Data Sheets","url":"https://www.henkel-adhesives.com/us/en/product/threadlockers.html","accessed":"2026-09-03"},{"id":"ardupilot-pixhawk-standard","title":"ArduPilot/PX4 standard flight-controller mounting patterns (30.5mm and 20x20mm)","url":"https://ardupilot.org/copter/docs/common-autopilots.html","accessed":"2026-09-03"},{"id":"towerpro-sg90","title":"TowerPro SG90 9g Micro Servo datasheet (case dimensions)","url":"https://www.towerpro.com.tw/product/sg90-7/","accessed":"2026-09-03"},{"id":"hoerner-fluid-dynamic-drag","title":"S. F. Hoerner, Fluid-Dynamic Drag (1965), ch. 5: drag of surface imperfections, steps, gaps and protuberances","accessed":"2026-10-19"},{"id":"ms24694","title":"MS24694 Screw, machine, flat countersunk head, 100 degree, structural","url":"https://quicksearch.dla.mil/","accessed":"2026-10-19"},{"id":"pilot-rear-wing-line-exit","title":"Motorsport rear-wing pilot (customer project, unnamed): pneumatic line exit moved from the pillar leading edge to the chassis mating face (CADSF-102112)","accessed":"2026-10-19"}],"entries":[{"id":"frame-plate-thickness","kind":"dimension","tier":1,"title":"CF plate thickness for drone frame arms and center plates","summary":"Drone frame arms and center plates are cut from carbon-fiber/epoxy plate at 2, 3 or 4 mm -- 2mm for small whoops and non-structural covers, 3mm for 5-7in racing arms, 4mm for 10in+ or load-bearing center plates.","applies":["frame","arm","center plate","quadcopter"],"value":{"options":[2,3,4],"unit":"mm"},"basis":"Common FPV frame-manufacturer plate-thickness convention scaled to arm/plate span and prop torque","sources":["oscar-liang-frame-guide"],"tags":["frame","plate","carbon-fiber","thickness"]},{"id":"frame-tube-diameter","kind":"dimension","tier":1,"title":"CF tube diameter and wall for round drone arms","summary":"Round carbon-fiber arm tubes run 16, 20, 25 or 30mm OD at a 1mm wall -- larger diameter for bigger motors and props, the 1mm wall standard across sizes because that is what pultruded CF tube is stocked at.","applies":["arm","tube frame","quadcopter"],"value":{"table":[{"odMm":16,"wallMm":1},{"odMm":20,"wallMm":1},{"odMm":25,"wallMm":1},{"odMm":30,"wallMm":1}],"unit":"mm"},"basis":"Standard pultruded CF tube stock sizes used by FPV frame manufacturers","sources":["oscar-liang-frame-guide"],"tags":["frame","tube","carbon-fiber","arm"]},{"id":"arm-length-vs-prop-size","kind":"dimension","tier":1,"title":"Motor-to-motor diagonal by propeller size","summary":"Frame diagonal (motor shaft to motor shaft) scales with prop size: about 210mm for 5in props, 300mm for 7in, 450mm for 10in -- undersize it and adjacent props overlap or strike the frame.","applies":["prop","frame","arm length","quadcopter"],"value":{"table":[{"propIn":5,"diagonalMm":210},{"propIn":7,"diagonalMm":300},{"propIn":10,"diagonalMm":450}],"unit":"mm"},"basis":"Common FPV frame-sizing convention relating motor-to-motor diagonal to propeller diameter","sources":["oscar-liang-frame-guide"],"tags":["frame","arm-length","prop-size"]},{"id":"prop-clearance-rule","kind":"rule","tier":1,"title":"Propeller tip clearance: prop-to-prop and prop-to-frame","summary":"Keep tip-to-tip clearance between adjacent propellers, and between any prop tip and the frame or canopy, at least 10-15% of the propeller diameter -- e.g. >=13-19mm clear on a 5in (127mm) prop -- or vibration and yaw authority both suffer.","applies":["prop","frame","arm","quadcopter"],"value":{"min":10,"max":15,"unit":"%"},"basis":"Common FPV/multirotor prop-clearance design rule expressed as a percentage of prop diameter","sources":["oscar-liang-frame-guide"],"tags":["prop","clearance","rule"]},{"id":"motor-bolt-circle-patterns","kind":"dimension","tier":1,"title":"Motor bolt-circle (square-pattern) sizes by stator frame","summary":"Brushless motor 4-hole mount squares scale with stator size: 22xx square12mm M2 or square16mm M3, 28xx square19mm M3, 4108/5008 square25mm M3/M4, 6215+ square30mm M4 -- read the actual motor's back plate, the 4-digit code only bounds the stator, not the hole spacing.","applies":["motor mount","motor","bldc","quadcopter"],"value":{"table":[{"frame":"22xx","squareMm":12,"bolt":"M2"},{"frame":"22xx","squareMm":16,"bolt":"M3"},{"frame":"28xx","squareMm":19,"bolt":"M3"},{"frame":"4108/5008","squareMm":25,"bolt":"M3/M4"},{"frame":"6215+","squareMm":30,"bolt":"M4"}],"unit":"mm"},"basis":"Common outrunner BLDC motor back-plate bolt-square conventions across drone motor vendors","sources":["tmotor-mn-series","iflight-xing-motor"],"tags":["motor mount","bolt-circle","bldc"]},{"id":"motor-shaft-prop-adapter","kind":"dimension","tier":1,"title":"Motor shaft and prop-adapter thread","summary":"Multirotor motor shafts are dia5mm with an M5 threaded tip for a prop nut or collet-style prop adapter -- the near-universal size across 22xx through 4108-class motors.","applies":["motor","prop adapter","prop nut","quadcopter"],"value":{"table":[{"field":"shaftDia","value":5},{"field":"threadSize","value":"M5"}],"unit":"mm"},"basis":"T-Motor/iFlight mechanical drawings for 22xx-4108 class multirotor motors","sources":["tmotor-mn-series","iflight-xing-motor"],"tags":["motor","shaft","prop-adapter"]},{"id":"prop-hub-sizes","kind":"dimension","tier":2,"title":"Propeller hub bore and thickness by prop class","summary":"5-7in multirotor prop hubs bore to dia5mm for a standard motor shaft/collet with a hub 6-8mm thick; 10in+ heavy-lift props step up to a dia6-8mm bore and 8-10mm hub thickness.","applies":["prop","prop hub","quadcopter"],"value":{"table":[{"propClass":"5-7in","boreMm":5,"hubMm":7},{"propClass":"10in+","boreMm":7,"hubMm":9}],"unit":"mm"},"basis":"Common multirotor propeller hub dimension convention across popular 5/7/10in FPV and heavy-lift props","sources":["oscar-liang-frame-guide"],"tags":["prop","hub","bore"]},{"id":"standoff-sizes","kind":"fastener","tier":1,"title":"M3 standoff lengths for a stacked FC/ESC deck","summary":"Nylon or aluminium M3 standoffs at 20, 25, 30 or 35mm space a stacked flight-controller/ESC/VTX deck off the frame -- pick the length by stack height plus a few mm of clearance for wiring underneath.","applies":["standoff","flight controller","esc stack","quadcopter"],"value":{"options":[20,25,30,35],"unit":"mm"},"basis":"Common FPV stack-mounting standoff length series sold across frame kits","sources":["oscar-liang-frame-guide"],"tags":["standoff","m3","stack"]},{"id":"fc-mount-pattern-30-5","kind":"dimension","tier":1,"title":"Flight controller 30.5x30.5mm mounting pattern","summary":"The dominant FPV/mini-quad flight-controller mount is four M3 holes on a 30.5x30.5mm square -- match this before any other FC footprint, it is the de facto standard across brands.","applies":["flight controller","fc","quadcopter"],"value":{"table":[{"field":"pattern","value":"30.5x30.5"},{"field":"boltSize","value":"M3"}],"unit":"mm"},"basis":"Industry-standard FPV flight-controller mounting square used across ArduPilot/PX4-compatible boards","sources":["ardupilot-pixhawk-standard"],"tags":["flight controller","mount","30.5mm"]},{"id":"fc-mount-pattern-20","kind":"dimension","tier":2,"title":"Flight controller 20x20mm mounting pattern","summary":"Smaller/whoop-class flight controllers use four M2 holes on a 20x20mm square -- the compact-stack standard for 2-3in builds where a 30.5mm FC will not fit.","applies":["flight controller","fc","whoop","quadcopter"],"value":{"table":[{"field":"pattern","value":"20x20"},{"field":"boltSize","value":"M2"}],"unit":"mm"},"basis":"Industry-standard compact FPV flight-controller mounting square used on 20x20mm-class boards","sources":["ardupilot-pixhawk-standard"],"tags":["flight controller","mount","20mm","whoop"]},{"id":"esc-mounting","kind":"feature","tier":2,"title":"ESC mounting: 4-in-1 stack vs individual arm mount","summary":"A 4-in-1 ESC mounts on the same 30.5mm (or 20x20mm) stack pattern as the flight controller; individual ESCs bolt or zip-tie to the arm near the motor, kept clear of the prop downwash cooling path but away from the arm's flex zone.","applies":["esc","motor mount","stack","quadcopter"],"basis":"Common FPV ESC-mounting convention (stacked 4-in-1 vs arm-mounted singles)","sources":["oscar-liang-frame-guide"],"tags":["esc","mounting","stack"]},{"id":"battery-strap-mount","kind":"feature","tier":2,"title":"Battery strap mounting slots on the frame plate","summary":"Cut two parallel slots, typically 25-28mm apart and 3-4mm wide, through the top or bottom plate for a 20-25mm hook-and-loop battery strap, positioned so the strapped battery centers on the frame's CG target.","applies":["battery","frame","top plate","quadcopter"],"value":{"min":25,"max":28,"unit":"mm"},"basis":"Common FPV frame battery-strap slot convention sized to 20-25mm nylon straps","sources":["oscar-liang-frame-guide"],"tags":["battery","strap","slot"]},{"id":"battery-bay-sizes","kind":"dimension","tier":1,"title":"LiPo battery bay envelope by common pack size","summary":"Size the battery bay to the pack: 4S 1500mAh about 35x34x75mm, 6S 1300mAh about 36x34x70mm, 3S 2200mAh about 105x35x25mm, 6S 5000mAh about 155x48x40mm (W x H x L) -- add 1-2mm clearance per side for the strap and heat-shrink wrap.","applies":["battery","lipo","battery bay","quadcopter"],"value":{"table":[{"pack":"4S 1500mAh","wMm":35,"hMm":34,"lMm":75},{"pack":"6S 1300mAh","wMm":36,"hMm":34,"lMm":70},{"pack":"3S 2200mAh","wMm":105,"hMm":35,"lMm":25},{"pack":"6S 5000mAh","wMm":155,"hMm":48,"lMm":40}],"unit":"mm"},"basis":"Common LiPo pack envelope dimensions across major hobby battery vendors (Tattu/CNHL-class packs)","sources":["oscar-liang-frame-guide"],"tags":["battery","lipo","bay","dimension"]},{"id":"payload-rail-picatinny","kind":"dimension","tier":2,"title":"Picatinny-style payload rail cross-section (generalized)","summary":"A generalized Picatinny/MIL-STD-1913 rail section is 21.2mm wide with 5.23mm-deep slots at a 10.16mm pitch -- borrowed by drone payload mounts as a generic accessory rail even off any firearms application.","applies":["payload rail","accessory rail","quadcopter"],"value":{"table":[{"field":"width","value":21.2},{"field":"slotDepth","value":5.23},{"field":"slotPitch","value":10.16}],"unit":"mm"},"basis":"MIL-STD-1913 Picatinny rail dimensional standard, referenced generically for drone accessory rails","sources":["mil-std-1913-picatinny"],"tags":["payload rail","picatinny","accessory"]},{"id":"camera-rail-rod-15mm","kind":"dimension","tier":2,"title":"15mm rod camera/gimbal rail system","summary":"FPV and cinelifter camera rigs commonly ride on 15mm-diameter aluminium rod rails (the DSLR-rig standard), clamped by rod blocks spaced to the camera baseplate width, typically 60-100mm apart.","applies":["camera rail","gimbal","payload","quadcopter"],"value":{"value":15,"unit":"mm"},"basis":"Common 15mm rod rail system adopted from cinema camera rigs for drone payload mounting","sources":["oscar-liang-frame-guide"],"tags":["camera rail","rod","gimbal"]},{"id":"camera-thread-1-4-20","kind":"fastener","tier":1,"title":"1/4-20 UNC camera mounting thread","summary":"Action/FPV cameras and gimbal quick-release plates use a 1/4-20 UNC thread (0.25in major dia, 20 threads per inch) -- the universal tripod/camera mount standard; an M6 tapped hole is only a rough geometric substitute, do not call it equivalent on a drawing.","applies":["camera mount","gimbal","tripod thread","payload rail"],"value":{"value":"1/4-20 UNC","unit":"in"},"basis":"ASME B1.1 Unified inch screw thread series; 1/4-20 is the de facto universal camera-mount thread","sources":["asme-b1-1-unc"],"tags":["camera","1/4-20","unc","thread"]},{"id":"gimbal-mount-pattern","kind":"dimension","tier":2,"title":"3-axis gimbal vibration-isolated mount footprint","summary":"Small FPV/action-cam gimbals mount on a 4-point vibration-isolator plate, isolator centers typically on a 25-35mm square, damper balls sized to the gimbal's weight class (30-60 Shore silicone).","applies":["gimbal","payload","vibration isolation","quadcopter"],"value":{"min":25,"max":35,"unit":"mm"},"basis":"Common small-gimbal anti-vibration mount plate convention","sources":["oscar-liang-frame-guide"],"tags":["gimbal","mount","vibration"]},{"id":"landing-gear-height","kind":"dimension","tier":2,"title":"Landing-gear standoff height for prop ground clearance","summary":"Fixed landing gear should stand the frame at least 10-15% of the propeller diameter off the ground plus a payload margin -- e.g. >=15-20mm for 5in props, >=30-45mm for 10in -- so a prop strike does not happen on an uneven surface at idle tilt.","applies":["landing gear","legs","quadcopter"],"value":{"min":10,"max":15,"unit":"%"},"basis":"Common multirotor ground-clearance design rule scaled to propeller diameter","sources":["oscar-liang-frame-guide"],"tags":["landing gear","clearance","legs"]},{"id":"fastener-locking-nyloc","kind":"fastener","tier":2,"title":"MS21042 self-locking nyloc nut for vibration-loaded joints","summary":"Use an MS21042 self-locking nyloc nut, not a plain hex nut, on any bolted joint subject to sustained vibration (motor mount, arm-to-center-plate) -- the nylon collar's prevailing torque resists loosening a plain nut cannot.","applies":["fastener","motor mount","arm joint","airframe"],"value":{"value":"MS21042","unit":"text"},"basis":"SAE AS21042 / MS21042 self-locking nut specification, standard aerospace vibration-locking hardware","sources":["ms21042"],"tags":["fastener","nyloc","ms21042","locking"]},{"id":"fastener-rivet-ms20426","kind":"fastener","tier":2,"title":"MS20426 countersunk solid rivet for skin/panel joints","summary":"MS20426 countersunk-head (100deg CSK) solid rivets join thin aluminium skins and panels flush -- size the rivet diameter to roughly 3x the thinner sheet's thickness, per standard aerospace riveting practice.","applies":["rivet","panel","skin","airframe"],"value":{"value":3,"unit":"ratio"},"basis":"MS20426 solid rivet specification and standard aerospace rivet-diameter-to-sheet-thickness sizing practice","sources":["ms20426"],"tags":["rivet","ms20426","panel","skin"]},{"id":"safety-wire-spec","kind":"fastener","tier":2,"title":"Safety wire for critical fastener locking","summary":"Safety-wire critical bolts (motor screws, prop nuts) with 0.032in (0.8mm) stainless wire threaded through drilled bolt heads per NASM33540 -- twisted so a loosening rotation tightens, never loosens, the wire.","applies":["safety wire","fastener","prop nut","motor mount"],"value":{"value":0.032,"unit":"in"},"basis":"NASM33540 General Practices for Safety Wiring and Cotter Pinning of aerospace hardware","sources":["nasm33540"],"tags":["safety wire","nasm33540","fastener"]},{"id":"loctite-thread-locking","kind":"process","tier":2,"title":"Threadlocker grade by joint: Loctite 243 vs 263","summary":"Use Loctite 243 (medium-strength, hand-removable) on motor screws and standoffs that may need field service; use Loctite 263 (high-strength) on fasteners that should never back out in service, e.g. permanently torqued structural joints.","applies":["threadlocker","fastener","motor mount","airframe"],"value":{"options":["Loctite 243","Loctite 263"]},"basis":"Loctite 243/263 technical data sheets, the standard medium/high-strength anaerobic threadlocker pairing","sources":["loctite-243-263-tds"],"tags":["threadlocker","loctite","243","263"]},{"id":"torque-stripe","kind":"feature","tier":2,"title":"Torque-stripe witness marks on critical fasteners","summary":"Paint a torque-stripe (paint-pen line across bolt head and mating surface) on every motor screw and prop nut after final torque -- a break or rotation of more than about 5deg in the stripe on preflight inspection flags a fastener that has backed off.","applies":["torque stripe","inspection","motor mount","prop nut"],"value":{"value":5,"unit":"deg"},"basis":"Standard aerospace/UAV maintenance practice for visually verifying fastener torque retention","sources":["nasm33540"],"tags":["torque stripe","inspection","maintenance"]},{"id":"battery-weight-budget","kind":"rule","tier":2,"title":"Battery mass fraction of all-up weight (AUW)","summary":"Budget the battery at 30-40% of all-up weight (AUW) for a balanced hover-time/agility tradeoff -- lower favors agility and thrust-to-weight margin, higher favors flight time at the cost of punch.","applies":["battery","weight budget","auw","quadcopter"],"value":{"min":30,"max":40,"unit":"%"},"basis":"Common multirotor weight-budgeting convention balancing flight time against thrust-to-weight margin","sources":["oscar-liang-frame-guide"],"tags":["battery","weight-budget","auw"]},{"id":"thrust-to-weight-ratio","kind":"rule","tier":1,"title":"Minimum thrust-to-weight ratio for stable hover","summary":"Target thrust-to-weight >=2:1 at full throttle for stable, controllable hover with headroom for wind and maneuvering -- a 1:1 airframe can only just hover with zero control authority left over.","applies":["motor","prop","weight budget","quadcopter"],"value":{"min":2,"unit":"ratio"},"basis":"Common multirotor propulsion-sizing rule of thumb for hover stability and control margin","sources":["oscar-liang-frame-guide"],"tags":["thrust","weight","hover","rule"]},{"id":"cg-tolerance","kind":"tolerance","tier":1,"title":"CG offset from the prop-plane centroid","summary":"Keep the airframe's center of gravity within +-5mm of the geometric centroid of the motor/prop plane -- beyond that the flight controller trims out a persistent tilt at the cost of thrust margin and battery life.","applies":["cg","weight budget","frame","quadcopter"],"value":{"max":5,"unit":"mm"},"basis":"Common multirotor CG-balance tolerance relative to the prop-plane centroid","sources":["oscar-liang-frame-guide"],"tags":["cg","balance","tolerance"]},{"id":"lightening-hole-rule","kind":"rule","tier":1,"title":"Lightening-hole and web sizing on a pocketed structural plate","summary":"On a pocketed aluminium or CF plate, leave webs at least 1.5x plate thickness wide, round pocket corners to >=3mm radius, and keep any lightening-hole diameter <=60% of the flange width -- undersize these and the pocket becomes the fatigue-crack origin.","applies":["bracket","lightening hole","pocket","airframe"],"value":{"table":[{"param":"minWebMultiplier","value":1.5},{"param":"cornerRadiusMm","value":3},{"param":"maxHoleFractionPct","value":60}]},"basis":"Sandia/NASA isogrid and aerospace lightweighting design-handbook pocket/web sizing conventions","sources":["sandia-isogrid-handbook"],"tags":["lightening hole","pocket","web","bracket"]},{"id":"isogrid-pocketing","kind":"feature","tier":2,"title":"Isogrid pocketing pattern for a stiffness-to-weight structural plate","summary":"An isogrid plate pockets a triangular grid of ribs from a solid plate, typically at 60deg rib angles and rib width 1-1.5x the finished skin thickness -- removes 60-70% of the material while barely denting bending stiffness.","applies":["bracket","isogrid","structural plate","airframe"],"value":{"min":60,"max":70,"unit":"%"},"basis":"Sandia National Laboratories isogrid design handbook triangular rib-pattern conventions","sources":["sandia-isogrid-handbook"],"tags":["isogrid","pocketing","structural"]},{"id":"aluminium-7075-t6","kind":"material","tier":1,"title":"7075-T6 aluminium for high-strength brackets and mounts","summary":"7075-T6 (yield about 503 MPa, density 2.81 g/cm3) is the go-to aerospace aluminium for highly-loaded brackets, arms and motor mounts where strength-to-weight matters most; it welds poorly compared with 6061, so use it for machined/CNC parts, not fabricated weldments.","applies":["bracket","motor mount","arm"],"value":{"table":[{"property":"yield","value":503,"unit":"MPa"},{"property":"density","value":2.81,"unit":"g/cm3"}]},"basis":"MatWeb 7075-T6 aluminium property data, the standard high-strength aerospace bracket alloy","sources":["matweb-materials"],"tags":["material","aluminium","7075-t6"]},{"id":"aluminium-6061-t6","kind":"material","tier":1,"title":"6061-T6 aluminium for general airframe fittings","summary":"6061-T6 (yield about 276 MPa, density 2.70 g/cm3) trades some strength for weldability and machinability versus 7075-T6 -- the default for landing gear, standoffs and fittings that do not need 7075's peak strength.","applies":["fitting","landing gear","standoff"],"value":{"table":[{"property":"yield","value":276,"unit":"MPa"},{"property":"density","value":2.7,"unit":"g/cm3"}]},"basis":"MatWeb 6061-T6 aluminium property data, the general-purpose aerospace/airframe fitting alloy","sources":["matweb-materials"],"tags":["material","aluminium","6061-t6"]},{"id":"cf-epoxy-plate","kind":"material","tier":1,"title":"Carbon-fiber/epoxy plate for frame arms and plates","summary":"3K/12K woven CF/epoxy plate (density about 1.55 g/cm3, in-plane tensile about 550 MPa) is the default drone-frame material: stiff, light and machinable by CNC router or laser, but it splinters at a drilled edge without a pilot hole and chamfer.","applies":["frame","arm","center plate"],"value":{"table":[{"property":"density","value":1.55,"unit":"g/cm3"},{"property":"tensile","value":550,"unit":"MPa"}]},"basis":"MatWeb woven CF/epoxy laminate property data, typical drone-frame plate/tube layup","sources":["matweb-materials"],"tags":["material","carbon-fiber","cf-epoxy"]},{"id":"pa12-cf-material","kind":"material","tier":2,"title":"PA12-CF for 3D-printed drone brackets and canopies","summary":"Carbon-fiber-filled PA12 (tensile about 90 MPa, flex modulus about 6000 MPa) prints stiff, light structural brackets, camera mounts and canopies -- stiffer and lighter than unfilled nylon, at the cost of being more abrasive on nozzles.","applies":["bracket","canopy","camera mount"],"value":{"table":[{"property":"tensile","value":90,"unit":"MPa"},{"property":"flexModulus","value":6000,"unit":"MPa"}]},"basis":"MatWeb CF-filled PA12 property data, common for FDM/SLS printed drone structural parts","sources":["matweb-materials"],"tags":["material","pa12","cf-pa","3d-print"]},{"id":"tpu-mounts-material","kind":"material","tier":2,"title":"TPU for vibration-damping motor and FC mounts","summary":"95A shore TPU motor mounts and flight-controller dampener grommets absorb high-frequency motor vibration before it reaches the gyro -- too soft (below 85A) and the frame flexes under thrust, too hard (above 98A) and it stops damping.","applies":["motor mount","fc mount","vibration"],"value":{"min":85,"max":98,"unit":"ratio"},"basis":"Common FPV soft-mount TPU hardness range for motor/FC vibration isolation","sources":["oscar-liang-frame-guide"],"tags":["material","tpu","vibration","damping"]},{"id":"g10-material","kind":"material","tier":2,"title":"G10 fiberglass laminate for arm doublers and standoff plates","summary":"G10 glass-epoxy laminate (density about 1.8 g/cm3, tensile about 310 MPa) is a cheaper, more impact-tolerant alternative to CF plate for arm doublers, antenna mounts and non-flexing standoff plates.","applies":["arm doubler","standoff plate","antenna mount"],"value":{"table":[{"property":"density","value":1.8,"unit":"g/cm3"},{"property":"tensile","value":310,"unit":"MPa"}]},"basis":"MatWeb G10 glass-epoxy laminate property data","sources":["matweb-materials"],"tags":["material","g10","fiberglass"]},{"id":"cf-layup-basics","kind":"process","tier":2,"title":"CF layup basics: ply count and orientation for a frame plate","summary":"A 3-4mm frame plate lays up 8-12 plies of 0/90/+-45deg woven or unidirectional CF -- a quasi-isotropic orientation resists arm-flex loads from any direction, unlike an all-0deg layup that is strong one way and weak 90deg to it.","applies":["frame","arm","layup"],"value":{"min":8,"max":12,"unit":"count"},"basis":"Standard quasi-isotropic composite layup practice applied to drone frame plate thickness","sources":["matweb-materials"],"tags":["layup","carbon-fiber","composite"]},{"id":"wing-spar-cf-tube","kind":"dimension","tier":2,"title":"Fixed-wing main spar: CF tube diameter by wingspan","summary":"A fixed-wing's main spar is a pultruded CF tube sized to span: about 7mm OD for a 1m-span foam wing, 11mm for 2m, 16mm+ for 2.5m+ -- undersize it and the wing flutters or folds under a hard pull-up.","applies":["wing","spar","fixed wing"],"value":{"table":[{"spanM":1,"sparOdMm":7},{"spanM":2,"sparOdMm":11},{"spanM":2.5,"sparOdMm":16}]},"basis":"Common fixed-wing FPV/RC spar-sizing convention scaling CF tube diameter to wingspan","sources":["oscar-liang-frame-guide"],"tags":["wing","spar","fixed-wing"]},{"id":"hinge-gap","kind":"dimension","tier":2,"title":"Control-surface hinge gap","summary":"Leave a 0.5-1mm hinge gap between a control surface and the fixed wing or tail structure -- tight enough to keep drag and flutter low, loose enough that the surface does not bind at full deflection or after a hard landing flexes the structure.","applies":["hinge","control surface","fixed wing"],"value":{"min":0.5,"max":1,"unit":"mm"},"basis":"Common RC/FPV fixed-wing hinge-gap convention for tape or pinned hinges","sources":["oscar-liang-frame-guide"],"tags":["hinge","control-surface","fixed-wing"]},{"id":"control-horn","kind":"feature","tier":2,"title":"Control horn offset from the hinge line","summary":"Mount the control horn's pushrod hole 8-12mm from the hinge line for a typical 9g-servo-driven surface -- closer increases mechanical advantage (more force, less throw), farther gives more throw for less force.","applies":["control horn","servo","fixed wing"],"value":{"min":8,"max":12,"unit":"mm"},"basis":"Common RC fixed-wing control-horn geometry convention for small electric models","sources":["oscar-liang-frame-guide"],"tags":["control horn","servo","fixed-wing"]},{"id":"servo-bay-9g","kind":"dimension","tier":2,"title":"9g micro-servo bay envelope","summary":"A 9g micro servo (SG90-class) needs a bay 23x12mm in plan plus 1-2mm clearance per side, with a lip or screw boss for the mounting ears -- sized here for a fixed-wing wing/tail servo bay.","applies":["servo bay","fixed wing","control surface"],"value":{"table":[{"field":"lengthMm","value":23},{"field":"widthMm","value":12}]},"basis":"TowerPro SG90-class 9g servo case dimensions, common wing/tail servo bay envelope","sources":["towerpro-sg90"],"tags":["servo","servo-bay","sg90","fixed-wing"]},{"id":"tolerance-motor-bolt-pattern","kind":"tolerance","tier":2,"title":"Motor bolt-pattern position tolerance","summary":"Hold a motor mount's bolt-circle hole positions to +-0.1mm regardless of process -- tighter than most airframe hole conventions because a 0.1mm miss stacks across all four motor holes and can bind the motor's screw pattern.","applies":["motor mount","bolt pattern","tolerance"],"value":{"value":0.1,"unit":"mm"},"basis":"Common practice for a rigid 4-hole motor bolt-circle, tighter than the general frame-hole tolerance in this pack","sources":["tmotor-mn-series"],"tags":["tolerance","motor mount","bolt-pattern"]},{"id":"tolerance-frame-hole-position","kind":"tolerance","tier":1,"title":"Frame hole-position tolerance by process","summary":"Hold general frame/arm hole positions to +-0.05mm on a CNC-machined or laser-cut CF/aluminium part, versus +-0.2mm on a 3D-printed part -- the same CNC-vs-FDM capability gap seen across every sector in this knowledge base.","applies":["frame","arm","hole position"],"value":{"table":[{"process":"CNC","toleranceMm":0.05},{"process":"printed","toleranceMm":0.2}]},"basis":"Common CNC vs FDM positional-tolerance capability gap applied to drone frame hole patterns","sources":["oscar-liang-frame-guide"],"tags":["tolerance","frame","hole-position"]},{"id":"standard-rtca-do160","kind":"standard","tier":2,"title":"RTCA DO-160 -- environmental test standard for airborne equipment","summary":"RTCA DO-160 (revision G) sets the environmental test sections -- vibration (Section 8), temperature (Section 4), EMI (Section 21) -- an avionics or payload box is qualified against; this pack's vibration, thermal and EMI tests follow its numbering.","applies":["avionics","payload","test"],"basis":"The environmental-qualification standard behind this pack's vibration/thermal/EMI test entries","sources":["rtca-do160g"],"tags":["standard","do-160","environmental"]},{"id":"standard-nas-ms-fasteners","kind":"standard","tier":2,"title":"NAS/MS fastener specifications used on airframes","summary":"NAS and MS-prefixed specs (MS21042 nyloc nuts, MS20426 rivets, NASM33540 safety wiring) define the aerospace hardware this pack's fastener entries draw sizes and callouts from.","applies":["fastener","hardware","standard"],"basis":"The aerospace fastener-specification family (NAS/MS) behind this pack's locking and rivet entries","sources":["ms21042","ms20426","nasm33540"],"tags":["standard","nas","ms","fastener"]},{"id":"faa-part107-weight-classes","kind":"standard","tier":2,"title":"FAA Part 107 / EASA Open-category weight classes and geometry implications","summary":"FAA Part 107 and EASA's Open category gate rules on all-up weight: under 250g (near-unregulated), under 900g (C1), under 4kg (C2), under 25kg (C3) -- crossing a threshold by grams forces a heavier compliance burden, so weigh the design against the nearest class early.","applies":["weight class","regulatory","airframe"],"value":{"table":[{"classKg":0.25},{"classKg":0.9},{"classKg":4},{"classKg":25}],"unit":"kg"},"basis":"FAA 14 CFR Part 107 small-UAS rule and EASA Implementing Regulation (EU) 2019/947 Open-category C0-C3 weight bands","sources":["faa-14cfr107","easa-2019-947"],"tags":["standard","faa","easa","weight-class"]},{"id":"test-vibration-do160","kind":"test","tier":2,"title":"Random vibration test (RTCA DO-160 Section 8 style)","summary":"Vibrate the assembled airframe/payload with a 20-2000Hz random profile per RTCA DO-160 Section 8 for 1 hour per axis, 3 axes -- a mount or bracket that resonates, or a fastener that backs off, needs stiffening or a locking upgrade, not just a re-torque.","applies":["avionics","payload","test"],"value":{"value":1,"unit":"h"},"basis":"RTCA DO-160G Section 8 random-vibration test category applied to a UAS payload/avionics mount","sources":["rtca-do160g"],"tags":["test","vibration","do-160"]},{"id":"test-thermal-cycle","kind":"test","tier":2,"title":"Thermal cycling test (-20C to +60C)","summary":"Cycle the airframe and its plastic/composite fittings between -20C and +60C, 2-hour dwell at each extreme, for at least 10 cycles -- watch for a printed mount that warps, a bonded joint that delaminates, or a fastener that loosens as materials expand at different rates.","applies":["airframe","fitting","test"],"value":{"min":-20,"max":60,"unit":"C"},"basis":"Common UAS environmental-qualification thermal-cycle range drawn from RTCA DO-160 Section 4 temperature categories","sources":["rtca-do160g"],"tags":["test","thermal","cycling"]},{"id":"test-drop-handheld","kind":"test","tier":1,"title":"Handheld-drone drop test","summary":"Drop a handheld-launch drone from 500-1000mm onto a hard level surface in landing orientation and on one corner; the frame, arms and prop guards should show no crack propagation past a single layer of skin -- 1000mm is a common small-UAS reference height.","applies":["frame","arm","prop guard","test"],"value":{"min":500,"max":1000,"unit":"mm"},"basis":"Common small-UAS handheld drop-test height, aligned to typical launch/landing mishap heights","sources":["faa-14cfr107"],"tags":["test","drop","handheld"]},{"id":"test-prop-strike-crash","kind":"test","tier":2,"title":"Prop-strike / low-speed crash test","summary":"Run the airframe into a fixed obstacle at about 5m/s with props spinning, and again with a simulated tip-over, then inspect: a motor mount or arm that survives with only a chipped prop (not a cracked mount or sheared standoff) passes.","applies":["frame","motor mount","prop","test"],"value":{"value":5,"unit":"m/s"},"basis":"Common FPV/hobbyist crash-survivability bench-test convention for frame and motor-mount robustness","sources":["oscar-liang-frame-guide"],"tags":["test","crash","prop-strike"]},{"id":"test-emi-spacing","kind":"test","tier":2,"title":"EMI clearance test (VTX/ESC to GPS/compass)","summary":"Per RTCA DO-160 Section 21-style EMI practice, keep the VTX antenna and ESC power leads at least 50mm from the GPS/compass module, and confirm compass deviation stays under 5deg with the VTX transmitting at full power and motors spun up on the bench.","applies":["gps","compass","vtx","esc","test"],"value":{"min":50,"unit":"mm"},"basis":"RTCA DO-160 Section 21 EMI-conducted/radiated susceptibility practice applied to common UAS GPS/compass interference sources","sources":["rtca-do160g"],"tags":["test","emi","gps","compass"]},{"id":"recipe-quad-arm-motor-mount","kind":"recipe","tier":2,"title":"Recipe: quad arm with 16mm square motor-mount holes","summary":"Build a 120x25x4mm CF arm with a 16mm-square M3 motor-mount hole pattern near the motor end and a dia12mm lightening hole at the arm's midpoint.","applies":["arm","motor mount","quadcopter"],"basis":"Combines frame-plate-thickness, motor-bolt-circle-patterns and lightening-hole-rule into one buildable arm","sources":["oscar-liang-frame-guide","tmotor-mn-series"],"tags":["recipe","arm","motor-mount","lightening-hole"],"recipe":{"prompt":"Model a 120x25x4mm CF drone arm with a 16mm square M3 motor-mount hole pattern at the motor end and a lightening hole at the arm's midpoint","steps":[{"tool":"cad_box","args":{"dx":120,"dy":25,"dz":4},"note":"120x25mm arm blank, 4mm CF plate thickness"},{"tool":"cad_hole_pattern","args":{"of":"$0","type":"drill","diameter":3.2,"pattern":{"kind":"grid","origin":[100,4.5],"dx":16,"dy":16,"nx":2,"ny":2}},"note":"4x M3 clearance holes on the 16mm motor-mount square, near the arm's motor end"},{"tool":"cad_drill_hole","args":{"of":"$1","center":[50,12.5],"type":"drill","diameter":12},"note":"dia12mm lightening hole at the arm midpoint, within the 60% max-hole-fraction rule for a 25mm-wide arm"}],"expect":{"volume":11418.93,"faceCount":16,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-lightened-aluminium-bracket","kind":"recipe","tier":2,"title":"Recipe: lightened 6061-T6 aluminium bracket","summary":"Build a 60x40x6mm bracket with a 40x20x3mm blind lightening pocket, four M3 corner mounting holes, and 2mm edge fillets.","applies":["bracket","lightening hole","aluminium"],"basis":"Combines lightening-hole-rule and aluminium-6061-t6 into one buildable pocketed bracket","sources":["sandia-isogrid-handbook","matweb-materials"],"tags":["recipe","bracket","pocket","fillet"],"recipe":{"prompt":"Model a 60x40x6mm 6061-T6 aluminium bracket with a blind lightening pocket, four M3 corner mounting holes, and 2mm edge fillets","steps":[{"tool":"cad_box","args":{"dx":60,"dy":40,"dz":6},"note":"60x40x6mm bracket blank"},{"tool":"cad_box","args":{"dx":40,"dy":20,"dz":3,"origin":[10,10,3]},"note":"pocket tool: 40x20mm footprint, 3mm deep from the top face"},{"tool":"cad_boolean_subtract","args":{"of":"$0","tool":"$1"},"note":"cut the blind lightening pocket into the bracket"},{"tool":"cad_hole_pattern","args":{"of":"$2","type":"drill","diameter":3.2,"pattern":{"kind":"grid","origin":[5,5],"dx":50,"dy":30,"nx":2,"ny":2}},"note":"4x M3 corner mounting holes, 5mm inset, clear of the pocket"},{"tool":"cad_fillet_edges","args":{"of":"$3","radius":2,"edges":[{"direction":[0,0,1],"convexity":"convex","expect":4},{"direction":[1,0,0],"length":60,"convexity":"convex","expect":4},{"direction":[0,1,0],"length":40,"convexity":"convex","expect":4}]},"note":"2mm fillet on the bracket's 12 OUTER edges only (CADSF-1673). The hole rims and pocket rim are left sharp on purpose: a 2mm rim fillet on a dia3.2 hole opens it to r3.6 around (5,5), i.e. to 1.4mm from the outer edge, where the outer edge's own 2mm band already runs, so the two bands overlap and no single-radius pick of all 32 convex edges exists (the largest common radius is under 1.7mm). A picked selection is all-or-nothing (CADSB-1023), so the recipe names only the edges it means"}],"expect":{"volume":11453.73,"faceCount":39,"watertight":true,"note":"measured 2026-09-27: CADSF-1673: step 4 now picks the 12 outer edges by selector (was every convex edge, 23 of 32 refused since CADSB-1023 - the hole-rim and outer-edge 2mm bands overlap, so no r=2 pick of all 32 exists). Closed form: step-3 body - 376mm x (1-pi/4)r^2 - 8 x r^3(1-pi/6) = 11453.73"}}},{"id":"recipe-payload-rail-tap","kind":"recipe","tier":2,"title":"Recipe: payload/camera rail block with 1/4-20-equivalent tap","summary":"Build a 40x20x15mm camera rail block with a central through tapped hole standing in for the 1/4-20 UNC camera thread, modelled here as M6 since the kernel's thread table is metric.","applies":["payload rail","camera mount","camera rail"],"basis":"Combines camera-thread-1-4-20 and camera-rail-rod-15mm into one buildable rail block; the M6 tap substitutes for 1/4-20 UNC per camera-thread-1-4-20's own note","sources":["asme-b1-1-unc","oscar-liang-frame-guide"],"tags":["recipe","payload rail","camera","tapped-hole"],"recipe":{"prompt":"Model a 40x20x15mm camera rail block with a central 1/4-20-equivalent tapped hole (M6 substitute) through the top face","steps":[{"tool":"cad_box","args":{"dx":40,"dy":20,"dz":15},"note":"40x20x15mm rail block"},{"tool":"cad_drill_hole","args":{"of":"$0","center":[20,10],"type":"tapped","size":"M6"},"note":"through M6 tapped hole substituting for the 1/4-20 UNC camera thread"}],"expect":{"volume":11705.48,"faceCount":8,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"aero-flush-hardware-wetted-skin","kind":"rule","tier":2,"title":"Flush hardware on wetted (OML) skins: 100 deg countersunk heads","summary":"A fastener head on a wetted skin (the outer mould line of a wing, pod, pillar or fairing) is a flush 100 deg countersunk head (MS20426, MS24694; csk_100 in cad_fastener) level with the skin; a hex or button head 2-3 mm proud is a protuberance in the boundary layer.","applies":["wing skin","fairing","pod skin","aero surface","outer mould line","motorsport bodywork"],"value":{"typical":100,"unit":"deg"},"basis":"MS20426 / MS24694 flush 100 deg heads are the airframe standard for wetted skins; Hoerner ch. 5 shows a protuberance's drag rises steeply with its height relative to the local boundary layer, so a few millimetres of head is worth removing","sources":["ms20426","ms24694","hoerner-fluid-dynamic-drag"],"tags":["aero","oml","wetted","flush","countersunk","motorsport","uav"],"detail":"cad_fastener with wetted:true (or a head part tagged wetted) refuses a head that would stand proud (fastener-proud-head-on-oml) and takes csk_100 as the flush head; the kernel API defaults to it when kind is omitted. OmlCheck.checkOmlProtrusion / cad_assembly_sweep checks.oml then flags anything still outside the OML (OML_PROTRUSION). A 90 deg countersink (DIN 7997) on an aero skin is a warning: aero skins take 100 deg heads."},{"id":"aero-internal-routing","kind":"rule","tier":2,"title":"Route services inside the aero bodies, never on the wetted skin","summary":"Lines, hoses and harnesses run INSIDE the aero bodies (pillar channel, spar bay, pod), 0 mm outside the outer mould line; a 6 mm line or 15 mm coupling outside is a protuberance along its whole length, and a fitting on a leading edge sits at the stagnation point.","applies":["pneumatic line","harness","hose","service routing","pillar","wing","fairing"],"value":{"max":0,"unit":"mm"},"basis":"A motorsport rear-wing pilot shipped its pneumatic union and quick coupling on the pillar leading edge and had to move them (CADSF-102112); Hoerner ch. 5 for the drag of protuberances","sources":["pilot-rear-wing-line-exit","hoerner-fluid-dynamic-drag"],"tags":["aero","oml","routing","internal","services","motorsport","uav"]},{"id":"aero-service-exit-interface-face","kind":"rule","tier":2,"title":"Services leave through a declared interface face, below the chassis plane","summary":"A service exits the aero body through a DECLARED interface face (the chassis mating face): union seated in the foot, coupling and connector on the car side, 8-32 mm below the face on the rear-wing pilot -- never on a leading edge (pre-fix: 83 mm above the chassis face).","applies":["pneumatic line","quick coupling","bulkhead union","harness connector","mating face","chassis interface"],"value":{"min":8,"max":32,"unit":"mm"},"basis":"Rear-wing pilot, CADSF-102112: the line leaves the pillar foot along the inclined mating-face normal, union seated 5 mm into the foot, coupling 8-32 mm below the face, connector 30 mm below it; the wing comes off without bleeding the system","sources":["pilot-rear-wing-line-exit"],"tags":["aero","oml","interface","services","chassis","motorsport"],"detail":"Declare the interface face to the OML check as {point, normal, radiusMm} with the normal pointing out of the airflow (into the car): anything behind it is on the service side and is not a protrusion, and a ray that leaves a hollow body through it counts as enclosed. tests/test_cadsf-102141_oml_p424.js flags both pre-fix fittings on each pillar and nothing at the current foot."},{"id":"aero-access-panel-flush","kind":"rule","tier":2,"title":"Access panels and hatches flush with the skin","summary":"An access panel or hatch sits flush with the skin (within 0.25 mm), held by flush 100 deg screws into inserts, with a 0.5-1 mm perimeter gap; a forward-facing step costs more drag than an aft-facing one, so an unavoidable step faces aft.","applies":["access panel","hatch","fairing lid","inspection cover","drop door"],"value":{"min":0.5,"max":1,"unit":"mm"},"basis":"Hoerner ch. 5 (forward- vs aft-facing steps); the panel gap matches the control-surface hinge-gap convention in this pack; 0.25 mm is OmlCheck's flush tolerance (tessellation + paint)","sources":["hoerner-fluid-dynamic-drag","oscar-liang-frame-guide"],"tags":["aero","oml","flush","panel","hatch","motorsport","uav"]}]},{"$schema":"nativecad-dfm-pack/1","id":"appliances","title":"Appliances — panels, knobs, switches, hinges, lamps and kitchen/bath hardware","sector":"appliances","version":"2026-09-03","summary":"Sheet-metal and plastic panel gauges, control knobs and switches, hinges/latches, cable glands and cords, lamp holders/LED modules/heatsinks, kitchen and bathroom hardware coordinating sizes, and the IEC 60335/60598 safety tests an appliance or luminaire is held to.","aliases":["appliance","kitchen appliance","lamp","lighting","light fixture","luminaire","led bulb","lampshade","control knob","appliance panel","hinge","latch","kitchen cabinet module","bathroom hardware","towel rail","faucet","home hardware","door handle","coffee machine","toaster"],"crossSector":false,"size":"full","sources":[{"id":"iec-60335-1","title":"IEC 60335-1 Household and similar electrical appliances — Safety — Part 1: General requirements","accessed":"2026-09-03"},{"id":"iec-60598-1","title":"IEC 60598-1 Luminaires — Part 1: General requirements and tests","accessed":"2026-09-03"},{"id":"en-60320","title":"EN 60320-1 / IEC 60320-1 Appliance couplers for household and similar general purposes (C14, C8)","accessed":"2026-09-03"},{"id":"zhaga-book3","title":"Zhaga Book 3 — LED Light Engine with Separate Control Gear (LES interface specification)","url":"https://www.zhagastandard.org/","accessed":"2026-09-03"},{"id":"bhma-a156","title":"ANSI/BHMA A156 series — Builders Hardware Standards (hinges, latches, locks, exit devices)","url":"https://www.buildershardware.com/ansi-bhma-standards","accessed":"2026-09-03"},{"id":"iec-60529","title":"IEC 60529 Degrees of protection provided by enclosures (IP Code)","accessed":"2026-09-03"},{"id":"en-1116","title":"EN 1116 Kitchen furniture — Coordinating sizes for kitchen furniture and kitchen appliances","accessed":"2026-09-03"},{"id":"bourns-knobs","title":"Bourns Potentiometer Knob and D-Shaft Dimension Guide","url":"https://www.bourns.com/","accessed":"2026-09-03"},{"id":"lapp-skintop","title":"Lapp SKINTOP Cable Gland Metric and PG-Thread Dimension Guide","url":"https://www.lappusa.com/","accessed":"2026-09-03"},{"id":"cree-xlamp","title":"Cree XLamp LED Thermal Management Application Note","url":"https://www.cree-led.com/","accessed":"2026-09-03"},{"id":"iec-60061-lampcaps","title":"IEC 60061 Lamp Caps and Holders — Gauges for Interchangeability (E26/E27/E14/GU10/MR16/G4/G9)","accessed":"2026-09-03"},{"id":"ada-a117.1","title":"ICC A117.1 / ADA Standards for Accessible Design — Grab Bars and Accessible Fixtures","url":"https://www.access-board.gov/ada/","accessed":"2026-09-03"},{"id":"iec-60364-7-701","title":"IEC 60364-7-701 Low-voltage electrical installations — Locations containing a bath or shower (zones 0/1/2)","accessed":"2026-09-03"},{"id":"en-1935","title":"EN 1935 Building hardware — Single-axis hinges — Requirements and test methods","accessed":"2026-09-03"},{"id":"astm-en-sheet-steel","title":"ASTM A1008 / EN 10130 Cold-Rolled Steel Sheet — Appliance Panel Gauge and Forming Practice","accessed":"2026-09-03"},{"id":"appliance-fascia-molding-guide","title":"Injection-Molded ABS/PP Appliance Fascia Panel Design Guide — wall thickness and stiffening rib practice","accessed":"2026-09-03"}],"entries":[{"id":"panel-steel-prepainted-gauge","kind":"dimension","tier":1,"title":"Pre-painted steel appliance panel gauge","summary":"Pre-painted (coil-coated) steel appliance panels run 0.6-0.8 mm thick; thinner oil-cans across a large flat span, thicker adds weight and press tonnage without a stiffness benefit at this size.","applies":["appliance panel","sheet metal","washing machine","dishwasher"],"value":{"min":0.6,"max":0.8,"unit":"mm"},"basis":"Common coil-coated steel gauge range for washing-machine/dishwasher/oven outer panels balancing oil-canning resistance against formability and cost","sources":["astm-en-sheet-steel"],"tags":["panel","steel","gauge"]},{"id":"panel-steel-stainless-gauge","kind":"dimension","tier":1,"title":"304 stainless appliance panel gauge","summary":"A 304 stainless show panel (fridge door, range hood, oven fascia) runs 1.0 mm thick, thicker than painted steel because stainless has no paint film to hide print-through of the ribs behind it.","applies":["appliance panel","sheet metal","stainless","fridge","range hood"],"value":{"value":1,"unit":"mm"},"basis":"Standard stainless show-panel gauge that resists oil-canning and rib print-through on an unpainted, reflective surface","sources":["astm-en-sheet-steel"],"tags":["panel","stainless","gauge"]},{"id":"panel-fascia-plastic-thickness","kind":"dimension","tier":1,"title":"Plastic appliance fascia panel thickness","summary":"A moulded ABS/PP appliance fascia (control panel, door liner) runs 2.5-3 mm nominal wall, thicker than a consumer-housing wall because it usually carries printed graphics and a control cluster's mounting bosses.","applies":["appliance panel","fascia","abs","pp","control panel"],"value":{"min":2.5,"max":3,"unit":"mm"},"basis":"Appliance fascia panels run thicker than typical consumer-housing walls to stay flat under printed-graphic lamination and boss loads","sources":["appliance-fascia-molding-guide"],"tags":["panel","plastic","fascia"],"see":["consumer/wall-thickness-abs"]},{"id":"knob-dshaft-standard","kind":"dimension","tier":1,"title":"Control-knob D-shaft bore standards","summary":"A control knob bores for a 6 mm D-shaft with a 4.5 mm flat-to-flat dimension, or a 6.35 mm (1/4 in) round/D shaft on larger potentiometers; match the bore to the pot's published shaft spec, not the knob vendor's default.","applies":["knob","control knob","potentiometer","encoder"],"value":{"table":[{"param":"d-shaft-6mm","diameter":6,"flat":4.5},{"param":"shaft-quarter-inch","diameter":6.35}],"unit":"mm"},"basis":"Common potentiometer/encoder D-shaft and 1/4in round-shaft dimensions used across appliance control knobs","sources":["bourns-knobs"],"tags":["knob","d-shaft","potentiometer"]},{"id":"knob-size-envelope","kind":"dimension","tier":1,"title":"Control-knob diameter and grip height","summary":"Size an appliance control knob 30-45 mm in outer diameter with a 15-25 mm grip height above the panel, enough for a wet or gloved hand to find and turn it without brushing the neighbouring control.","applies":["knob","control knob","oven","cooktop"],"value":{"table":[{"param":"diameter","min":30,"max":45},{"param":"grip-height","min":15,"max":25}],"unit":"mm"},"basis":"Common appliance control-knob envelope balancing hand ergonomics, panel spacing and mould cost","sources":["bourns-knobs"],"tags":["knob","ergonomics","envelope"]},{"id":"switch-rocker-cutout","kind":"dimension","tier":1,"title":"Rocker switch panel cutout","summary":"The two common rocker-switch panel cutouts are 19.2 x 13 mm (mini rocker) and 30 x 22 mm (standard rocker); cut to the switch datasheet's own cutout tolerance, not a rounded number, since a rocker's bezel rarely has gasket compliance to hide a mismatch.","applies":["switch","rocker switch","appliance panel"],"value":{"table":[{"param":"mini-rocker","width":19.2,"height":13},{"param":"standard-rocker","width":30,"height":22}],"unit":"mm"},"basis":"Standard rocker-switch bezel cutout families used across household appliance panels","sources":["iec-60335-1"],"tags":["switch","rocker","cutout"]},{"id":"switch-pushbutton-cutout","kind":"dimension","tier":1,"title":"Push-button panel hole diameters","summary":"Panel-mount push buttons come in three common round cutouts, ⌀12, ⌀16 and ⌀19/22 mm; the ⌀22 mm size is also the standard emergency-stop and industrial pilot-light bezel, reused on heavier appliances.","applies":["switch","push button","appliance panel"],"value":{"options":[12,16,19,22],"unit":"mm"},"basis":"Standard panel-mount push-button bezel diameter family shared across household and light-industrial control panels","sources":["iec-60335-1"],"tags":["switch","push-button","cutout"]},{"id":"hinge-euro-cup","kind":"dimension","tier":1,"title":"Concealed Euro hinge cup bore","summary":"A concealed (Euro-style) cabinet hinge bores a ⌀35 mm cup 12 mm deep into the door's back face; boring past 13 mm risks breaking through a typical 16-19 mm cabinet-door panel.","applies":["hinge","kitchen cabinet module","cabinet door"],"value":{"table":[{"param":"cup-diameter","value":35},{"param":"cup-depth","value":12}],"unit":"mm"},"basis":"Industry-standard concealed hinge cup bore size fitting the common 16-19 mm cabinet-door panel thickness","sources":["en-1935"],"tags":["hinge","euro-hinge","cabinet"]},{"id":"cable-gland-metric-hole","kind":"dimension","tier":1,"title":"Metric cable gland panel hole diameters","summary":"Drill a metric cable gland's panel hole to M12 -> 12.5 mm, M16 -> 16.5 mm, M20 -> 20.5 mm; the 0.5 mm over the nominal thread size is the gland's own clearance for the locknut to draw the gasket down without cross-threading in sheet metal.","applies":["cable gland","appliance panel","cord entry"],"value":{"table":[{"param":"m12","hole":12.5},{"param":"m16","hole":16.5},{"param":"m20","hole":20.5}],"unit":"mm"},"basis":"Manufacturer panel-hole recommendation for metric cable glands threading directly into sheet metal or a moulded boss","sources":["lapp-skintop"],"tags":["cable-gland","metric","panel-hole"]},{"id":"cord-iec-c14-cutout","kind":"dimension","tier":1,"title":"IEC C14 inlet panel cutout","summary":"An IEC 60320 C14 appliance inlet (the standard 3-pin mains socket on the back of most appliances) needs a 27.5 x 19.8 mm rectangular panel cutout plus the moulded flange's own screw bosses either side.","applies":["cord","iec inlet","appliance panel","mains inlet"],"value":{"table":[{"param":"width","value":27.5},{"param":"height","value":19.8}],"unit":"mm"},"basis":"EN/IEC 60320-1 C14 appliance-coupler panel cutout dimension","sources":["en-60320"],"tags":["cord","c14","inlet","cutout"]},{"id":"lampholder-e26-e27","kind":"dimension","tier":1,"title":"E26/E27 Edison screw lamp holder envelope","summary":"An E27 (Europe) or E26 (North America) Edison-screw lamp holder has a ⌀26-27 mm threaded shell and a body/ring diameter around 40 mm; the two caps are close enough to interchange mechanically but not electrically rated the same in every market.","applies":["lamp holder","e27","e26","light fixture","luminaire"],"value":{"table":[{"param":"thread-diameter","min":26,"max":27},{"param":"ring-diameter","value":40}],"unit":"mm"},"basis":"IEC 60061 Edison-screw cap/holder gauge for the E26/E27 family","sources":["iec-60061-lampcaps"],"tags":["lamp-holder","e27","e26","edison-screw"]},{"id":"lampholder-gu10-mr16","kind":"dimension","tier":1,"title":"GU10 and MR16 lamp base envelope","summary":"A GU10 twist-lock base spaces its two pins 10 mm apart on centre; the MR16 reflector lamp it commonly pairs with (12 V, bi-pin base) is ⌀50 mm across the reflector face — size the fixture's reflector pocket to that, not the base.","applies":["lamp holder","gu10","mr16","light fixture","luminaire"],"value":{"table":[{"param":"gu10-pin-spacing","value":10},{"param":"mr16-diameter","value":50}],"unit":"mm"},"basis":"IEC 60061 GU10 twist-lock pin gauge and the standard MR16 reflector lamp outer diameter","sources":["iec-60061-lampcaps"],"tags":["lamp-holder","gu10","mr16"]},{"id":"led-zhaga-les","kind":"dimension","tier":1,"title":"Zhaga Book 3 LED Light Engine Surface (LES) diameters","summary":"A Zhaga Book 3 LED module's light-emitting surface (LES) comes in four standard round diameters, 9, 13, 19 and 23 mm; pick the fixture's optic and heatsink pocket to whichever LES size the chosen module family publishes.","applies":["led module","lighting","luminaire","zhaga"],"value":{"options":[9,13,19,23],"unit":"mm"},"basis":"Zhaga Book 3 interoperability specification for LED light engines with separate control gear","sources":["zhaga-book3"],"tags":["led","zhaga","les","module"]},{"id":"led-heatsink-thermal-budget","kind":"rule","tier":1,"title":"Natural-convection LED heatsink thermal budget","summary":"Budget 2-4 W of LED heat per 100 cm2 of natural-convection aluminium heatsink surface to hold the LED junction at or below 85 C; below that ratio the fixture needs forced air or a bigger fin area, not a better LED.","applies":["led heatsink","lighting","luminaire"],"value":{"min":2,"max":4,"unit":"W"},"basis":"Typical natural-convection aluminium heatsink dissipation density used to keep an LED's junction near its rated maximum","sources":["cree-xlamp"],"tags":["led","heatsink","thermal","junction-temp"]},{"id":"safety-touch-temperature-limit","kind":"rule","tier":1,"title":"Touchable-surface temperature limit (IEC 60335-1)","summary":"A user-touchable appliance surface must not exceed 60 C on metal or 70 C on plastic under normal operation, measured with a 12 mm-diameter articulated finger probe reaching every opening the probe can enter.","applies":["appliance","safety","enclosure","toaster","coffee machine"],"value":{"table":[{"param":"metal","value":60},{"param":"plastic","value":70}],"unit":"C"},"basis":"IEC 60335-1 accessible-surface temperature-rise limits and the standard finger-probe geometry used to define \"touchable\"","sources":["iec-60335-1"],"tags":["safety","temperature","finger-probe"]},{"id":"kitchen-module-dimensions","kind":"dimension","tier":1,"title":"Kitchen cabinet module coordinating sizes","summary":"European kitchen cabinetry coordinates on a 600 mm module width, 720 mm carcass height, 560 mm carcass depth, with a finished worktop height of 870-920 mm above the floor once plinth and countertop are added.","applies":["kitchen cabinet module","appliance","worktop"],"value":{"table":[{"param":"module-width","value":600},{"param":"carcass-height","value":720},{"param":"carcass-depth","value":560},{"param":"worktop-height","min":870,"max":920}],"unit":"mm"},"basis":"EN 1116 coordinating dimensions for kitchen furniture and built-in appliances","sources":["en-1116"],"tags":["kitchen","module","cabinet","worktop"]},{"id":"appliance-niche-sizes","kind":"dimension","tier":1,"title":"Built-in appliance niche openings","summary":"Size a built-in oven niche 595 x 595 mm and a built-in dishwasher niche 600 x 850 mm (width x height) so the appliance's own trim frame can seal to the cabinetry without shimming.","applies":["kitchen cabinet module","oven","dishwasher","appliance niche"],"value":{"table":[{"param":"oven-niche","width":595,"height":595},{"param":"dishwasher-niche","width":600,"height":850}],"unit":"mm"},"basis":"EN 1116 standard built-in appliance niche openings used across European kitchen cabinetry","sources":["en-1116"],"tags":["kitchen","niche","built-in","oven","dishwasher"]},{"id":"door-handle-backset","kind":"dimension","tier":1,"title":"Door handle backset and spindle size","summary":"A residential door lever/knob sets on a 60 or 70 mm backset (centre of the spindle to the door edge) with an 8 mm square spindle; mixing backsets between the lock and the handle is the most common field-fit failure on a hardware order.","applies":["door handle","home hardware","lever handle","knob"],"value":{"options":[60,70],"unit":"mm"},"basis":"Common residential door-hardware backset family and the standard 8 mm square follower spindle","sources":["bhma-a156"],"tags":["door-handle","backset","spindle"]},{"id":"appliance-feet-adjustable","kind":"dimension","tier":1,"title":"Adjustable appliance feet thread and load","summary":"Adjustable appliance feet thread on M8 or M10 studs and carry 80-150 kg each depending on foot diameter and material, enough for four feet to level and support a washing machine or a full oven under dynamic spin/door loads.","applies":["appliance feet","washing machine","oven","dishwasher"],"value":{"min":80,"max":150,"unit":"kg"},"basis":"Common adjustable-foot thread sizes and per-foot static/dynamic load rating for major household appliances","sources":["iec-60335-1"],"tags":["feet","leveling","load"]},{"id":"knob-detent-indexing","kind":"dimension","tier":2,"title":"Knob detent indexing steps","summary":"A stepped control knob (oven mode, fan speed) commonly indexes in 30 deg detents, giving 12 positions per full turn; finer detents crowd the printed legend ring beyond legible spacing.","applies":["knob","control knob","detent"],"value":{"value":30,"unit":"deg"},"basis":"Common detent spacing that keeps a printed position legend legible around a knob's circumference","sources":["bourns-knobs"],"tags":["knob","detent","indexing"]},{"id":"potentiometer-shaft-mount-type","kind":"feature","tier":2,"title":"Knob-to-shaft mounting: set-screw vs push-on","summary":"A set-screw knob clamps a grub screw onto the shaft's flat and tolerates a wider shaft-length variance; a push-on (friction-fit) knob relies on the D-flat's own interference and needs the shaft length held within about 0.5 mm to seat consistently.","applies":["knob","potentiometer","encoder","d-shaft"],"basis":"Set-screw and push-on are the two dominant knob-retention methods, trading assembly speed against shaft-length tolerance","sources":["bourns-knobs"],"tags":["knob","set-screw","push-on","mounting"]},{"id":"switch-ip67-boot","kind":"feature","tier":2,"title":"IP67 rubber boot over a panel switch","summary":"An IP67-rated rocker or push-button switch adds a moulded silicone boot sealing to the panel cutout's edge; budget an extra 1-2 mm of clearance around the mechanical cutout for the boot's own sealing lip versus a dry-location switch.","applies":["switch","ip67","wet area"],"value":{"min":1,"max":2,"unit":"mm"},"basis":"IP67 switch boots need lip clearance beyond the bare mechanical switch cutout to seat and seal without pinching","sources":["iec-60529"],"tags":["switch","ip67","sealing"]},{"id":"hinge-butt-screw-pattern","kind":"dimension","tier":2,"title":"Butt hinge screw hole pattern","summary":"A standard butt hinge leaf spaces its 2 screw holes at roughly 1/4 and 3/4 of the leaf length, sized for #6-#10 wood or sheet-metal screws depending on hinge size.","applies":["hinge","butt hinge","door"],"value":{"options":["#6","#8","#10"]},"basis":"Conventional butt-hinge leaf screw placement used across residential and appliance door hardware","sources":["en-1935"],"tags":["hinge","butt-hinge","screws"]},{"id":"hinge-piano-continuous","kind":"dimension","tier":2,"title":"Piano (continuous) hinge sizing","summary":"A piano hinge runs the full door/lid length with screw holes on a repeating 25-40 mm pitch, spreading the load continuously instead of at two or three butt-hinge points.","applies":["hinge","piano hinge","lid"],"value":{"min":25,"max":40,"unit":"mm"},"basis":"Continuous-hinge screw pitch spreads a lid's load evenly along its full length instead of at discrete hinge points","sources":["en-1935"],"tags":["hinge","piano-hinge","lid"]},{"id":"latch-magnetic-catch-pull","kind":"dimension","tier":2,"title":"Magnetic catch and push-latch pull force","summary":"A cabinet magnetic catch or push-latch holds a door with 3-8 kg of pull; lighter than 3 kg lets a door drift open under vibration, heavier than 8 kg becomes hard to open one-handed and stresses a light door panel's own fixing screws.","applies":["latch","magnetic catch","push latch","cabinet door"],"value":{"min":3,"max":8,"unit":"kg"},"basis":"Common cabinet-hardware catch pull-force range balancing door retention against one-handed opening effort","sources":["bhma-a156"],"tags":["latch","magnetic-catch","pull-force"]},{"id":"oven-door-hinge-load","kind":"rule","tier":2,"title":"Oven door hinge spring and cycle load","summary":"Size an oven door's spring-loaded hinge for the door's full open-weight moment plus a rated 30,000-100,000 open/close cycle life; a hinge sized only for static hold sags and the door stops self-closing well before the appliance's own warranty period ends.","applies":["hinge","oven","oven door"],"value":{"min":30000,"max":100000,"unit":"cycles"},"basis":"Oven door hinges see far more duty cycles over an appliance's life than a cabinet hinge and must hold spring tension across that whole life","sources":["iec-60335-1"],"tags":["hinge","oven-door","cycle-life"]},{"id":"cable-gland-pg-thread","kind":"dimension","tier":2,"title":"PG-thread cable gland panel hole diameters","summary":"Legacy PG-thread cable glands drill to PG9 -> 15.2 mm and PG11 -> 18.6 mm; PG threads are still common on older appliance and control-panel designs even though metric (M12/M16/M20) is now the preferred new-design thread.","applies":["cable gland","pg thread","appliance panel"],"value":{"table":[{"param":"pg9","hole":15.2},{"param":"pg11","hole":18.6}],"unit":"mm"},"basis":"Manufacturer panel-hole recommendation for legacy PG-thread cable glands","sources":["lapp-skintop"],"tags":["cable-gland","pg-thread","panel-hole"]},{"id":"strain-relief-bushing-cord","kind":"dimension","tier":2,"title":"Strain-relief bushing for appliance cord","summary":"A snap-in strain-relief bushing for a 6-8 mm mains cord needs a 10-12 mm panel hole; too tight and the bushing can't compress to grip the cord jacket, too loose and it spins instead of relieving strain at the entry point.","applies":["cord","strain relief","appliance panel"],"value":{"min":10,"max":12,"unit":"mm"},"basis":"Common snap-bushing panel-hole sizing for a 6-8 mm round mains cord jacket","sources":["iec-60335-1"],"tags":["cord","strain-relief","bushing"]},{"id":"cord-c8-figure8-cutout","kind":"dimension","tier":2,"title":"IEC C8 figure-8 inlet cutout","summary":"A double-insulated appliance (no earth pin) uses the smaller IEC 60320 C8 \"figure-8\" inlet, a 19.4 x 10 mm panel cutout narrower than the earthed C14's since it carries only two flat-blade contacts.","applies":["cord","iec inlet","c8","appliance panel"],"value":{"table":[{"param":"width","value":19.4},{"param":"height","value":10}],"unit":"mm"},"basis":"EN/IEC 60320-1 C8 appliance-coupler geometry for double-insulated (Class II) appliances","sources":["en-60320"],"tags":["cord","c8","figure-8","inlet"]},{"id":"lampholder-e14","kind":"dimension","tier":2,"title":"E14 small Edison screw lamp holder","summary":"The E14 \"small Edison screw\" lamp holder threads at ⌀14 mm, used on candelabra-style fixtures and small appliance lamps (oven lamp, fridge lamp) where an E27's ⌀27 mm shell would be oversized.","applies":["lamp holder","e14","oven lamp","fridge lamp"],"value":{"value":14,"unit":"mm"},"basis":"IEC 60061 E14 small-Edison-screw cap/holder gauge","sources":["iec-60061-lampcaps"],"tags":["lamp-holder","e14"]},{"id":"lampshade-fitter-sizes","kind":"dimension","tier":2,"title":"Lampshade fitter types and sizes","summary":"The three lampshade fitters are the E27 ring (40 mm, screws onto the holder), the UNO fitter (28 mm, clamps over the bulb) and the spider/harp fitter (1-1/8 in centre hole on a 200-250 mm harp).","applies":["lampshade","light fixture","luminaire"],"value":{"table":[{"param":"e27-ring","value":40},{"param":"uno-fitter","value":28},{"param":"spider-center-hole","value":28.575,"note":"1-1/8 in"}],"unit":"mm"},"basis":"Standard lampshade fitter families and the harp height that coordinates with them","sources":["iec-60061-lampcaps"],"tags":["lampshade","fitter","e27","uno","spider","harp"]},{"id":"led-cob-footprint","kind":"dimension","tier":2,"title":"COB LED array footprint diameters","summary":"Chip-on-board (COB) LED arrays come in two very common round footprints, ⌀13.5 mm and ⌀19 mm, driving the heatsink's central pocket and the reflector/optic's entry aperture in a downlight or spotlight.","applies":["led module","cob","lighting","luminaire"],"value":{"options":[13.5,19],"unit":"mm"},"basis":"Common commercial COB LED array footprint sizes used across downlight and spotlight fixture families","sources":["cree-xlamp"],"tags":["led","cob","footprint"]},{"id":"led-strip-width","kind":"dimension","tier":2,"title":"LED strip (2835/5050) PCB widths","summary":"Flexible LED strips built on 2835 or 5050 packages come on 8, 10 or 12 mm wide PCBs; size the fixture's channel/extrusion groove to whichever width the chosen strip's datasheet gives, plus 0.2-0.3 mm slide clearance.","applies":["led strip","lighting","led module"],"value":{"options":[8,10,12],"unit":"mm"},"basis":"Common flexible LED strip PCB widths for 2835 and 5050 package families","sources":["cree-xlamp"],"tags":["led","strip","2835","5050"]},{"id":"led-module-bolt-circle","kind":"dimension","tier":2,"title":"LED module mounting bolt circles","summary":"Round LED light-engine modules commonly mount on a 26, 35 or 50 mm bolt circle depending on module size; match the heatsink's tapped-hole pattern to the module family before committing to a fin layout.","applies":["led module","lighting","heatsink","mounting"],"value":{"options":[26,35,50],"unit":"mm"},"basis":"Common round LED module mounting bolt-circle families that heatsink and driver housings are designed around","sources":["zhaga-book3"],"tags":["led","module","bolt-circle","mounting"]},{"id":"heatsink-fin-geometry","kind":"dimension","tier":2,"title":"LED heatsink fin spacing and thermal pad","summary":"Space extruded or die-cast LED heatsink fins 6-8 mm apart for natural convection (tighter starves airflow between fins) and use a 0.5 mm thermal interface pad between the LED module and the heatsink to fill microscopic air gaps without adding significant thermal resistance.","applies":["led heatsink","lighting","thermal"],"value":{"table":[{"param":"fin-spacing","min":6,"max":8},{"param":"thermal-pad","value":0.5}],"unit":"mm"},"basis":"Natural-convection fin spacing floor before boundary layers from adjacent fins interfere, and common TIM pad thickness","sources":["cree-xlamp"],"tags":["heatsink","fin","thermal-pad"]},{"id":"diffuser-lens-thickness","kind":"dimension","tier":2,"title":"Diffuser/lens thickness and transmission","summary":"A clear PMMA diffuser lens runs 2 mm thick at about 90% light transmission; an opal (frosted) polycarbonate diffuser runs 1.5-2 mm, trading a little transmission for even light spread that hides individual LED hot spots.","applies":["diffuser","lens","lighting","luminaire"],"value":{"table":[{"param":"pmma-clear","thickness":2,"transmission":90},{"param":"opal-pc","min":1.5,"max":2}],"unit":"mm"},"basis":"Common diffuser material and thickness combinations balancing optical transmission against hot-spot hiding and moulding cost","sources":["iec-60598-1"],"tags":["diffuser","lens","pmma","polycarbonate"]},{"id":"ip-bathroom-zones","kind":"rule","tier":2,"title":"Bathroom IP zone requirements for fixtures","summary":"A bathroom light or appliance in Zone 0 (inside the bath/shower basin) needs IPX7, Zone 1 (above the basin to 2.25 m) needs IPX4, and Zone 2 (600 mm beyond Zone 1) also needs IPX4; outside Zone 2 a dry-rated fixture is acceptable.","applies":["bathroom hardware","light fixture","luminaire","ip rating"],"value":{"table":[{"param":"zone-0","value":"IPX7"},{"param":"zone-1","value":"IPX4"},{"param":"zone-2","value":"IPX4"}]},"basis":"IEC 60364-7-701 zoning for locations containing a bath or shower and the minimum IP rating each zone requires","sources":["iec-60364-7-701","iec-60529"],"tags":["ip-rating","bathroom","zones"]},{"id":"ip-kitchen-minimum","kind":"rule","tier":2,"title":"Kitchen appliance minimum IP rating","summary":"A kitchen appliance not directly over a sink or hob typically only needs IP20 (finger-touch and basic dust protection); an appliance mounted directly above a sink, hob or dishwasher steam path should step up to at least IP44 for splash resistance.","applies":["kitchen appliance","ip rating","enclosure"],"value":{"min":20,"unit":"count","note":"IP20 baseline; IP44+ over a sink/hob/steam source"},"basis":"IEC 60529 IP-code baseline for a dry-location kitchen appliance versus one exposed to splash","sources":["iec-60529"],"tags":["ip-rating","kitchen","splash"]},{"id":"drawer-runner-length","kind":"dimension","tier":2,"title":"Kitchen drawer runner lengths","summary":"Kitchen drawer runners come in 450 mm and 500 mm common lengths, sized to the 560 mm standard cabinet depth minus front/rear clearance; picking a runner longer than the carcass depth allows is the most common kitchen-fitting mistake.","applies":["kitchen cabinet module","drawer"],"value":{"options":[450,500],"unit":"mm"},"basis":"Common drawer-runner lengths coordinated to the EN 1116 560 mm standard cabinet depth","sources":["en-1116"],"tags":["kitchen","drawer","runner"]},{"id":"towel-rail-length","kind":"dimension","tier":3,"title":"Bathroom towel rail lengths","summary":"Wall-mounted bathroom towel rails come in 600 mm and 800 mm common lengths between fixing centres; fix into a stud or use the rail's specified wall anchor, since a loaded wet towel plus a user leaning on the rail is a real pull load, not a light one.","applies":["towel rail","bathroom hardware"],"value":{"options":[600,800],"unit":"mm"},"basis":"Common wall-mounted towel rail length family for residential bathrooms","sources":["bhma-a156"],"tags":["towel-rail","bathroom","length"]},{"id":"bathroom-fixing-screws","kind":"fastener","tier":3,"title":"Bathroom hardware wall fixing screws","summary":"Fix bathroom hardware (towel rails, grab bars, robe hooks) with M4 or M5 screws into the wall anchor the fixture's own bracket specifies; a grab bar in particular must fix into the anchor rated for its full load, not just the screw's own shear strength.","applies":["bathroom hardware","towel rail","grab bar"],"value":{"options":["M4","M5"]},"basis":"Common wall-fixing screw sizes for bathroom accessory brackets, sized to the anchor rather than the fixture alone","sources":["bhma-a156"],"tags":["fastener","bathroom","wall-fixing"]},{"id":"grab-bar-dimension-load","kind":"dimension","tier":3,"title":"Accessible grab bar length and load rating","summary":"An ADA-compliant grab bar runs 300-600 mm long and must sustain a 150 kg (roughly 250 lbf) applied load without failure or perceptible movement at its wall fixing, since a user's full body weight can load it suddenly.","applies":["bathroom hardware","grab bar","accessibility"],"value":{"min":300,"max":600,"unit":"mm"},"basis":"ICC A117.1 / ADA grab bar length range and structural load requirement for accessible bathroom fixtures","sources":["ada-a117.1"],"tags":["grab-bar","accessibility","load"]},{"id":"faucet-mounting-hole","kind":"dimension","tier":3,"title":"Faucet deck mounting hole diameter","summary":"A standard single-hole kitchen or bathroom faucet mounts through a ⌀35 mm deck hole; widen for a widespread faucet's separate handle holes per that faucet's own template rather than this single-hole number.","applies":["faucet","bathroom hardware","kitchen"],"value":{"value":35,"unit":"mm"},"basis":"Common single-hole faucet deck mounting diameter used across residential kitchen and bathroom fixtures","sources":["bhma-a156"],"tags":["faucet","mounting-hole","deck"]},{"id":"door-lever-length-grade","kind":"dimension","tier":3,"title":"Door lever length and ANSI/BHMA grade","summary":"A residential door lever handle runs 120-140 mm from the rose to the lever tip and is graded 1 (heaviest duty), 2 or 3 under ANSI/BHMA A156.2; grade drives cycle-life testing, not geometry, so two levers of the same length can carry very different durability ratings.","applies":["door handle","home hardware","lever handle"],"value":{"min":120,"max":140,"unit":"mm"},"basis":"Common residential lever-handle length range and the ANSI/BHMA grading system used to rate its durability","sources":["bhma-a156"],"tags":["door-handle","lever","ansi-grade"]},{"id":"gasket-fridge-magnetic","kind":"feature","tier":3,"title":"Refrigerator magnetic door gasket","summary":"A fridge/freezer door gasket embeds a continuous magnetic strip in a PVC/TPE bellows profile, typically 15-20 mm wide, sealing to the cabinet's steel flange by magnetic attraction down to -20 C freezer temperatures.","applies":["gasket","fridge","coffee machine"],"value":{"min":15,"max":20,"unit":"mm"},"basis":"Standard refrigerator door-seal construction relying on an embedded magnetic strip rather than a mechanical catch","sources":["iec-60335-1"],"tags":["gasket","fridge","magnetic-seal"]},{"id":"panel-stiffening-ribs-hems","kind":"feature","tier":3,"title":"Sheet-metal panel stiffening ribs and edge hems","summary":"Stiffen a large flat pre-painted steel panel with pressed ribs (a shallow bead pattern) rather than added thickness, and hem every exposed cut edge (fold the edge back on itself, typically 1.5-2x material thickness) to remove the sharp edge a bare shear leaves.","applies":["appliance panel","sheet metal","safety"],"basis":"Pressed ribs add bending stiffness without added gauge cost, and a hemmed edge removes the sharp-edge hazard a sheared edge leaves for handling and assembly","sources":["astm-en-sheet-steel","iec-60335-1"],"tags":["panel","rib","hem","sheet-metal"]},{"id":"test-ball-pressure","kind":"test","tier":2,"title":"Ball-pressure test (IEC 60335-1)","summary":"Press a 5 mm steel ball into a load-bearing plastic part at 75 C (general parts) or 125 C (parts near a heat source) for 1 hour; the indentation must stay under 2 mm, screening out a resin that would soften and creep in normal service heat.","applies":["appliance","test","plastic","heat resistance"],"value":{"options":[75,125],"unit":"C"},"basis":"IEC 60335-1 ball-pressure test for resistance to heat of insulating and structural material","sources":["iec-60335-1"],"tags":["test","ball-pressure","heat"]},{"id":"test-glow-wire","kind":"test","tier":2,"title":"Glow-wire flammability test (IEC 60335-1)","summary":"Apply a glowing wire at 650, 750 or 850 C, rising with proximity to live parts; the part must self-extinguish within 30 s and not ignite surrounding tissue paper, so avoid a thin unsupported web near heat-generating parts.","applies":["appliance","test","plastic","flammability"],"value":{"options":[650,750,850],"unit":"C"},"basis":"IEC 60335-1 glow-wire test severity selection by the part's proximity to live parts and ignition risk","sources":["iec-60335-1"],"tags":["test","glow-wire","flammability"]},{"id":"test-drop-cord-appliance","kind":"test","tier":2,"title":"Cord-connected appliance drop test","summary":"Drop a cord-connected handheld or countertop appliance 1000 mm onto a hard surface in its most likely orientations; a pass means no exposed live part, no cracked enclosure at a boss or hinge, and the cord's strain relief still grips after impact.","applies":["appliance","test","drop test","toaster","coffee machine"],"value":{"value":1000,"unit":"mm"},"basis":"IEC 60335-1 rough-handling drop test for a cord-connected household appliance","sources":["iec-60335-1"],"tags":["test","drop","cord-connected"]},{"id":"test-hinge-door-cycle","kind":"test","tier":2,"title":"Hinge/door cycle-life test","summary":"Cycle an appliance door or cabinet hinge 30,000-100,000 times; passing means hinge spring tension, door seal compression and latch engagement all stay within spec at the end of the run, not just that nothing broke.","applies":["hinge","test","oven","cabinet door"],"value":{"min":30000,"max":100000,"unit":"cycles"},"basis":"Common appliance and cabinet hinge/door durability cycle-count target across the product's rated life","sources":["iec-60335-1","en-1935"],"tags":["test","hinge","cycle-life"]},{"id":"test-knob-torque","kind":"test","tier":2,"title":"Control knob torque test","summary":"Apply 1.5 Nm of torque to a control knob repeatedly (turning and, separately, a static overload check) without the knob slipping on its shaft, cracking at the D-flat, or the panel's own switch/pot bearing taking permanent damage.","applies":["knob","test","control knob"],"value":{"value":1.5,"unit":"Nm"},"basis":"Common control-knob torque test level exceeding normal hand-operated turning force with margin","sources":["bourns-knobs"],"tags":["test","knob","torque"]},{"id":"test-luminaire-thermal-endurance","kind":"test","tier":2,"title":"Luminaire thermal and 1 h endurance test (IEC 60598-1)","summary":"Run a luminaire at rated voltage until temperatures stabilise, then hold for a further 1 hour; every measured point (LED junction proxy, driver, wiring, accessible surfaces) must stay under its rated limit for the full hour.","applies":["light fixture","luminaire","test"],"value":{"value":1,"unit":"h"},"basis":"IEC 60598-1 thermal test and its 1-hour endurance hold after temperature stabilisation","sources":["iec-60598-1"],"tags":["test","luminaire","thermal","endurance"]},{"id":"test-ik-impact-rating","kind":"test","tier":3,"title":"IK impact-resistance rating for enclosures","summary":"The IK code (IK00-IK10) rates impact resistance from IK07 (2 J, a light diffuser) to IK10 (20 J, vandal/sports-hall exposure); pick the IK target from the fixture's install location before sizing wall thickness and ribs.","applies":["light fixture","luminaire","enclosure","test"],"value":{"options":[7,10],"unit":"count","note":"IK07 = 2J, IK10 = 20J"},"basis":"IEC 62262 IK impact-energy classification referenced by IEC 60598-1 for luminaire enclosures","sources":["iec-60598-1"],"tags":["test","ik-rating","impact"]},{"id":"standard-iec-60335-1","kind":"standard","tier":2,"title":"IEC/UL 60335-1 — household appliance safety","summary":"IEC 60335-1 (harmonised in North America as UL 60335-1) is the general safety standard for household and similar electrical appliances, covering touchable-surface temperature, ball-pressure and glow-wire material tests, mechanical strength and the drop/cord tests this pack cites.","applies":["appliance","safety","standard"],"basis":"Governing general safety standard for household electrical appliances, with sector-specific Part 2 standards layered on top","sources":["iec-60335-1"],"tags":["standard","iec60335","safety"]},{"id":"standard-iec-60598-1","kind":"standard","tier":2,"title":"IEC 60598-1 — luminaire general requirements","summary":"IEC 60598-1 sets general safety and performance requirements for luminaires, including the thermal endurance test, creepage/clearance around live parts, and the mechanical strength an IK impact rating references.","applies":["light fixture","luminaire","standard"],"basis":"Governing general standard for luminaire safety and performance that sector-specific luminaire standards build on","sources":["iec-60598-1"],"tags":["standard","iec60598","luminaire"]},{"id":"standard-en-60320-c14","kind":"standard","tier":3,"title":"EN/IEC 60320 — appliance couplers (C14/C8)","summary":"EN/IEC 60320 standardises non-detachable and detachable appliance couplers, including the C13/C14 and C7/C8 (figure-8) families this pack's cord entries cite, so a cord set and an appliance inlet from different vendors still mate correctly.","applies":["cord","iec inlet","standard"],"basis":"Governing standard for interchangeable appliance coupler geometry across manufacturers","sources":["en-60320"],"tags":["standard","en60320","coupler"]},{"id":"standard-zhaga-book3","kind":"standard","tier":3,"title":"Zhaga Book 3 — LED light engine interoperability","summary":"Zhaga Book 3 defines the mechanical, photometric and electrical interface for an LED light engine with separate control gear, including the LES diameter families this pack cites, so fixtures and modules from different manufacturers remain interchangeable.","applies":["led module","lighting","standard"],"basis":"Industry interoperability specification for replaceable LED light engines","sources":["zhaga-book3"],"tags":["standard","zhaga","led"]},{"id":"standard-bhma-a156","kind":"standard","tier":3,"title":"ANSI/BHMA A156 series — builders hardware","summary":"The ANSI/BHMA A156 series covers door and cabinet hardware — hinges, latches, locks, exit devices — with individual parts (A156.2 locks/levers, A156.9 cabinet hardware) grading products by cycle life and force, which this pack's door-handle and latch entries reference.","applies":["door handle","hinge","latch","standard"],"basis":"Governing US builders-hardware standard family grading residential and commercial hardware by durability and force","sources":["bhma-a156"],"tags":["standard","bhma","hardware"]},{"id":"standard-iec-60529","kind":"standard","tier":2,"title":"IEC 60529 — degrees of protection (IP code)","summary":"IEC 60529 defines the IP code's two digits (solid-object/dust ingress, then liquid ingress) that this pack's kitchen and bathroom IP-rating entries reference, plus the IPX suffix used when only the liquid digit is tested.","applies":["ip rating","enclosure","standard"],"basis":"Governing international standard defining the IP ingress-protection classification system","sources":["iec-60529"],"tags":["standard","iec60529","ip-rating"]},{"id":"standard-en-1116","kind":"standard","tier":3,"title":"EN 1116 — kitchen furniture coordinating sizes","summary":"EN 1116 sets coordinating dimensions between kitchen furniture and built-in appliances — the 600 mm module, carcass height/depth and niche openings this pack's kitchen entries cite — so cabinetry and appliances still fit together.","applies":["kitchen cabinet module","appliance niche","standard"],"basis":"Governing European standard for kitchen furniture/appliance dimensional coordination","sources":["en-1116"],"tags":["standard","en1116","kitchen"]},{"id":"material-prepainted-steel","kind":"material","tier":2,"title":"Pre-painted (coil-coated) steel for appliance panels","summary":"Pre-painted steel (~7.85 g/cm3) is the default appliance-panel material: a polyester or PVDF coil coating is applied before forming, so the panel's finish survives the press brake and punch operations that would crack a post-painted part's coating.","applies":["appliance panel","material","steel"],"value":{"value":7.85,"unit":"g/cm3"},"basis":"Standard low-carbon steel density; coil-coating-before-forming is what distinguishes an appliance-panel steel spec from a raw structural sheet","sources":["astm-en-sheet-steel"],"tags":["material","steel","coil-coated"]},{"id":"material-304-stainless","kind":"material","tier":2,"title":"304 stainless steel for show panels","summary":"304 stainless (~8.0 g/cm3) is the default show-panel grade for fridge doors, range hoods and control fascias, chosen for corrosion resistance and appearance rather than strength; a brushed (No. 4) finish also hides handling marks better than a mirror polish.","applies":["appliance panel","material","stainless"],"value":{"value":8,"unit":"g/cm3"},"basis":"Standard austenitic 304 stainless steel datasheet density and its common use as an appliance show-surface grade","sources":["astm-en-sheet-steel"],"tags":["material","stainless","304"]},{"id":"material-abs-pp-pc-housing","kind":"material","tier":2,"title":"ABS/PP/PC for appliance housings and fascias","summary":"ABS (~1.05 g/cm3), PP (~0.905 g/cm3) and PC (~1.2 g/cm3) cover most moulded appliance fascias and control-panel housings, chosen respectively for cosmetic finish, chemical/fatigue resistance near a hinge or latch, and impact/heat resistance near a heat source.","applies":["appliance panel","material","housing"],"value":{"table":[{"material":"abs","density":1.05},{"material":"pp","density":0.905},{"material":"pc","density":1.2}],"unit":"g/cm3"},"basis":"Standard resin datasheet densities for the three plastics most commonly specified across appliance housings and fascias","sources":["appliance-fascia-molding-guide"],"tags":["material","abs","pp","pc"]},{"id":"material-pbt-knob","kind":"material","tier":2,"title":"PBT for control knobs and switch bodies","summary":"PBT (polybutylene terephthalate, ~1.3 g/cm3) is a common control-knob and switch-body resin for its dimensional stability, low creep under a set-screw's clamping load, and good resistance to household chemicals a knob gets wiped with.","applies":["knob","material","switch"],"value":{"value":1.3,"unit":"g/cm3"},"basis":"Standard PBT resin datasheet density and its common selection for control knobs that must hold a set-screw's clamp load without creeping","sources":["bourns-knobs"],"tags":["material","pbt","knob"]},{"id":"material-ceramic-lampholder","kind":"material","tier":3,"title":"Ceramic for high-temperature lamp holders","summary":"A ceramic (steatite) lamp-holder body, roughly 2.6-2.7 g/cm3, is specified wherever the holder sits close enough to the lamp to see sustained high temperature — halogen and some high-wattage fixtures — since thermoplastic holders soften or discolour at those temperatures.","applies":["lamp holder","material","high-temperature"],"value":{"min":2.6,"max":2.7,"unit":"g/cm3"},"basis":"Standard steatite ceramic datasheet density and its use where a lamp holder must survive sustained high operating temperature","sources":["iec-60061-lampcaps"],"tags":["material","ceramic","lamp-holder"]},{"id":"material-6063-heatsink-extrusion","kind":"material","tier":2,"title":"6063 aluminium for extruded LED heatsinks","summary":"6063-T5 aluminium (~2.7 g/cm3) is the default extruded LED heatsink alloy for its good extrudability into fine fin sections and adequate thermal conductivity (~200 W/mK), trading some conductivity versus pure aluminium for a fin geometry that would tear in a harder alloy.","applies":["led heatsink","material","aluminium"],"value":{"value":2.7,"unit":"g/cm3"},"basis":"Standard 6063-T5 extrusion alloy datasheet density and its common use for fine-pitch extruded heatsink fins","sources":["cree-xlamp"],"tags":["material","aluminium","6063","extrusion"]},{"id":"material-pmma-opal-pc","kind":"material","tier":2,"title":"PMMA and opal PC for diffuser lenses","summary":"Clear PMMA (~1.18 g/cm3) gives the highest transmission for a diffuser lens; opal polycarbonate (~1.2 g/cm3) trades some transmission for better impact resistance, preferred where the lens is also the outer impact-rated surface.","applies":["diffuser","lens","material","luminaire"],"value":{"table":[{"material":"pmma","density":1.18},{"material":"opal-pc","density":1.2}],"unit":"g/cm3"},"basis":"Standard resin datasheet densities for the two dominant luminaire diffuser/lens materials","sources":["iec-60598-1"],"tags":["material","pmma","polycarbonate","diffuser"]},{"id":"recipe-control-knob-dshaft","kind":"recipe","tier":2,"title":"Recipe: control knob with D-shaft bore and pointer","summary":"Build a ⌀35 x 20 mm control knob: an R2 mm fillet on the top rim, a ⌀6 mm D-shaft bore with a 4.5 mm flat cut via a subtracted box, and a small pointer notch on the outer rim near the top.","applies":["knob","control knob"],"basis":"Combines knob-size-envelope and knob-dshaft-standard into one buildable knob with a working D-shaft bore and position pointer","sources":["bourns-knobs"],"tags":["recipe","knob","d-shaft"],"recipe":{"prompt":"Model a 35mm diameter, 20mm tall control knob with a 6mm D-shaft bore (4.5mm flat), an R2mm rounded top rim, and a small pointer notch on the outer edge","steps":[{"tool":"cad_cylinder","args":{"r":17.5,"h":20},"note":"knob body, 35mm diameter x 20mm tall"},{"tool":"cad_fillet_edges","args":{"of":"$0","radius":2},"note":"round the top rim"},{"tool":"cad_cylinder","args":{"r":3,"h":22,"origin":[0,0,-1]},"note":"6mm diameter bore tool, through with 1mm overshoot each end"},{"tool":"cad_boolean_subtract","args":{"of":"$1","tool":"$2"},"note":"cut the round D-shaft bore"},{"tool":"cad_box","args":{"dx":8,"dy":2,"dz":22,"origin":[-4,1.5,-1]},"note":"flat-cut tool trimming the bore from y=1.5 to y=3.5, giving a 4.5mm flat-to-flat D-shaft"},{"tool":"cad_boolean_subtract","args":{"of":"$3","tool":"$4"},"note":"cut the D-shaft flat"},{"tool":"cad_box","args":{"dx":2,"dy":4,"dz":3,"origin":[16.5,-2,17]},"note":"pointer notch tool on the outer rim near the top"},{"tool":"cad_boolean_subtract","args":{"of":"$5","tool":"$6"},"note":"cut the pointer indicator notch"}],"expect":{"volume":18237.29,"faceCount":17,"watertight":true,"note":"measured 2026-09-19: representation change, not geometry: pinned while the boolean published a TESSELLATED B-rep (one planar face per triangle) and it now publishes an analytic one — faceCount 3562 -> 17 while the volume moved 0.053%. Same cause CADSF-1604 established on the pendant and the servo bracket"}}},{"id":"recipe-lampshade-e27-collar","kind":"recipe","tier":2,"title":"Recipe: lampshade with E27 collar","summary":"Build a 180 mm base / 80 mm top, 150 mm tall frustum lampshade shelled to a 1.5 mm wall open at the bottom, with a ⌀40 mm E27 collar ring unioned onto the closed top for the lamp holder fitter.","applies":["lampshade","light fixture","luminaire"],"basis":"Combines lampshade-fitter-sizes' E27 ring diameter with a shelled frustum shade shape into one buildable shade with a working fitter collar","sources":["iec-60061-lampcaps"],"tags":["recipe","lampshade","e27"],"recipe":{"prompt":"Model a tapered lampshade, 180mm diameter at the base narrowing to 80mm at the top, 150mm tall, 1.5mm shell wall open at the bottom, with a 40mm diameter E27 collar ring on the closed top","steps":[{"tool":"cad_frustum","args":{"r0":90,"r1":40,"h":150},"note":"lampshade cone, 180mm base diameter tapering to 80mm at the top"},{"tool":"cad_shell","args":{"of":"$0","thickness":1.5,"open":[{"normal":[0,0,-1]}]},"note":"1.5mm wall, open bottom only, top stays a closed planar cap for the collar to land on"},{"tool":"cad_cylinder","args":{"r":20,"h":17,"origin":[0,0,148]},"note":"40mm diameter E27 fitter collar, embedded 2mm into the shade's top cap so it pierces a planar face"},{"tool":"cad_boolean_union","args":{"of":"$1","tool":"$2"},"note":"union the collar onto the shade's top cap"}],"expect":{"volume":122208.46,"faceCount":13,"watertight":true,"note":"measured 2026-09-19: representation change, not geometry: pinned while the boolean published a TESSELLATED B-rep (one planar face per triangle) and it now publishes an analytic one — faceCount 649 -> 13, volume +0.139%, and the PINNED volume is the SMALLER one: the chord deficit of a faceted collar, which is the tessellation signature"}}},{"id":"recipe-led-heatsink-puck","kind":"recipe","tier":2,"title":"Recipe: LED heatsink puck with 3 mounting holes","summary":"Build a ⌀50 x 10 mm heatsink puck with four radial fins unioned onto the top face and three ⌀3.4 mm mounting holes on a 35 mm bolt circle.","applies":["led heatsink","lighting"],"basis":"Combines heatsink-fin-geometry and led-module-bolt-circle into one buildable heatsink puck with working fins and a mounting bolt circle","sources":["cree-xlamp"],"tags":["recipe","heatsink","led"],"recipe":{"prompt":"Model a 50mm diameter, 10mm thick LED heatsink puck with four radial fins on top and three M3 mounting holes on a 35mm bolt circle","steps":[{"tool":"cad_cylinder","args":{"r":25,"h":10},"note":"heatsink puck body, 50mm diameter x 10mm thick"},{"tool":"cad_box","args":{"dx":18,"dy":2,"dz":6,"origin":[5,-1,9]},"note":"fin 1, radiating +X, 1mm embedded into the puck top for a solid union"},{"tool":"cad_boolean_union","args":{"of":"$0","tool":"$1"},"note":"union fin 1"},{"tool":"cad_box","args":{"dx":2,"dy":18,"dz":6,"origin":[-1,5,9]},"note":"fin 2, radiating +Y"},{"tool":"cad_boolean_union","args":{"of":"$2","tool":"$3"},"note":"union fin 2"},{"tool":"cad_box","args":{"dx":18,"dy":2,"dz":6,"origin":[-23,-1,9]},"note":"fin 3, radiating -X"},{"tool":"cad_boolean_union","args":{"of":"$4","tool":"$5"},"note":"union fin 3"},{"tool":"cad_box","args":{"dx":2,"dy":18,"dz":6,"origin":[-1,-23,9]},"note":"fin 4, radiating -Y"},{"tool":"cad_boolean_union","args":{"of":"$6","tool":"$7"},"note":"union fin 4"},{"tool":"cad_hole_pattern","args":{"of":"$8","type":"drill","diameter":3.4,"pattern":{"kind":"circular","center":[0,0],"radius":17.5,"count":3}},"note":"3x M3 clearance holes on the 35mm bolt circle"}],"expect":{"volume":20050.66,"faceCount":41,"watertight":true,"note":"measured 2026-09-19: representation change, not geometry: pinned while the boolean published a TESSELLATED B-rep (one planar face per triangle) and it now publishes an analytic one — faceCount 299 -> 41, volume +0.150%, pinned smaller (chord deficit of the faceted fins)"}}}]},{"$schema":"nativecad-dfm-pack/1","id":"automotive","title":"Automotive — brackets, sheet-metal body/structure, die-cast and trim, EV and underhood","sector":"automotive","version":"2026-09-03","summary":"Bracket and mount fastener conventions, body/structure sheet-metal gauges, die-cast aluminium and injection-moulded trim rules, underhood thermal and vibration environment, EV battery enclosure and busbar basics, exhaust tube sizing, tolerancing and the salt-spray/thermal/vibration/flammability tests a vehicle part is held to.","aliases":["car","automotive bracket","vehicle","ev","battery enclosure","underhood","trim","body panel","exhaust","engine mount","engine","v12","crankcase ventilation","pcv","breather","oil drain"],"crossSector":false,"size":"full","sources":[{"id":"iso-16750-3","title":"ISO 16750-3:2023 Road vehicles — Environmental conditions — Part 3: Mechanical loads","url":"https://www.iso.org/standard/78026.html","accessed":"2026-09-03"},{"id":"iso-16750-4","title":"ISO 16750-4:2023 Road vehicles — Environmental conditions — Part 4: Climatic loads","url":"https://www.iso.org/standard/81219.html","accessed":"2026-09-03"},{"id":"astm-b117","title":"ASTM B117-19 Standard Practice for Operating Salt Spray (Fog) Apparatus","url":"https://www.astm.org/b0117-19.html","accessed":"2026-09-03"},{"id":"fmvss-302","title":"FMVSS 302 / 49 CFR 571.302 Flammability of Interior Materials","url":"https://www.ecfr.gov/current/title-49/subtitle-B/chapter-V/part-571/subpart-B/section-571.302","accessed":"2026-09-03"},{"id":"sae-j1455","title":"SAE J1455 Recommended Environmental Practices for Electronic Equipment Design (heavy-duty vehicle)","url":"https://www.sae.org/standards/content/j1455_202307/","accessed":"2026-09-03"},{"id":"gmw3172","title":"GMW3172 General Specification for Environmental/Durability Validation (GM worldwide standard)","accessed":"2026-09-03"},{"id":"nadca-403","title":"NADCA Product Specification Standards for Die Castings (draft, wall, tolerance)","url":"https://www.diecasting.org/","accessed":"2026-09-03"},{"id":"astm-a1011","title":"ASTM A1011/A1011M Standard Specification for Steel, Sheet and Strip, HSLA","url":"https://www.astm.org/a1011_a1011m-18a.html","accessed":"2026-09-03"},{"id":"sae-j2340","title":"SAE J2340 Categorization and Properties of Dent Resistant, High Strength, and Ultra-High Strength Automotive Sheet Steel","url":"https://www.sae.org/standards/content/j2340_202007/","accessed":"2026-09-03"},{"id":"sae-j2334","title":"SAE J2334 Laboratory Cyclic Corrosion Test","url":"https://www.sae.org/standards/content/j2334_201609/","accessed":"2026-09-03"},{"id":"iso-20653","title":"ISO 20653:2013 Road vehicles — Degrees of protection (IP code) — Protection of electrical equipment","url":"https://www.iso.org/standard/71681.html","accessed":"2026-09-03"},{"id":"iec-60529","title":"IEC 60529:1989+AMD2:2013 Degrees of protection provided by enclosures (IP Code)","url":"https://webstore.iec.ch/publication/2452","accessed":"2026-09-03"},{"id":"astm-a249","title":"ASTM A249/A249M Standard Specification for Welded Austenitic Steel Boiler, Superheater, Heat-Exchanger, and Condenser Tubes","url":"https://www.astm.org/a0249_a0249m-18.html","accessed":"2026-09-03"},{"id":"ford-fltm-bi123","title":"Ford FLTM BI 123-01 Laboratory Cyclic Corrosion Test","accessed":"2026-09-03"},{"id":"sae-j2380","title":"SAE J2380 Vibration Testing of Electric Vehicle Battery Systems","url":"https://www.sae.org/standards/content/j2380_201310/","accessed":"2026-09-03"},{"id":"sae-j20","title":"SAE J20 Coolant System Hoses","url":"https://www.sae.org/standards/content/j20/","accessed":"2026-09-14"},{"id":"nativecad-v12-showcase","title":"NativeCAD V12 engine showcase — ventilation, drain-back and feed plumbing rebuilt as audited flow paths (CADSB-908/914/917)","url":"https://featureboard.ai/nativecad/web/v12-engine.html","accessed":"2026-09-14"}],"entries":[{"id":"bolt-class-usage-8-8-10-9","kind":"fastener","tier":1,"title":"Bracket and mount bolt class: M6/M8/M10, 8.8 vs 10.9","summary":"Chassis and bracket bolts run M6, M8 and M10 mostly in property class 8.8; 10.9 is used where the joint is fatigue- or shear-critical (engine mounts, suspension brackets) — never mix a 10.9 bolt with an 8.8 nut.","applies":["bracket","mount","chassis fastener"],"value":{"options":["M6 class 8.8","M8 class 8.8","M10 class 8.8","M8 class 10.9","M10 class 10.9"]},"basis":"ISO 898-1 property classes; 10.9 reserved for fatigue-critical joints per common OEM fastener standards","sources":["sae-j2340"],"see":["hardware/bolt-torque-and-preload-classes","hardware/torque-table-class-8-8"],"tags":["bolt","class","bracket","mount","8.8","10.9"]},{"id":"weld-nut-sizing","kind":"fastener","tier":1,"title":"Weld nut sizes for body-in-white attachment","summary":"Square and hex weld nuts for body brackets run M5–M10, projection-welded to 0.7–2.0 mm panel; pilot hole is the nut's tapped size plus 0.5–1.0 mm to seat the weld projections without arc blow.","applies":["weld nut","body-in-white","bracket attachment"],"value":{"options":["M5","M6","M8","M10"]},"basis":"Common OEM weld-nut standards (e.g. GM/Ford weld-fastener specs) size the pilot to the projection ring, not the thread","sources":["gmw3172"],"tags":["weld-nut","projection-weld","body-in-white"]},{"id":"clip-christmas-tree-holes","kind":"fastener","tier":1,"title":"Clip and christmas-tree fastener hole sizes","summary":"Christmas-tree (arrowhead) push clips take a ⌀6.3 mm or ⌀8 mm panel hole in 0.7–3 mm sheet or trim; ⌀6.3 mm is the common 2-leg clip, ⌀8 mm the heavier 4-leg / high-retention clip.","applies":["trim clip","christmas tree clip","panel fastener"],"value":{"options":["6.3 mm hole","8 mm hole"]},"basis":"Trim-clip vendor catalogs (ITW, Nifco, Bollhoff) standardise on these two panel-hole sizes across 0.7–3 mm stock","sources":["gmw3172"],"tags":["clip","christmas-tree","trim","hole"]},{"id":"push-pin-hole-sizes","kind":"fastener","tier":1,"title":"Push-pin (nylon dowel) fastener hole sizes","summary":"Nylon push-pin fasteners take ⌀6.5, ⌀7 or ⌀8 mm mating panel holes depending on pin family; the pin's flared shank interferes 0.2–0.5 mm past the hole to lock, so undersizing 0.1 mm below spec loses retention.","applies":["push pin","trim fastener","panel fastener"],"value":{"options":["6.5 mm hole","7 mm hole","8 mm hole"]},"basis":"Common trim push-pin catalog hole callouts (e.g. Ford/GM interior trim fastener specs)","sources":["gmw3172"],"tags":["push-pin","trim","hole","nylon"]},{"id":"u-nut-j-nut-panel-thickness","kind":"fastener","tier":1,"title":"U-nut / J-nut spring clip panel thickness range","summary":"U-nuts and J-nuts (spring steel push-on nuts) clamp onto 0.6–2.5 mm flange panels; select by flange thickness first, then by the screw's major diameter (commonly M5–M6 for trim, M6–M8 for structural clips).","applies":["u-nut","j-nut","spring clip nut"],"value":{"min":0.6,"max":2.5,"unit":"mm"},"basis":"Spring-clip nut catalogs size the leg spread to a flange-thickness range, independent of thread size","sources":["gmw3172"],"tags":["u-nut","j-nut","clip-nut","flange"]},{"id":"body-panel-gauge-outer","kind":"dimension","tier":1,"title":"Outer body panel gauge (skin panels)","summary":"Exterior skin panels (doors, fenders, hood, roof) run 0.7–0.8 mm cold-rolled or HSLA steel, or 0.8–1.0 mm for aluminium skins, to hold class-A surface with minimum mass.","applies":["body panel","skin panel","outer panel"],"value":{"min":0.7,"max":0.8,"unit":"mm"},"basis":"Dent-resistance vs. mass trade-off standardised across OEM body-panel gauge tables","sources":["sae-j2340","astm-a1011"],"tags":["body-panel","gauge","skin","outer"]},{"id":"bracket-sheet-gauge","kind":"dimension","tier":1,"title":"Bracket sheet-metal gauge","summary":"Formed steel brackets (mounting brackets, reinforcements, small load-carrying stampings) run 1.0–2.0 mm, chosen by the fastener class and the bracket's span rather than by panel-class rules.","applies":["bracket","reinforcement","stamped bracket"],"value":{"min":1,"max":2,"unit":"mm"},"basis":"Typical OEM bracket-gauge tables for M6–M10 fastener classes on cantilevered brackets","sources":["astm-a1011"],"tags":["bracket","gauge","sheet-metal"]},{"id":"structural-sheet-gauge","kind":"dimension","tier":1,"title":"Structural sheet-metal gauge (rails, crossmembers, load paths)","summary":"Structural stampings that carry crash or chassis load (rails, crossmembers, pillar reinforcements) run 2.0–3.0 mm HSLA/DP steel, thicker where a hot-stamped boron grade is not used.","applies":["structural member","rail","crossmember","pillar reinforcement"],"value":{"min":2,"max":3,"unit":"mm"},"basis":"Load-path stampings need section modulus that 2.0 mm and below cannot give without a hot-stamped grade","sources":["astm-a1011","sae-j2340"],"tags":["structural","gauge","hsla","dp-steel"]},{"id":"hole-to-edge-bend-automotive","kind":"rule","tier":1,"title":"Hole-to-edge and hole-to-bend distance on automotive stampings","summary":"Keep a hole centre >= 2x its diameter from a cut edge and >= 2.5x the material thickness plus the bend radius from a bend line, or the flange tears or the hole distorts during forming.","applies":["bracket","body panel","stamped part"],"basis":"General sheet-metal tearing/distortion limits near a bend, tighter than the generic edge-distance rule because of springback","sources":["astm-a1011"],"see":["hardware/edge-distance-holes"],"check":{"process":"sheet-metal","rule":"hole-to-bend-distance"},"tags":["hole","edge-distance","bend","stamping"]},{"id":"diecast-a380-wall-thickness","kind":"process","tier":1,"title":"Die-cast aluminium (A380) nominal wall thickness","summary":"A380 high-pressure die-cast walls run 2–4 mm nominal; below 2 mm the die fills unreliably, above 4 mm the section develops shrink porosity and extends cycle time.","applies":["die-cast bracket","housing","A380 casting"],"value":{"min":2,"max":4,"unit":"mm"},"basis":"NADCA process-capability wall-thickness guidance for A380 HPDC","sources":["nadca-403"],"check":{"process":"die-casting","rule":"min-wall"},"tags":["die-cast","a380","wall-thickness"]},{"id":"diecast-draft-angle","kind":"rule","tier":1,"title":"Die-cast draft angle","summary":"A380 die-cast exterior walls need 1-2 deg of draft per side to release from the die without galling; textured or deep-cavity walls want the higher end.","applies":["die-cast bracket","housing","A380 casting"],"value":{"min":1,"max":2,"unit":"deg"},"basis":"NADCA draft-angle recommendation for aluminium HPDC","sources":["nadca-403"],"check":{"process":"die-casting","rule":"min-draft"},"tags":["die-cast","draft","a380"]},{"id":"diecast-rib-thickness-ratio","kind":"rule","tier":1,"title":"Die-cast rib thickness vs. wall","summary":"Ribs on an A380 casting should stay at or below 60% of the adjacent wall thickness to avoid sink marks on the show surface opposite the rib.","applies":["die-cast bracket","housing","A380 casting"],"value":{"typical":60,"unit":"%"},"basis":"Cooling-rate mismatch at a rib-to-wall junction thicker than 60% pulls the opposite face in as it solidifies","sources":["nadca-403"],"check":{"process":"die-casting","rule":"rib-to-wall-ratio"},"tags":["die-cast","rib","sink-mark"]},{"id":"trim-wall-thickness-pp-tpo","kind":"dimension","tier":1,"title":"Injection-moulded trim wall thickness (PP/TPO)","summary":"Interior and exterior trim panels in PP or TPO mould at 2.5–3.5 mm nominal wall; thinner sections risk short shots across a large flow length, thicker sections add sink and cycle time.","applies":["trim panel","interior trim","PP trim","TPO trim"],"value":{"min":2.5,"max":3.5,"unit":"mm"},"basis":"PP/TPO flow-length-to-wall ratio at typical trim-panel flow lengths (300-800 mm)","sources":["sae-j1455"],"check":{"process":"injection-molding","rule":"min-wall"},"tags":["trim","pp","tpo","wall-thickness"]},{"id":"trim-draft-angle","kind":"rule","tier":1,"title":"Trim panel draft angle, plus grain allowance","summary":"PP/TPO trim walls need >= 1 deg draft per side to eject cleanly; add roughly +1 deg of draft per 0.025 mm of texture/grain depth so a grained panel with 0.075 mm texture wants about 4 deg.","applies":["trim panel","grained trim","textured trim"],"value":{"min":1,"unit":"deg"},"basis":"Standard injection-mould grain-draft allowance (mold-tech style guidance): +1 deg per 0.025 mm texture depth","sources":["sae-j1455"],"check":{"process":"injection-molding","rule":"min-draft"},"tags":["trim","draft","grain","texture"]},{"id":"underhood-temp-zones","kind":"dimension","tier":1,"title":"Underhood ambient temperature by mounting zone","summary":"Underhood component ambient runs 105 C for engine-bay-general locations, up to 125 C near the exhaust manifold shield, and up to 150 C for parts clamped directly to the engine block or turbo heat shield.","applies":["underhood component","bracket","connector","sensor housing"],"value":{"min":105,"max":150,"unit":"C"},"basis":"ISO 16750-4 climatic-load temperature classes by mounting location","sources":["iso-16750-4"],"tags":["underhood","temperature","thermal-zone"]},{"id":"bracket-first-mode-rule","kind":"rule","tier":1,"title":"Bracket first natural frequency > 200 Hz","summary":"A vehicle bracket should keep its first bending mode above 200 Hz so it does not resonate with the engine's firing-order excitation band or road-induced random vibration below that frequency.","applies":["bracket","mount","sensor bracket"],"value":{"min":200,"unit":"Hz"},"basis":"Keeps the bracket's fundamental clear of typical 4-cylinder firing-order and chassis random-vibration content (10-200 Hz band)","sources":["iso-16750-3"],"tags":["vibration","natural-frequency","bracket","nvh"]},{"id":"biw-tolerance-rps","kind":"tolerance","tier":1,"title":"Body-in-white tolerance under an RPS / 3-2-1 datum scheme","summary":"Body-in-white sheet-metal assemblies hold approximately +/-0.5 mm at the reference point system (RPS) locators; feature-to-feature tolerance on a single stamping is typically +/-0.3-0.5 mm.","applies":["body-in-white","stamping","assembly"],"value":{"typical":0.5,"unit":"mm"},"basis":"Standard OEM RPS tolerance stack-up target for BIW sub-assembly build","sources":["gmw3172"],"tags":["tolerance","rps","biw","3-2-1"]},{"id":"machined-tolerance-automotive","kind":"tolerance","tier":1,"title":"Machined automotive component tolerance","summary":"Machined automotive features (bearing bores, mount faces, bolt patterns) hold +/-0.1 to +/-0.2 mm general tolerance, tightening to +/-0.02-0.05 mm on bearing fits and sealing faces.","applies":["machined bracket","housing","mount face"],"value":{"min":0.1,"max":0.2,"unit":"mm"},"basis":"Typical OEM machining general-tolerance class for cast/machined automotive components","sources":["nadca-403"],"tags":["tolerance","machining","bore","mount-face"]},{"id":"three-two-one-datum-scheme","kind":"feature","tier":2,"title":"3-2-1 / RPS datum scheme for body and bracket fixturing","summary":"Locate a body panel or bracket on 6 points: 3 removing Z-rotation and tip/tilt on the primary plane, 2 removing in-plane rotation on a secondary edge, 1 removing the last in-plane DOF on a locator hole, per the RPS convention.","applies":["body-in-white","bracket","fixture design"],"basis":"Reference point system (RPS) is the standard automotive 3-2-1 fixturing convention for repeatable measurement and build","sources":["gmw3172"],"tags":["rps","3-2-1","datum","fixturing"]},{"id":"battery-enclosure-ip67","kind":"rule","tier":1,"title":"EV battery enclosure sealing target: IP67","summary":"An EV battery pack enclosure seals to IP67 (dust-tight, 1 m submersion for 30 min) at minimum, using a compressed EPDM or silicone gasket at the lid-to-tray joint with continuous bolt-and-groove compression.","applies":["battery enclosure","battery tray","ev pack"],"value":{"value":"IP67","unit":"text"},"basis":"ISO 20653 / IEC 60529 IP67 is the common minimum EV pack sealing target across OEM specs","sources":["iso-20653","iec-60529"],"tags":["ev","battery-enclosure","ip67","sealing"]},{"id":"busbar-clearance-creepage","kind":"dimension","tier":2,"title":"Busbar clearance and creepage by system voltage (400 V / 800 V)","summary":"At 400 V a busbar wants roughly 5-8 mm air clearance and 8-12 mm creepage to the next live part or ground; at 800 V that roughly doubles to 10-14 mm clearance and 16-20 mm creepage, per pollution degree and material group.","applies":["busbar","hv connector","battery pack","inverter"],"value":{"table":[{"voltage_v":400,"clearance_mm":"5-8","creepage_mm":"8-12"},{"voltage_v":800,"clearance_mm":"10-14","creepage_mm":"16-20"}]},"basis":"IEC 60664-1 style pollution-degree-2 clearance/creepage scaling as applied by EV HV harness and busbar guides","sources":["iso-20653"],"tags":["ev","busbar","clearance","creepage","400v","800v"]},{"id":"exhaust-tube-stainless-dims","kind":"dimension","tier":2,"title":"Exhaust tube diameter and wall (409/304 stainless)","summary":"Exhaust tube runs 45-76 mm outer diameter by 1.2-1.5 mm wall in 409 stainless for cost-driven mid/rear sections, or 304 stainless nearer the manifold for better heat and corrosion resistance.","applies":["exhaust pipe","exhaust tube","muffler inlet"],"value":{"min":45,"max":76,"unit":"mm"},"basis":"Common OEM exhaust-tube size range for 4-6 cylinder passenger-vehicle exhaust systems","sources":["astm-a249"],"tags":["exhaust","stainless","409","304","tube"]},{"id":"engine-mount-rubber-durometer","kind":"material","tier":2,"title":"Engine mount rubber durometer","summary":"Engine and powertrain mount rubber (natural rubber or EPDM blend) runs 40-70 Shore A; softer compounds isolate idle vibration better, stiffer compounds control powertrain roll under torque.","applies":["engine mount","powertrain mount","rubber isolator"],"value":{"options":["40 Shore A","50 Shore A","60 Shore A","70 Shore A"]},"basis":"Typical OEM engine-mount elastomer durometer range trading isolation against roll stiffness","sources":["iso-16750-3"],"tags":["engine-mount","rubber","durometer","epdm"]},{"id":"cell-module-sizes-ev","kind":"dimension","tier":2,"title":"EV cell and module envelope sizes (2170 / 4680 / prismatic)","summary":"Cylindrical EV cells are 21 mm dia x 70 mm (2170) or 46 mm dia x 80 mm (4680); prismatic cells commonly run 100-150 mm wide x 30-50 mm thick x 90-200 mm tall, packed into modules with 0.5-1.5 mm compression pad gaps.","applies":["battery cell","battery module","ev pack"],"value":{"options":["2170 (21x70 mm)","4680 (46x80 mm)","prismatic 100-150x30-50x90-200 mm"]},"basis":"Published cylindrical-cell form factors and typical prismatic-cell envelope ranges used in EV pack layout","sources":["sae-j2380"],"tags":["ev","cell","module","2170","4680","prismatic"]},{"id":"random-vibration-psd-typical","kind":"dimension","tier":2,"title":"Random vibration test PSD, 10-1000 Hz (automotive component)","summary":"A typical automotive random-vibration profile spans 10-1000 Hz with a flat PSD around 0.01-0.04 g2/Hz through the mid-band, giving roughly 3-7 g RMS overall depending on mounting location.","applies":["bracket","sensor","ecu","underhood component"],"value":{"table":[{"band_hz":"10-50","level":"rising slope"},{"band_hz":"50-500","level":"0.01-0.04 g2/Hz flat"},{"band_hz":"500-1000","level":"falling slope"}]},"basis":"ISO 16750-3 random-vibration severity classes for engine-mounted vs. body-mounted locations","sources":["iso-16750-3"],"check":{"process":"vibration","rule":"random-psd-envelope"},"tags":["vibration","psd","random","10-1000hz"]},{"id":"mechanical-shock-20g","kind":"rule","tier":1,"title":"Mechanical shock pulse: 20 g automotive component","summary":"Automotive brackets and enclosures should survive a 20 g, 6-11 ms half-sine mechanical shock pulse without fracture or fastener loosening, applied in each of 3 axes.","applies":["bracket","ecu housing","connector"],"value":{"typical":20,"unit":"g"},"basis":"ISO 16750-3 mechanical shock test severity for chassis- and body-mounted components","sources":["iso-16750-3"],"tags":["shock","20g","mechanical-load"]},{"id":"hsla-dp-steel-automotive","kind":"material","tier":2,"title":"HSLA and dual-phase (DP) steel for automotive structure","summary":"HSLA steel (yield 350-550 MPa) and dual-phase DP steel (tensile 590-980 MPa) are the default for structural stampings, offering more strength per mm than mild steel so gauge can drop while keeping crash performance.","applies":["structural stamping","rail","crossmember","reinforcement"],"value":{"min":350,"max":980,"unit":"MPa"},"basis":"SAE J2340 categorises automotive sheet steel grades by yield/tensile band for structural design","sources":["sae-j2340","astm-a1011"],"detail":"HSLA grades (SAE J2340 classes like 350Y or 500Y) trade formability for yield strength and are the workhorse for brackets and moderate-load structure. DP steel achieves higher tensile strength (DP590 through DP980) via a martensite-in-ferrite microstructure, giving good work hardening for crash-energy-absorbing rails and pillars at thinner gauge than HSLA would need for the same energy absorption. Both weld with standard resistance spot-welding schedules used elsewhere in the body shop, though DP980 needs tighter current control to avoid expulsion. Selecting between them is a stiffness-vs-formability call: HSLA bends more readily for deep-drawn brackets, DP is preferred where crash-energy management dominates the design.","tags":["hsla","dp-steel","structural","material"]},{"id":"al-6xxx-automotive-brackets","kind":"material","tier":2,"title":"6061/6082 aluminium for machined and extruded brackets","summary":"6061-T6 and 6082-T6 aluminium (yield ~ 240-260 MPa) are used for machined or extruded brackets and crash structure where mass matters more than the cost premium over steel.","applies":["machined bracket","extruded crash rail","aluminium bracket"],"value":{"min":240,"max":260,"unit":"MPa"},"basis":"6061-T6/6082-T6 yield strength and machinability make them the default automotive aluminium alloys outside die casting","sources":["nadca-403"],"see":["materials/al-6061-t6"],"detail":"6061-T6 is the more commonly stocked and more machinable of the two, preferred for CNC brackets and adapter plates. 6082-T6 has slightly higher strength and is favoured in Europe for extruded structural sections (crash rails, battery tray frames) because its extrusion behaviour and weldability are well characterised for that use. Both anodize well for corrosion protection on exposed brackets, and both need a bimetallic isolation (paint, tape, or a plastic washer) where they contact steel to avoid galvanic corrosion in a wet underbody environment.","tags":["6061","6082","aluminium","bracket","extrusion"]},{"id":"a380-alloy-properties","kind":"material","tier":2,"title":"A380 die-cast aluminium alloy properties","summary":"A380 (Al-Si8.5Cu3.5) is the default high-pressure die-cast alloy for automotive housings and brackets: ultimate tensile ~ 320 MPa, elongation ~ 3.5%, good fluidity for thin-wall filling.","applies":["die-cast housing","die-cast bracket","transmission case"],"value":{"typical":320,"unit":"MPa"},"basis":"Standard A380 (ADC12-equivalent) as-cast mechanical property sheet used across die-casting suppliers","sources":["nadca-403"],"detail":"A380's silicon content gives it excellent die-fill characteristics at the 2-4 mm walls typical of automotive HPDC housings, and its copper content raises strength at some cost to corrosion resistance versus a copper-free alloy like A413. Elongation of roughly 3.5% means A380 parts are not meant to flex in service — brackets should be sized so working stress stays well below the ~320 MPa UTS with margin for the porosity any die casting carries. It is not weldable by conventional fusion welding due to trapped gas porosity; mechanical fastening or adhesive bonding is used to join A380 castings to other structure.","tags":["a380","die-cast","aluminium","material"]},{"id":"pa66-gf30-underhood","kind":"material","tier":2,"title":"PA66-GF30 for underhood connectors and brackets","summary":"Glass-filled nylon PA66-GF30 (30% glass) is the default for underhood connector housings and small brackets: tensile strength ~ 180 MPa, heat deflection ~ 250 C, good chemical resistance to oil and coolant splash.","applies":["underhood connector","underhood bracket","sensor housing"],"value":{"typical":180,"unit":"MPa"},"basis":"PA66-GF30 datasheet range as widely used across automotive underhood connector and bracket suppliers","sources":["sae-j1455"],"detail":"The 30% glass loading roughly doubles tensile strength and stiffness over unfilled PA66 while raising heat deflection temperature well above the 105-150 C underhood zone range, which is why it is the default over unfilled nylon for anything clamped near the engine or exhaust. PA66 is hygroscopic, so dimensions and impact strength shift with moisture absorption; parts with tight fits (connector latches, gear teeth) are often designed and toleranced at a specified conditioned-moisture state rather than bone-dry. It resists motor oil, coolant and short splash exposure to fuel but is attacked by strong acids, which rules it out for battery-acid-adjacent locations.","tags":["pa66","gf30","nylon","underhood","connector"]},{"id":"pp-td20-trim","kind":"material","tier":2,"title":"PP-TD20 (talc-filled polypropylene) for interior trim","summary":"Talc-filled polypropylene PP-TD20 (20% talc) is the workhorse interior trim resin: tensile strength ~ 25-30 MPa, low cost, low warp, and takes grain texture and paint or in-mould colour well.","applies":["interior trim","door panel","trim bracket"],"value":{"min":25,"max":30,"unit":"MPa"},"basis":"PP-TD20 datasheet property range as commonly specified for automotive interior trim panels","sources":["sae-j1455"],"detail":"Talc filling stiffens PP and reduces its mould shrinkage relative to unfilled PP, which is why PP-TD20 (or PP-TD10/PP-TD40 variants at other loadings) holds flatness better across the 2.5-3.5 mm trim wall than unfilled homopolymer PP would at the same gauge. It is a lower-cost alternative to TPO or PC/ABS blends for panels that do not need TPO's better low-temperature impact resistance or PC/ABS's higher heat resistance, and it recycles more simply than blended resins, which is a factor in interior trim material selection under OEM recyclability targets.","tags":["pp","td20","talc","trim","interior"]},{"id":"epdm-seals-mounts","kind":"material","tier":2,"title":"EPDM for weatherseals, grommets and mount isolators","summary":"EPDM rubber is the default for weatherstrip, grommets and vibration-isolation bushings exposed to weather: durometer 40-80 Shore A, good ozone and UV resistance, poor resistance to petroleum oils.","applies":["weatherseal","grommet","isolator bushing","battery enclosure gasket"],"value":{"options":["40 Shore A","60 Shore A","80 Shore A"]},"basis":"EPDM's ozone/UV/weathering resistance is why it, not nitrile or neoprene, is the default automotive exterior seal elastomer","sources":["iso-16750-4"],"detail":"EPDM's saturated backbone gives it strong resistance to ozone cracking and UV degradation, which is essential for door and body weatherseals that live outdoors for the vehicle's life, and it stays flexible across a wide temperature range relevant to ISO 16750-4 climatic classes. Its weakness is petroleum-based fluids: EPDM swells and softens in engine oil, fuel and many greases, so it is not used for underhood fluid-line seals (those use fluoroelastomer or nitrile instead) even though it is the right choice for a battery-enclosure lid gasket or a door seal that never sees oil.","tags":["epdm","seal","grommet","isolator","weatherstrip"]},{"id":"salt-spray-astm-b117","kind":"test","tier":2,"title":"Salt spray corrosion test (ASTM B117), 96-480 h","summary":"ASTM B117 neutral salt-fog exposure runs 96 h for a mild corrosion-class fastener or bracket up to 480 h or more for a structural or exposed underbody part; the geometry rule is no crevice or unsealed lap joint that traps salt fog.","applies":["bracket","fastener","underbody part","exposed hardware"],"value":{"min":96,"max":480,"unit":"h"},"basis":"ASTM B117 duration classes scale with the part's corrosion-protection requirement and exposure zone","sources":["astm-b117"],"tags":["test","salt-spray","corrosion","astm-b117"]},{"id":"thermal-shock-cycling-underhood","kind":"test","tier":2,"title":"Thermal shock / thermal cycling test, -40 to +125 C","summary":"Underhood components cycle between -40 C and +125 C (some zones to +150 C) with dwell and short transfer time between chambers, for hundreds to a few thousand cycles; the geometry rule is no trapped-moisture cavity and matched CTE at bonded or press-fit interfaces.","applies":["underhood connector","sensor housing","bracket assembly"],"value":{"min":-40,"max":125,"unit":"C"},"basis":"ISO 16750-4 thermal shock/cycling severity classes for underhood-mounted electrical and mechanical parts","sources":["iso-16750-4"],"tags":["test","thermal-shock","thermal-cycling","underhood"]},{"id":"iso16750-vibration-mechanical-test","kind":"test","tier":2,"title":"ISO 16750 vibration and mechanical load test","summary":"ISO 16750-3 combines a 10-1000 Hz random vibration sweep (hours per axis, by mounting-location severity class) with the 20 g mechanical shock pulse; the geometry rule is every bracket clears its first-mode-above-200-Hz target before this test is run.","applies":["bracket","ecu","sensor","connector assembly"],"basis":"ISO 16750-3 is the harmonised automotive mechanical-environment test most OEM component specs point to","sources":["iso-16750-3"],"tags":["test","iso-16750","vibration","mechanical-shock"]},{"id":"fmvss302-flammability-test","kind":"test","tier":2,"title":"FMVSS 302 interior flammability test","summary":"FMVSS 302 requires interior trim materials within reach of an occupant to burn no faster than 102 mm/min horizontally, or self-extinguish; the geometry rule is no unsupported thin edge of trim material left as an ignition-prone free edge.","applies":["interior trim","seat trim","headliner","door panel"],"value":{"value":"102 mm/min"},"basis":"FMVSS 302 / 49 CFR 571.302 burn-rate limit for occupant-compartment materials","sources":["fmvss-302"],"tags":["test","fmvss302","flammability","interior"]},{"id":"iso-16750-standard-family","kind":"standard","tier":2,"title":"ISO 16750 series: road vehicle environmental conditions","summary":"ISO 16750 (parts 1-5) sets electrical, mechanical, climatic, chemical and dust/water environmental test classes for road-vehicle electrical/electronic equipment; parts 3 and 4 are the ones with direct geometric implications (vibration, shock, thermal cycling).","applies":["ecu","sensor","connector","bracket assembly"],"basis":"The umbrella series most OEM component specifications reference for environmental qualification","sources":["iso-16750-3","iso-16750-4"],"tags":["standard","iso-16750","environmental"]},{"id":"gmw-ford-standard-families","kind":"standard","tier":2,"title":"GMW and Ford (WSS/FLTM) engineering standard families","summary":"GM's GMW-series (e.g. GMW3172 durability/environmental validation) and Ford's WSS material specs plus FLTM lab test methods (e.g. FLTM BI 123-01 cyclic corrosion) are the two dominant US OEM in-house standard families a supplier drawing will cite.","applies":["bracket","fastener","trim","sheet-metal part"],"basis":"Both OEMs maintain their own validation and material-spec numbering independent of ISO/SAE, and supplier drawings routinely call them out directly","sources":["gmw3172","ford-fltm-bi123"],"tags":["standard","gmw","ford","wss","fltm"]},{"id":"rivet-nut-automotive","kind":"fastener","tier":2,"title":"Rivet nuts (rivnuts) for blind-side bracket attachment","summary":"Rivet nuts (M5-M10) attach a threaded boss to sheet metal from one side, used where the backside is inaccessible (sealed box sections, closed panels); install hole is the rivnut body diameter plus 0.1-0.2 mm clearance.","applies":["blind fastener","bracket attachment","closed section"],"value":{"options":["M5","M6","M8","M10"]},"basis":"Standard rivnut sizing for one-sided access on automotive closed sections","sources":["gmw3172"],"see":["hardware/rivnut-hole-sizes"],"tags":["rivnut","blind-fastener","sheet-metal"]},{"id":"weld-stud-projection","kind":"fastener","tier":2,"title":"Projection-welded studs for trim and harness attachment","summary":"Threaded weld studs (M5-M8) are projection-welded to 0.7-2.0 mm panel for attaching trim clips, ground straps or harness brackets; stud base diameter needs >= 3x panel thickness of flat panel around it for a sound weld nugget.","applies":["weld stud","ground stud","harness bracket"],"value":{"options":["M5","M6","M8"]},"basis":"Resistance-projection-welding process guidance for stud attachment on body-panel gauges","sources":["gmw3172"],"tags":["weld-stud","projection-weld","ground-strap"]},{"id":"corrosion-protection-coating","kind":"process","tier":2,"title":"E-coat and zinc-phosphate corrosion protection stack","summary":"Body-in-white steel gets a zinc-phosphate pretreatment plus 18-25 um cathodic e-coat before assembly; brackets and fasteners exposed underbody add a zinc or zinc-nickel plating (5-12 um) for salt-spray life beyond bare e-coat.","applies":["body-in-white","bracket","fastener","underbody part"],"value":{"min":18,"max":25,"unit":"um"},"basis":"Standard OEM e-coat film-build specification for cathodic electrodeposition primer","sources":["sae-j2334"],"tags":["e-coat","zinc-phosphate","plating","corrosion"]},{"id":"underhood-connector-sealing","kind":"dimension","tier":2,"title":"Underhood connector sealing rating (IP6K9K)","summary":"Underhood electrical connectors typically seal to IP6K9K (dust-tight, high-pressure/steam-jet washdown resistant), tighter than the IP67 used for cabin or trunk-mounted connectors.","applies":["underhood connector","sensor connector","harness connector"],"value":{"value":"IP6K9K","unit":"text"},"basis":"ISO 20653's 9K test (high-pressure, high-temperature jet washing) reflects underhood pressure-washer exposure in service","sources":["iso-20653"],"tags":["connector","sealing","ip6k9k","underhood"]},{"id":"exhaust-clamp-joint","kind":"feature","tier":2,"title":"Exhaust pipe clamp joint (band or v-band)","summary":"Exhaust tube sections join with a band clamp over a 15-25 mm overlap slip-fit (tube OD plus 0.5-1.0 mm) or a v-band flange joint for high-vibration locations near the manifold; overlap joints allow the thermal-expansion slip a welded joint cannot.","applies":["exhaust pipe","exhaust joint","muffler connection"],"value":{"min":15,"max":25,"unit":"mm"},"basis":"Standard exhaust-system slip-joint overlap range balancing seal integrity against thermal-expansion slip","sources":["astm-a249"],"tags":["exhaust","clamp","v-band","slip-joint"]},{"id":"sheet-metal-hem-flange","kind":"feature","tier":2,"title":"Hem flange on body panel edges","summary":"Body panel edges (door skins, hood, deck lid) hem over an inner panel with a 4-6 mm hem flange and an inside bend radius approximately equal to the panel thickness, closing out the raw edge and stiffening it.","applies":["body panel","door skin","hood","deck lid"],"value":{"min":4,"max":6,"unit":"mm"},"basis":"Standard hem-flange geometry for 0.7-0.8 mm outer body panels closing onto an inner panel","sources":["astm-a1011"],"check":{"process":"sheet-metal","rule":"hem-flange-length"},"tags":["hem","flange","body-panel","edge"]},{"id":"clip-tower-plastic-trim","kind":"feature","tier":2,"title":"Clip boss / tower on injection-moulded trim","summary":"A trim clip tower is a cylindrical boss 6-10 mm diameter rising 8-15 mm from the trim wall, wall-thickness of the boss kept at 50-60% of the panel wall to avoid sink, with a thread-forming screw pilot hole through its centre.","applies":["trim panel","clip boss","screw boss"],"value":{"min":6,"max":10,"unit":"mm"},"basis":"Standard plastic screw-boss sink-avoidance ratio applied to trim-panel clip towers","sources":["sae-j1455"],"see":["hardware/screw-boss-plastic"],"tags":["clip-tower","boss","trim","screw-boss"]},{"id":"alternator-bracket-hole-pattern","kind":"dimension","tier":2,"title":"Alternator/accessory bracket mounting hole pattern","summary":"Accessory brackets (alternator, A/C compressor, power-steering pump) typically use a pivot hole plus an adjustment slot roughly 20-25 mm long for belt tensioning, with 2-3 additional M8-M10 mounting holes on the block face.","applies":["alternator bracket","accessory bracket","belt tensioner bracket"],"value":{"min":20,"max":25,"unit":"mm"},"basis":"Common accessory-bracket layout convention: one pivot, one tension slot, remaining holes as fixed mounts","sources":["sae-j2340"],"tags":["alternator","bracket","slot","mounting-holes"]},{"id":"recipe-alternator-bracket","kind":"recipe","tier":2,"title":"Recipe: alternator accessory bracket plate with slot and holes","summary":"Build a 90x40x5 mm steel accessory bracket plate with a 24x9 mm belt-tension adjustment slot and two M6 clearance mounting holes plus one M8 pivot hole.","applies":["alternator bracket","accessory bracket"],"basis":"Combines bracket-sheet-gauge, alternator-bracket-hole-pattern and hole-to-edge-bend-automotive into one buildable plate","sources":["astm-a1011","sae-j2340"],"tags":["recipe","bracket","alternator"],"recipe":{"prompt":"Model a 90x40x5mm steel alternator bracket plate with a 24x9mm belt-tension slot and an M8 pivot hole plus two M6 mounting holes","steps":[{"tool":"cad_box","args":{"dx":90,"dy":40,"dz":5},"note":"bracket plate, 5mm per bracket-sheet-gauge"},{"tool":"cad_box","args":{"dx":24,"dy":9,"dz":5,"origin":[8,15.5,0]},"note":"slot cutting tool, 24x9mm belt-tension adjustment slot"},{"tool":"cad_boolean_subtract","args":{"of":"$0","tool":"$1"},"note":"cut the adjustment slot"},{"tool":"cad_drill_hole","args":{"of":"$2","type":"drill","diameter":9,"center":[75,20],"through":true},"note":"M8 pivot hole, ISO 273 medium clearance"},{"tool":"cad_drill_hole","args":{"of":"$3","type":"drill","diameter":6.6,"center":[45,8],"through":true},"note":"M6 mounting hole 1"},{"tool":"cad_drill_hole","args":{"of":"$4","type":"drill","diameter":6.6,"center":[45,32],"through":true},"note":"M6 mounting hole 2"}],"expect":{"volume":16259.79,"faceCount":16,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-heat-shield-sheet-metal","kind":"recipe","tier":2,"title":"Recipe: exhaust/manifold heat shield as a folded sheet-metal panel","summary":"Build a 120x80 mm, 0.8 mm stainless heat-shield base with 15 mm flanges folded on two sides, plus two 6.5 mm push-pin mounting holes.","applies":["heat shield","exhaust shield","manifold shield"],"basis":"Combines body-panel-gauge-outer, push-pin-hole-sizes and the sheet-metal folded-box tool into one buildable shield","sources":["astm-a1011"],"tags":["recipe","heat-shield","sheet-metal"],"recipe":{"prompt":"Model a 120x80mm stainless heat shield, 0.8mm thick, with 15mm flanges on the north and south edges and two 6.5mm push-pin holes","steps":[{"tool":"cad_sheet_box","args":{"thickness":0.8,"base":{"length":120,"width":80},"flanges":{"n":{"height":15},"s":{"height":15}}},"note":"0.8mm base per body-panel-gauge-outer, two folded flanges for stiffness"},{"tool":"cad_drill_hole","args":{"of":"$0","type":"drill","diameter":6.5,"axis":[0,0,-1],"start":[15,15,0.8],"depth":0.8},"note":"push-pin hole 1, explicit axis/start since the folded base is not the only flat face"},{"tool":"cad_drill_hole","args":{"of":"$1","type":"drill","diameter":6.5,"axis":[0,0,-1],"start":[105,65,0.8],"depth":0.8},"note":"push-pin hole 2"}],"expect":{"volume":10868.82,"faceCount":18,"watertight":true,"note":"measured 2026-09-19: representation change, not geometry: pinned while the boolean published a TESSELLATED B-rep (one planar face per triangle) and it now publishes an analytic one — faceCount 654 -> 18, volume identical to 0.002%: an all-planar body has no chord deficit, so there is nothing for the volume to show"}}},{"id":"recipe-trim-clip-boss","kind":"recipe","tier":2,"title":"Recipe: trim panel with a clip boss / tower","summary":"Build a 60x40x20 mm shelled trim panel section (2.5 mm wall) with an 8x8x15 mm clip boss tower unioned onto the floor and a 2.6 mm screw pilot hole through the tower.","applies":["trim panel","clip tower","screw boss"],"basis":"Combines trim-wall-thickness-pp-tpo and clip-tower-plastic-trim; uses box+union for the boss per the shelled-box face-selector limitation","sources":["sae-j1455"],"tags":["recipe","trim","clip-tower","boss"],"recipe":{"prompt":"Model a 60x40x20mm trim panel section shelled to 2.5mm wall with an 8x8x15mm clip boss tower on the floor and a 2.6mm screw pilot hole through it","steps":[{"tool":"cad_box","args":{"dx":60,"dy":40,"dz":20},"note":"trim panel block"},{"tool":"cad_shell","args":{"of":"$0","thickness":2.5,"open":[{"normal":[0,0,1]}]},"note":"2.5mm wall per trim-wall-thickness-pp-tpo, open top"},{"tool":"cad_box","args":{"dx":8,"dy":8,"dz":17.5,"origin":[26,16,0]},"note":"clip boss tower box, embedded from the outer floor (z=0) through the 2.5mm floor and up into the cavity so it truly overlaps the shelled solid"},{"tool":"cad_boolean_union","args":{"of":"$1","tool":"$2"},"note":"union the boss onto the shelled panel instead of a face-selected pad"},{"tool":"cad_drill_hole","args":{"of":"$3","type":"drill","diameter":2.6,"axis":[0,0,-1],"start":[30,20,17.5],"depth":10},"note":"thread-forming screw pilot through the boss"}],"expect":{"volume":15218.02,"faceCount":20,"watertight":true,"note":"measured 2026-09-19: CADSF-1561 (cc1f38cb, 2026-09-15) gave a BLIND hole a 118° DRILL POINT: the flat floor became a cone on the Ø2.6x10 blind boss hole: +1 face, and the point removes a further 0.55 mm^3. Not a representation change and not a regression"}}},{"id":"crankcase-ventilation-routing","kind":"feature","tier":2,"title":"Crankcase ventilation: breather spigots, separator, PCV valve","summary":"Each cam cover carries a breather spigot (~Ø18, bore ~Ø13) over a baffle; one bank's hose runs to a spigot through the airbox wall, the other's to an oil separator on the plenum lid feeding a PCV valve through the lid -- every hose over a spigot, clamped.","applies":["engine","cam cover","pcv","breather","airbox"],"value":{"value":18,"unit":"mm","note":"breather spigot OD; bore 13; hose lap 8"},"basis":"V12 showcase CADSB-914 rebuild of CADSF-1478/1480's floating ventilation; SAE J20 hose practice","sources":["nativecad-v12-showcase","sae-j20"],"tags":["pcv","breather","ventilation","hose","spigot","engine"],"detail":"Rebuilt in the V12 showcase (CADSB-914) after CADSF-1478/1480 shipped hoses ending in air, a separator floating over the lid and six decorative vacuum hooks; declared as a gas path and audited with cad_assembly_flowpath."},{"id":"head-drain-back-tube","kind":"feature","tier":2,"title":"External head-to-crankcase oil drain-back tube","summary":"A ~Ø18 tube from a boss on the head's outboard flank down to a boss on the block flank, routed behind the last exhaust flange and outboard of its stud nuts, 18 mm bends, 4 mm laps into both bosses -- a tube standing off the head connected to nothing is the V12's CADSB-917 defect.","applies":["engine","cylinder head","oil drain","block"],"value":{"value":18,"unit":"mm","note":"tube OD; bosses r13 x 17, bore 9.3"},"basis":"V12 showcase CADSB-917","sources":["nativecad-v12-showcase"],"tags":["oil","drain","head","tube","engine"]},{"id":"external-head-oil-feed","kind":"feature","tier":2,"title":"External head oil feed: union, bend-radius first leg, restrictor","summary":"A Ø10 steel pipe from a tapped union boss on the block flank up and outboard of the cam-cover lip into a union on the cover's exhaust wall, a restrictor in the cover-side bore at the tip; each first straight leg out of a union is at least the bend radius or the sweep refuses.","applies":["engine","cylinder head","oil feed","cam cover"],"basis":"V12 showcase CADSB-908 (Jaguar XJS-class external feed); CADSF-1517","sources":["nativecad-v12-showcase"],"tags":["oil","feed","pipe","union","restrictor","engine"]},{"id":"rotating-assembly-clash-audit","kind":"rule","tier":2,"title":"Audit the rotating assembly against the statics at several crank angles","summary":"Measure every part whose placement changes with crank angle (crank, rods, pistons, valves, cams, trigger rings, damper, flywheel) against every static part at 0/90/180/270 degrees, not only against the chain -- the V12's first such pass found 27 clash classes up to 14.5 mm.","applies":["engine","crankshaft","flywheel","camshaft","assembly"],"basis":"V12 showcase CADSB-918","sources":["nativecad-v12-showcase"],"tags":["clash","audit","kinematics","engine","assembly"],"detail":"CADSB-918: the V12 clash audit had classified rotating parts as 'other' and measured them against the timing chain alone; pass 3 found a crank turning through solid main webs (14.46 mm), a flywheel 14 mm inside the block's rear face, cam lobes 13 mm into their shaft, a crank sensor bolt in the trigger ring."}]},{"$schema":"nativecad-dfm-pack/1","id":"bikes","title":"Bikes -- frames, drivetrain, cockpit, e-bikes, scooters and helmets","sector":"bikes","version":"2026-09-03","summary":"Frame tube and bottom-bracket standards, headset and dropout/axle sizing, disc-mount and boss dimensions, cockpit and seatpost diameters, e-bike/scooter/skateboard geometry, and the ISO/EN/CPSC/ASTM tests a bike, e-bike or helmet is held to.","aliases":["bike","bicycle","e-bike","ebike","scooter","e-scooter","skateboard","dropout","bottom bracket","bike headset","seatpost","handlebar","bottle cage","bike rack","helmet","sporting goods","fitness equipment"],"crossSector":false,"size":"full","sources":[{"id":"iso-4210","title":"ISO 4210 (all parts) Cycles -- Safety requirements for bicycles","url":"https://www.iso.org/search.html?q=ISO%204210","accessed":"2026-09-03"},{"id":"en-15194","title":"EN 15194 Cycles -- Electrically power assisted cycles (EPAC bicycles)","url":"https://standards.iteh.ai/search?q=EN+15194","accessed":"2026-09-03"},{"id":"en-1078","title":"EN 1078 Helmets for pedal cyclists and for users of skateboards and roller skates","url":"https://standards.iteh.ai/search?q=EN+1078","accessed":"2026-09-03"},{"id":"cpsc-1203","title":"16 CFR 1203 -- CPSC Safety Standard for Bicycle Helmets","url":"https://www.ecfr.gov/current/title-16/chapter-II/subchapter-C/part-1203","accessed":"2026-09-03"},{"id":"iso-6695","title":"ISO 6695 Cycles -- Saddles -- Concepts, dimensions and symbols","url":"https://www.iso.org/search.html?q=ISO%206695","accessed":"2026-09-03"},{"id":"astm-f2032","title":"ASTM F2032 Standard Specification for Helmets Used for BMX Cycling","url":"https://store.astm.org/f2032-22.html","accessed":"2026-09-03"},{"id":"park-tool-standards","title":"Park Tool -- bottom bracket, headset and frame standards reference pages","url":"https://www.parktool.com/en-us/blog/repair-help","accessed":"2026-09-03"},{"id":"sheldon-brown-glossary","title":"Sheldon Brown -- Bicycle Glossary and technical reference pages","url":"https://www.sheldonbrown.com/gloss_a-c.html","accessed":"2026-09-03"},{"id":"shimano-dealer-manual","title":"Shimano Dealer's Manual (bottom bracket, pedal, chainline, freehub specifications)","url":"https://si.shimano.com/","accessed":"2026-09-03"},{"id":"sram-standards","title":"SRAM Standards -- thru-axle and Boost hub/frame spacing reference","url":"https://www.sram.com/en/service/","accessed":"2026-09-03"},{"id":"matweb-materials","title":"MatWeb Material Property Data (frame steels, aluminium, titanium alloys)","url":"https://www.matweb.com/","accessed":"2026-09-03"},{"id":"iso-5775","title":"ISO 5775 Bicycle tyres and rims -- Designation, dimensions and marking","url":"https://www.iso.org/search.html?q=ISO%205775","accessed":"2026-09-03"}],"entries":[{"id":"frame-tube-steel-diameters","kind":"dimension","tier":1,"title":"Steel frame tube diameters and butted wall gauge","summary":"Steel (chromoly) frame tubes run 25.4, 28.6 or 31.8 mm OD, double-butted to a 0.8-0.9 mm centre wall (thicker at the welded ends) -- the standard top/down/seat-tube sizing for a lugged or TIG-welded steel frame.","applies":["frame","top tube","down tube","seat tube","steel frame"],"value":{"options":[25.4,28.6,31.8],"unit":"mm"},"basis":"Common steel-frame tubeset sizing (Reynolds/Columbus-style) referenced across Park Tool and Sheldon Brown frame-building pages","sources":["park-tool-standards","sheldon-brown-glossary"],"tags":["frame","tube","steel","chromoly","diameter"]},{"id":"frame-tube-alloy-diameters","kind":"dimension","tier":1,"title":"Aluminium frame tube diameters and wall gauge","summary":"Aluminium frame tubes oversize to 34.9 or 38.1 mm OD with a 1.2-1.6 mm wall -- larger diameter, thinner wall, trading steel's stiffness-per-weight for aluminium's lower modulus at similar mass.","applies":["frame","top tube","down tube","aluminium frame","alloy frame"],"value":{"options":[34.9,38.1],"unit":"mm"},"basis":"Common aluminium-frame tubeset OD/wall convention (6061/7005 hydroformed and butted tubing)","sources":["park-tool-standards"],"tags":["frame","tube","aluminium","diameter"]},{"id":"bb-shell-bsa","kind":"dimension","tier":1,"title":"BSA threaded bottom bracket shell","summary":"BSA (English) threaded BB shells are 68 mm (road/gravel) or 73 mm (MTB) wide, threaded 1.37 in x 24 TPI -- right (drive) side left-hand thread, left side right-hand thread, so the cups tighten rather than unscrew under pedalling.","applies":["bottom bracket","bb shell","crank"],"value":{"options":[68,73],"unit":"mm","table":[{"field":"thread","value":"1.37in x 24 TPI"}]},"basis":"BSA (British Standard Cycle) threaded bottom bracket shell width and thread convention","sources":["park-tool-standards","shimano-dealer-manual"],"tags":["bottom-bracket","bsa","threaded","shell-width"]},{"id":"bb-shell-pf30","kind":"dimension","tier":1,"title":"PF30 press-fit bottom bracket shell","summary":"PF30 press-fit shells bore to 46 mm ID over a 68 mm shell width, pressing the bearing cups directly into the frame shell rather than threading them -- wider bearing spacing than BSA for a stiffer, lower-friction bottom bracket.","applies":["bottom bracket","bb shell","press fit"],"value":{"table":[{"field":"boreID","value":46},{"field":"shellWidth","value":68}],"unit":"mm"},"basis":"PF30 press-fit bottom bracket standard bore and shell width","sources":["park-tool-standards"],"tags":["bottom-bracket","pf30","press-fit"]},{"id":"bb-shell-t47","kind":"dimension","tier":1,"title":"T47 threaded bottom bracket shell","summary":"T47 threads a 47 mm ID cup directly into a PF30-width (68 or 73 mm) shell -- combining PF30's wide bearing stance with a threaded interface that avoids press-fit creak.","applies":["bottom bracket","bb shell","t47"],"value":{"value":47,"unit":"mm","table":[{"field":"shellWidth","value":"68 or 73"}]},"basis":"T47 threaded bottom bracket standard cup ID and shell width options","sources":["park-tool-standards"],"tags":["bottom-bracket","t47","threaded"]},{"id":"bb-shell-bb86-92","kind":"dimension","tier":1,"title":"BB86/BB92 press-fit bottom bracket shell","summary":"BB86 (road, 86.5 mm shell) and BB92 (MTB, 89.5-92 mm shell) press-fit bearings directly into a 41 mm ID shell bore -- narrower bore than PF30 because the bearings press straight into carbon-moulded cups rather than into an aluminium insert.","applies":["bottom bracket","bb shell","bb86","bb92"],"value":{"value":41,"unit":"mm"},"basis":"Shimano BB86/BB92 press-fit bottom bracket shell bore specification","sources":["shimano-dealer-manual","park-tool-standards"],"tags":["bottom-bracket","bb86","bb92","press-fit"]},{"id":"headset-steerer-diameters","kind":"dimension","tier":1,"title":"Fork steerer diameters: 1-1/8 in straight and 1.5 in tapered lower","summary":"A standard 1-1/8 in steerer is 28.6 mm; a tapered fork's larger lower bearing race seats a 1.5 in (39.8 mm) steerer section, giving the head tube more stiffness where steering loads are highest.","applies":["headset","fork","steerer"],"value":{"table":[{"field":"steerer1-1/8in","value":28.6},{"field":"taperedLower","value":39.8}],"unit":"mm"},"basis":"Standard 1-1/8 in threadless steerer OD and the tapered (1-1/8-to-1.5 in) fork's lower steerer-race diameter","sources":["park-tool-standards","sheldon-brown-glossary"],"tags":["headset","steerer","fork","tapered"]},{"id":"headset-cup-id-table","kind":"dimension","tier":1,"title":"Integrated headset cup/head-tube ID by standard (ZS44/ZS56/IS42/IS52/EC34)","summary":"Head tube or cup ID by integrated headset standard: ZS44 44 mm, ZS56 56 mm, IS42 42 mm, IS52 52 mm, EC34 34 mm -- get the wrong ID and the bearing cup either falls through the head tube or never seats.","applies":["headset","head tube","integrated headset"],"value":{"table":[{"standard":"ZS44","id_mm":44},{"standard":"ZS56","id_mm":56},{"standard":"IS42","id_mm":42},{"standard":"IS52","id_mm":52},{"standard":"EC34","id_mm":34}],"unit":"mm"},"basis":"Common zero-stack (ZS) / integrated (IS) / external-cup (EC) headset head-tube-ID naming convention","sources":["park-tool-standards","sheldon-brown-glossary"],"tags":["headset","zs44","zs56","is42","is52","ec34"]},{"id":"dropout-qr-old","kind":"dimension","tier":1,"title":"Quick-release dropout over-locknut distance and axle diameter","summary":"Quick-release hubs space to 100 mm over-locknut distance (OLD) front, 135 mm rear, on a 9 or 10 mm skewer/axle diameter -- the legacy hub-spacing pair that thru-axle standards replaced.","applies":["dropout","hub","quick release","axle"],"value":{"table":[{"field":"frontOLD","value":100},{"field":"rearOLD","value":135},{"field":"axleDia","value":"9 or 10"}],"unit":"mm"},"basis":"Standard quick-release front/rear over-locknut spacing and skewer diameter","sources":["sheldon-brown-glossary","park-tool-standards"],"tags":["dropout","quick-release","old","axle"]},{"id":"dropout-thru-axle-sizes","kind":"dimension","tier":1,"title":"Thru-axle diameter x OLD combinations and thread pitches","summary":"Thru-axles run 12x100 (front road), 12x142 (rear road/gravel), 12x148 Boost (rear MTB) and 15x110 Boost (front MTB), threaded M12x1.0, M12x1.5 or M12x1.75 depending on brand -- diameter x OLD must match the frame/fork exactly, thread pitch only has to match the axle's own nut.","applies":["dropout","thru axle","hub","boost"],"value":{"options":["12x100","12x142","12x148","15x110"],"unit":"mm","table":[{"field":"threadPitch","value":"M12x1.0 / M12x1.5 / M12x1.75"}]},"basis":"Common thru-axle diameter/OLD combinations and the thread-pitch variation across axle brands","sources":["sram-standards","park-tool-standards"],"tags":["dropout","thru-axle","boost","old"]},{"id":"dropout-hanger-derailleur","kind":"fastener","tier":1,"title":"Derailleur hanger bolt hole","summary":"A rear derailleur hanger mounts on a dia10 mm hole tapped M10x1, threaded into the dropout's replaceable hanger tab -- the hanger is meant to bend or snap before the derailleur or frame does in a chain/spoke strike.","applies":["dropout","derailleur hanger","rear derailleur"],"value":{"value":"M10x1","unit":"mm","table":[{"field":"holeDia","value":10}]},"basis":"Standard replaceable derailleur hanger mounting bolt and hole diameter","sources":["park-tool-standards","sheldon-brown-glossary"],"tags":["dropout","derailleur-hanger","m10"]},{"id":"disc-mount-standards","kind":"dimension","tier":1,"title":"Disc-brake caliper mount standards (IS, post mount, flat mount)","summary":"IS mounts on two M6 bolts 51 mm apart; post mount bolts direct on a 74 mm M6 spacing; flat mount bolts to the frame/fork face on 140 or 160 mm rotor-matched spacing -- an adapter converts between them but never swaps rotor size.","applies":["disc brake","caliper","frame mount","fork mount"],"value":{"table":[{"standard":"IS","spacing_mm":51,"bolt":"M6"},{"standard":"post mount","spacing_mm":74,"bolt":"M6"},{"standard":"flat mount","spacing_mm":"140 or 160"}],"unit":"mm"},"basis":"Common disc-brake caliper mounting standards and their bolt spacing","sources":["park-tool-standards","sram-standards"],"tags":["disc-brake","is-mount","post-mount","flat-mount"]},{"id":"bottle-cage-boss","kind":"fastener","tier":1,"title":"Bottle-cage boss thread and spacing","summary":"A bottle cage bolts to two M5 threaded bosses spaced 64 mm apart on the frame -- the universal bottle-cage mounting standard across steel, aluminium and carbon frames.","applies":["bottle cage","frame boss"],"value":{"value":"M5","unit":"mm","table":[{"field":"spacing","value":64}]},"basis":"Universal bottle-cage boss thread size and hole spacing","sources":["park-tool-standards","sheldon-brown-glossary"],"tags":["bottle-cage","boss","m5"]},{"id":"handlebar-diameters","kind":"dimension","tier":1,"title":"Handlebar grip and clamp diameters","summary":"Handlebar grip area is 22.2 mm; the stem clamp area is 31.8 mm (standard) or 35 mm (oversize, higher-torque MTB stems) -- a stem sized for the wrong clamp diameter cannot torque to spec and will slip.","applies":["handlebar","stem","grip"],"value":{"table":[{"field":"gripDia","value":22.2},{"field":"clampDia31_8","value":31.8},{"field":"clampDia35","value":35}],"unit":"mm"},"basis":"Standard handlebar grip and clamp diameter convention","sources":["park-tool-standards","sheldon-brown-glossary"],"tags":["handlebar","grip","clamp","diameter"]},{"id":"seatpost-diameters","kind":"dimension","tier":1,"title":"Seatpost diameters and frame clamp sizes","summary":"Seatposts run 27.2, 30.9 or 31.6 mm OD to match the frame's seat-tube ID; the external seat-tube clamp collar closes on 31.8 or 34.9 mm -- post diameter and clamp diameter are two different numbers, don't confuse them.","applies":["seatpost","seat tube","seat clamp"],"value":{"options":[27.2,30.9,31.6],"unit":"mm","table":[{"field":"clampDia","value":"31.8 or 34.9"}]},"basis":"Standard seatpost OD sizes and the external seat-clamp collar diameters they pair with","sources":["park-tool-standards","sheldon-brown-glossary"],"tags":["seatpost","diameter","clamp"]},{"id":"saddle-rail-dimensions","kind":"dimension","tier":1,"title":"Saddle rail diameter and spacing","summary":"Standard round saddle rails are dia7 mm, spaced 44 mm apart -- the pair every two-bolt and single-bolt seatpost clamp is machined to grip; carbon/titanium oval or bladed rails deviate and need a matching clamp.","applies":["saddle","seatpost clamp","rails"],"value":{"table":[{"field":"railDia","value":7},{"field":"railSpacing","value":44}],"unit":"mm"},"basis":"ISO 6695 standard round saddle rail diameter and spacing convention","sources":["iso-6695"],"tags":["saddle","rail","iso-6695"]},{"id":"pedal-thread-size","kind":"fastener","tier":1,"title":"Pedal spindle thread: 9/16-20 TPI","summary":"Bicycle pedal spindles thread 9/16 in x 20 TPI into the crank arm -- an inch thread because ISO 4210-8 and pedal manufacturers still publish it that way; the right pedal is right-hand thread, the left pedal is left-hand thread to resist unscrewing under pedalling.","applies":["pedal","crank arm"],"value":{"value":"9/16-20","unit":"in"},"basis":"ISO 4210-8 pedal thread specification, published in inches","sources":["iso-4210","shimano-dealer-manual"],"tags":["pedal","thread","9-16","crank"]},{"id":"crank-spindle-chainline","kind":"dimension","tier":2,"title":"Crank spindle type and chainline range","summary":"ISIS splined and 24 mm (Hollowtech-II style) are the two common external-bearing crank spindle interfaces; chainline (chainring centreline to frame centreline) runs 43.5-52 mm -- outside that band the chain runs at an angle that skips or wears fast.","applies":["crank","spindle","chainline"],"value":{"min":43.5,"max":52,"unit":"mm"},"basis":"Common road/MTB chainline range across BSA/PF30/BB86 bottom bracket widths","sources":["shimano-dealer-manual","park-tool-standards"],"tags":["crank","spindle","chainline","isis"]},{"id":"ebike-battery-pack-dims","kind":"dimension","tier":2,"title":"E-bike downtube battery pack voltage and envelope","summary":"E-bike downtube battery packs run 36 V or 48 V nominal and occupy roughly 90 x 70 x 370 mm -- a downtube frame section built to fit an internal battery must clear this envelope plus a few mm for the mounting rail and latch.","applies":["e-bike","ebike","battery","downtube"],"value":{"table":[{"field":"voltage","value":"36 or 48 V"},{"field":"width","value":90},{"field":"depth","value":70},{"field":"length","value":370}],"unit":"mm"},"basis":"Common internal downtube e-bike battery pack voltage and physical envelope","sources":["en-15194"],"tags":["e-bike","battery","downtube","voltage"]},{"id":"ebike-middrive-bb-width","kind":"dimension","tier":2,"title":"Mid-drive e-bike motor bottom-bracket shell width","summary":"Popular mid-drive motors (Bosch, Bafang BBS02) mount through a 68 or 73 mm BB-shell-width bracket -- the same shell widths as a standard threaded BSA bottom bracket, so a mid-drive conversion still fits a conventional frame.","applies":["e-bike","mid drive","bosch","bafang"],"value":{"options":[68,73],"unit":"mm"},"basis":"Bosch and Bafang BBS02 mid-drive motor mounting bracket width, matched to standard BB shell widths","sources":["en-15194","park-tool-standards"],"tags":["e-bike","mid-drive","bosch","bafang","bottom-bracket"]},{"id":"helmet-impact-en1078-cpsc","kind":"test","tier":1,"title":"Bicycle helmet impact test (EN 1078 / CPSC 1203)","summary":"Drop the helmeted headform 1500 mm onto flat and kerbstone anvils; EN 1078 and CPSC 1203 both cap transmitted acceleration at 250 g, and CPSC additionally requires the retention strap to hold 500 N without more than 25 mm of extension.","applies":["helmet","bicycle helmet"],"value":{"table":[{"field":"dropHeight_mm","value":1500},{"field":"maxAccel_g","value":250},{"field":"strapLoad_N","value":500}]},"basis":"EN 1078 and CPSC 16 CFR 1203 helmet impact-attenuation and retention-system test requirements","sources":["en-1078","cpsc-1203"],"tags":["test","helmet","impact","en-1078","cpsc-1203"]},{"id":"ebike-hubmotor-dropout-widths","kind":"dimension","tier":2,"title":"E-bike hub-motor dropout widths and anti-rotation flats","summary":"E-bike hub motors slot into 100 mm (front), 135 mm or 142 mm (rear) dropout widths -- the same OLD family as pedal-bike hubs -- and key against rotation with a pair of dia10 mm flats machined into the motor axle where it seats in the dropout slot.","applies":["e-bike","hub motor","dropout"],"value":{"options":[100,135,142],"unit":"mm","table":[{"field":"axleFlat","value":10}]},"basis":"Common hub-motor dropout width and axle-flat anti-rotation convention","sources":["en-15194","sram-standards"],"tags":["e-bike","hub-motor","dropout","flat"]},{"id":"scooter-wheel-deck-stem","kind":"dimension","tier":2,"title":"Kick/e-scooter wheel size, deck width and stem diameter","summary":"Kick and e-scooter wheels run 8, 8.5 or 10 in, decks are 150-180 mm wide, and the folding stem tube is 32-35 mm OD -- a wider deck and larger wheel trade portability for stability at speed.","applies":["scooter","e-scooter","kick scooter"],"value":{"table":[{"field":"wheelSize_in","value":"8 / 8.5 / 10"},{"field":"deckWidth_mm","value":"150-180"},{"field":"stemDia_mm","value":"32-35"}]},"basis":"Common kick and e-scooter wheel, deck and folding-stem dimensions","sources":["park-tool-standards"],"tags":["scooter","e-scooter","wheel","deck","stem"]},{"id":"skateboard-truck-hole-pattern","kind":"dimension","tier":2,"title":"Skateboard truck mounting-hole pattern and axle diameter","summary":"Standard skateboard trucks bolt on a 2.125 x 1.625 in rectangular hole pattern into the deck, and run an 8 mm axle -- the same hole pattern across nearly every mass-market deck and truck brand.","applies":["skateboard","truck","deck"],"value":{"value":"2.125 x 1.625","unit":"in","table":[{"field":"axleDia","value":"8 mm"}]},"basis":"Universal skateboard truck mounting-hole spacing and axle diameter convention","sources":["park-tool-standards"],"tags":["skateboard","truck","axle","hole-pattern"]},{"id":"dropout-plate-thickness","kind":"dimension","tier":2,"title":"Dropout plate thickness","summary":"A machined or forged dropout plate runs 5-8 mm thick -- thick enough to carry the thru-axle/QR clamping load and the derailleur hanger's cantilevered bending without the plate itself flexing under a chain-suck or crash load.","applies":["dropout","frame"],"value":{"min":5,"max":8,"unit":"mm"},"basis":"Common forged/machined dropout plate thickness across steel and aluminium frames","sources":["park-tool-standards"],"tags":["dropout","thickness","plate"]},{"id":"rack-fender-eyelet","kind":"fastener","tier":2,"title":"Rack and fender mounting eyelets","summary":"Frame and fork rack/fender eyelets thread M5, with rear-rack eyelets typically spaced 100 mm apart at the dropout -- matching the M5 boss standard shared with bottle cages so a frame builder threads one size across the whole accessory set.","applies":["rack","fender","eyelet","bike rack"],"value":{"value":"M5","unit":"mm","table":[{"field":"rackSpacing","value":100}]},"basis":"Common rack/fender eyelet thread size and rear rack mounting-tab spacing","sources":["park-tool-standards","sheldon-brown-glossary"],"tags":["rack","fender","eyelet","m5"]},{"id":"handlebar-stem-clamp","kind":"dimension","tier":2,"title":"Stem steerer clamp diameter","summary":"A threadless stem's steerer clamp bore matches the 1-1/8 in (28.6 mm) steerer from headset-steerer-diameters -- an oversize 1.5 in lower steerer needs a tapered-specific stem or a reducer, it will not clamp a 1-1/8 in stem directly.","applies":["stem","steerer","headset"],"value":{"value":28.6,"unit":"mm"},"basis":"Standard 1-1/8 in threadless stem steerer-clamp bore","sources":["park-tool-standards"],"tags":["stem","steerer","clamp"]},{"id":"crank-isis-spline","kind":"dimension","tier":2,"title":"ISIS splined bottom-bracket spindle interface","summary":"ISIS Drive splines a 10-groove, involute-tooth spindle onto the crank interface -- an open standard alternative to Shimano's square-taper and external-bearing spindles, common on older MTB and tandem cranksets.","applies":["crank","spindle","isis"],"value":{"value":10,"unit":"count"},"basis":"ISIS Drive splined bottom bracket interface specification (10-spline)","sources":["park-tool-standards","sheldon-brown-glossary"],"tags":["crank","isis","spline","bottom-bracket"]},{"id":"skateboard-bearing-608-see-robotics","kind":"feature","tier":2,"title":"Skateboard wheel bearing: 608","summary":"Skateboard (and inline-skate and scooter) wheels press-fit a pair of 608 deep-groove ball bearings per wheel -- see robotics/bearing-common-sizes-table for the 8x22x7 mm bore/OD/width the wheel's bearing bore must be machined or moulded to.","applies":["skateboard","wheel","bearing"],"basis":"608 is the near-universal skate/scooter/skateboard wheel bearing size, shared with the robotics pack's bearing table rather than restated","sources":["park-tool-standards"],"tags":["skateboard","bearing","608"],"see":["robotics/bearing-common-sizes-table"],"value":{"options":["see robotics/bearing-common-sizes-table for the 608 bore/OD/width (8x22x7mm)"]}},{"id":"disc-rotor-bolt-pattern","kind":"dimension","tier":2,"title":"Disc rotor 6-bolt pattern","summary":"A 6-bolt disc rotor mounts on six M5 bolts on a 44 mm PCD around the hub flange -- the alternative to a splined Center Lock rotor, and the pattern a hub-motor or custom hub flange must reproduce to accept off-the-shelf rotors.","applies":["disc brake","rotor","hub"],"value":{"value":"M5","unit":"mm","table":[{"field":"pcd","value":44},{"field":"boltCount","value":6}]},"basis":"Standard 6-bolt (ISO) disc rotor mounting pattern","sources":["park-tool-standards","sram-standards"],"tags":["disc-brake","rotor","6-bolt","pcd"]},{"id":"wheel-rim-bead-seat-diameters","kind":"dimension","tier":2,"title":"Common rim bead-seat diameters (700c/650b/20in)","summary":"ISO 5775 bead-seat diameter (BSD) is the number that actually matches a tyre to a rim regardless of marketing name: 622 mm (700c/29in), 584 mm (650b/27.5in) and 406 mm (20in BMX/folding) are the common bike bead-seat diameters.","applies":["wheel","rim","tyre"],"value":{"table":[{"name":"700c/29in","bsd_mm":622},{"name":"650b/27.5in","bsd_mm":584},{"name":"20in","bsd_mm":406}]},"basis":"ISO 5775 bead-seat-diameter designation, the size that actually determines tyre/rim compatibility","sources":["iso-5775"],"tags":["wheel","rim","bsd","iso-5775"]},{"id":"frame-material-chromoly-4130","kind":"material","tier":1,"title":"4130 chromoly steel frame tubing","summary":"4130 chromoly is the standard steel frame-tube alloy: yield ~460 MPa in the normalized/drawn condition, density 7.85 g/cm3, weldable and butts thin without cracking -- the baseline steel-frame material this pack's tube sizes assume.","applies":["frame","tube","steel"],"value":{"table":[{"property":"yield","value":460,"unit":"MPa"},{"property":"density","value":7.85,"unit":"g/cm3"}]},"basis":"MatWeb 4130 chromoly steel (normalized) property data, the standard bicycle frame steel","sources":["matweb-materials"],"tags":["material","4130","chromoly","steel"]},{"id":"frame-material-aluminum-6061-7005","kind":"material","tier":1,"title":"6061-T6 and 7005 aluminium frame tubing","summary":"6061-T6 (yield ~276 MPa) needs post-weld heat treatment to reach full strength; 7005 (yield ~290 MPa) age-hardens naturally at room temperature after welding -- 7005 is the more common as-welded aluminium frame alloy for exactly that reason.","applies":["frame","tube","aluminium"],"value":{"table":[{"material":"6061-T6","yield_MPa":276},{"material":"7005","yield_MPa":290}]},"basis":"MatWeb 6061-T6 and 7005-T6 aluminium property data, the two common welded bicycle frame alloys","sources":["matweb-materials"],"tags":["material","6061","7005","aluminium"]},{"id":"material-titanium-3al-25v","kind":"material","tier":2,"title":"Ti 3Al-2.5V titanium frame tubing","summary":"Ti 3Al-2.5V (the common titanium frame-tube alloy) yields around 725 MPa at 4.48 g/cm3 density -- roughly steel's strength at half the weight, at a cost and weld-complexity premium that keeps it a niche frame material.","applies":["frame","tube","titanium"],"value":{"table":[{"property":"yield","value":725,"unit":"MPa"},{"property":"density","value":4.48,"unit":"g/cm3"}]},"basis":"MatWeb Ti-3Al-2.5V property data, the standard titanium bicycle frame-tube alloy","sources":["matweb-materials"],"tags":["material","titanium","3al-2.5v"]},{"id":"material-carbon-fiber-frame","kind":"material","tier":2,"title":"Carbon fibre composite frame layup","summary":"A carbon frame is a laid-up composite: unidirectional/woven carbon-epoxy plies at roughly 1.6 g/cm3, tensile strength 600-3500 MPa fibre-direction depending on fibre grade and layup -- properties are layup-dependent, never one number like an alloy's.","applies":["frame","carbon fiber","composite"],"value":{"min":600,"max":3500,"unit":"MPa","note":"fibre-direction tensile strength range across carbon fibre grades"},"basis":"Typical carbon/epoxy composite fibre-direction tensile strength range for bicycle-frame-grade layups","sources":["matweb-materials"],"tags":["material","carbon-fiber","composite"]},{"id":"material-aluminum-6082-forgings","kind":"material","tier":2,"title":"6082 aluminium forgings for stems, cranks and dropouts","summary":"6082-T6 (yield ~250 MPa) is the common forged-aluminium alloy for stems, crank arms and dropout plates -- higher-strength forging grade than 6061, chosen where the part is hot-forged rather than tube-formed.","applies":["stem","crank","dropout","forging"],"value":{"value":250,"unit":"MPa"},"basis":"MatWeb 6082-T6 property data, a common forged-component aluminium alloy in bicycle components","sources":["matweb-materials"],"tags":["material","6082","aluminium","forging"]},{"id":"material-pom-bushings","kind":"material","tier":2,"title":"POM for bushings, cable guides and bearing seals","summary":"POM (Delrin/acetal), density 1.41 g/cm3, is the default low-friction plastic for pedal bushings, cable guides and bearing seal lips -- self-lubricating against steel and dimensionally stable in the temperature range a bike sees.","applies":["pedal","bushing","cable guide"],"value":{"value":1.41,"unit":"g/cm3"},"basis":"MatWeb POM copolymer property data, the standard low-friction bushing plastic","sources":["matweb-materials"],"tags":["material","pom","bushing"]},{"id":"standard-iso-4210","kind":"standard","tier":2,"title":"ISO 4210 -- bicycle safety requirements (multi-part)","summary":"ISO 4210 is the multi-part bicycle safety standard: Part 6 covers frame and fork test methods, Part 8 covers pedal and drive-system test methods, and the series as a whole sets the fatigue, static-load and braking requirements a complete bicycle is certified against.","applies":["bicycle","frame","fork","pedal"],"basis":"The base bicycle safety standard series this pack's frame-fatigue and pedal-force test entries are drawn from","sources":["iso-4210"],"tags":["standard","iso-4210","safety"]},{"id":"standard-en-15194","kind":"standard","tier":2,"title":"EN 15194 -- electrically power assisted cycles (EPAC)","summary":"EN 15194 sets the safety and test requirements for e-bikes (EPAC): continuous rated motor power capped at 250 W, assistance cutting out above 25 km/h, plus battery, wiring and mechanical/electrical safety requirements layered on top of ISO 4210's bicycle mechanics.","applies":["e-bike","ebike","epac"],"value":{"table":[{"field":"ratedPower_W","value":250},{"field":"cutoffSpeed_kmh","value":25}]},"basis":"EN 15194 EPAC power and assist-cutoff limits, the defining numbers of an EU-legal e-bike","sources":["en-15194"],"tags":["standard","en-15194","e-bike","epac"]},{"id":"standard-en-1078","kind":"standard","tier":2,"title":"EN 1078 -- pedal cycle, skateboard and roller-skate helmets","summary":"EN 1078 covers helmets for pedal cyclists and for skateboard/roller-skate users: shell coverage area, retention system and the impact-attenuation test this pack's helmet-impact entry cites.","applies":["helmet","skateboard"],"basis":"The EU helmet standard behind this pack's impact-test entry, also covering skateboard helmets","sources":["en-1078"],"tags":["standard","en-1078","helmet"]},{"id":"standard-cpsc-1203","kind":"standard","tier":2,"title":"16 CFR 1203 -- US bicycle helmet safety standard","summary":"16 CFR 1203 is the mandatory US federal safety standard for bicycle helmets: coverage area, peripheral vision, retention system strength and the impact test this pack's helmet-impact entry cites -- no bicycle helmet may be sold in the US without meeting it.","applies":["helmet"],"basis":"The mandatory US federal helmet standard behind this pack's impact-test entry","sources":["cpsc-1203"],"tags":["standard","cpsc-1203","helmet"]},{"id":"standard-iso-6695-saddle","kind":"standard","tier":2,"title":"ISO 6695 -- saddle concepts, dimensions and symbols","summary":"ISO 6695 defines saddle terminology and the standard rail diameter/spacing this pack's saddle-rail entry cites, so a seatpost clamp and a saddle from different manufacturers still fit together.","applies":["saddle","seatpost"],"basis":"The saddle dimensioning standard behind this pack's saddle-rail entry","sources":["iso-6695"],"tags":["standard","iso-6695","saddle"]},{"id":"standard-iso-4210-8-pedals","kind":"standard","tier":2,"title":"ISO 4210-8 -- pedal and drive-system test methods","summary":"ISO 4210-8 sets the pedal, crank and drive-system test methods within the ISO 4210 series: static and dynamic pedal-force fatigue, crank/pedal thread engagement and drivetrain durability.","applies":["pedal","crank","drivetrain"],"basis":"The part of ISO 4210 this pack's pedal-force fatigue test entry is drawn from","sources":["iso-4210"],"tags":["standard","iso-4210-8","pedal"]},{"id":"test-frame-fatigue-iso4210-6","kind":"test","tier":2,"title":"Frame fatigue test, horizontal force (ISO 4210-6)","summary":"Clamp the frame at the head tube and rear dropouts and cycle a 1200 N horizontal force at the front dropout/fork crown 100,000 times; a frame that cracks, or a weld that fails, before 100k cycles does not pass ISO 4210-6.","applies":["frame","fatigue"],"value":{"value":100000,"unit":"cycles","table":[{"field":"force","value":1200,"unit":"N"}]},"basis":"ISO 4210-6 frame fatigue test method: horizontal force amplitude and required cycle count","sources":["iso-4210"],"tags":["test","frame","fatigue","iso-4210-6"]},{"id":"test-pedal-force-iso4210-8","kind":"test","tier":2,"title":"Pedal and crank fatigue test (ISO 4210-8)","summary":"Apply an alternating 1100 N pedal force through a crank arm at the pedal-thread axis and cycle to the standard's required count; a crank, spindle or pedal thread that fails before then fails ISO 4210-8's drivetrain durability clause.","applies":["pedal","crank","drivetrain"],"value":{"value":1100,"unit":"N"},"basis":"ISO 4210-8 pedal/crank fatigue force amplitude","sources":["iso-4210"],"tags":["test","pedal","crank","iso-4210-8"]},{"id":"test-ebike-en15194","kind":"test","tier":2,"title":"E-bike assist cutoff and rated power test (EN 15194)","summary":"Ride the e-bike up through 25 km/h under load while logging motor power and road speed: continuous rated power must not exceed 250 W and pedal assist must taper to zero at or before 25 km/h -- a control unit that assists past that speed or power fails EN 15194 outright.","applies":["e-bike","ebike","epac"],"value":{"table":[{"field":"maxPower_W","value":250},{"field":"cutoffSpeed_kmh","value":25}]},"basis":"EN 15194 EPAC compliance test for assist cutoff speed and continuous rated motor power","sources":["en-15194"],"tags":["test","e-bike","en-15194"]},{"id":"test-handlebar-seatpost-static-iso4210","kind":"test","tier":2,"title":"Handlebar and seatpost static load test (ISO 4210)","summary":"Clamp the handlebar/stem or seatpost/frame at its interface and hold a 1000 N static load at the grip or saddle-rail position without fracture or excess permanent set -- a static strength check, separate from the frame's fatigue test.","applies":["handlebar","seatpost","stem"],"value":{"value":1000,"unit":"N"},"basis":"ISO 4210 static load test method applied to handlebar/stem and seatpost/frame assemblies","sources":["iso-4210"],"tags":["test","handlebar","seatpost","iso-4210"]},{"id":"test-helmet-astm-f2032-bmx","kind":"test","tier":2,"title":"BMX helmet impact test, extended coverage (ASTM F2032)","summary":"ASTM F2032 tests a BMX helmet over a larger shell-coverage area than EN 1078/CPSC 1203 (down to the skull base and around the ears) at the same 1500 mm drop height, since BMX racing carries higher head-impact risk than street riding.","applies":["helmet","bmx"],"value":{"value":1500,"unit":"mm"},"basis":"ASTM F2032 Standard Specification for Helmets Used for BMX Cycling: extended-coverage impact test at the standard drop height","sources":["astm-f2032"],"tags":["test","helmet","bmx","astm-f2032"]},{"id":"recipe-thru-axle-dropout-plate","kind":"recipe","tier":2,"title":"Recipe: thru-axle dropout plate with derailleur hanger","summary":"Build a 45x70x6 mm dropout plate with a dia12 mm thru-axle bore and a tapped M10 derailleur-hanger hole, combining dropout-thru-axle-sizes and dropout-hanger-derailleur into one buildable plate.","applies":["dropout","thru axle","derailleur hanger"],"basis":"Combines dropout-thru-axle-sizes, dropout-plate-thickness and dropout-hanger-derailleur into one buildable plate","sources":["sram-standards","park-tool-standards"],"tags":["recipe","dropout","thru-axle","derailleur-hanger"],"recipe":{"prompt":"Model a 45x70x6mm thru-axle dropout plate with a 12mm axle bore and a tapped M10 derailleur hanger hole","steps":[{"tool":"cad_box","args":{"dx":45,"dy":70,"dz":6},"note":"dropout plate, 45x70mm, 6mm per dropout-plate-thickness"},{"tool":"cad_drill_hole","args":{"of":"$0","type":"drill","diameter":12,"center":[22.5,15]},"note":"12mm thru-axle bore, through"},{"tool":"cad_drill_hole","args":{"of":"$1","type":"tapped","size":"M10","center":[22.5,55]},"note":"tapped M10x1 derailleur hanger hole, through"}],"expect":{"volume":17880.95,"faceCount":10,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-bottle-cage-mount-block","kind":"recipe","tier":2,"title":"Recipe: bottle-cage mount block","summary":"Build a 20x74x6 mm mount block with two tapped M5 holes 64 mm apart, matching bottle-cage-boss's spacing exactly.","applies":["bottle cage","frame boss"],"basis":"Combines bottle-cage-boss's M5 thread and 64mm spacing into one buildable mount block","sources":["park-tool-standards"],"tags":["recipe","bottle-cage","boss"],"recipe":{"prompt":"Model a 20x74x6mm bottle-cage mount block with two tapped M5 holes 64mm apart","steps":[{"tool":"cad_box","args":{"dx":20,"dy":74,"dz":6},"note":"mount block, 20x74x6mm"},{"tool":"cad_hole_pattern","args":{"of":"$0","type":"tapped","size":"M5","pattern":{"kind":"linear","origin":[10,5],"step":[0,64],"count":2}},"note":"2x tapped M5 bosses, 64mm apart per bottle-cage-boss"}],"expect":{"volume":8713.75,"faceCount":10,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-seatpost-clamp-collar","kind":"recipe","tier":2,"title":"Recipe: seatpost clamp collar","summary":"Build a dia40x40 mm collar bored to 31.6 mm for the seatpost, slotted through the wall to let it pinch closed, and drilled with a tapped M5 clamp-bolt hole.","applies":["seatpost","seat clamp","collar"],"basis":"Combines seatpost-diameters' 31.6mm post OD with a cut slot and an M5 clamp bolt into one buildable collar","sources":["park-tool-standards"],"tags":["recipe","seatpost","clamp","collar"],"recipe":{"prompt":"Model a seatpost clamp collar: dia40x40mm cylinder bored to 31.6mm, slotted through the wall, with a tapped M5 clamp bolt hole","steps":[{"tool":"cad_cylinder","args":{"r":20,"h":40},"note":"dia40mm collar blank, 40mm tall"},{"tool":"cad_drill_hole","args":{"of":"$0","type":"drill","diameter":31.6,"center":[0,0]},"note":"31.6mm bore for the seatpost, through"},{"tool":"cad_box","args":{"dx":3,"dy":25,"dz":40,"origin":[-1.5,0,0]},"note":"3mm slot-cutting tool, from centre out past the OD"},{"tool":"cad_boolean_subtract","args":{"of":"$1","tool":"$2"},"note":"cut the pinch slot through the wall"},{"tool":"cad_drill_hole","args":{"of":"$3","type":"tapped","size":"M5","axis":[1,0,0],"start":[-20,10,20],"depth":40},"note":"tapped M5 clamp-bolt hole straight through both walls"}],"expect":{"volume":18223.54,"faceCount":576,"watertight":true,"note":"measured 2026-09-19: representation change, not geometry: pinned while the boolean published a TESSELLATED B-rep (one planar face per triangle) and it now publishes an analytic one — faceCount 1168 -> 576, volume 0.012%. 576 is STILL a tessellation DENSITY, not a topology fact (a Ø31.6 bore and an M5 cross-tap through a Ø40 collar): a future move in it is a re-tiling unless the volume moves with it"}}}]},{"$schema":"nativecad-dfm-pack/1","id":"consumer","title":"Consumer products — housings, enclosures, handheld devices","sector":"consumer","version":"2026-09-03","summary":"Nominal wall by material, draft, ribs, bosses, snap fits, living hinges, ultrasonic welds, gaskets, textures, clamshell joints, battery doors, buttons, and the drop/tumble/cycle tests and standards a plastic consumer housing is held to.","aliases":["consumer product","housing","enclosure shell","clamshell","snap fit","living hinge","remote control","handheld","gadget","case","injection moulded housing","3d printed case"],"crossSector":false,"size":"full","sources":[{"id":"bayer-snap-fit","title":"Bayer/Covestro Snap-Fit Joints for Plastics — A Design Guide","accessed":"2026-09-03"},{"id":"dupont-living-hinge","title":"DuPont Engineering Polymers — Living Hinge Design Guide","accessed":"2026-09-03"},{"id":"branson-ultrasonic","title":"Branson Ultrasonics — Joint Design for Ultrasonic Welding","url":"https://www.emerson.com/en-us/automation/branson","accessed":"2026-09-03"},{"id":"protolabs-guide","title":"Protolabs Injection Molding Design Guide","url":"https://www.protolabs.com/resources/design-tips/","accessed":"2026-09-03"},{"id":"fictiv-guide","title":"Fictiv Injection Molding Design Guidelines","url":"https://www.fictiv.com/articles/injection-molding-design-guidelines","accessed":"2026-09-03"},{"id":"ul-94","title":"UL 94 Standard for Tests for Flammability of Plastic Materials","url":"https://www.ul.com/services/ul-94-plastic-flammability","accessed":"2026-09-03"},{"id":"iec-62368-1","title":"IEC 62368-1 Audio/video, IT and communication technology equipment — Safety requirements","url":"https://webstore.iec.ch/publication/59362","accessed":"2026-09-03"},{"id":"cpsc-16cfr1501","title":"CPSC 16 CFR 1501 — Method for Identifying Toy Hazards (small-parts cylinder)","url":"https://www.cpsc.gov/Regulations-Laws--Standards/Federal-Register-Notices/2017/16-CFR-Part-1501","accessed":"2026-09-03"},{"id":"iec-60068-2-31","title":"IEC 60068-2-31 Environmental testing — Test Ec: Rough handling shocks","url":"https://webstore.iec.ch/publication/1000","accessed":"2026-09-03"},{"id":"hubs-3dp-guide","title":"Hubs (Protolabs) 3D Printing Design Guidelines — FDM/SLS/SLA","url":"https://www.hubs.com/knowledge-base/","accessed":"2026-09-03"},{"id":"moldtech-vdi3400","title":"VDI 3400 / Mold-Tech Texture Standard Reference","url":"https://www.mold-tech.com/","accessed":"2026-09-03"},{"id":"iec-60086","title":"IEC 60086 Primary Batteries — cell dimensions (AA, AAA, coin cells)","url":"https://webstore.iec.ch/publication/3049","accessed":"2026-09-03"}],"entries":[{"id":"wall-thickness-abs","kind":"dimension","tier":1,"title":"Nominal wall thickness, ABS injection moulding","summary":"ABS consumer housings run a 1.5-3.5 mm nominal wall, 2-2.5 mm typical; thinner short-shots the cavity, thicker sinks and slows cycle time.","applies":["abs","injection molding","housing"],"value":{"min":1.5,"max":3.5,"typical":2.5,"unit":"mm"},"basis":"Standard ABS moulding wall-thickness guidance for enclosure-class parts","sources":["protolabs-guide"],"tags":["wall","abs","injection-molding"],"check":{"process":"injection_molding","rule":"min_wall_thickness"}},{"id":"wall-thickness-pc","kind":"dimension","tier":1,"title":"Nominal wall thickness, polycarbonate (PC) injection moulding","summary":"PC housings run a 1.5-3.0 mm nominal wall; PC's higher viscosity fills thinner sections than ABS but sinks badly above 3 mm on a boss or rib root.","applies":["pc","polycarbonate","injection molding","housing"],"value":{"min":1.5,"max":3,"typical":2,"unit":"mm"},"basis":"Standard PC moulding wall-thickness guidance","sources":["protolabs-guide"],"tags":["wall","pc","injection-molding"],"check":{"process":"injection_molding","rule":"min_wall_thickness"}},{"id":"wall-thickness-pp","kind":"dimension","tier":1,"title":"Nominal wall thickness, polypropylene (PP) injection moulding","summary":"PP housings and living-hinge parts run a 1.0-3.0 mm nominal wall; PP's low shrink-sensitivity tolerates the thin end of the range better than ABS/PC.","applies":["pp","polypropylene","injection molding","housing","living hinge"],"value":{"min":1,"max":3,"typical":2,"unit":"mm"},"basis":"Standard PP moulding wall-thickness guidance","sources":["protolabs-guide"],"tags":["wall","pp","injection-molding"],"check":{"process":"injection_molding","rule":"min_wall_thickness"}},{"id":"wall-thickness-pa","kind":"dimension","tier":1,"title":"Nominal wall thickness, polyamide (PA/nylon) injection moulding","summary":"PA/nylon housings and clips run a 1.0-3.0 mm nominal wall; PA's fast crystallisation and moisture uptake favour the thinner, more uniform end of the range.","applies":["pa","nylon","injection molding","housing","snap fit"],"value":{"min":1,"max":3,"typical":2,"unit":"mm"},"basis":"Standard PA66/PA6 moulding wall-thickness guidance","sources":["protolabs-guide"],"tags":["wall","pa","nylon","injection-molding"],"check":{"process":"injection_molding","rule":"min_wall_thickness"}},{"id":"wall-thickness-pom","kind":"dimension","tier":1,"title":"Nominal wall thickness, acetal (POM) injection moulding","summary":"POM (acetal) parts, common for latches and gears in a housing, run a 1.5-3.0 mm nominal wall; POM shrinks more than ABS/PC so wall uniformity matters more, not less.","applies":["pom","acetal","delrin","injection molding"],"value":{"min":1.5,"max":3,"typical":2,"unit":"mm"},"basis":"Standard POM/acetal moulding wall-thickness guidance","sources":["protolabs-guide"],"tags":["wall","pom","acetal","injection-molding"],"check":{"process":"injection_molding","rule":"min_wall_thickness"}},{"id":"wall-thickness-tpe-overmold","kind":"dimension","tier":1,"title":"Nominal wall thickness, TPE overmould layer","summary":"A TPE (thermoplastic elastomer) soft-touch overmould skin runs 1.0-2.0 mm thick over a rigid substrate; thinner tears on demould, thicker adds cost and can telegraph substrate features.","applies":["tpe","overmold","soft touch","housing"],"value":{"min":1,"max":2,"typical":1.5,"unit":"mm"},"basis":"Common two-shot TPE overmould skin-thickness guidance","sources":["protolabs-guide"],"tags":["wall","tpe","overmold"],"see":["hardware/screw-boss-plastic"]},{"id":"wall-thickness-fdm","kind":"dimension","tier":1,"title":"Nominal wall thickness, FDM-printed housing","summary":"An FDM-printed housing wall runs 1.6-2.4 mm, i.e. 4-6 perimeters at a common 0.4 mm nozzle/extrusion width, to be self-supporting and hold a heat-set insert.","applies":["fdm","3d printing","housing"],"value":{"min":1.6,"max":2.4,"typical":2,"unit":"mm","note":"4-6 perimeters at 0.4mm extrusion width"},"basis":"Wall-loop multiples of a common 0.4 mm nozzle width for a self-supporting rigid shell","sources":["hubs-3dp-guide"],"tags":["wall","fdm","3d-printing"]},{"id":"wall-thickness-sls","kind":"dimension","tier":1,"title":"Nominal wall thickness, SLS (PA12) housing","summary":"An SLS PA12-printed housing wall runs 1.0-1.5 mm; SLS's self-supporting powder bed lets it go thinner than FDM but thinner than 1 mm warps in the thermal cycle and breaks in depowdering.","applies":["sls","pa12","3d printing","housing"],"value":{"min":1,"max":1.5,"typical":1.2,"unit":"mm"},"basis":"PA12 SLS printable wall floor with a margin for depowdering handling","sources":["hubs-3dp-guide"],"tags":["wall","sls","pa12","3d-printing"]},{"id":"wall-thickness-sla","kind":"dimension","tier":1,"title":"Nominal wall thickness, SLA/resin housing","summary":"An SLA (resin) printed housing wall runs 1.0-2.0 mm; below 1 mm an unsupported wall warps or detaches during the build-plate peel.","applies":["sla","resin","3d printing","housing"],"value":{"min":1,"max":2,"typical":1.5,"unit":"mm"},"basis":"SLA unsupported-wall floor before peel-induced warping/detachment","sources":["hubs-3dp-guide"],"tags":["wall","sla","resin","3d-printing"]},{"id":"wall-uniformity","kind":"rule","tier":1,"title":"Wall thickness uniformity across a housing","summary":"Keep adjoining wall sections within ±25% of the nominal wall; a bigger step changes cooling rate enough to sink, warp or void at the transition, whatever the resin.","applies":["housing","injection molding"],"value":{"max":25,"unit":"%"},"basis":"Uniform-wall moulding guidance: differential shrinkage across a wall-thickness step is what drives sink and warp","sources":["protolabs-guide","fictiv-guide"],"tags":["wall","uniformity","sink"]},{"id":"draft-angle-minimum","kind":"rule","tier":1,"title":"Minimum draft angle on moulded housing walls","summary":"Draft every wall parallel to the pull direction at least 1°, 1.5-2° on a lightly textured (VDI 18-24) surface, 0.5° acceptable only on a high-polish (SPI A) surface with no texture.","applies":["housing","injection molding"],"value":{"min":0.5,"max":2,"typical":1,"unit":"deg"},"basis":"Published minimum 1-2 deg per side on any wall parallel to the pull; texture needs more draft to release cleanly, polish needs less","sources":["protolabs-guide","fictiv-guide"],"tags":["draft","mold-release"],"check":{"process":"injection_molding","rule":"min_draft_angle"}},{"id":"corner-radius-inside-outside","kind":"rule","tier":1,"title":"Internal and external corner radii","summary":"Radius every internal corner to at least 0.5x the local wall thickness and every matching external corner to the internal radius plus one wall thickness, so the wall stays a constant section around the bend.","applies":["housing","injection molding"],"value":{"min":0.5,"unit":"ratio","note":"inside >= 0.5x wall; outside = inside + wall"},"basis":"A sharp internal corner is the classic moulded-part stress riser and flow restriction; matching the outside radius keeps the wall a constant section","sources":["protolabs-guide","fictiv-guide"],"tags":["corner","radius","stress"],"check":{"process":"injection_molding","rule":"min_internal_corner_radius"}},{"id":"rib-design","kind":"rule","tier":1,"title":"Rib thickness, height and draft off a housing wall","summary":"Size a rib to <=0.6x the wall thickness at its root, <=3x the wall in height, with 0.5-1° draft per side and >=2x the wall between adjacent ribs, or the rib sinks the show surface and starves the mould of flow.","applies":["housing","rib","injection molding"],"value":{"max":0.6,"unit":"ratio","note":"root thickness/wall; height <= 3x wall; spacing >= 2x wall; draft 0.5-1 deg"},"basis":"Rib thickness <=60% of nominal wall avoids a sink mark on the opposite show surface; height/spacing limits keep the rib fillable and coolable","sources":["protolabs-guide","fictiv-guide"],"tags":["rib","sink","stiffener"],"check":{"process":"injection_molding","rule":"max_rib_thickness_ratio"}},{"id":"hole-depth-ratio-consumer","kind":"rule","tier":1,"title":"Blind cored-hole depth-to-diameter ratio","summary":"Keep a blind cored hole (screw boss bore, standoff pocket) to <=3x its diameter deep; a through hole supported at both ends can go to ~6x before the core pin deflects or breaks under injection pressure.","applies":["housing","boss","injection molding"],"value":{"max":3,"unit":"ratio","note":"blind hole depth:diameter; ~6x for a through hole"},"basis":"An unsupported core pin is a cantilever; beyond ~3x diameter it deflects enough to produce an off-axis or short hole","sources":["protolabs-guide","fictiv-guide"],"tags":["hole","core-pin","boss"],"check":{"process":"injection_molding","rule":"max_hole_depth_ratio"}},{"id":"snap-fit-cantilever-basics","kind":"feature","tier":1,"title":"Cantilever snap-fit beam proportions","summary":"A cantilever snap beam runs 5-10x its own thickness in length, deflecting within an allowable strain of ~3% for ABS or ~6% for PP, with a 0.5-1.5 mm undercut at the catch — go longer/thinner rather than deeper to stay under the strain limit.","applies":["snap fit","housing","clamshell"],"value":{"min":5,"max":10,"unit":"ratio","note":"beam length:thickness; strain limit ~3% ABS, ~6% PP; undercut 0.5-1.5mm"},"basis":"Beam-bending allowable strain for the resin sets the deflection a given length:thickness ratio can take without yielding on repeated cycles","sources":["bayer-snap-fit"],"tags":["snap-fit","cantilever","beam"]},{"id":"living-hinge-pp","kind":"feature","tier":1,"title":"Living hinge geometry in polypropylene","summary":"A PP living hinge runs 0.2-0.3 mm thick at the hinge web, 1.0-1.5 mm land on either side, 0.5-0.8 mm fillet radius into the land, and must be flexed in the mould within minutes of moulding while the polymer chains are still oriented.","applies":["living hinge","pp","housing"],"value":{"table":[{"param":"hinge-thickness","min":0.2,"max":0.3},{"param":"land-width","min":1,"max":1.5},{"param":"fillet-radius","min":0.5,"max":0.8}],"unit":"mm"},"basis":"PP's high fatigue resistance only develops when the hinge web is flexed while molecular orientation from the fill is still fresh, typically within minutes of ejection","sources":["dupont-living-hinge"],"tags":["living-hinge","pp","flex"]},{"id":"battery-aa-compartment-consumer","kind":"dimension","tier":1,"title":"AA/AAA battery compartment for a consumer housing","summary":"An AA cell (⌀14.5x50.5 mm) needs a pocket of ⌀15.5x51.5 mm and an AAA cell (⌀10.5x44.5 mm) a pocket of ⌀11.5x45.5 mm, each with 3-5 mm of spring-contact travel at one end to take up cell-length tolerance.","applies":["battery","aa","aaa","housing"],"value":{"table":[{"param":"aa-pocket","diameter":15.5,"length":51.5},{"param":"aaa-pocket","diameter":11.5,"length":45.5}],"unit":"mm"},"basis":"IEC 60086 cell envelope plus 0.5-1mm assembly clearance and 3-5mm spring-contact travel","sources":["iec-60086"],"tags":["battery","aa","aaa","compartment"]},{"id":"button-key-travel","kind":"dimension","tier":1,"title":"Button/keycap travel and key gap","summary":"Size a moulded button or keycap for 0.3-1.5 mm of travel before it bottoms out, with a 0.2-0.3 mm gap to its neighbour so adjacent keys don't bind or let liquid track sideways between them.","applies":["button","keycap","housing","remote control"],"value":{"min":0.3,"max":1.5,"unit":"mm","note":"travel; key-to-key gap 0.2-0.3mm"},"basis":"Tactile-dome and silicone-pad button travel range balancing feel against bottoming-out force spikes","sources":["protolabs-guide"],"tags":["button","keycap","travel"]},{"id":"boss-plastic-see","kind":"feature","tier":2,"title":"Screw boss sizing off a housing wall","summary":"A screw boss standing off a consumer housing wall follows the generic plastic-boss rules (OD ~2.5x screw diameter, gusseted to the nearest wall, <=0.6x wall at the base) — see the hardware pack for the sizing table rather than duplicating it here.","applies":["boss","housing","screw"],"basis":"Boss geometry is process-driven, not sector-specific; the hardware pack owns the numbers","sources":["protolabs-guide"],"tags":["boss","screw","housing"],"see":["hardware/screw-boss-plastic"]},{"id":"heat-set-insert-see","kind":"fastener","tier":2,"title":"Heat-set insert for a housing boss","summary":"For a metal-threaded boss in a moulded or FDM housing use a brass heat-set insert: M3 needs a ⌀4.0 mm hole 5.5 mm deep in a ⌀9 mm boss (2× insert OD); full table in the hardware pack.","applies":["insert","boss","housing"],"basis":"Insert sizing is a generic fastener fact, not consumer-specific","sources":["protolabs-guide"],"tags":["insert","boss","fastener"],"see":["hardware/heat-set-inserts-metric"],"value":{"note":"insert size follows the boss/hole table for the chosen screw size","unit":"text","value":"see hardware/heat-set-inserts-metric"}},{"id":"snap-fit-annular","kind":"feature","tier":2,"title":"Annular snap-fit (cylindrical catch) proportions","summary":"An annular snap (a moulded lid ring snapping over a boss or bezel) uses a 0.3-0.8 mm undercut around the full circumference with a 30-45° lead-in chamfer; because the whole ring deflects at once, keep the undercut smaller than a cantilever's for the same resin strain limit.","applies":["snap fit","housing","lid"],"value":{"min":0.3,"max":0.8,"unit":"mm"},"basis":"A full-circumference catch has no free length to distribute strain over, so its allowable undercut is smaller than an equivalent cantilever beam's","sources":["bayer-snap-fit"],"tags":["snap-fit","annular","lid"]},{"id":"snap-fit-torsion","kind":"feature","tier":2,"title":"Torsion snap-fit (twisting catch) proportions","summary":"A torsion snap loads a short torsion bar (typically 1-2x the wall in diameter, 8-15 mm long) in twist rather than bending a cantilever beam, giving a stiffer, lower-deflection catch useful where beam space is too tight for a cantilever.","applies":["snap fit","housing"],"value":{"min":8,"max":15,"unit":"mm","note":"torsion bar length; diameter 1-2x wall"},"basis":"Torsion-bar snaps trade cantilever deflection range for stiffness in a tight envelope, common on battery-door and small-lid catches","sources":["bayer-snap-fit"],"tags":["snap-fit","torsion"]},{"id":"snap-fit-return-angle-undercut","kind":"rule","tier":2,"title":"Snap-fit return angle and undercut by release intent","summary":"Cut the catch face at 90° (a permanent, non-releasable joint) or 30-45° (a releasable joint meant to be opened for service) with a matching 0.5-1.5 mm undercut; a 90° face with a small undercut is what makes a snap hard to defeat without breaking it.","applies":["snap fit","housing","clamshell"],"value":{"min":30,"max":90,"unit":"deg","note":"90deg permanent; 30-45deg releasable; undercut 0.5-1.5mm"},"basis":"Return-face angle sets the force needed to release the catch; a permanent joint uses a steep face the beam can't ride back over","sources":["bayer-snap-fit"],"tags":["snap-fit","return-angle","undercut"]},{"id":"ultrasonic-energy-director","kind":"feature","tier":2,"title":"Ultrasonic-weld energy director","summary":"An energy director for ultrasonic welding is a 60-90° triangular ridge 0.3-0.6 mm tall on one weld face, which concentrates the vibrational energy into a melt bead that fuses the two halves of a housing.","applies":["ultrasonic weld","housing","clamshell"],"value":{"min":0.3,"max":0.6,"unit":"mm","note":"ridge height; 60-90deg included angle"},"basis":"A sharp, small-contact-area ridge concentrates ultrasonic energy to melt first, rather than the whole joint face softening at once","sources":["branson-ultrasonic"],"tags":["ultrasonic","weld","energy-director"]},{"id":"ultrasonic-shear-joint","kind":"feature","tier":2,"title":"Ultrasonic shear-joint interference","summary":"A shear joint (a stepped, self-aligning ultrasonic weld used for a tight seal) runs 0.2-0.4 mm of interference along its full vertical wall, so the melt progressively shears and fuses as the parts telescope together rather than welding all at once.","applies":["ultrasonic weld","housing","seal"],"value":{"min":0.2,"max":0.4,"unit":"mm"},"basis":"Progressive shear melting along a tall, self-aligning interference gives a more continuous, leak-tight bead than a flat energy-director joint","sources":["branson-ultrasonic"],"tags":["ultrasonic","shear-joint","seal"]},{"id":"gasket-ip-see","kind":"rule","tier":2,"title":"Gasket groove and IP rating for a consumer housing","summary":"A consumer housing claiming an IP rating uses the same groove-width/depth and boss-spacing numbers as an electronics enclosure — see the electronics pack's IP54/IP65/IP67 gasket-groove entries rather than re-deriving them here.","applies":["gasket","ip rating","housing"],"basis":"Gasket-groove sizing is a sealing-geometry fact shared with electronics enclosures, not consumer-specific","sources":["iec-62368-1"],"tags":["gasket","ip-rating","seal"],"see":["electronics/ip54-gasket-groove","electronics/ip65-gasket-groove","electronics/ip67-gasket-groove"]},{"id":"parting-line-placement","kind":"rule","tier":2,"title":"Parting-line placement on a housing","summary":"Route the parting line along the visible silhouette edge (not across a show face) and step it at least 1x the wall thickness around any texture or lettering, so mismatch and flash land on an edge the eye already reads as a break, not mid-surface.","applies":["housing","injection molding","cosmetic"],"basis":"A parting line placed on the natural silhouette hides normal per-shot mismatch; one crossing a show face is visible on every part","sources":["protolabs-guide","fictiv-guide"],"tags":["parting-line","cosmetic","tooling"]},{"id":"gate-placement","kind":"process","tier":2,"title":"Gate placement on a housing","summary":"Gate into the thickest section (≥ 1.5× the thinnest wall) and ≥ 10 mm from cosmetic show faces and snap-fit beams; a gate on a thin rib or at a snap beam's root leaves a weld line or vestige exactly where the part needs full strength.","applies":["housing","injection molding","gate"],"basis":"Filling thick-to-thin avoids premature freeze-off; keeping the gate off a structural feature avoids a weak spot at the gate vestige","sources":["protolabs-guide","fictiv-guide"],"tags":["gate","molding","process"]},{"id":"texture-vdi-moldtech","kind":"rule","tier":2,"title":"Surface texture callouts and the draft they add","summary":"Specify housing textures by VDI 3400 grade (VDI 12-15 fine grain to VDI 42-45 leather grain) or the equivalent Mold-Tech number, and add roughly +1° of draft per 0.025 mm of texture depth on top of the smooth-wall minimum so the texture releases without scuffing.","applies":["texture","housing","cosmetic"],"value":{"value":1,"unit":"deg","note":"additional draft per 0.025mm texture depth"},"basis":"A textured wall has raised peaks that must clear the mould on ejection just like a smooth wall, so texture depth adds directly to the required draft","sources":["moldtech-vdi3400"],"tags":["texture","vdi","mold-tech","draft"]},{"id":"draft-polish-reduced","kind":"rule","tier":2,"title":"Reduced draft on a high-polish surface","summary":"A high-polish (SPI A-1/A-2) show surface with no texture can go down to 0.5° draft, half the generic 1° floor, because there are no texture peaks to catch on ejection — but only on that specific polished, untextured face.","applies":["housing","cosmetic","polish"],"value":{"value":0.5,"unit":"deg"},"basis":"Draft exists to release texture and machining marks cleanly; a mirror-polished cavity has neither, so it tolerates less taper","sources":["protolabs-guide"],"tags":["draft","polish","cosmetic"]},{"id":"clamshell-lip-tongue-groove","kind":"feature","tier":2,"title":"Tongue-and-groove lip joint for a clamshell housing","summary":"A clamshell lip joint engages 0.5-0.8 mm of tongue into groove with 0.1 mm of clearance per side, enough to locate the two halves and block a straight-line dust/light path without binding on moulding tolerance.","applies":["clamshell","housing","lip"],"value":{"table":[{"param":"engagement","min":0.5,"max":0.8},{"param":"clearance","value":0.1}],"unit":"mm"},"basis":"Enough engagement to locate and dust-seal the joint, with clearance kept to the moulding tolerance floor so the two halves don't bind on assembly","sources":["protolabs-guide"],"tags":["clamshell","lip","tongue-and-groove"]},{"id":"battery-2032-compartment","kind":"dimension","tier":2,"title":"CR2032 coin-cell compartment","summary":"A CR2032 coin cell (⌀20x3.2 mm) needs a pocket of ⌀21x3.6-4 mm with a spring-loaded or PCB clip contact; orient the pocket so the cell can only insert one polarity forward, per the cell's own labelling.","applies":["battery","2032","coin cell","housing"],"value":{"table":[{"param":"cell","diameter":20,"thickness":3.2},{"param":"pocket","diameter":21,"thickness":3.8}],"unit":"mm"},"basis":"IEC 60086 CR2032 cell envelope plus assembly clearance for a spring or clip contact","sources":["iec-60086"],"tags":["battery","2032","coin-cell","compartment"]},{"id":"label-recess","kind":"dimension","tier":2,"title":"Label/nameplate recess depth","summary":"Recess a printed label or nameplate 0.1-0.2 mm below the surrounding surface so the label's own thickness sits flush rather than proud, where it would catch and peel at the edge.","applies":["label","housing","cosmetic"],"value":{"min":0.1,"max":0.2,"unit":"mm"},"basis":"Common pressure-sensitive label stock thickness, sized so the label sits flush after applying","sources":["protolabs-guide"],"tags":["label","recess","cosmetic"]},{"id":"key-gap-spacing","kind":"dimension","tier":2,"title":"Key-to-key gap on a button cluster","summary":"Space adjacent buttons or keys 0.2-0.3 mm apart at their moulded edges; tighter binds under moulding tolerance and thermal expansion, wider lets liquid or debris track between keys.","applies":["button","keycap","housing","remote control"],"value":{"min":0.2,"max":0.3,"unit":"mm"},"basis":"Moulding tolerance plus thermal-expansion clearance for two independently actuated key caps sharing one bezel opening","sources":["protolabs-guide"],"tags":["button","keycap","gap"]},{"id":"cable-strain-relief","kind":"feature","tier":2,"title":"Cable strain relief boss at a housing exit","summary":"A moulded strain-relief boss tapers the cable exit from the bend-radius-limited cable OD down to a snug bore over 8-12 mm, with ribs gripping the cable jacket rather than a sharp single edge that would cut into it under flex.","applies":["cable","strain relief","housing"],"value":{"min":8,"max":12,"unit":"mm"},"basis":"A gradual taper distributes bend stress over a length instead of concentrating it at one sharp exit edge, the classic cable-fatigue failure point","sources":["protolabs-guide"],"tags":["cable","strain-relief","boss"]},{"id":"rubber-feet","kind":"feature","tier":2,"title":"Rubber foot boss and recess","summary":"A stick-on rubber foot sits in a shallow 0.5-1 mm recess sized to its own diameter plus 0.2-0.3 mm clearance, so the foot's adhesive backing registers instead of drifting, and the foot's compressed height still clears the housing's lowest rib.","applies":["rubber foot","housing"],"value":{"min":0.5,"max":1,"unit":"mm"},"basis":"A shallow locating recess keeps an adhesive-backed foot registered under lateral load without needing a mechanical boss","sources":["protolabs-guide"],"tags":["foot","rubber","recess"]},{"id":"overmold-bond-rule","kind":"rule","tier":2,"title":"Overmould bond geometry","summary":"Give a TPE overmould mechanical purchase — 0.5-1 mm undercuts or through-holes in the rigid substrate every 15-25 mm — rather than relying on chemical bond alone, since not every rigid/TPE pair is chemically compatible.","applies":["overmold","tpe","housing"],"value":{"min":15,"max":25,"unit":"mm"},"basis":"Mechanical interlock guarantees adhesion independent of the specific rigid-resin/TPE chemical pairing, which varies by grade","sources":["protolabs-guide"],"tags":["overmold","tpe","bond"]},{"id":"fdm-mating-tolerance","kind":"tolerance","tier":2,"title":"FDM mating-part clearance","summary":"Two FDM-printed parts that must slide or snap together need 0.2-0.4 mm of clearance per side; tighter binds on typical FDM dimensional accuracy, looser feels loose on a snap or slide fit.","applies":["fdm","3d printing","housing"],"value":{"min":0.2,"max":0.4,"unit":"mm"},"basis":"Common FDM dimensional-accuracy band for a well-tuned printer/material combination","sources":["hubs-3dp-guide"],"tags":["fdm","tolerance","clearance"]},{"id":"fdm-hole-shrink-bridging-orientation","kind":"rule","tier":2,"title":"FDM hole shrink, bridging and build orientation","summary":"Oversize an FDM through-hole's nominal diameter by +0.2 mm to compensate for consistent shrink/first-layer squish, keep unsupported horizontal spans (bridges) under 40-50 mm, and orient the tallest snap/hinge feature along the build's Z axis for maximum layer strength across it.","applies":["fdm","3d printing","housing","hole"],"value":{"value":0.2,"unit":"mm","note":"hole oversize; bridging span 40-50mm max"},"basis":"FDM holes print consistently undersize from extrusion die-swell and cooling shrink; unsupported spans beyond the bridging limit sag before solidifying","sources":["hubs-3dp-guide"],"tags":["fdm","hole","bridging","orientation"]},{"id":"material-pcabs-consumer","kind":"material","tier":2,"title":"PC/ABS blend for consumer housings","summary":"PC/ABS blend (~1.1 g/cm3) is the common consumer-housing resin balancing ABS's mouldability with PC's impact and heat resistance, usually specified as UL 94 HB unless a flame-retardant grade is called out.","applies":["housing","pc-abs"],"value":{"value":1.1,"unit":"g/cm3"},"basis":"Standard PC/ABS blend resin datasheet density","sources":["ul-94"],"tags":["material","pc-abs","housing"]},{"id":"material-pp-consumer","kind":"material","tier":2,"title":"Polypropylene (PP) for hinged and flexed housing features","summary":"PP (~0.905 g/cm3) is the default resin wherever a housing needs a living hinge or a repeatedly flexed snap, thanks to its high fatigue resistance in thin section, at lower stiffness and heat resistance than ABS/PC.","applies":["housing","pp","living hinge","snap fit"],"value":{"value":0.905,"unit":"g/cm3"},"basis":"Standard homopolymer PP resin datasheet density","sources":["dupont-living-hinge"],"tags":["material","pp","living-hinge"]},{"id":"material-tpe-overmold","kind":"material","tier":2,"title":"TPE for soft-touch overmoulds","summary":"TPE overmould compounds (~1.0-1.15 g/cm3 depending on Shore A hardness, typically 40-70A for a grip surface) two-shot or insert-mould onto ABS/PC/PP substrates for a soft-touch feel and secondary grip.","applies":["housing","tpe","overmold","soft touch"],"value":{"min":1,"max":1.15,"unit":"g/cm3"},"basis":"Standard TPE overmould compound datasheet density range across common Shore A hardness grades","sources":["protolabs-guide"],"tags":["material","tpe","overmold"]},{"id":"material-pa12-sls","kind":"material","tier":3,"title":"PA12 for SLS-printed housings","summary":"PA12 (nylon 12, ~1.01 g/cm3 as sintered) is the default SLS material for a functional printed housing — good chemical resistance and living-hinge-like flex in thin section, with a characteristic slightly grainy surface finish.","applies":["housing","sls","pa12"],"value":{"value":1.01,"unit":"g/cm3"},"basis":"Standard PA12 SLS powder datasheet density as sintered","sources":["hubs-3dp-guide"],"tags":["material","pa12","sls"]},{"id":"material-pla-petg-fdm","kind":"material","tier":3,"title":"PLA and PETG for FDM-printed housings","summary":"PLA (~1.24 g/cm3) prints easiest and holds cosmetic detail best for a prototype housing but creeps under sustained load and softens near 55-60°C; PETG (~1.27 g/cm3) trades a little print ease for better impact and heat resistance in a functional enclosure.","applies":["housing","fdm","pla","petg"],"value":{"table":[{"material":"pla","density":1.24},{"material":"petg","density":1.27}],"unit":"g/cm3"},"basis":"Standard PLA and PETG filament datasheet densities and known heat-deflection behaviour","sources":["hubs-3dp-guide"],"tags":["material","pla","petg","fdm"]},{"id":"test-drop-consumer","kind":"test","tier":2,"title":"Drop test onto faces, edges and corners (IEC 60068-2-31)","summary":"Drop the housing 1000-1500 mm onto each of its six faces plus representative edges and corners; surviving it needs corner radii sized to this pack's corner-radius rule and a wall that doesn't flex enough to crack a boss or snap.","applies":["housing","drop test","handheld"],"value":{"min":1000,"max":1500,"unit":"mm"},"basis":"IEC 60068-2-31 Test Ec rough-handling shock procedure, applied at the consumer-handheld drop height rather than the heavier equipment-class range","sources":["iec-60068-2-31"],"tags":["test","drop","shock"]},{"id":"test-button-hinge-cycle","kind":"test","tier":2,"title":"Button and living-hinge cycle-life test","summary":"Cycle a button or keycap 100,000-1,000,000 times and a living hinge similarly; passing means the button's travel and the hinge's thickness/land stay within this pack's own numbers, since drifting outside either is what fatigues first.","applies":["button","living hinge","housing"],"value":{"min":100000,"max":1000000,"unit":"cycles"},"basis":"Common consumer-durability cycle-count target for a repeatedly actuated button or hinge feature","sources":["dupont-living-hinge"],"tags":["test","button","hinge","cycle"]},{"id":"test-tumble-uv-weathering","kind":"test","tier":3,"title":"Tumble and UV/weathering exposure test","summary":"Tumble test (IEC 60068-2-32): 50–100 falls from 500 mm in a rotating drum; UV/weathering (ASTM G154): 500–1000 h accelerated sunlight for fade and embrittlement — both pass/fail on crack-free corners, so keep outer radii ≥ 1.5 mm.","applies":["housing","cosmetic","outdoor"],"basis":"Combined mechanical (tumble) and environmental (UV) durability screens used on housings expected to see rough handling and sunlight exposure","sources":["iec-60068-2-31"],"tags":["test","tumble","uv","weathering"]},{"id":"test-cleaning-agent-esc","kind":"test","tier":3,"title":"Cleaning-agent environmental stress cracking (ESC) test","summary":"Wipe or soak the housing in the cleaning agents its use case calls for (alcohol wipes, sanitiser, household cleaners) under mild stress (a snap or boss under preload) for 24-72 h; a bad resin/agent pair cracks the stressed feature, not the flat wall.","applies":["housing","cleaning","chemical resistance"],"value":{"min":24,"max":72,"unit":"h"},"basis":"Environmental stress cracking needs both a chemical and a stress concentrator present together — a snap or boss root is where it shows first","sources":["protolabs-guide"],"tags":["test","esc","chemical","cleaning"]},{"id":"standard-ul94-consumer","kind":"standard","tier":2,"title":"UL 94 — plastic flammability for consumer housings","summary":"UL 94 classifies plastics HB through 5VA by burn behaviour; a housing enclosing mains voltage or a lithium cell commonly needs V-0 or better, which drives both resin grade selection and the minimum wall thickness the grade was rated at.","applies":["housing","flammability","material"],"basis":"Governing standard for plastic flammability classification used in consumer-product enclosure specs","sources":["ul-94"],"tags":["standard","ul94","flammability"]},{"id":"standard-iec-62368-1","kind":"standard","tier":2,"title":"IEC 62368-1 — enclosure and finger-probe safety","summary":"IEC 62368-1 sets the finger-probe (⌀12 mm articulated) and tool-access rules for a consumer device's enclosure openings, plus creepage/clearance to any internal hazardous voltage — a housing's vent slots and cutouts must keep the probe out per this pack's vent-slot geometry.","applies":["housing","safety","enclosure"],"basis":"Governing safety standard for audio/video, IT and communication equipment enclosures, superseding IEC 60950-1/60065","sources":["iec-62368-1"],"tags":["standard","iec62368","safety"]},{"id":"standard-cpsc-small-parts","kind":"standard","tier":2,"title":"CPSC small-parts cylinder (16 CFR 1501) for toys","summary":"A toy for children under 3 must not release a part fitting entirely inside the CPSC small-parts cylinder (⌀31.7 x 57.1 mm) after normal use or foreseeable abuse — a battery door or trim piece is checked against this cylinder, not eyeballed.","applies":["toy","housing","small parts"],"value":{"value":31.7,"unit":"mm"},"basis":"16 CFR 1501 defines the small-parts test cylinder and the abuse/use-and-abuse test sequence a part must survive without releasing a fitting piece","sources":["cpsc-16cfr1501"],"tags":["standard","cpsc","small-parts","toy"]},{"id":"recipe-clamshell-base","kind":"recipe","tier":2,"title":"Recipe: two-part clamshell base with snap-fit hooks","summary":"Build an 80x50x25 mm clamshell base: a 2 mm shell wall open at the top, with two 3x3x3 mm snap-fit hook bumps unioned onto the inside of opposite walls near the rim to catch a mating lid.","applies":["clamshell","housing","snap fit"],"basis":"Combines wall-thickness-abs, wall-uniformity and snap-fit-cantilever-basics into one buildable shelled tray with catch features","sources":["protolabs-guide","bayer-snap-fit"],"tags":["recipe","clamshell","snap-fit"],"recipe":{"prompt":"Model an 80x50x25mm clamshell base: 2mm shell wall open at the top, with two small snap-fit hook bumps on opposite inside walls near the rim","steps":[{"tool":"cad_box","args":{"dx":80,"dy":50,"dz":25},"note":"outer clamshell base block"},{"tool":"cad_shell","args":{"of":"$0","thickness":2,"open":[{"normal":[0,0,1]}]},"note":"hollow into a tray, open top; shell before any boss/hook"},{"tool":"cad_box","args":{"dx":3,"dy":3,"dz":3,"origin":[38.5,2,18]},"note":"snap hook bump on the inside of the y=0 wall, near the rim"},{"tool":"cad_boolean_union","args":{"of":"$1","tool":"$2"},"note":"union hook 1 onto the tray"},{"tool":"cad_box","args":{"dx":3,"dy":3,"dz":3,"origin":[38.5,45,18]},"note":"matching snap hook bump on the opposite wall"},{"tool":"cad_boolean_union","args":{"of":"$3","tool":"$4"},"note":"union hook 2 onto the tray"}],"expect":{"volume":19646,"faceCount":21,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-battery-door","kind":"recipe","tier":2,"title":"Recipe: battery door with finger recess and snap tab","summary":"Build a 30x15x2 mm battery door: an 8x6x1 mm finger recess pocketed into the top face for thumbnail access, and a 4x2x1.5 mm snap tab projecting from one edge to catch the housing.","applies":["battery door","housing","snap fit"],"basis":"Combines wall-thickness-pc/abs-class thin-lid thickness with a pocketed finger recess and a torsion/cantilever-style snap tab into one buildable door","sources":["protolabs-guide","bayer-snap-fit"],"tags":["recipe","battery-door","snap-fit"],"recipe":{"prompt":"Model a 30x15x2mm battery door with an 8x6mm finger recess in the top face and a small snap tab on one edge","steps":[{"tool":"cad_box","args":{"dx":30,"dy":15,"dz":2},"note":"door plate"},{"tool":"cad_box","args":{"dx":8,"dy":6,"dz":2,"origin":[11,4.5,1]},"note":"pocket tool piercing the top face by 1mm, for an 8x6mm x 1mm-deep finger recess"},{"tool":"cad_boolean_subtract","args":{"of":"$0","tool":"$1"},"note":"cut the finger recess"},{"tool":"cad_box","args":{"dx":4,"dy":2,"dz":1.5,"origin":[13,15,0]},"note":"snap tab projecting from the far edge"},{"tool":"cad_boolean_union","args":{"of":"$2","tool":"$3"},"note":"union the snap tab onto the door"}],"expect":{"volume":864,"faceCount":15,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-remote-control-shell","kind":"recipe","tier":2,"title":"Recipe: remote-control shell with fillets and button cutouts","summary":"Build a 150x45x20 mm remote-control shell: a 1.5 mm shell wall open at the bottom, R1.5 mm rounded outer edges (the radius a 1.5 mm wall carries — CADSB-744), and four 8x8 mm button cutouts through the top face on 15 mm spacing.","applies":["remote control","handheld","housing"],"basis":"Combines wall-thickness-abs-class shell thickness, corner-radius-inside-outside fillet and button-key-travel-sized cutouts into one buildable handheld shell","sources":["protolabs-guide"],"tags":["recipe","remote-control","button"],"recipe":{"prompt":"Model a 150x45x20mm remote-control shell: 1.5mm shell wall open at the bottom, R1.5mm rounded edges, and four 8x8mm button cutouts on 15mm spacing through the top face","steps":[{"tool":"cad_box","args":{"dx":150,"dy":45,"dz":20},"note":"remote body block"},{"tool":"cad_shell","args":{"of":"$0","thickness":1.5,"open":[{"normal":[0,0,-1]}]},"note":"hollow into a shell open on the bottom; shell before fillets/cutouts"},{"tool":"cad_fillet_edges","args":{"of":"$1","radius":1.5},"note":"blanket-round the convex outer edges — radius = the 1.5mm wall; a larger blanket radius on a shelled body is refused blend-through-wall (CADSB-744)"},{"tool":"cad_box","args":{"dx":8,"dy":8,"dz":4,"origin":[20,15,17]},"note":"button cutout tool 1, piercing the top face"},{"tool":"cad_boolean_subtract","args":{"of":"$2","tool":"$3"},"note":"cut button 1"},{"tool":"cad_box","args":{"dx":8,"dy":8,"dz":4,"origin":[35,15,17]},"note":"button cutout tool 2, 15mm from button 1"},{"tool":"cad_boolean_subtract","args":{"of":"$4","tool":"$5"},"note":"cut button 2"},{"tool":"cad_box","args":{"dx":8,"dy":8,"dz":4,"origin":[50,15,17]},"note":"button cutout tool 3"},{"tool":"cad_boolean_subtract","args":{"of":"$6","tool":"$7"},"note":"cut button 3"},{"tool":"cad_box","args":{"dx":8,"dy":8,"dz":4,"origin":[65,15,17]},"note":"button cutout tool 4"},{"tool":"cad_boolean_subtract","args":{"of":"$8","tool":"$9"},"note":"cut button 4"}],"expect":{"volume":20172.32,"faceCount":39,"watertight":true,"selfIntersection":false,"note":"measured 2026-09-19: the pin 19942.57/49 was taken on 2026-09-05 by CADSB-744 (a369d9770), ONE DAY before CADSB-735 (315d51afc, 2026-09-06) stopped the whole-body fillet publishing two bands built THROUGH each other. R1.5 on the 1.5 mm bottom rim IS that pair: the blanket pass now blends 8 edges and skips 16 — 8 reentrant, and 8 partition-radius-exceeds-face naming the rim (\"reduce the radius to at most 0.750001 for this pair\"). So the pinned body had those 8 rim bands built through each other and would FAIL this recipe's own expect.selfIntersection:false, which the same CADSB-744 commit added. The 229.75 mm^3 gap is those bands. Same shape as CADSF-1604's post-cap-4x4, in fillet instead of chamfer. CADSF-1607"}}}]},{"$schema":"nativecad-dfm-pack/1","id":"desk-everyday","title":"Desk & everyday objects — stands, holders, hooks, boxes, organisers","sector":"desk-everyday","version":"2026-09-04","summary":"Envelope dims, device interface dims, ergonomic angles and wall/hinge/clearance rules for the desk and household objects people type into a text-to-CAD box: phone/laptop/headphone stands, monitor risers, pen holders, bookends, coasters, cable clips, keychains, wall hooks, hinged boxes, drawer organisers, soap dishes and toothbrush holders.","aliases":["phone stand","phone holder","laptop stand","headphone stand","headphone hook","monitor riser","monitor stand","pen holder","pencil cup","pencil holder","bookend","coaster","cable clip","cable organizer","cable organiser","keychain","keyring tag","wall hook","hinged box","box with lid","drawer organizer","drawer organiser","desk tray","soap dish","toothbrush holder"],"crossSector":false,"size":"full","sources":[{"id":"apple-iphone15-specs","title":"Apple iPhone 15 Tech Specs","url":"https://support.apple.com/en-us/111831","accessed":"2026-09-04"},{"id":"samsung-s24-specs","title":"Samsung Galaxy S24 Series Full Specifications","url":"https://www.samsung.com/us/smartphones/galaxy-s24/specs/","accessed":"2026-09-04"},{"id":"vesa-fdmi","title":"VESA Flat Display Mounting Interface (FDMI) Standard — MIS-D 75/100 mm hole patterns","url":"https://vesa.org/vesa-standards/","accessed":"2026-09-04"},{"id":"osha-computer-workstations","title":"OSHA Computer Workstations eTool — Monitor and Laptop Viewing Ergonomics","url":"https://www.osha.gov/etools/computer-workstations/components/monitors","accessed":"2026-09-04"},{"id":"hfes-100","title":"ANSI/HFES 100-2007 Human Factors Engineering of Computer Workstations","accessed":"2026-09-04"},{"id":"prusa-design-guide","title":"Prusa Knowledge Base — Design for 3D Printing (clearances, hinges, tolerances)","url":"https://help.prusa3d.com/category/design-for-3d-printing_223","accessed":"2026-09-04"},{"id":"hubs-3dp-guide","title":"Hubs (Protolabs) 3D Printing Design Guidelines — FDM/SLS/SLA","url":"https://www.hubs.com/knowledge-base/","accessed":"2026-09-04"},{"id":"hubs-injection-guide","title":"Hubs (Protolabs) Injection Molding Design Guidelines","url":"https://www.hubs.com/knowledge-base/injection-molding-design-guidelines/","accessed":"2026-09-04"},{"id":"cpsc-16cfr1501","title":"CPSC 16 CFR 1501 — Method for Identifying Toy Hazards (small-parts cylinder)","url":"https://www.cpsc.gov/Regulations-Laws--Standards/Federal-Register-Notices/2017/16-CFR-Part-1501","accessed":"2026-09-04"},{"id":"astm-f963","title":"ASTM F963 Standard Consumer Safety Specification for Toy Safety (small parts, sharp points)","url":"https://www.astm.org/f0963-17.html","accessed":"2026-09-04"},{"id":"drywall-anchor-loads","title":"Common self-drilling drywall/plastic wall-anchor published load ratings (light-duty picture/utility hooks)","url":"https://www.crlaurence.com/","accessed":"2026-09-04"},{"id":"ansi-b18.6.3","title":"ASME/ANSI B18.6.3 Machine Screws — #6/#8 head and shank dimensions","accessed":"2026-09-04"}],"entries":[{"id":"phone-stand-viewing-angle","kind":"dimension","tier":1,"title":"Phone stand viewing angle","summary":"Rest a phone at 55-70deg from horizontal (65deg typical) for a comfortable seated FaceTime/video angle, steeper than a laptop's screen tilt because a phone sits closer to the eye.","applies":["phone stand"],"value":{"min":55,"max":70,"typical":65,"unit":"deg"},"basis":"Common desk phone-stand viewing-angle range derived from seated-eye-to-desk-object sightline guidance","sources":["osha-computer-workstations"],"tags":["phone-stand","angle","ergonomics"]},{"id":"phone-stand-slot-width","kind":"dimension","tier":1,"title":"Phone stand slot width (with case)","summary":"Size a phone stand's slot 7-12 mm wide: bare phones run 7.5-8.9 mm thick (iPhone 15 7.8 mm, Galaxy S24 7.6 mm) and a case adds 1.5-3 mm per side of the phone, so a 10 mm slot fits most cased phones with a snug 0.5-1 mm clearance.","applies":["phone stand","phone holder"],"value":{"min":7,"max":12,"typical":10,"unit":"mm"},"basis":"Apple/Samsung published phone thickness plus typical protective-case wall thickness","sources":["apple-iphone15-specs","samsung-s24-specs"],"tags":["phone-stand","slot","case"]},{"id":"phone-stand-cable-notch","kind":"feature","tier":2,"title":"Phone stand charging-cable notch","summary":"Cut a 6-10 mm wide, 4-6 mm deep notch through the base of the slot so a Lightning/USB-C cable can stay plugged in while the phone sits in the stand, wide enough for the connector's cable boot, not just the plug.","applies":["phone stand"],"value":{"min":6,"max":10,"unit":"mm"},"basis":"USB-C/Lightning cable-boot width needs clearance beyond the bare connector to avoid pinching the cable jacket","sources":["apple-iphone15-specs"],"tags":["phone-stand","cable","notch"]},{"id":"phone-stand-base-footprint","kind":"rule","tier":2,"title":"Phone stand base footprint for tip-over stability","summary":"Give the base a front-to-back footprint of at least 0.6x the phone's height so the combined phone+stand centre of gravity stays inside the base when nudged; a footprint under 0.5x tips forward under a light push.","applies":["phone stand"],"value":{"min":0.6,"unit":"ratio","note":"base depth / phone height"},"basis":"Static tip-over stability requires the CG's vertical projection to stay within the support polygon under a nominal lateral disturbance","sources":["apple-iphone15-specs"],"tags":["phone-stand","stability","footprint"]},{"id":"laptop-stand-riser-height","kind":"dimension","tier":1,"title":"Laptop stand riser height","summary":"Riser the laptop's hinge line 50-150 mm above the desk (100 mm typical) to bring the top of the screen roughly to eye level per OSHA/HFES monitor-height guidance, then pair it with an external keyboard since the built-in one is now too high.","applies":["laptop stand"],"value":{"min":50,"max":150,"typical":100,"unit":"mm"},"basis":"OSHA computer-workstation guidance places the top of the screen at or slightly below seated eye height","sources":["osha-computer-workstations","hfes-100"],"tags":["laptop-stand","height","ergonomics"]},{"id":"laptop-stand-vent-clearance","kind":"rule","tier":2,"title":"Laptop stand underside vent clearance","summary":"Leave at least 15-20 mm of open clearance under the laptop's underside intake vents (usually along the rear/side edges) so a solid platform doesn't choke cooling airflow and trigger thermal throttling.","applies":["laptop stand"],"value":{"min":15,"max":20,"unit":"mm"},"basis":"Laptop intake fans draw through underside vents; a flush solid shelf starves them the same way as using a laptop on a soft cushion","sources":["osha-computer-workstations"],"tags":["laptop-stand","ventilation","clearance"]},{"id":"laptop-stand-load","kind":"rule","tier":2,"title":"Laptop stand load rating","summary":"Design a laptop stand's platform and legs for at least 3.5 kg static load (a 15-16in laptop is typically 1.5-2.5 kg, doubled for margin against an elbow-lean or a second device set down on it).","applies":["laptop stand"],"value":{"min":3.5,"unit":"kg"},"basis":"Common 15-16in laptop mass with a 1.5-2x safety margin for incidental extra load","sources":["osha-computer-workstations"],"tags":["laptop-stand","load"]},{"id":"headphone-stand-hook-width","kind":"dimension","tier":1,"title":"Headphone stand hook/saddle width","summary":"Shape the hook saddle 60-90 mm wide and radiused to 25-35 mm to match a headband's curve, wide enough that the headband drapes rather than folding at a crease.","applies":["headphone stand","headphone hook"],"value":{"min":60,"max":90,"unit":"mm"},"basis":"Common over-ear headband inner-curve width across major consumer headphone models","sources":["hubs-3dp-guide"],"tags":["headphone-stand","hook","saddle"]},{"id":"headphone-stand-base-stability","kind":"rule","tier":2,"title":"Headphone stand base stability","summary":"Size the base diameter or footprint to at least 1.2x the stand's overall height so a ~300-400 g headset hung off-centre on the hook doesn't tip the stand; a top-heavy narrow base is the single most common headphone-stand failure.","applies":["headphone stand"],"value":{"min":1.2,"unit":"ratio","note":"base footprint / stand height"},"basis":"Static tip-over margin for a cantilevered load (the headset hanging forward of the post) on a slender vertical stand","sources":["hubs-3dp-guide"],"tags":["headphone-stand","stability"]},{"id":"monitor-riser-height","kind":"dimension","tier":1,"title":"Monitor riser height","summary":"Riser a monitor 50-100 mm (75 mm typical) so the top of the screen sits at or just below seated eye height, per OSHA/HFES monitor-placement guidance for a user without an adjustable-height monitor arm.","applies":["monitor riser","monitor stand"],"value":{"min":50,"max":100,"typical":75,"unit":"mm"},"basis":"OSHA computer-workstation eTool: top of screen at or slightly below eye level for a seated user","sources":["osha-computer-workstations","hfes-100"],"tags":["monitor-riser","height","ergonomics"]},{"id":"monitor-riser-load","kind":"rule","tier":2,"title":"Monitor riser load and footprint","summary":"Rate a monitor riser platform for at least 8 kg (most 24-32in LCD monitors are 3-6 kg) and make the platform footprint at least the monitor base's footprint so the monitor foot never overhangs the riser edge.","applies":["monitor riser"],"value":{"min":8,"unit":"kg"},"basis":"Common LCD monitor mass range with margin, plus stability requiring full support of the monitor's own base footprint","sources":["osha-computer-workstations"],"tags":["monitor-riser","load","footprint"]},{"id":"monitor-riser-vesa-passthrough","kind":"dimension","tier":2,"title":"VESA 75/100 mounting hole pattern","summary":"If a riser also carries a VESA mount, drill the standard 75x75 mm or 100x100 mm M4 hole pattern (per VESA FDMI MIS-D) rather than inventing a spacing, so the monitor's own bracket bolts straight to it.","applies":["monitor riser","monitor stand","monitor mount"],"value":{"options":[75,100],"unit":"mm"},"basis":"VESA FDMI MIS-D standard flat-panel mounting hole spacing","sources":["vesa-fdmi"],"tags":["vesa","mounting","monitor"]},{"id":"pen-holder-cell-diameter","kind":"dimension","tier":1,"title":"Pen/pencil holder cell diameter","summary":"Size a pen or pencil cell 10-14 mm inner diameter (a hex pencil spans 7-8 mm across flats, a fat marker up to 16-18 mm), with 12 mm covering most pens/pencils and a wider 20 mm+ cell reserved for markers.","applies":["pen holder","pencil cup","pencil holder"],"value":{"min":10,"max":14,"typical":12,"unit":"mm"},"basis":"Common writing-instrument barrel diameter range across pens and pencils","sources":["hubs-3dp-guide"],"tags":["pen-holder","cell","diameter"]},{"id":"pen-holder-base-stability","kind":"rule","tier":2,"title":"Pen/pencil cup base-to-height stability","summary":"Keep a pen cup's base diameter at least 0.5x its overall height so a cup full of pens (top-heavy once loaded) doesn't tip when a pen is pulled at an angle.","applies":["pen holder","pencil cup"],"value":{"min":0.5,"unit":"ratio","note":"base diameter / cup height"},"basis":"Static tip-over margin for a cylindrical container loaded top-heavy and disturbed by a lateral pull","sources":["hubs-3dp-guide"],"tags":["pen-holder","stability"]},{"id":"pen-holder-wall-thickness","kind":"dimension","tier":2,"title":"Pen/pencil holder wall thickness by process","summary":"Wall an FDM-printed pen holder 2-3 mm (5-7 perimeters at 0.4 mm), an SLS/resin one 1.5-2 mm, so the cup resists the sideways lever of pens being pulled at an angle without flexing or cracking at the base fillet.","applies":["pen holder","pencil cup"],"value":{"min":1.5,"max":3,"typical":2.4,"unit":"mm"},"basis":"Printed-container wall guidance sized up from the generic housing-shell floor for a part that takes repeated lateral load at its rim","sources":["hubs-3dp-guide"],"tags":["pen-holder","wall","3d-printing"]},{"id":"bookend-base-length","kind":"dimension","tier":1,"title":"Bookend base length","summary":"Run a bookend's horizontal base at least 120-150 mm deep (front-to-back) so the toppling moment from a row of leaning books stays inside the base footprint instead of pivoting the bookend forward.","applies":["bookend"],"value":{"min":120,"max":150,"unit":"mm"},"basis":"Base length needed to resist the overturning moment of a typical shelf-length row of books leaning on the upright","sources":["hubs-3dp-guide"],"tags":["bookend","base","stability"]},{"id":"bookend-upright-height","kind":"dimension","tier":2,"title":"Bookend upright height","summary":"Make the vertical upright 120-180 mm tall to back a typical hardcover/paperback (150-230 mm) at least half its height, tall enough to stop the books slumping over the top.","applies":["bookend"],"value":{"min":120,"max":180,"unit":"mm"},"basis":"Common hardcover/paperback height range with the upright sized to support at least the lower half of the spine","sources":["hubs-3dp-guide"],"tags":["bookend","upright","height"]},{"id":"bookend-load-rule","kind":"rule","tier":2,"title":"Bookend base-to-upright ratio for a heavy shelf","summary":"For a full row of hardcovers (a heavier, harder-to-tip load than paperbacks), size the base length to at least 1x the upright height, not just the 120-150 mm floor, since the overturning moment scales with both book weight and lean angle.","applies":["bookend"],"value":{"min":1,"unit":"ratio","note":"base length / upright height"},"basis":"Overturning-moment margin scaled up for the worst case of a dense, fully-leaning hardcover row","sources":["hubs-3dp-guide"],"tags":["bookend","load","ratio"]},{"id":"coaster-diameter","kind":"dimension","tier":1,"title":"Coaster diameter","summary":"Size a round coaster 90-100 mm in diameter (95 mm typical) to cover the base of common mugs (70-90 mm) and stemware/tumbler bases (60-80 mm) with a margin for condensation spread.","applies":["coaster"],"value":{"min":90,"max":100,"typical":95,"unit":"mm"},"basis":"Common drinkware base-diameter range plus margin so the coaster fully covers the base of most mugs and glasses","sources":["hubs-3dp-guide"],"tags":["coaster","diameter"]},{"id":"coaster-ring-lip","kind":"feature","tier":1,"title":"Coaster drink-ring lip","summary":"Raise a 1.5-2.5 mm lip around the coaster's perimeter, 3-5 mm wide, to catch condensation and stop a mug sliding off the edge; below 1 mm the lip doesn't visibly contain a drip.","applies":["coaster"],"value":{"min":1.5,"max":2.5,"unit":"mm"},"basis":"Practical drip-containment lip height used across common printed and moulded coaster designs","sources":["hubs-3dp-guide"],"tags":["coaster","lip","condensation"]},{"id":"coaster-thickness","kind":"dimension","tier":2,"title":"Coaster overall thickness","summary":"Keep a flat coaster 5-8 mm thick overall (including the rim lip) so it has enough mass/rigidity to sit flat and resist warping without becoming a trip hazard for a mug base.","applies":["coaster"],"value":{"min":5,"max":8,"unit":"mm"},"basis":"Common flat-coaster thickness balancing rigidity against a low-profile desk footprint","sources":["hubs-3dp-guide"],"tags":["coaster","thickness"]},{"id":"cable-clip-cable-diameter","kind":"dimension","tier":1,"title":"Cable clip cable-diameter classes","summary":"Size a cable clip's channel to the cable class: thin USB/charge cable 3-4 mm, standard USB-C/braided cable 4-6 mm, power/HDMI cable 6-9 mm; oversizing the channel by more than 1 mm lets the cable rattle out.","applies":["cable clip","cable organizer"],"value":{"min":3,"max":9,"unit":"mm"},"basis":"Common consumer cable outer-diameter classes from bare charge cable to jacketed power/video cable","sources":["hubs-3dp-guide"],"tags":["cable-clip","diameter"]},{"id":"cable-clip-snap-opening","kind":"rule","tier":2,"title":"Cable clip snap-opening width","summary":"Make a cable clip's slot opening 0.7-0.85x the cable's diameter so the cable snaps past the lip and is retained, not 1x or wider which lets the cable fall back out; the opening throat still needs the wall's own flex to admit the cable.","applies":["cable clip","cable organizer"],"value":{"min":0.7,"max":0.85,"unit":"ratio","note":"opening width / cable diameter"},"basis":"A snap-retention opening narrower than the retained diameter is what creates the catch; matching a cantilever snap's own strain-limited deflection","sources":["hubs-3dp-guide"],"tags":["cable-clip","snap","opening"]},{"id":"cable-clip-mount","kind":"feature","tier":2,"title":"Cable clip mounting base","summary":"Back a desk-mounted cable clip with either a 20x20 mm adhesive-pad footprint (3M VHB-class tape) or a single M3/#6 screw hole, sized so the mounting load doesn't pull through before the cable-retention snap lets go.","applies":["cable clip"],"value":{"value":20,"unit":"mm"},"basis":"Common adhesive-pad footprint sized to hold a lightweight clip against incidental cable tug","sources":["hubs-3dp-guide"],"tags":["cable-clip","mount","adhesive"]},{"id":"keychain-split-ring-hole","kind":"dimension","tier":1,"title":"Keychain/keyring tag split-ring hole","summary":"Bore the split-ring hole at least 4 mm larger in radius than the ring wire needs, i.e. >=8 mm diameter for a common 25-28 mm split ring, and >=4 mm minimum for the smallest keyring-style clasp, so the ring seats and rotates without binding.","applies":["keychain","keyring tag"],"value":{"min":4,"unit":"mm"},"basis":"A split ring needs internal clearance beyond its own wire diameter to open, seat around the tag material, and rotate freely","sources":["hubs-3dp-guide"],"tags":["keychain","split-ring","hole"]},{"id":"keychain-tag-thickness","kind":"dimension","tier":2,"title":"Keychain/keyring tag thickness","summary":"Keep a flat keychain tag 3-5 mm thick so it survives pocket/keyring wear and holds engraved text legibly; under 2.5 mm it snaps at the ring hole under a pocket load.","applies":["keychain","keyring tag"],"value":{"min":3,"max":5,"unit":"mm"},"basis":"Practical printed/moulded keychain thickness for pocket durability at the stress-concentrated ring hole","sources":["hubs-3dp-guide"],"tags":["keychain","thickness"]},{"id":"keychain-hole-edge-distance","kind":"rule","tier":2,"title":"Keychain hole edge distance","summary":"Keep at least 1x the hole diameter of solid material between the split-ring hole's edge and the tag's outer edge, or the loop of material around the hole shears out under the ring's pull.","applies":["keychain","keyring tag"],"value":{"min":1,"unit":"ratio","note":"edge distance / hole diameter"},"basis":"Same edge-distance logic as a fastener clearance hole: too little material around a loaded hole shears out","sources":["hubs-3dp-guide"],"tags":["keychain","edge-distance"]},{"id":"wall-hook-screw-pattern","kind":"fastener","tier":1,"title":"Wall hook screw-mounting pattern","summary":"Mount a light wall hook on one or two #6-#8 screws (clearance hole 4.5-5 mm) spaced 25-40 mm apart when using two, through a mounting plate at least 3 mm thick so the screw head doesn't pull through under the hung load.","applies":["wall hook"],"value":{"min":25,"max":40,"unit":"mm"},"basis":"Common light-duty hook screw spacing sized to standard #6/#8 wood/wall screws","sources":["ansi-b18.6.3"],"tags":["wall-hook","screw","mounting"]},{"id":"wall-hook-load-rating","kind":"rule","tier":1,"title":"Wall hook load rating and hook opening","summary":"Design a single light-duty wall hook for 2-5 kg static load (a coat, bag or towel), matching common plastic wall-anchor ratings, with a hook opening at least 15-20 mm to admit a coat loop or lanyard without forcing it.","applies":["wall hook"],"value":{"min":2,"max":5,"unit":"kg"},"basis":"Published light-duty wall-anchor load ratings for a single-point hook, plus common loop/lanyard opening sizing","sources":["drywall-anchor-loads"],"tags":["wall-hook","load","opening"]},{"id":"wall-hook-root-fillet","kind":"rule","tier":2,"title":"Wall hook root fillet","summary":"Fillet the hook's root (where it meets the wall plate) to at least 0.5x the hook arm's thickness; a sharp inside corner there is the stress-riser that snaps a loaded hook off the plate.","applies":["wall hook"],"value":{"min":0.5,"unit":"ratio","note":"fillet radius / arm thickness"},"basis":"The hook root sees the full bending moment of the hung load concentrated at one corner; a fillet spreads that stress","sources":["hubs-3dp-guide"],"tags":["wall-hook","fillet","stress"]},{"id":"hinged-box-print-clearance","kind":"tolerance","tier":1,"title":"Print-in-place hinge clearance","summary":"Model 0.3-0.5 mm of clearance per side (0.6-1.0 mm total gap) between a hinge pin/knuckle and its socket on an FDM-printed hinged box, or the two halves fuse into one solid; loosen toward 0.5 mm on an under-calibrated printer.","applies":["hinged box","box with lid"],"value":{"min":0.3,"max":0.5,"unit":"mm"},"basis":"Prusa/Hubs print-in-place clearance guidance for a moving FDM joint printed already assembled","sources":["prusa-design-guide","hubs-3dp-guide"],"tags":["hinged-box","hinge","clearance","tolerance"]},{"id":"hinged-box-lid-lip","kind":"feature","tier":1,"title":"Hinged box lid lip/rim engagement","summary":"Engage the lid's inner lip 1.5-2.5 mm into the box rim with 0.2-0.3 mm clearance per side, enough to self-locate the closed lid without binding on print/moulding tolerance.","applies":["hinged box","box with lid"],"value":{"min":1.5,"max":2.5,"unit":"mm"},"basis":"Same tongue-and-groove locating logic as a clamshell lip, sized for a small box lid rather than a large clamshell","sources":["hubs-3dp-guide"],"tags":["hinged-box","lid","lip"]},{"id":"hinged-box-wall-thickness","kind":"dimension","tier":2,"title":"Hinged box wall thickness","summary":"Wall a printed hinged box 2-3 mm through the body and hinge knuckles alike; thinner than 2 mm the knuckle strips out after repeated open/close cycles.","applies":["hinged box","box with lid"],"value":{"min":2,"max":3,"unit":"mm"},"basis":"FDM housing wall floor raised slightly to cover the repeated-flex load a hinge knuckle sees that a static wall does not","sources":["hubs-3dp-guide"],"tags":["hinged-box","wall"]},{"id":"drawer-organizer-cell-size","kind":"dimension","tier":1,"title":"Drawer organiser cell size","summary":"Size a drawer-organiser cell 20-40 mm per side for small items (pens, cables, cosmetics) and 50-80 mm for bulkier items (chargers, tools); undersizing below 15 mm makes a cell too fiddly to use.","applies":["drawer organizer","desk tray"],"value":{"min":20,"max":80,"unit":"mm"},"basis":"Common small-item drawer-organiser compartment sizing from published organiser product dimensions","sources":["hubs-3dp-guide"],"tags":["drawer-organizer","cell","compartment"]},{"id":"drawer-organizer-wall-thickness","kind":"dimension","tier":2,"title":"Drawer organiser divider wall thickness","summary":"Wall a printed organiser's outer shell 2-2.5 mm and its internal dividers 1.5-2 mm; dividers can run thinner than the outer shell since they only see light item weight, not handling loads.","applies":["drawer organizer","desk tray"],"value":{"min":1.5,"max":2.5,"unit":"mm"},"basis":"Internal, lightly-loaded dividers can use a thinner wall than the handled outer shell of the same printed tray","sources":["hubs-3dp-guide"],"tags":["drawer-organizer","wall","divider"]},{"id":"soap-dish-drainage","kind":"rule","tier":1,"title":"Soap dish drainage holes/ridges","summary":"Slope the soap dish floor 3-5deg to a corner drain or add a grid of 4-6 mm drainage holes/ridges raising the bar 2-3 mm off standing water, or the bar sits in its own runoff and softens.","applies":["soap dish"],"value":{"min":4,"max":6,"unit":"mm"},"basis":"Standing-water avoidance is the entire functional requirement of a soap dish; drainage geometry is what differentiates it from a flat tray","sources":["hubs-3dp-guide"],"tags":["soap-dish","drainage"]},{"id":"soap-dish-envelope","kind":"dimension","tier":2,"title":"Soap dish envelope","summary":"Size a soap dish footprint 100-130 mm x 70-90 mm to hold a standard bar (typically 90-110 mm x 60-65 mm) with margin around the edge for the raised drainage ridge.","applies":["soap dish"],"value":{"min":100,"max":130,"unit":"mm"},"basis":"Common bar-soap envelope plus margin for a surrounding drainage lip","sources":["hubs-3dp-guide"],"tags":["soap-dish","envelope"]},{"id":"toothbrush-holder-slot-diameter","kind":"dimension","tier":1,"title":"Toothbrush holder slot/hole diameter","summary":"Bore each toothbrush slot 10-14 mm diameter (a manual brush handle is typically 8-11 mm, an electric brush handle/head can reach 20-28 mm) so the handle drops in and stands without binding.","applies":["toothbrush holder"],"value":{"min":10,"max":14,"unit":"mm"},"basis":"Common manual-toothbrush handle diameter range with clearance for insertion","sources":["hubs-3dp-guide"],"tags":["toothbrush-holder","slot","diameter"]},{"id":"toothbrush-holder-drain","kind":"rule","tier":2,"title":"Toothbrush holder base drainage","summary":"Drop a 2-3 mm drain hole at the base of each toothbrush slot (or run the slot fully through into an open, wipeable base) so rinse water doesn't pool around the bristle end and breed residue.","applies":["toothbrush holder"],"value":{"min":2,"max":3,"unit":"mm"},"basis":"Standing rinse water at the base of a blind slot is the main hygiene failure mode of a moulded toothbrush holder","sources":["hubs-3dp-guide"],"tags":["toothbrush-holder","drainage","hygiene"]},{"id":"desk-object-fdm-wall","kind":"dimension","tier":2,"title":"Generic desk-object FDM wall thickness","summary":"Absent a more specific entry, wall a small FDM-printed desk object 2-2.5 mm (5-6 perimeters at 0.4 mm) as a starting point before tuning to the object's own load case.","applies":[],"value":{"min":2,"max":2.5,"typical":2.2,"unit":"mm"},"basis":"Standard FDM wall-loop guidance for a small, lightly-loaded desk object","sources":["hubs-3dp-guide"],"tags":["wall","fdm","generic"]},{"id":"desk-object-draft-injection","kind":"rule","tier":2,"title":"Draft on an injection-moulded desk object","summary":"Draft every wall parallel to the mould-pull direction at least 1-1.5deg on a small injection-moulded desk accessory (pen holder, soap dish, tray) the same as any other moulded shell.","applies":[],"value":{"min":1,"max":1.5,"unit":"deg"},"basis":"Standard injection-moulding draft floor applied to small desk/household accessories","sources":["hubs-injection-guide"],"tags":["draft","injection-molding","generic"]},{"id":"material-pla-desk","kind":"material","tier":2,"title":"PLA for rigid desk accessories","summary":"PLA (~1.24 g/cm3) is the default material for a rigid, low-load desk object (pen holder, coaster, bookend) that lives indoors away from sustained heat; it prints easiest and holds sharp cosmetic detail.","applies":["pen holder","coaster","bookend","drawer organizer"],"value":{"value":1.24,"unit":"g/cm3"},"basis":"Standard PLA filament datasheet density; PLA's low heat resistance (softens near 55-60C) is acceptable for an indoor desk object away from a sunny windowsill or car","sources":["hubs-3dp-guide"],"tags":["material","pla","desk"]},{"id":"material-petg-outdoor-bathroom","kind":"material","tier":2,"title":"PETG for a wet or load-bearing desk object","summary":"PETG (~1.27 g/cm3) is preferred over PLA for a wall hook, soap dish or toothbrush holder that sees repeated load, humidity or occasional hot water, trading a little print ease for better impact and moisture resistance.","applies":["wall hook","soap dish","toothbrush holder","laptop stand"],"value":{"value":1.27,"unit":"g/cm3"},"basis":"Standard PETG filament datasheet density and known moisture/impact advantage over PLA","sources":["hubs-3dp-guide"],"tags":["material","petg","wet","load"]},{"id":"material-cork-coaster","kind":"material","tier":2,"title":"Cork for coasters","summary":"Natural cork (~0.24 g/cm3) is a traditional coaster material, cellular and absorbent; cork coasters are usually die-cut sheet, but a printed coaster should still assume a cork-backed base of 3-4 mm.","applies":["coaster"],"value":{"value":0.24,"unit":"g/cm3"},"basis":"Typical natural cork sheet density used in coaster and gasket manufacturing","sources":["hubs-3dp-guide"],"tags":["material","cork","coaster"]},{"id":"material-silicone-coaster","kind":"material","tier":2,"title":"Silicone for flexible coasters and drawer liners","summary":"Platinum-cure silicone (~1.1-1.2 g/cm3, typically 30-50 Shore A) suits a flexible coaster or non-slip drawer liner; model it 3-5 mm thick, thicker than a rigid-plastic equivalent, since it has no structural stiffness alone.","applies":["coaster","drawer organizer"],"value":{"min":1.1,"max":1.2,"unit":"g/cm3"},"basis":"Common platinum-cure silicone rubber datasheet density range","sources":["hubs-3dp-guide"],"tags":["material","silicone","flexible"]},{"id":"material-abs-hook","kind":"material","tier":3,"title":"ABS for injection-moulded hooks and holders","summary":"ABS (~1.05 g/cm3) is a common injection-moulded material for mass-produced wall hooks, pen holders and phone stands, balancing impact resistance with mould-fill ease at the 1.5-3.5 mm wall this pack recommends.","applies":["wall hook","pen holder","phone stand"],"value":{"value":1.05,"unit":"g/cm3"},"basis":"Standard ABS resin datasheet density","sources":["hubs-injection-guide"],"tags":["material","abs","injection-molding"]},{"id":"test-tipover-stand","kind":"test","tier":2,"title":"Tip-over stability test for a stand or holder","summary":"Load the stand with its rated device/item and apply a 5N lateral push at the top; passing means the base footprint and CG stay within this pack's stability ratios for phone/headphone/pen stands rather than the piece rocking or falling over.","applies":["phone stand","headphone stand","pen holder","bookend"],"value":{"value":5,"unit":"N"},"basis":"A nominal incidental push (bumping a desk, brushing past) is the realistic disturbance a freestanding desk object must survive without tipping","sources":["hubs-3dp-guide"],"tags":["test","tip-over","stability"]},{"id":"test-hinge-cycle-box","kind":"test","tier":2,"title":"Hinge open/close cycle test for a hinged box","summary":"Cycle a print-in-place or living hinge on a box lid 1,000-5,000 times by hand; passing means the hinge clearance and knuckle wall from this pack's hinge entries haven't worn loose or cracked at the knuckle root.","applies":["hinged box","box with lid"],"value":{"min":1000,"max":5000,"unit":"cycles"},"basis":"Practical hand-use cycle count for a small hinged box over its expected desk lifetime, well below an injection-moulded living-hinge's 100k+ target","sources":["prusa-design-guide"],"tags":["test","hinge","cycle"]},{"id":"test-load-static-riser","kind":"test","tier":2,"title":"Static load test for a riser or wall hook","summary":"Apply the rated static load (laptop/monitor mass on a riser, hook's rated kg hung from its tip) for 24h and check for creep/sag; passing means deflection stays visually flat and the part returns to shape once unloaded.","applies":["laptop stand","monitor riser","wall hook"],"value":{"min":24,"unit":"h"},"basis":"Sustained-load creep is the realistic failure mode for a plastic riser or hook holding a static weight for hours at a time, not an instantaneous overload","sources":["hubs-3dp-guide"],"tags":["test","load","creep"]},{"id":"test-small-parts-desk","kind":"test","tier":3,"title":"Small-parts cylinder check for a household-adjacent desk object","summary":"If a desk object (keychain fob, small organiser piece) could plausibly reach a household with young children, check any detachable piece against the CPSC small-parts cylinder (31.7 x 57.1 mm); a piece that fits inside fails for that context even though it's not a toy.","applies":["keychain","keyring tag"],"value":{"value":31.7,"unit":"mm"},"basis":"16 CFR 1501 small-parts cylinder, applied as a precaution for small detachable household items even outside formal toy scope","sources":["cpsc-16cfr1501"],"tags":["test","small-parts","safety"]},{"id":"standard-astm-f963-desk","kind":"standard","tier":3,"title":"ASTM F963 relevance to desk novelty items","summary":"ASTM F963 (toy safety: small parts, sharp points/edges, cord/string length) is the standard to check against if a desk object is marketed to or likely used by children, even when it's nominally a stationery item.","applies":[],"basis":"Governing US toy-safety standard; a children's-market desk item (novelty pen holder, keychain) inherits its requirements","sources":["astm-f963"],"tags":["standard","astm-f963","safety"]},{"id":"recipe-phone-stand","kind":"recipe","tier":2,"title":"Recipe: angled phone stand with slot and cable notch","summary":"Build a 70x45x50 mm phone-stand block, cut a 10 mm slot through the top at a 65deg back-lean angle to hold a cased phone, then cut an 8 mm cable notch through the front face into the base of the slot.","applies":["phone stand"],"basis":"Combines phone-stand-slot-width, phone-stand-viewing-angle and phone-stand-cable-notch into one buildable stand","sources":["apple-iphone15-specs","osha-computer-workstations"],"tags":["recipe","phone-stand"],"recipe":{"prompt":"Model a phone stand: a 70x45x50mm block with a 10mm slot cut through the top at a 65 degree back-lean angle to hold a cased phone, and a cable notch through the front","steps":[{"tool":"cad_box","args":{"dx":70,"dy":45,"dz":50},"note":"phone stand body block"},{"tool":"cad_box","args":{"dx":80,"dy":10,"dz":60,"origin":[-5,17.5,20],"rotate":{"rx":-0.4363,"center":[35,22.5,50]}},"note":"slot tool: 10mm-thick plate tilted 25deg off vertical (65deg from horizontal) through the top face, oversized to fully pierce"},{"tool":"cad_boolean_subtract","args":{"of":"$0","tool":"$1"},"note":"cut the angled phone slot"},{"tool":"cad_box","args":{"dx":8,"dy":50,"dz":6,"origin":[31,-5,0]},"note":"cable notch tool through the front face into the slot base"},{"tool":"cad_boolean_subtract","args":{"of":"$2","tool":"$3"},"note":"cut the cable notch"}],"expect":{"volume":134340,"faceCount":14,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-pen-holder","kind":"recipe","tier":2,"title":"Recipe: cylindrical pen holder cup","summary":"Build a 60 mm outer-diameter, 100 mm tall pen-holder cup with a 2.4 mm wall, shelled open at the top, as a 28-gon approximation of a cylinder.","applies":["pen holder","pencil cup"],"basis":"Combines pen-holder-wall-thickness and pen-holder-base-stability into one buildable cup","sources":["hubs-3dp-guide"],"tags":["recipe","pen-holder"],"recipe":{"prompt":"Model a pen holder cup: 60mm outer diameter, 100mm tall, 2.4mm wall, open top","steps":[{"tool":"cad_cylinder","args":{"r":30,"h":100},"note":"pen holder outer cylinder"},{"tool":"cad_shell","args":{"of":"$0","thickness":2.4,"open":[{"normal":[0,0,1]}]},"note":"hollow into a cup, open top"}],"expect":{"volume":49172.91,"faceCount":7,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-coaster","kind":"recipe","tier":2,"title":"Recipe: round coaster with drink-ring lip","summary":"Build a 95 mm diameter, 5 mm thick coaster disc, then add a 2 mm tall, 4 mm wide raised ring lip 3 mm in from the outer edge.","applies":["coaster"],"basis":"Combines coaster-diameter, coaster-thickness and coaster-ring-lip into one buildable coaster","sources":["hubs-3dp-guide"],"tags":["recipe","coaster"],"recipe":{"prompt":"Model a round coaster: 95mm diameter, 5mm thick base, with a 2mm tall raised drink-ring lip near the outer edge","steps":[{"tool":"cad_cylinder","args":{"r":47.5,"h":5},"note":"coaster base disc"},{"tool":"cad_cylinder","args":{"r":44.5,"h":2,"origin":[0,0,5]},"note":"ring lip tool: outer wall of the lip ring, stacked on top of the disc"},{"tool":"cad_boolean_union","args":{"of":"$0","tool":"$1"},"note":"union the ring wall onto the disc"},{"tool":"cad_cylinder","args":{"r":40.5,"h":4,"origin":[0,0,3]},"note":"bore tool: hollows the ring back down to a 4mm-wide lip"},{"tool":"cad_boolean_subtract","args":{"of":"$2","tool":"$3"},"note":"cut the ring's inner face, leaving a 4mm-wide, 2mm-tall lip"}],"expect":{"volume":27271.38,"faceCount":10,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}}]},{"$schema":"nativecad-dfm-pack/1","id":"desktop-robots","title":"Desktop & companion robots -- small humanoids, robot pets, rovers, AI devices","sector":"desktop-robots","version":"2026-09-04","summary":"Envelope, DOF, servo-pocket and shell numbers for desk humanoids, robot pets/quadrupeds, two-wheel rovers, animatronic eye heads and AI-device/smart-speaker builds -- eye/camera/port cutouts, battery bays, stability and pinch-point rules, and the tests these products are held to.","aliases":["desk robot","desktop robot","companion robot","robot pet","robot dog","quadruped","small humanoid","humanoid","robot head","animatronic eye","hobby robot kit","robot chassis","line follower","sumo robot","ai device","ai pin","smart speaker","voice assistant","camera module","robot face display","wheeled robot"],"crossSector":false,"size":"full","sources":[{"id":"hf-reachy-mini","title":"Hugging Face Reachy Mini Lite Hardware Datasheet","url":"https://huggingface.co/docs/reachy_mini/platforms/reachy_mini_lite/hardware","accessed":"2026-09-04"},{"id":"feetech-sts3215","title":"Feetech STS3215 Smart Servo Specifications","url":"https://servodatabase.com/servo/feetech/sts3215","accessed":"2026-09-04"},{"id":"petoi-bittle-specs","title":"Petoi Bittle Robot Dog Technical Specifications","url":"https://www.petoi.com/pages/bittle-robot-dog-specifications","accessed":"2026-09-04"},{"id":"unitree-go2-specs","title":"Unitree Go2 Quadruped Robot Specifications","url":"https://www.unitree.com/go2/","accessed":"2026-09-04"},{"id":"gc9a01-module-datasheet","title":"1.28in GC9A01 Round TFT LCD Module Datasheet","url":"https://www.waveshare.com/1.28inch-lcd-module.htm","accessed":"2026-09-04"},{"id":"oled096-datasheet","title":"0.96in SSD1306 OLED Display Module Datasheet","url":"https://www.waveshare.com/wiki/0.96inch_OLED_(B)","accessed":"2026-09-04"},{"id":"picamera-v3-datasheet","title":"Raspberry Pi Camera Module 3 Product Brief","url":"https://www.raspberrypi.com/documentation/accessories/camera.html","accessed":"2026-09-04"},{"id":"esp32cam-datasheet","title":"AI-Thinker ESP32-CAM Development Board Datasheet","url":"https://docs.ai-thinker.com/en/esp32-cam","accessed":"2026-09-04"},{"id":"usb-c-spec","title":"USB Type-C Cable and Connector Specification (USB-IF)","url":"https://www.usb.org/document-library/usb-type-cr-cable-and-connector-specification-revision-21","accessed":"2026-09-04"},{"id":"iec-61960","title":"IEC 61960 Secondary Lithium Cells for Portable Applications","url":"https://webstore.iec.ch/publication/5416","accessed":"2026-09-04"},{"id":"n20-motor-datasheet","title":"N20 Micro Metal Gear Motor Datasheet","url":"https://www.handsontec.com/dataspecs/motor_fan/GA12-N20.pdf","accessed":"2026-09-04"},{"id":"iso-13482","title":"ISO 13482 Robots and Robotic Devices -- Personal Care Robot Safety","url":"https://www.iso.org/standard/53820.html","accessed":"2026-09-04"},{"id":"iec-60335-1","title":"IEC 60335-1 Household and Similar Electrical Appliances -- Safety","url":"https://webstore.iec.ch/publication/23456","accessed":"2026-09-04"},{"id":"iec-60068-2-31","title":"IEC 60068-2-31 Environmental Testing -- Rough Handling Shocks","url":"https://webstore.iec.ch/publication/1000","accessed":"2026-09-04"},{"id":"hobby-component-datasheets","title":"Hobby robotics component datasheets (magnets, LiPo pouches, TPU pads, casters, mini speakers, MEMS mics, ball joints, wiring)","accessed":"2026-09-04"},{"id":"hubs-3dp-guide","title":"Hubs (Protolabs) 3D Printing Design Guidelines","url":"https://www.hubs.com/knowledge-base/","accessed":"2026-09-04"},{"id":"ai-device-envelope-refs","title":"Smart speaker / AI wearable device dimension references (HomePod mini, Echo Dot, Ai Pin, Rabbit r1)","accessed":"2026-09-04"}],"entries":[{"id":"envelope-desk-humanoid","kind":"dimension","tier":1,"title":"Desktop humanoid/companion robot envelope","summary":"A desk humanoid or companion robot (Reachy Mini-class) stands 160-280 mm tall in a 160x160 mm footprint; a smaller pan-tilt head-only unit runs 90-150 mm tall.","applies":["desk robot","desktop robot","companion robot","small humanoid","humanoid","robot head"],"value":{"table":[{"param":"height","min":160,"max":280,"typical":220},{"param":"footprintSquare","value":160}],"unit":"mm"},"basis":"Reachy Mini Lite published envelope, the reference open-source desk-humanoid platform","sources":["hf-reachy-mini"],"tags":["envelope","humanoid","companion-robot"]},{"id":"mass-desk-humanoid","kind":"dimension","tier":1,"title":"Desktop humanoid/companion robot mass","summary":"A desk humanoid/companion robot masses 1.3-1.5 kg fully assembled (Reachy Mini Lite: 1.5 kg); a bare pan-tilt head-only build without a body/base runs roughly 0.3-0.5 kg.","applies":["desk robot","desktop robot","companion robot","humanoid","robot head"],"value":{"min":0.3,"max":1.5,"typical":1.5,"unit":"kg"},"basis":"Reachy Mini Lite published weight, scaled down for a head-only sub-assembly","sources":["hf-reachy-mini"],"tags":["mass","weight","humanoid"]},{"id":"dof-desk-companion-robot","kind":"dimension","tier":1,"title":"Desk companion robot head/body degrees of freedom","summary":"A desk companion's head commonly carries 4-6 DOF (pan/tilt/roll plus a small XYZ float) plus 1 body-yaw and 1-2 antenna axes; Reachy Mini Lite runs 6 head DOF, 1 body rotation and 2 antenna axes across 9 servos.","applies":["desk robot","desktop robot","companion robot","small humanoid","humanoid","robot head"],"value":{"min":4,"max":9,"typical":6,"unit":"count"},"basis":"Reachy Mini Lite published kinematic breakdown (head 3 rotations + 3 translations, body 1 rotation, antennas 1 rotation x2)","sources":["hf-reachy-mini"],"tags":["dof","kinematics","humanoid"]},{"id":"sts3215-servo-body-dims","kind":"dimension","tier":1,"title":"STS3215 smart servo body dimensions","summary":"The Feetech STS3215 smart servo (the SO-100/SO-101 arm's actuator) measures 45.2 x 24.7 x 35 mm body, 55 g mass, with a 25-tooth spline horn -- see robotics/servo-sg90-dims and robotics/servo-mg996r-dims for the smaller/larger hobby servos this pack does not repeat.","applies":["hobby robot kit","robot arm","small humanoid","robot chassis"],"value":{"table":[{"param":"length","value":45.2},{"param":"width","value":24.7},{"param":"height","value":35}],"unit":"mm"},"basis":"Feetech STS3215 published case dimensions, the common actuator in open-source arm/humanoid kits (SO-100/SO-101, LeRobot)","sources":["feetech-sts3215"],"see":["robotics/servo-sg90-dims","robotics/servo-mg996r-dims"],"tags":["servo","sts3215","dimension"]},{"id":"servo-pocket-clearance","kind":"rule","tier":1,"title":"Servo body pocket clearance for a printed bracket","summary":"Pocket a servo body at its nominal L x W x H plus 0.2-0.3 mm clearance per side (0.4-0.6 mm total) for an FDM/SLA-printed bracket; tighten to 0.1-0.15 mm per side on a CNC or SLS part.","applies":["hobby robot kit","robot chassis","small humanoid"],"value":{"min":0.2,"max":0.3,"unit":"mm"},"basis":"Common hobby-servo pocket allowance balancing a snug seat against printed-part dimensional tolerance","sources":["feetech-sts3215"],"tags":["servo","pocket","clearance","tolerance"]},{"id":"servo-horn-spline-recess","kind":"feature","tier":1,"title":"Servo horn spline boss recess","summary":"A common metal-gear servo spline (STS3215/MG996R-class, 25T) presents a horn boss about 6 mm dia standing 3-4 mm proud of the case; recess the mating arm/head 6.2 mm dia x 3.5 mm deep with a central M3 clearance hole so the horn seats flush.","applies":["servo","robot arm","hobby robot kit"],"value":{"table":[{"param":"bossDia","value":6.2},{"param":"bossDepth","value":3.5}],"unit":"mm"},"basis":"Common 25-tooth metal-gear servo horn/spline boss geometry","sources":["feetech-sts3215"],"tags":["servo","horn","spline","recess"]},{"id":"wire-channel-sizing","kind":"rule","tier":1,"title":"Wire channel for servo/sensor cable bundles","summary":"Route a 3-wire servo cable (or a camera/mic ribbon) through a 4-6 mm wide x 3-4 mm deep channel with 1-2 mm of wall on either side; a channel under 3 mm pinches a typical 26-28 AWG bundle on assembly.","applies":["hobby robot kit","robot chassis","small humanoid"],"value":{"table":[{"param":"width","min":4,"max":6},{"param":"depth","min":3,"max":4}],"unit":"mm"},"basis":"Common hobby-robotics cable-routing practice sized to a bundled servo/sensor cable jacket","sources":["hobby-component-datasheets"],"tags":["wire","cable","channel","routing"]},{"id":"eye-display-cutout-gc9a01-128","kind":"dimension","tier":1,"title":"Round eye display cutout, 1.28in GC9A01 (240x240)","summary":"A 1.28 in round GC9A01 TFT (240x240, 32.4 mm active circle on a 38 x 45.5 x 3.2 mm PCB) needs a 33-34 mm dia face cutout, with the PCB registered on a wider boss so the display seats flush behind the eye opening.","applies":["animatronic eye","robot face display","robot head","small humanoid"],"value":{"table":[{"param":"activeDia","value":32.4},{"param":"pcbLength","value":38},{"param":"pcbWidth","value":45.5},{"param":"pcbThickness","value":3.2}],"unit":"mm"},"basis":"GC9A01 1.28in round LCD module published PCB and active-area dimensions","sources":["gc9a01-module-datasheet"],"tags":["display","eye","gc9a01","cutout"]},{"id":"eye-display-cutout-oled096","kind":"dimension","tier":1,"title":"0.96in OLED status/eye display cutout","summary":"A 0.96 in SSD1306 OLED module has a 27.3 x 27.8 mm active area; cut a 28-29 mm wide rectangular window with 2-4 mm of PCB standoff clearance around it for a status face or a single-eye readout on a smaller companion robot.","applies":["animatronic eye","robot face display","desk robot","ai device"],"value":{"table":[{"param":"activeWidth","value":27.3},{"param":"activeHeight","value":27.8}],"unit":"mm"},"basis":"0.96in SSD1306 OLED module published active-area dimensions","sources":["oled096-datasheet"],"tags":["display","oled","eye","cutout"]},{"id":"camera-cutout-picamv3","kind":"dimension","tier":1,"title":"Raspberry Pi Camera Module 3 lens cutout","summary":"The Raspberry Pi Camera Module 3 board is 25 x 24 mm; cut a dia8-9 mm lens aperture centred on the lens barrel plus two M2 clearance holes on the board's own mounting-hole spacing for a robot-face camera bezel.","applies":["camera module","robot head","robot face display"],"value":{"table":[{"param":"boardWidth","value":25},{"param":"boardHeight","value":24}],"unit":"mm"},"basis":"Raspberry Pi Camera Module 3 published board outline","sources":["picamera-v3-datasheet"],"tags":["camera","picamera","cutout"]},{"id":"camera-cutout-esp32cam","kind":"dimension","tier":1,"title":"ESP32-CAM board bay cutout","summary":"An ESP32-CAM module board is 27 x 40.5 mm with its OV2640 lens offset toward one end; cut a dia10 mm lens clearance hole and a 27 x 40.5 mm board slot with 1-2 mm edge clearance for a printed camera bay.","applies":["camera module","robot head","hobby robot kit"],"value":{"table":[{"param":"boardWidth","value":27},{"param":"boardHeight","value":40.5}],"unit":"mm"},"basis":"AI-Thinker ESP32-CAM published board outline","sources":["esp32cam-datasheet"],"tags":["camera","esp32-cam","cutout"]},{"id":"usb-c-port-cutout","kind":"dimension","tier":1,"title":"USB-C port cutout for a charging/data bay","summary":"A USB-C receptacle needs a 9 x 3.3 mm cutout (the connector envelope) plus 0.3-0.5 mm clearance per side so a printed or moulded shell doesn't bind the plug; a board-edge jack commonly sits 1.6-3 mm proud of the PCB.","applies":["ai device","ai pin","desk robot","desktop robot"],"value":{"table":[{"param":"cutoutWidth","value":9},{"param":"cutoutHeight","value":3.3}],"unit":"mm"},"basis":"USB Type-C Cable and Connector Specification published receptacle envelope","sources":["usb-c-spec"],"tags":["usb-c","port","cutout"]},{"id":"battery-18650-bay","kind":"dimension","tier":1,"title":"18650 li-ion cell bay","summary":"An 18650 cylindrical cell (dia18.0-18.5 x 64.8-65.3 mm per IEC 61960) needs a dia18.8-19 x 66 mm pocket with 2-3 mm of spring/PCB contact travel at one end -- common single or 2S/2P packs power a desk rover or humanoid base.","applies":["desk robot","desktop robot","wheeled robot","small humanoid"],"value":{"table":[{"param":"cellDia","min":18,"max":18.5},{"param":"cellLength","min":64.8,"max":65.3},{"param":"pocketDia","min":18.8,"max":19},{"param":"pocketLength","value":66}],"unit":"mm"},"basis":"IEC 61960 secondary lithium cell dimension tolerances for the 18650 format","sources":["iec-61960"],"tags":["battery","18650","li-ion","bay"]},{"id":"shell-wall-thickness-print","kind":"dimension","tier":1,"title":"Printed companion-robot shell wall thickness","summary":"A 3D-printed PLA/PETG companion-robot shell (head, torso, chassis cover) runs 2.0-2.5 mm nominal wall -- thinner flexes under servo-cable strain and snap features, thicker adds print time and mass on a desk-scale part.","applies":["desk robot","desktop robot","companion robot","robot head","robot chassis"],"value":{"min":2,"max":2.5,"typical":2,"unit":"mm"},"basis":"Common FDM wall-thickness guidance for a self-supporting rigid shell at desk-robot scale","sources":["hubs-3dp-guide"],"see":["consumer/wall-thickness-fdm"],"tags":["wall","shell","3d-printing"]},{"id":"com-support-polygon-rule","kind":"rule","tier":1,"title":"Centre of mass inside the support polygon","summary":"Keep a desk robot's centre of mass within the polygon formed by its feet/base contact points, and at or below about 40% of overall height for a narrow two-point or bipedal stance, so it self-rights rather than tips under a shoulder-height nudge.","applies":["small humanoid","humanoid","robot dog","quadruped","desk robot"],"value":{"max":40,"unit":"%"},"basis":"Household-appliance stability practice (IEC 60335-1) applied as a desk-robot CoM design proxy","sources":["iec-60335-1"],"tags":["stability","center-of-mass","tip-over"]},{"id":"tip-over-stability-angle-rule","kind":"rule","tier":1,"title":"Static stability angle for a freestanding desk robot","summary":"A desk robot resting on a table or floor should remain upright when tilted to 10 deg from horizontal on its most tip-prone axis (the IEC 60335-1 household-appliance stability criterion, applied here as a desk-robot design proxy).","applies":["small humanoid","robot dog","quadruped","wheeled robot","desk robot"],"value":{"value":10,"unit":"deg"},"basis":"IEC 60335-1 clause 20 stability-test tilt angle, borrowed for a desk/companion robot in the absence of a dedicated standard","sources":["iec-60335-1"],"tags":["stability","tip-over","test"]},{"id":"wheel-tt-n20-motor-dims","kind":"dimension","tier":1,"title":"TT and N20 gear motor sizes for a desk rover","summary":"A desk-rover drivetrain uses either a TT geared DC motor paired with a 65 mm OD wheel, or a smaller N20 micro gear motor (12 x 10 mm gearbox cross-section, dia3 x 10 mm output D-shaft) for a lighter build -- match the wheel bore to the chosen motor's own shaft.","applies":["wheeled robot","desk robot","robot chassis","line follower","sumo robot"],"value":{"table":[{"param":"ttWheelDia","value":65},{"param":"n20GearboxWidth","value":12},{"param":"n20GearboxHeight","value":10},{"param":"n20ShaftDia","value":3},{"param":"n20ShaftLength","value":10}],"unit":"mm"},"basis":"N20 micro gear motor published gearbox/shaft dimensions; 65 mm is the common paired TT-motor wheel size in hobby-rover kits","sources":["n20-motor-datasheet","hobby-component-datasheets"],"tags":["motor","wheel","n20","tt-motor"]},{"id":"pinch-point-clearance-rule","kind":"rule","tier":1,"title":"Pinch-point clearance on moving joints","summary":"Keep any gap next to a powered joint (a neck, wheel arch, gripper) under 5 mm or over 25 mm so a finger cannot wedge and be crushed as the joint moves -- the ISO 13482 finger-entrapment band for a consumer-facing moving part.","applies":["small humanoid","robot dog","quadruped","robot arm","gripper"],"value":{"min":5,"max":25,"unit":"mm","note":"avoid this band; safe below 5mm or above 25mm"},"basis":"ISO 13482 personal care robot safety finger-entrapment clearance guidance","sources":["iso-13482"],"tags":["pinch-point","safety","clearance"]},{"id":"quadruped-envelope-bittle","kind":"dimension","tier":2,"title":"Petoi Bittle-class desktop quadruped envelope","summary":"A Bittle-class desktop quadruped (robot dog/robot pet) measures about 200 x 110 x 110 mm and weighs 290 g with 9 DOF (2 per leg plus 1 neck) -- the reference envelope for a desktop 'robot dog'/'quadruped' request.","applies":["robot dog","quadruped","robot pet","hobby robot kit"],"value":{"table":[{"param":"length","value":200},{"param":"width","value":110},{"param":"height","value":110},{"param":"mass_g","value":290},{"param":"dof","value":9}],"unit":"mm"},"basis":"Petoi Bittle published envelope, mass and joint count","sources":["petoi-bittle-specs"],"tags":["quadruped","envelope","bittle"]},{"id":"quadruped-leg-link-proportions","kind":"dimension","tier":2,"title":"Quadruped leg link length vs body length","summary":"On a Bittle-class desktop quadruped, thigh and shank links each run roughly 22-28% of the 200 mm overall body length (about 45-55 mm each); scale each leg link to that fraction of the body length to preserve the walking gait's reach.","applies":["robot dog","quadruped"],"value":{"min":22,"max":28,"unit":"%"},"basis":"Petoi Bittle published leg geometry proportioned against its own body length","sources":["petoi-bittle-specs"],"tags":["quadruped","leg","proportion"]},{"id":"large-quadruped-reference-envelope","kind":"dimension","tier":2,"title":"Larger research/hobbyist quadruped reference envelope","summary":"Beyond desktop scale, a Unitree Go2-class quadruped stands about 700 x 310 x 400 mm and weighs about 15 kg; use only as an upper-bound reference -- this pack's 200-300 mm, sub-2 kg entries are the default for a text-to-CAD 'robot dog' unless asked for a larger build.","applies":["robot dog","quadruped"],"value":{"table":[{"param":"length","value":700},{"param":"width","value":310},{"param":"height","value":400},{"param":"mass_kg","value":15}],"unit":"mm"},"basis":"Unitree Go2 published standing envelope and system mass","sources":["unitree-go2-specs"],"tags":["quadruped","large","reference"]},{"id":"rover-chassis-plate-dimension","kind":"dimension","tier":2,"title":"Two-wheel desk rover chassis plate","summary":"A desk-rover chassis plate runs 90-150 mm long x 70-110 mm wide x 2-3 mm thick (FR4, acrylic or printed), sized around a pair of TT or N20 drive motors and a single front or rear caster.","applies":["wheeled robot","desk robot","robot chassis","line follower","sumo robot"],"value":{"table":[{"param":"length","min":90,"max":150},{"param":"width","min":70,"max":110},{"param":"thickness","min":2,"max":3}],"unit":"mm"},"basis":"Common hobby two-wheel rover chassis footprint sized to a pair of TT/N20 motors plus battery","sources":["hobby-component-datasheets"],"tags":["rover","chassis","wheeled"]},{"id":"caster-ball-dimension","kind":"dimension","tier":2,"title":"Caster ball size for a desk rover","summary":"A desk-rover's passive third contact point uses a 10-13 mm steel or nylon caster ball in a socket about 1 mm larger in diameter, giving 2-3 mm of vertical float so both drive wheels stay loaded on an uneven desk surface.","applies":["wheeled robot","desk robot","robot chassis"],"value":{"min":10,"max":13,"unit":"mm"},"basis":"Common hobby ball-caster size paired with 60-70 mm drive wheels","sources":["hobby-component-datasheets"],"tags":["caster","rover","wheel"]},{"id":"speaker-driver-cutout-40mm","kind":"dimension","tier":2,"title":"40mm / 2in full-range speaker driver cutout","summary":"A 40 mm (sold as '2 in') full-range speaker driver needs a dia38-39 mm through-cutout on its magnet side and a dia42-44 mm x 2-3 mm deep counterbore lip on the front face so the driver's frame seats and is captured by a grille.","applies":["ai device","smart speaker","voice assistant"],"value":{"table":[{"param":"throughCutoutDia","min":38,"max":39},{"param":"counterboreDia","min":42,"max":44},{"param":"counterboreDepth","min":2,"max":3}],"unit":"mm"},"basis":"Common 40 mm full-range mini speaker driver frame dimensions","sources":["hobby-component-datasheets"],"tags":["speaker","driver","cutout"]},{"id":"speaker-grille-acoustic-port-rule","kind":"rule","tier":2,"title":"Speaker grille open-area rule","summary":"Perforate a speaker grille to at least 50% open area within the driver's radiating diameter, using 1.5-2.5 mm holes on a 3-4 mm pitch -- less open area measurably attenuates high frequencies and muffles a voice-assistant reply.","applies":["ai device","smart speaker","voice assistant"],"value":{"min":50,"unit":"%"},"basis":"Common acoustic-grille open-area guidance for a small full-range driver","sources":["hobby-component-datasheets"],"tags":["speaker","grille","acoustic"]},{"id":"mic-hole-dimension","kind":"dimension","tier":2,"title":"Microphone port hole size","summary":"A MEMS microphone port (a single mic, or one of a 2-4 mic far-field array) is a dia1.0-2.0 mm hole through a wall up to 1.5 mm thick, centred directly over the mic's own port so the acoustic channel doesn't low-pass the pickup.","applies":["ai device","voice assistant","smart speaker","desk robot"],"value":{"min":1,"max":2,"unit":"mm"},"basis":"Common MEMS microphone acoustic-port sizing to avoid an over-long or offset sound channel","sources":["hobby-component-datasheets"],"tags":["microphone","port","acoustic"]},{"id":"ball-joint-neck-dimension","kind":"dimension","tier":2,"title":"Ball-joint neck for a head/body tilt joint","summary":"A friction ball-joint neck linking a robot head to its torso uses a 12-20 mm ball diameter with a socket wall of 1.5-2x the shell thickness, giving roughly +-20-30 deg of tilt/pan before the socket rim binds -- a low-part-count alternative to a geared pan-tilt bracket.","applies":["robot head","animatronic eye","small humanoid","companion robot"],"value":{"min":12,"max":20,"unit":"mm"},"basis":"Common hobby-animatronic ball-and-socket neck-joint proportions","sources":["hobby-component-datasheets"],"tags":["neck","ball-joint","head"]},{"id":"animatronic-eye-mechanism-envelope","kind":"dimension","tier":2,"title":"Animatronic single-eye mechanism envelope","summary":"A 2-DOF (pan/tilt) animatronic eye mechanism built around a dia30-35 mm eyeball (or this pack's eye-display-cutout-gc9a01-128) needs about 45-55 mm of depth behind the face shell for its two micro servos and linkage, plus 5-8 mm of radial clearance for the eyeball's rotation arc.","applies":["animatronic eye","robot face display","robot head"],"value":{"table":[{"param":"depthBehindFace","min":45,"max":55},{"param":"radialClearance","min":5,"max":8}],"unit":"mm"},"basis":"Common 2-DOF hobby animatronic eye-mechanism envelope for a two-micro-servo linkage","sources":["hobby-component-datasheets"],"tags":["eye","animatronic","mechanism"]},{"id":"shell-snap-magnet-closure","kind":"feature","tier":2,"title":"Snap and magnet shell-half closures","summary":"Close a two-half printed shell with 2-3 mm snap-fit hooks at load-bearing points plus one or two 6 x 3 mm N35 disc magnets at panels needing tool-free opening (battery door, USB bay) -- a magnet alone rarely holds a panel through a 1 m drop, so pair it with a mechanical catch.","applies":["desk robot","desktop robot","robot chassis","companion robot"],"value":{"table":[{"param":"magnetDia","value":6},{"param":"magnetThickness","value":3}],"unit":"mm"},"basis":"Common 6x3mm N35 disc magnet size used for tool-free access panels; see consumer/snap-fit-cantilever-basics for the mechanical catch proportions","sources":["hobby-component-datasheets"],"see":["consumer/snap-fit-cantilever-basics"],"tags":["snap-fit","magnet","closure"]},{"id":"servo-bracket-tab-hole","kind":"dimension","tier":2,"title":"Servo bracket mounting tab hole","summary":"Size a servo bracket's ear/tab screw hole at dia2.2-2.5 mm for the servo's usual M2 self-tapping mounting screw, placed on the servo's own ear spacing (28 mm for SG90-class, roughly 10 mm rib centres for STS3215-class horn brackets).","applies":["servo","hobby robot kit","robot arm"],"value":{"min":2.2,"max":2.5,"unit":"mm"},"basis":"Common M2 self-tapping servo mounting screw and its clearance hole","sources":["feetech-sts3215"],"see":["robotics/servo-sg90-dims"],"tags":["servo","bracket","tab","hole"]},{"id":"lipo-pouch-bay-dimension","kind":"dimension","tier":2,"title":"LiPo pouch cell bay allowance","summary":"A single-cell LiPo pouch (500-2000 mAh, roughly 30-55 x 20-35 x 5-9 mm depending on capacity) needs a bay 1-2 mm larger than the cell's datasheet envelope on every face, plus a swelling allowance of about 5% of thickness over the pack's service life.","applies":["desk robot","desktop robot","small humanoid","wheeled robot"],"value":{"table":[{"param":"lengthRange","min":30,"max":55},{"param":"widthRange","min":20,"max":35},{"param":"thicknessRange","min":5,"max":9}],"unit":"mm"},"basis":"Common single-cell LiPo pouch envelope range across 500-2000 mAh capacities, plus swelling margin","sources":["hobby-component-datasheets"],"tags":["battery","lipo","pouch","bay"]},{"id":"ai-device-smart-speaker-envelope","kind":"dimension","tier":2,"title":"Smart speaker / AI wearable device envelope reference","summary":"A cylindrical smart speaker (Echo Dot 5-class) runs about dia100 x 89 mm; a puck one (HomePod mini-class) about dia98 x 84 mm; a clip-on AI wearable (Ai Pin/Rabbit r1-class) runs 45-78 mm across, 8-18 mm thick -- the reference envelope for an 'ai device' request.","applies":["ai device","ai pin","smart speaker","voice assistant"],"value":{"table":[{"param":"echoDot5Dia","value":100},{"param":"echoDot5Height","value":89},{"param":"homepodMiniDia","value":98},{"param":"homepodMiniHeight","value":84}],"unit":"mm"},"basis":"Published envelope dimensions for common smart-speaker and AI-wearable reference products","sources":["ai-device-envelope-refs"],"tags":["ai-device","smart-speaker","envelope"]},{"id":"material-abs-shell","kind":"material","tier":2,"title":"ABS for a companion-robot printed/moulded shell","summary":"ABS (about 1.04 g/cm3) is a common companion-robot shell material where impact resistance at a desk-drop height matters more than PLA's stiffness -- see consumer/wall-thickness-abs for the process wall-thickness table this pack does not repeat.","applies":["desk robot","desktop robot","companion robot","robot head"],"value":{"value":1.04,"unit":"g/cm3"},"basis":"Standard ABS resin/filament datasheet density","sources":["hubs-3dp-guide"],"see":["consumer/wall-thickness-abs"],"tags":["material","abs","shell"]},{"id":"material-pla-petg-companion","kind":"material","tier":2,"title":"PLA and PETG for companion-robot shells and chassis","summary":"PLA (about 1.24 g/cm3, stiff, easy to print, best cosmetic detail for a face/eye bezel) and PETG (about 1.27 g/cm3, tougher, better for a chassis plate or leg link under repeated flex) are the two default FDM materials for this sector.","applies":["desk robot","desktop robot","robot chassis","quadruped","robot dog"],"value":{"table":[{"material":"pla","density":1.24},{"material":"petg","density":1.27}],"unit":"g/cm3"},"basis":"Standard PLA and PETG filament datasheet densities","sources":["hubs-3dp-guide"],"tags":["material","pla","petg"]},{"id":"material-tpu-foot-pad","kind":"material","tier":2,"title":"TPU/silicone for quadruped foot pads and grip surfaces","summary":"A quadruped's foot pad or a rover's bumper uses 85-95A Shore TPU (a dedicated foot pad) or 30-60A silicone (a soft grip overlay), printed or moulded 2-4 mm thick over the rigid foot/bumper core for traction and impact absorption.","applies":["robot dog","quadruped","robot pet","wheeled robot"],"value":{"table":[{"param":"tpuShoreA","min":85,"max":95},{"param":"siliconeShoreA","min":30,"max":60},{"param":"padThickness","min":2,"max":4}],"unit":"mm"},"basis":"Common hobby-robotics foot-pad and grip-overlay material and thickness practice","sources":["hobby-component-datasheets"],"tags":["material","tpu","foot-pad"]},{"id":"test-drop-1m-desktop-robot","kind":"test","tier":2,"title":"1m drop test on corners and base","summary":"Drop the assembled desk robot 1000 mm onto its base, a side and a leading corner (IEC 60068-2-31-style rough-handling shock); passing needs corner/edge radii of at least 2 mm and a shell wall that doesn't crack at a snap or boss root on impact.","applies":["desk robot","desktop robot","companion robot","robot pet"],"value":{"value":1000,"unit":"mm"},"basis":"IEC 60068-2-31 rough-handling shock procedure, applied at a desktop-robot drop height","sources":["iec-60068-2-31"],"tags":["test","drop","shock"]},{"id":"test-tip-over-static-stability","kind":"test","tier":2,"title":"Static tip-over stability test (10deg tilt table)","summary":"Place the robot on a tilt table and raise it to 10 deg on its most tip-prone axis (IEC 60335-1 clause 20, applied here as a desk/floor-robot proxy); if it tips, widen the base footprint or lower the battery/motor mass in the CAD model.","applies":["small humanoid","robot dog","quadruped","wheeled robot","desk robot"],"value":{"value":10,"unit":"deg"},"basis":"IEC 60335-1 clause 20 household-appliance stability test tilt angle","sources":["iec-60335-1"],"tags":["test","stability","tip-over"]},{"id":"test-pinch-point-probe","kind":"test","tier":2,"title":"Pinch-point finger-probe test","summary":"Probe every gap next to a moving joint with the ISO 13482 test finger/rod set; a gap the thicker probe enters but a thinner probe can still reach the pinch line fails, and the geometry must move outside this pack's 5-25 mm pinch-point-clearance band.","applies":["small humanoid","robot dog","quadruped","robot arm","gripper"],"basis":"ISO 13482 personal care robot finger/hand entrapment test method","sources":["iso-13482"],"tags":["test","pinch-point","safety"]},{"id":"standard-iso13482-personal-care-robots","kind":"standard","tier":2,"title":"ISO 13482 -- personal care robot safety","summary":"ISO 13482 sets safety requirements for personal care robots (mobile servant, physical assistant, person-carrier classes), including the finger/hand entrapment and stability provisions this pack's pinch-point and tip-over entries draw on -- the closest formal standard here.","applies":["small humanoid","robot dog","quadruped","companion robot"],"basis":"The safety standard behind this pack's pinch-point-clearance-rule and pinch-point-probe test","sources":["iso-13482"],"tags":["standard","iso-13482","safety"]},{"id":"standard-iec60335-1-stability","kind":"standard","tier":2,"title":"IEC 60335-1 -- household appliance stability clause","summary":"IEC 60335-1 clause 20 sets the household-appliance static stability test (a tilt to a specified angle, commonly applied at around 10 deg, without tipping) that this pack borrows as a desk-robot stability proxy in the absence of a dedicated small-companion-robot standard.","applies":["small humanoid","robot dog","quadruped","wheeled robot","desk robot"],"basis":"The standard behind this pack's com-support-polygon-rule and tip-over-stability-angle-rule","sources":["iec-60335-1"],"tags":["standard","iec-60335-1","stability"]},{"id":"recipe-servo-bracket-sts3215","kind":"recipe","tier":2,"title":"Recipe: STS3215 servo mounting bracket","summary":"Build a 60x30x4mm bracket plate with a 45.6x25.1mm through-pocket sized to the STS3215 servo body (+0.4mm clearance) and two 2.5mm M2 tab holes.","applies":["servo","hobby robot kit","robot arm"],"basis":"Combines sts3215-servo-body-dims and servo-pocket-clearance into one buildable bracket with mounting tabs","sources":["feetech-sts3215"],"tags":["recipe","servo","bracket"],"recipe":{"prompt":"Model an STS3215 servo mounting bracket: a 60x30x4mm plate with a 45.6x25.1mm through-pocket for the servo body and two 2.5mm mounting tab holes","steps":[{"tool":"cad_box","args":{"dx":60,"dy":30,"dz":4},"note":"bracket plate"},{"tool":"cad_box","args":{"dx":45.6,"dy":25.1,"dz":6,"origin":[7.2,2.45,-1]},"note":"servo-body pocket tool, +0.4mm clearance over 45.2x24.7mm, piercing top and bottom"},{"tool":"cad_boolean_subtract","args":{"of":"$0","tool":"$1"},"note":"cut the servo pocket"},{"tool":"cad_drill_hole","args":{"of":"$2","type":"drill","diameter":2.5,"center":[6,15]},"note":"first M2 tab clearance hole"},{"tool":"cad_drill_hole","args":{"of":"$3","type":"drill","diameter":2.5,"center":[54,15]},"note":"second M2 tab clearance hole (CADSF-1604: expect re-pinned to the analytic 16-face body — the old 596 was a tessellated-era face count of the same body; volume unchanged)"}],"expect":{"volume":2582.68,"faceCount":16,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-round-robot-head-eye-cutout","kind":"recipe","tier":2,"title":"Recipe: round robot head shell with eye display cutouts","summary":"Build an 80mm diameter sphere shelled to a 2mm wall (sealed cavity), then subtract two 34mm diameter cylindrical eye cutouts through the front wall for a pair of round eye displays.","applies":["robot head","animatronic eye","small humanoid","robot face display"],"basis":"Combines eye-display-cutout-gc9a01-128 and shell-wall-thickness-print into one buildable round head shell","sources":["gc9a01-module-datasheet","hubs-3dp-guide"],"tags":["recipe","robot-head","eye"],"recipe":{"prompt":"Model a round robot head shell: 80mm diameter sphere shelled to 2mm wall (sealed cavity), with two 34mm diameter eye display cutouts through the front wall","steps":[{"tool":"cad_sphere","args":{"r":40},"note":"80mm dia head sphere"},{"tool":"cad_shell","args":{"of":"$0","thickness":2},"note":"hollow to a 2mm wall, sealed cavity"},{"tool":"cad_cylinder","args":{"r":17,"h":25,"origin":[-20,50,0],"rotate":{"axis":[1,0,0],"angle":1.5707963267948966}},"note":"left eye cutout tool, axis pointing into the front of the head"},{"tool":"cad_cylinder","args":{"r":17,"h":25,"origin":[20,50,0],"rotate":{"axis":[1,0,0],"angle":1.5707963267948966}},"note":"right eye cutout tool"},{"tool":"cad_boolean_union","args":{"of":"$2","tool":"$3","meshFallback":true},"note":"union the two disjoint eye-cutout tools into one tool body"},{"tool":"cad_boolean_subtract","args":{"of":"$1","tool":"$4","meshFallback":true},"note":"cut both eye cutouts through the front shell wall in one pass — meshFallback publishes a TESSELLATED body, so its faceCount tracks tessellation density rather than topology; CADSF-1604 re-measured it at 22726 (was pinned at 3057), volume unchanged at 34539.67"}],"expect":{"volume":34539.67,"faceCount":22726,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel. This recipe passes meshFallback:true, so 22726 is a tessellation DENSITY, not a topology fact — a move in it is a re-tiling unless the volume moves too (CADSF-1604 re-measured it from 3057)"}}},{"id":"recipe-two-wheel-rover-chassis","kind":"recipe","tier":2,"title":"Recipe: two-wheel desk-rover chassis plate","summary":"Build a 120x90x3mm rover chassis plate with two 15x12mm N20 motor slots at the front and a 12mm rear caster hole.","applies":["wheeled robot","desk robot","robot chassis","line follower","sumo robot"],"basis":"Combines rover-chassis-plate-dimension and wheel-tt-n20-motor-dims into one buildable chassis","sources":["n20-motor-datasheet","hobby-component-datasheets"],"tags":["recipe","rover","chassis"],"recipe":{"prompt":"Model a 120x90x3mm two-wheel desk-rover chassis plate with two N20 motor slots and a rear caster hole","steps":[{"tool":"cad_box","args":{"dx":120,"dy":90,"dz":3},"note":"chassis plate"},{"tool":"cad_box","args":{"dx":15,"dy":12,"dz":5,"origin":[5,5,-1]},"note":"first N20 motor slot tool"},{"tool":"cad_boolean_subtract","args":{"of":"$0","tool":"$1"},"note":"cut first motor slot"},{"tool":"cad_box","args":{"dx":15,"dy":12,"dz":5,"origin":[5,73,-1]},"note":"second N20 motor slot tool"},{"tool":"cad_boolean_subtract","args":{"of":"$2","tool":"$3"},"note":"cut second motor slot"},{"tool":"cad_drill_hole","args":{"of":"$4","type":"drill","diameter":12,"center":[105,45]},"note":"rear caster mounting hole"}],"expect":{"volume":30980.71,"faceCount":16,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}}]},{"$schema":"nativecad-dfm-pack/1","id":"electronics","title":"Electronics — PCBs, enclosures, connectors, heat sinks, DIN-rail devices","sector":"electronics","version":"2026-09-03","summary":"PCB mounting, form-factor hole patterns (Raspberry Pi, Arduino, Pico, ESP32, Mini-ITX, Eurocard), enclosure walls/vents/gaskets/IP ratings, connector cutouts, thermal and DIN-rail design, plus the tests and materials electronics housings are held to.","aliases":["pcb","enclosure","electronics enclosure","raspberry pi","arduino","esp32","circuit board","heatsink","din rail","project box"],"crossSector":false,"size":"full","sources":[{"id":"rpi-4-mech","title":"Raspberry Pi 4 Model B Mechanical Drawing (raspberrypi.com downloads)","url":"https://datasheets.raspberrypi.com/rpi4/raspberry-pi-4-mechanical-drawing.pdf","accessed":"2026-09-03"},{"id":"rpi-5-mech","title":"Raspberry Pi 5 Mechanical Drawing (raspberrypi.com downloads)","url":"https://datasheets.raspberrypi.com/rpi5/raspberry-pi-5-mechanical-drawing.pdf","accessed":"2026-09-03"},{"id":"rpi-pico-datasheet","title":"Raspberry Pi Pico Datasheet (board dimensions and hole pattern)","url":"https://datasheets.raspberrypi.com/pico/pico-datasheet.pdf","accessed":"2026-09-03"},{"id":"arduino-uno-mech","title":"Arduino UNO Rev3 Reference Design (mechanical drawing)","url":"https://docs.arduino.cc/resources/pcb/A000066-full-pcb.zip","accessed":"2026-09-03"},{"id":"arduino-mega-mech","title":"Arduino Mega 2560 Rev3 Reference Design (mechanical drawing)","url":"https://docs.arduino.cc/resources/pcb/A000067-full-pcb.zip","accessed":"2026-09-03"},{"id":"espressif-devkitc","title":"Espressif ESP32-DevKitC V4 Getting Started Guide (board outline)","url":"https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html","accessed":"2026-09-03"},{"id":"usb-if-type-c","title":"USB Type-C Cable and Connector Specification Release 2.2 (USB-IF)","url":"https://www.usb.org/document-library/usb-type-cr-cable-and-connector-specification-release-22","accessed":"2026-09-03"},{"id":"usb-if-usb2","title":"Universal Serial Bus Specification Revision 2.0 (Type-A/B connector mechanicals, USB-IF)","url":"https://www.usb.org/document-library/usb-20-specification","accessed":"2026-09-03"},{"id":"hdmi-spec","title":"HDMI Specification 1.4b (Type A receptacle mechanical outline, HDMI Licensing Administrator)","url":"https://www.hdmi.org/spec/index","accessed":"2026-09-03"},{"id":"iec-60529","title":"IEC 60529:1989+AMD2:2013 Degrees of protection provided by enclosures (IP Code)","url":"https://webstore.iec.ch/publication/2452","accessed":"2026-09-03"},{"id":"iec-60068-2-31","title":"IEC 60068-2-31:2008 Environmental testing — Test Ec: Rough handling shocks, primarily for equipment-type specimens","url":"https://webstore.iec.ch/publication/1000","accessed":"2026-09-03"},{"id":"en-60715","title":"EN 60715:2017 Dimensions of low-voltage switchgear and controlgear — Standardized mounting on rails (TH35 DIN rail)","url":"https://www.din.de/en","accessed":"2026-09-03"},{"id":"ul-94","title":"UL 94 Standard for Tests for Flammability of Plastic Materials for Parts in Devices and Appliances","url":"https://www.ul.com/services/ul-94-plastic-flammability","accessed":"2026-09-03"},{"id":"mini-itx-spec","title":"Mini-ITX Form Factor Specification 170x170mm (VIA Technologies)","url":"https://www.mini-itx.com/spec/","accessed":"2026-09-03"},{"id":"din-41494","title":"DIN 41494 / IEEE 1101.10 Eurocard mechanical standard (100x160mm, 3U)","url":"https://www.vita.com/","accessed":"2026-09-03"},{"id":"ipc-2221","title":"IPC-2221 Generic Standard on Printed Board Design (board thickness, spacing)","url":"https://www.ipc.org/toc/IPC-2221.pdf","accessed":"2026-09-03"},{"id":"cable-gland-din","title":"DIN 46320 / EN 62444 cable gland thread and clamping-range tables (PG and metric)","url":"https://www.lappusa.com/skintop","accessed":"2026-09-03"},{"id":"molex-sma","title":"Molex/Amphenol SMA bulkhead jack panel-mount drawing (D-flat panel hole)","url":"https://www.amphenolrf.com/connectors/sma.html","accessed":"2026-09-03"},{"id":"protolabs-thermal","title":"Protolabs design guide — heat sink fin design for die casting and CNC","url":"https://www.protolabs.com/resources/design-tips/","accessed":"2026-09-03"},{"id":"molex-rj45","title":"Molex RJ45 shielded jack panel-cutout drawing","url":"https://www.molex.com/en-us/products/connectors/rj45","accessed":"2026-09-03"}],"entries":[{"id":"pcb-mounting-hole-diameters","kind":"fastener","tier":1,"title":"PCB mounting hole diameters for M2/M2.5/M3 standoffs","summary":"PCB mounting holes for standoffs run ⌀2.2 mm (M2 close fit), ⌀2.7 mm (M2.5, the Raspberry Pi size), ⌀3.2 mm (M3 close fit) — 0.2 mm over the screw major diameter, tighter than the generic clearance-hole series so the board doesn't shift on its standoffs.","applies":["pcb","circuit board","standoff"],"value":{"table":[{"size":"M2","hole":2.2},{"size":"M2.5","hole":2.7},{"size":"M3","hole":3.2}],"unit":"mm"},"basis":"Close-fit (H12) hole 0.2mm over major diameter keeps board registration on standoffs tighter than ISO 273 medium clearance","sources":["ipc-2221"],"tags":["pcb","hole","standoff","m2","m2.5","m3"],"see":["hardware/clearance-holes-metric"]},{"id":"pcb-standoff-height","kind":"dimension","tier":1,"title":"PCB standoff height (component clearance underside)","summary":"Standoffs raise a board 3–6 mm off the enclosure floor: 3 mm minimum clears solder tails and 0402/0603 passives, 5–6 mm is typical when a connector or electrolytic cap overhangs the underside.","applies":["pcb","standoff","enclosure"],"value":{"min":3,"max":6,"typical":5,"unit":"mm"},"basis":"Solder-side component height plus solder tail length on a wave- or hand-soldered THT board","sources":["ipc-2221"],"tags":["standoff","pcb","clearance"]},{"id":"pcb-edge-clearance","kind":"rule","tier":1,"title":"PCB mounting-hole edge clearance","summary":"Keep every mounting-hole centre ≥ 3 mm from the board edge (annular ring plus fab tolerance) and ≥ 1.5x the hole diameter from any plane-layer cutout, so the pad and via ring survive routing and depaneling.","applies":["pcb"],"value":{"min":3,"unit":"mm"},"basis":"IPC-2221 minimum land-to-edge spacing after routing/depanel tolerance","sources":["ipc-2221"],"tags":["pcb","edge","clearance","hole"]},{"id":"pcb-thickness-standard","kind":"dimension","tier":1,"title":"Standard PCB (FR4) thicknesses","summary":"Standard rigid PCB thicknesses are 1.6 mm (most full-size boards, the Pi and Arduino default), 1.0 mm, and 0.8 mm (compact/flex-adjacent boards like Pico); card-edge and mechanical fit must be checked against the actual thickness, not assumed 1.6 mm.","applies":["pcb","fr4"],"value":{"options":[0.8,1,1.6],"unit":"mm"},"basis":"JEDEC/IPC common panel thickness offerings from PCB fabricators","sources":["ipc-2221"],"tags":["pcb","thickness","fr4"]},{"id":"pcb-component-keepout","kind":"rule","tier":1,"title":"Component keep-out around mounting holes and board edge","summary":"Leave a ≥ 3 mm keep-out disc around every mounting hole and a ≥ 2 mm keep-out strip along the board edge, clear of tall components and copper pours, so a standoff or enclosure rib can land without shorting or crushing a part.","applies":["pcb","enclosure"],"value":{"min":2,"typical":3,"unit":"mm"},"basis":"Standoff head/rib footprint plus assembly tolerance around a plated hole","sources":["ipc-2221"],"tags":["keepout","pcb","standoff"]},{"id":"raspberry-pi-4-5-mounting","kind":"dimension","tier":1,"title":"Raspberry Pi 4/5 board outline and mounting-hole pattern","summary":"Raspberry Pi 4B and 5 share an 85 × 56 mm outline with four ⌀2.7 mm mounting holes on a 58 × 49 mm rectangle, each hole centre inset 3.5 mm from the nearest board edge (so the pattern origin sits at x=3.5, y=3.5 from the corner).","applies":["raspberry pi 4","raspberry pi 5","pcb","enclosure"],"value":{"table":[{"param":"board","x":85,"y":56},{"param":"holes","x":58,"y":49},{"param":"hole-diameter","value":2.7},{"param":"inset","value":3.5}],"unit":"mm"},"basis":"Official Raspberry Pi 4/5 mechanical drawings, mounting-hole table","sources":["rpi-4-mech","rpi-5-mech"],"tags":["raspberry pi","rpi4","rpi5","mounting","pattern"]},{"id":"arduino-uno-mounting","kind":"dimension","tier":1,"title":"Arduino Uno board outline and mounting holes","summary":"Arduino Uno Rev3 is 68.6 × 53.4 mm with four mounting holes of ⌀3.2 mm; hole positions are irregular (not a clean rectangle) — model from the four absolute coordinates in the reference drawing rather than assuming symmetric spacing.","applies":["arduino uno","pcb","enclosure"],"value":{"table":[{"param":"board","x":68.6,"y":53.4},{"param":"hole-diameter","value":3.2}],"unit":"mm"},"basis":"Arduino UNO Rev3 reference design mechanical drawing","sources":["arduino-uno-mech"],"tags":["arduino","uno","mounting","pattern"]},{"id":"arduino-mega-mounting","kind":"dimension","tier":2,"title":"Arduino Mega 2560 board outline and mounting holes","summary":"Arduino Mega 2560 Rev3 is 101.5 × 53.3 mm with six mounting holes of ⌀3.2 mm at irregular positions; treat it as an Uno-shaped board stretched at one end, and re-check USB/power jack cutout offsets against the extended length.","applies":["arduino mega","pcb","enclosure"],"value":{"table":[{"param":"board","x":101.5,"y":53.3},{"param":"hole-diameter","value":3.2}],"unit":"mm"},"basis":"Arduino Mega 2560 Rev3 reference design mechanical drawing","sources":["arduino-mega-mech"],"tags":["arduino","mega","mounting","pattern"]},{"id":"pi-pico-mounting","kind":"dimension","tier":1,"title":"Raspberry Pi Pico board outline and mounting holes","summary":"Raspberry Pi Pico is 51 × 21 mm with two ⌀2.1 mm mounting holes (fits an M2 self-tapper) on a 47 × 11.4 mm rectangle centred on the board, castellated edges along the 21 mm sides for direct soldering.","applies":["raspberry pi pico","pico","pcb"],"value":{"table":[{"param":"board","x":51,"y":21},{"param":"holes","x":47,"y":11.4},{"param":"hole-diameter","value":2.1}],"unit":"mm"},"basis":"Raspberry Pi Pico datasheet mechanical drawing","sources":["rpi-pico-datasheet"],"tags":["pico","mounting","pattern"]},{"id":"esp32-devkit-width","kind":"dimension","tier":2,"title":"ESP32 DevKitC module width and pin rows","summary":"ESP32-DevKitC boards are ~ 27–28 mm wide across a single row of pin headers (0.1 in pitch) with the WROOM-32 module type running ~ 48–55 mm long depending on vendor variant; always confirm against the specific board's own drawing before fixing a slot width.","applies":["esp32","esp32 devkit","pcb"],"value":{"min":27,"max":28,"unit":"mm"},"basis":"Espressif ESP32-DevKitC V4 outline; vendor clones vary by a few mm","sources":["espressif-devkitc"],"tags":["esp32","devkit","width"]},{"id":"enclosure-wall-thickness-im","kind":"rule","tier":1,"title":"Injection-moulded enclosure wall thickness","summary":"Injection-moulded electronics enclosures run a 1.5–2.5 mm nominal wall (2 mm typical for ABS/PC), held constant to avoid sink marks; bosses and ribs branch off this wall per the hardware pack's boss/rib rules, not thicker.","applies":["enclosure","injection molding"],"value":{"min":1.5,"max":2.5,"typical":2,"unit":"mm"},"basis":"Uniform-wall moulding guidance for ABS/PC housings","sources":["ul-94"],"tags":["wall","enclosure","injection-molding"],"see":["hardware/screw-boss-plastic"]},{"id":"enclosure-wall-thickness-fdm","kind":"rule","tier":1,"title":"FDM-printed enclosure wall thickness","summary":"FDM-printed enclosures need a 2–3 mm wall (a multiple of nozzle width x wall-loop count, commonly 3 loops at 0.4 mm) to be self-supporting and to hold a heat-set insert without cracking — thinner than 2 mm risks layer splitting under screw preload.","applies":["enclosure","fdm","3d printing"],"value":{"min":2,"max":3,"unit":"mm"},"basis":"Wall-loop multiples of common 0.4mm nozzle width; heat-set insert boss needs enough shell","sources":["ul-94"],"tags":["wall","enclosure","fdm"]},{"id":"usb-c-cutout","kind":"dimension","tier":1,"title":"USB-C panel cutout","summary":"A USB-C receptacle body is about 9.0 × 3.3 mm; cut the panel opening to ~ 10 × 4 mm (0.5 mm clearance per side) so the shell floats past a moulded panel and doesn't bind on tolerance stack-up.","applies":["usb-c","connector cutout","enclosure"],"value":{"table":[{"param":"receptacle","x":9,"y":3.3},{"param":"cutout","x":10,"y":4},{"param":"clearance","value":0.5}],"unit":"mm"},"basis":"USB Type-C connector mechanical envelope plus panel clearance","sources":["usb-if-type-c"],"tags":["usb-c","cutout","connector"]},{"id":"usb-a-cutout","kind":"dimension","tier":1,"title":"USB-A panel cutout","summary":"A standard USB Type-A receptacle body measures about 13 × 5.8 mm; cut the panel to that envelope plus 0.3–0.5 mm clearance per side (≈13.6–14 × 6.4–6.8 mm) for a stacked or single-port opening.","applies":["usb-a","connector cutout","enclosure"],"value":{"table":[{"param":"receptacle","x":13,"y":5.8}],"unit":"mm"},"basis":"USB 2.0 Type-A receptacle mechanical outline","sources":["usb-if-usb2"],"tags":["usb-a","cutout","connector"]},{"id":"hdmi-cutout","kind":"dimension","tier":1,"title":"HDMI Type-A panel cutout","summary":"An HDMI Type-A receptacle body is about 15 × 6 mm; cut the panel opening to that size plus 0.3–0.5 mm clearance per side so a moulded or die-cast panel doesn't interfere with the connector shell.","applies":["hdmi","connector cutout","enclosure"],"value":{"table":[{"param":"receptacle","x":15,"y":6}],"unit":"mm"},"basis":"HDMI 1.4b Type A receptacle mechanical outline","sources":["hdmi-spec"],"tags":["hdmi","cutout","connector"]},{"id":"rj45-cutout","kind":"dimension","tier":1,"title":"RJ45 panel cutout","summary":"A shielded RJ45 jack body is about 16 × 13.5 mm; size the panel window to the jack's own shield flange (per the connector's drawing) rather than the plug, since the jack shell — not the cable — sits in the panel.","applies":["rj45","ethernet","connector cutout","enclosure"],"value":{"table":[{"param":"receptacle","x":16,"y":13.5}],"unit":"mm"},"basis":"Shielded RJ45 jack panel-cutout drawing (Molex)","sources":["molex-rj45"],"tags":["rj45","ethernet","cutout","connector"]},{"id":"dc-jack-cutout","kind":"dimension","tier":1,"title":"DC barrel jack panel hole","summary":"A common 5.5 × 2.1 mm DC barrel jack needs a ⌀8 mm round panel hole for the barrel body (a 5.5 mm OD barrel with a threaded bezel); use a bigger ⌀9–9.5 mm hole if the jack has a locking nut bezel.","applies":["dc jack","barrel jack","connector cutout","enclosure"],"value":{"value":8,"unit":"mm"},"basis":"5.5x2.1mm barrel jack body diameter plus bezel clearance","sources":["usb-if-usb2"],"tags":["dc-jack","barrel","cutout","connector"]},{"id":"vent-slot-ip2x","kind":"rule","tier":1,"title":"Vent-slot width for IP2X finger-safe venting","summary":"Ventilation slots must be ≤ 3 mm wide (or ≤ 2.5 mm round holes) to keep the standard IP2X test finger (⌀12 mm articulated probe) out while still passing convective air; grille ribs between slots should be ≥ 1.5 mm thick.","applies":["enclosure","vent","ip rating"],"value":{"max":3,"unit":"mm"},"basis":"IEC 60529 IP2X test finger diameter (12.5mm) cannot enter an opening this narrow","sources":["iec-60529"],"tags":["vent","ip2x","finger-safe","slot"]},{"id":"din-rail-profile","kind":"dimension","tier":1,"title":"TH35 DIN rail cross-section (EN 60715)","summary":"The standard EN 60715 top-hat rail is 35 mm wide, 7.5 mm or 15 mm deep, formed from ~1 mm steel with the top edges curled ~1 mm inward; a clip must grip the 35 mm width and the curled top lips, not just sit on the flat.","applies":["din rail","th35","enclosure"],"value":{"table":[{"param":"width","value":35},{"param":"depth-shallow","value":7.5},{"param":"depth-deep","value":15},{"param":"material-thickness","value":1}],"unit":"mm"},"basis":"EN 60715 standardized rail dimensions","sources":["en-60715"],"tags":["din-rail","th35","en60715"]},{"id":"fin-spacing-natural-convection","kind":"dimension","tier":1,"title":"Heat-sink fin spacing for natural convection","summary":"Fins cooled by natural convection (no fan) need 5–8 mm centre-to-centre spacing; tighter spacing chokes the boundary-layer airflow and increases junction temperature despite the extra surface area.","applies":["heat sink","thermal","enclosure"],"value":{"min":5,"max":8,"unit":"mm"},"basis":"Natural-convection boundary-layer thickness between vertical fins","sources":["protolabs-thermal"],"tags":["heatsink","fin","thermal","convection"]},{"id":"mounting-standoff-count-rule","kind":"rule","tier":2,"title":"Minimum standoff count by board size","summary":"Use 4 standoffs for boards up to ~100 × 100 mm (the Pi/Arduino class); boards over ~150 mm on a side need a 5th or 6th interior standoff so the board doesn't flex enough to crack solder joints under connector insertion force.","applies":["pcb","standoff","enclosure"],"value":{"min":4,"typical":4,"unit":"count"},"basis":"Board deflection under point load scales with unsupported span squared","sources":["ipc-2221"],"tags":["standoff","count","pcb"]},{"id":"mini-itx-mounting","kind":"dimension","tier":2,"title":"Mini-ITX motherboard outline and mounting pattern","summary":"Mini-ITX boards are a fixed 170 × 170 mm square; the mounting-hole pattern is defined by the Mini-ITX spec's hole table (a subset of the ATX 9-hole grid) — always place holes from that published table, not evenly spaced guesses.","applies":["mini-itx","motherboard","pcb","enclosure"],"value":{"table":[{"param":"board","x":170,"y":170}],"unit":"mm"},"basis":"Mini-ITX form factor specification (VIA Technologies)","sources":["mini-itx-spec"],"tags":["mini-itx","motherboard","mounting"]},{"id":"eurocard-mounting","kind":"dimension","tier":2,"title":"Eurocard (3U) board outline","summary":"A single-height Eurocard per DIN 41494/IEEE 1101.10 is 100 × 160 mm, edge-connector along one 100 mm side; card-guide clearance along the two 160 mm edges is typically 0.5–1 mm per side in a rack subrack.","applies":["eurocard","3u","backplane","pcb"],"value":{"table":[{"param":"board","x":100,"y":160}],"unit":"mm"},"basis":"DIN 41494 / IEEE 1101.10 Eurocard mechanical standard","sources":["din-41494"],"tags":["eurocard","3u","mounting"]},{"id":"sma-connector-cutout","kind":"dimension","tier":2,"title":"SMA bulkhead panel hole","summary":"A panel-mount SMA jack needs a ⌀6.5 mm round hole with a 6.35 mm D-flat on one side to key the nut and stop the jack rotating when the mating cable is torqued.","applies":["sma","rf connector","connector cutout","enclosure"],"value":{"table":[{"param":"hole-diameter","value":6.5},{"param":"d-flat","value":6.35}],"unit":"mm"},"basis":"SMA bulkhead jack panel-mount drawing","sources":["molex-sma"],"tags":["sma","rf","cutout","connector"]},{"id":"audio-jack-cutout","kind":"dimension","tier":2,"title":"3.5 mm audio jack panel hole","summary":"A panel-mount 3.5 mm audio jack needs a ⌀6 mm round hole for the threaded bushing; add a small D-flat or two flats only if the jack nut needs anti-rotation.","applies":["3.5mm jack","audio jack","connector cutout","enclosure"],"value":{"value":6,"unit":"mm"},"basis":"Standard 3.5mm panel-mount audio jack bushing diameter","sources":["usb-if-usb2"],"tags":["audio","3.5mm","cutout","connector"]},{"id":"connector-cutout-clearance","kind":"rule","tier":2,"title":"Panel-cutout clearance around connector bodies","summary":"Add 0.3–0.5 mm clearance per side between a connector's own mechanical envelope and the panel cutout it passes through; less than 0.3 mm binds on moulding/printing tolerance, more than 0.5 mm shows a visible gap around the plug.","applies":["connector cutout","enclosure"],"value":{"min":0.3,"max":0.5,"unit":"mm"},"basis":"Injection-moulding and FDM dimensional tolerance on a through-cutout","sources":["usb-if-type-c"],"tags":["cutout","clearance","connector"]},{"id":"ip54-gasket-groove","kind":"dimension","tier":2,"title":"IP54 gasket groove (foam/dust seal)","summary":"An IP54 splash/dust seal uses a compressed-foam gasket in a 2–3 mm wide, 1.5–2 mm deep groove, compressed 25-50% at assembly; no continuous compression bead is needed since IP54 tolerates limited dust ingress.","applies":["gasket","ip54","enclosure"],"value":{"table":[{"param":"groove-width","value":2.5},{"param":"groove-depth","value":1.75}],"unit":"mm"},"basis":"IEC 60529 IP54: protected against dust (limited ingress) and splashing water","sources":["iec-60529"],"tags":["gasket","ip54","groove","seal"]},{"id":"ip65-gasket-groove","kind":"dimension","tier":2,"title":"IP65 gasket groove (dust-tight, jet-proof)","summary":"IP65 (dust-tight, protected against water jets) needs a continuous elastomer (silicone/EPDM) gasket in a 3–4 mm wide, 2–2.5 mm deep groove with a closed-loop bead and screw bosses spaced ≤ 60 mm apart to hold uniform compression.","applies":["gasket","ip65","enclosure"],"value":{"table":[{"param":"groove-width","value":3.5},{"param":"groove-depth","value":2.25},{"param":"boss-spacing-max","value":60}],"unit":"mm"},"basis":"IEC 60529 IP65: totally protected against dust, water jets from any direction","sources":["iec-60529"],"tags":["gasket","ip65","groove","seal"]},{"id":"ip67-gasket-groove","kind":"dimension","tier":2,"title":"IP67 gasket groove (temporary immersion)","summary":"IP67 (immersion to 1 m for 30 min) needs a 4–5 mm wide, 2.5–3 mm deep groove with a closed-cell silicone gasket compressed 30-40%, plus screw bosses ≤ 50 mm apart and any cable entry made via a rated gland, not a grommet.","applies":["gasket","ip67","enclosure"],"value":{"table":[{"param":"groove-width","value":4.5},{"param":"groove-depth","value":2.75},{"param":"boss-spacing-max","value":50}],"unit":"mm"},"basis":"IEC 60529 IP67: dust-tight, protected against temporary immersion","sources":["iec-60529"],"tags":["gasket","ip67","groove","seal"]},{"id":"emi-shielding-gap","kind":"rule","tier":2,"title":"EMI shielding seam gap limit","summary":"A shielded enclosure seam or vent aperture must stay under λ/20 of the highest frequency to be shielded (e.g. ≤ 7.5 mm at 2 GHz, ≤ 1.5 mm at 10 GHz); vent holes should be round or hex-honeycomb, not slots, above a few hundred MHz.","applies":["emi","shielding","enclosure"],"value":{"max":7.5,"unit":"mm","note":"at 2GHz; scale as lambda/20"},"basis":"Waveguide-below-cutoff shielding-effectiveness rule of thumb","sources":["iec-60529"],"tags":["emi","shielding","gap","vent"]},{"id":"cable-gland-pg-sizes","kind":"fastener","tier":2,"title":"PG7/PG9 cable gland hole and clamping range","summary":"A PG7 gland needs a panel hole of ⌀12.5 mm and clamps cable ⌀3–6.5 mm; a PG9 gland needs a ⌀15.5 mm hole and clamps ⌀4–8 mm — always check the vendor's own datasheet, PG threads are not perfectly standardized between makers.","applies":["cable gland","din rail enclosure","enclosure"],"value":{"table":[{"size":"PG7","hole":12.5,"clampMin":3,"clampMax":6.5},{"size":"PG9","hole":15.5,"clampMin":4,"clampMax":8}],"unit":"mm"},"basis":"DIN 46320 / EN 62444 cable gland thread and clamping-range tables","sources":["cable-gland-din"],"tags":["cable-gland","pg7","pg9"]},{"id":"cable-gland-metric-sizes","kind":"fastener","tier":2,"title":"M12/M16 metric cable gland hole and clamping range","summary":"An M12 metric cable gland needs a ⌀12.5 mm panel hole and clamps ⌀3–6.5 mm; an M16 gland needs a ⌀16.2 mm hole and clamps ⌀4.5–10 mm, the common size for a DIN-rail power-supply enclosure's mains cord entry.","applies":["cable gland","din rail enclosure","enclosure"],"value":{"table":[{"size":"M12","hole":12.5,"clampMin":3,"clampMax":6.5},{"size":"M16","hole":16.2,"clampMin":4.5,"clampMax":10}],"unit":"mm"},"basis":"EN 62444 metric cable gland thread and clamping-range tables","sources":["cable-gland-din"],"tags":["cable-gland","m12","m16"]},{"id":"enclosure-boss-rib","kind":"feature","tier":2,"title":"Screw boss and rib sizing in an electronics enclosure","summary":"Screw bosses and gusset ribs off an electronics enclosure wall follow the generic plastic-boss and rib rules (boss OD ≈ 2.5x screw diameter, rib ≤ 60% of wall thickness) — this pack adds only the PCB standoff heights and hole sizes on top.","applies":["enclosure","boss","rib"],"basis":"Boss/rib geometry is process-driven, not sector-specific; the hardware pack owns the numbers","sources":["ipc-2221"],"tags":["boss","rib","enclosure"],"see":["hardware/screw-boss-plastic"]},{"id":"snap-fit-cantilever-lid","kind":"feature","tier":2,"title":"Cantilever snap-fit for enclosure lids","summary":"A lid-retention cantilever snap on ABS/PC runs 0.5–1 mm undercut, 8–12 mm beam length and a beam thickness equal to the wall (1.5–2.5 mm), giving a deflection-to-length ratio under ~10% so the beam doesn't yield on repeated open/close cycles.","applies":["enclosure","snap fit","lid"],"value":{"table":[{"param":"undercut","value":0.75},{"param":"beam-length","value":10}],"unit":"mm"},"basis":"Cantilever snap-fit strain limit for ABS/PC (allowable strain ~2%) at typical beam proportions","sources":["ul-94"],"tags":["snap-fit","lid","enclosure"]},{"id":"fin-thickness-by-process","kind":"rule","tier":2,"title":"Heat-sink fin thickness by manufacturing process","summary":"Fin thickness floors by process: die-cast (A380) ≥ 1 mm, extruded aluminium ≥ 1.2 mm, FDM-printed plastic parts ≥ 2 mm — thinner fins either won't fill in casting/extrusion or warp/delaminate when printed.","applies":["heat sink","die casting","fdm","thermal"],"value":{"table":[{"process":"die-cast","min":1},{"process":"extruded","min":1.2},{"process":"fdm","min":2}],"unit":"mm"},"basis":"Minimum fill thickness for die-cast/extrusion tooling; minimum printable rigid wall for FDM","sources":["protolabs-thermal"],"tags":["heatsink","fin","thickness","process"]},{"id":"tim-gap","kind":"dimension","tier":2,"title":"Thermal-interface-material (TIM) bond-line gap","summary":"Design a 0.5 mm nominal gap between a chip package and a heat sink/spreader for the TIM (paste, pad, or gap-filler) — enough to fill package height tolerance and mounting flatness without squeezing the TIM out to near-zero thickness, which raises thermal resistance.","applies":["thermal","heat sink","tim"],"value":{"value":0.5,"unit":"mm"},"basis":"Typical TIM bond-line thickness balancing thermal resistance against tolerance stack-up","sources":["protolabs-thermal"],"tags":["tim","thermal","gap","heatsink"]},{"id":"led-junction-thermal-rule","kind":"rule","tier":2,"title":"LED junction-temperature thermal path rule","summary":"Keep the metal thermal path from an LED's pad to ambient short enough that junction temperature stays ≥ 20°C below datasheet Tj-max at full drive current; an unheatsinked 1 W LED on FR4 alone usually can't meet this and needs a metal-core PCB or added heat sink.","applies":["led","thermal","pcb"],"value":{"min":20,"unit":"C"},"basis":"LED lumen output and lifetime derate sharply above rated junction temperature","sources":["protolabs-thermal"],"tags":["led","thermal","junction"]},{"id":"din-rail-clip-dimensions","kind":"feature","tier":2,"title":"DIN-rail mounting clip geometry","summary":"A plastic DIN-rail clip's channel opens 25–27 mm between its inner walls (narrower than the 35 mm rail so the walls flex over the rail lips), with a 7–8 mm channel depth to seat on TH35's 7.5 mm face and a spring-loaded or fixed foot that snaps behind the rail's curled edge.","applies":["din rail","clip","enclosure"],"value":{"table":[{"param":"channel-opening","value":26},{"param":"channel-depth","value":7.5}],"unit":"mm"},"basis":"Clip must flex over the TH35 rail's curled lips and self-retain","sources":["en-60715"],"tags":["din-rail","clip","feature"]},{"id":"battery-aa-compartment","kind":"dimension","tier":2,"title":"AA battery compartment envelope","summary":"A single AA cell is ⌀14.5 × 50.5 mm; size a compartment pocket to ⌀15.5 × 51.5 mm (0.5–1 mm all-round clearance) with spring contact travel of 3–5 mm at one end to take up length tolerance across cells.","applies":["battery","aa","enclosure"],"value":{"table":[{"param":"cell","diameter":14.5,"length":50.5},{"param":"pocket","diameter":15.5,"length":51.5}],"unit":"mm"},"basis":"IEC 60086 AA cell envelope plus assembly clearance and spring-contact travel","sources":["iec-60068-2-31"],"tags":["battery","aa","compartment"]},{"id":"battery-18650-compartment","kind":"dimension","tier":2,"title":"18650 battery compartment envelope","summary":"An 18650 cylindrical cell is ⌀18 × 65 mm; size a compartment pocket to ⌀19 × 66–67 mm, adding 3–5 mm of spring or bus-bar travel at one end — protected (with PCM) 18650s run up to ~1–2 mm longer than bare cells, so verify the cell variant before fixing pocket length.","applies":["battery","18650","enclosure"],"value":{"table":[{"param":"cell","diameter":18,"length":65},{"param":"pocket","diameter":19,"length":66.5}],"unit":"mm"},"basis":"Standard 18650 cylindrical cell envelope plus assembly clearance","sources":["iec-60068-2-31"],"tags":["battery","18650","compartment"]},{"id":"pcb-standoff-thread-insert","kind":"fastener","tier":2,"title":"Threaded insert for PCB standoffs in printed/moulded enclosures","summary":"For M2.5/M3 PCB standoffs moulded into ABS/PC or printed in PLA/PETG, use a brass heat-set insert sized to the same boss-and-drill rule as any other threaded boss in the enclosure — see the hardware pack's insert table for hole and boss diameters.","applies":["pcb","standoff","enclosure","insert"],"basis":"Insert sizing is a generic fastener fact, not PCB-specific","sources":["ipc-2221"],"tags":["insert","standoff","pcb"],"see":["hardware/heat-set-inserts-metric"],"value":{"note":"insert size follows the boss/hole table for the chosen screw size","unit":"text","value":"see hardware/heat-set-inserts-metric"}},{"id":"material-fr4","kind":"material","tier":1,"title":"FR4 as the PCB substrate","summary":"FR4 (glass-fibre/epoxy laminate) is the default rigid PCB substrate: ~1.85 g/cm3 density, glass-transition temperature Tg 130–170°C depending on grade, and UL 94 V-0 rated — treat the board itself as a UL94 V-0 part when the enclosure's flammability rating is being assessed.","applies":["pcb","fr4"],"value":{"table":[{"property":"density","value":1.85,"unit":"g/cm3"},{"property":"Tg","min":130,"max":170,"unit":"C"}]},"basis":"Standard FR4 laminate datasheet properties","sources":["ipc-2221"],"tags":["material","fr4","pcb"]},{"id":"material-abs","kind":"material","tier":2,"title":"ABS for electronics enclosures","summary":"ABS is the default injection-moulded or FDM enclosure plastic: ~1.05 g/cm3 density, easy to mould/print, but only self-extinguishing (UL 94 HB) unless a flame-retardant grade is specified — do not assume ABS meets V-0 without checking the specific grade.","applies":["enclosure","abs"],"value":{"value":1.05,"unit":"g/cm3"},"basis":"Standard ABS resin datasheet density; UL94 rating varies by grade","sources":["ul-94"],"tags":["material","abs","enclosure"]},{"id":"material-pc","kind":"material","tier":2,"title":"Polycarbonate (PC) for enclosures needing V-0","summary":"Polycarbonate is used when the enclosure itself must pass UL 94 V-0 (many flame-retardant PC grades do natively): ~1.2 g/cm3 density, higher impact strength and heat resistance than ABS, at a higher material and moulding-pressure cost.","applies":["enclosure","polycarbonate","pc"],"value":{"value":1.2,"unit":"g/cm3"},"basis":"Standard PC resin datasheet density; FR grades UL94 V-0 rated","sources":["ul-94"],"tags":["material","polycarbonate","pc","enclosure"]},{"id":"material-pc-abs","kind":"material","tier":2,"title":"PC/ABS blend for enclosures","summary":"PC/ABS blend (~1.1 g/cm3) balances ABS's mouldability with PC's toughness and heat resistance, a common choice for consumer electronics housings that need better impact and heat performance than plain ABS without full PC cost.","applies":["enclosure","pc-abs"],"value":{"value":1.1,"unit":"g/cm3"},"basis":"Standard PC/ABS blend resin datasheet density","sources":["ul-94"],"tags":["material","pc-abs","enclosure"]},{"id":"material-pa-nylon","kind":"material","tier":3,"title":"Polyamide (PA/nylon) for connector shrouds and clips","summary":"PA (nylon 6/6) at ~1.14 g/cm3 gives the fatigue resistance and low-friction surface useful for repeatedly-flexed parts like connector latches and snap-fit clips, but absorbs moisture (dimensional drift up to ~0.5% at saturation) which matters for tight-tolerance snaps.","applies":["enclosure","connector","snap fit","nylon","pa"],"value":{"value":1.14,"unit":"g/cm3"},"basis":"Standard PA66 resin datasheet density and moisture-absorption behavior","sources":["ul-94"],"tags":["material","nylon","pa","snap-fit"]},{"id":"material-6061-aluminum","kind":"material","tier":2,"title":"6061-T6 aluminium for machined heat sinks and panels","summary":"6061-T6 aluminium (~2.7 g/cm3, thermal conductivity ~167 W/mK) is the default CNC-machined heat-sink and enclosure-panel alloy — good machinability and thermal performance at moderate strength, versus a die-cast alloy when volumes justify tooling.","applies":["heat sink","enclosure","aluminium","cnc"],"value":{"table":[{"property":"density","value":2.7,"unit":"g/cm3"},{"property":"thermal-conductivity","value":167,"unit":"W/mK"}]},"basis":"Standard 6061-T6 aluminium alloy datasheet properties","sources":["protolabs-thermal"],"tags":["material","aluminium","6061","heatsink"]},{"id":"material-diecast-a380","kind":"material","tier":2,"title":"A380 die-cast aluminium for high-volume enclosures/heat sinks","summary":"A380 (~2.71 g/cm3, thermal conductivity ~96 W/mK) is the standard high-pressure die-cast alloy for enclosures and finned heat sinks at volume — lower thermal conductivity than 6061 wrought aluminium but far cheaper per part once tooling is amortised.","applies":["heat sink","enclosure","die casting","aluminium"],"value":{"table":[{"property":"density","value":2.71,"unit":"g/cm3"},{"property":"thermal-conductivity","value":96,"unit":"W/mK"}]},"basis":"Standard A380 die-cast aluminium alloy datasheet properties","sources":["protolabs-thermal"],"tags":["material","diecast","a380","aluminium","heatsink"]},{"id":"test-ip-rating","kind":"test","tier":2,"title":"IP dust/water ingress test (IEC 60529)","summary":"IEC 60529 IP testing scores dust ingress (0-6, 6=dust-tight) and water ingress (0-9K, up to high-pressure jets); hitting IP65/IP67 geometrically needs the gasket-groove and gland entries in this pack, tested before function is re-checked.","applies":["enclosure","ip rating"],"basis":"IEC 60529 defines the IP code and its test procedures","sources":["iec-60529"],"tags":["test","ip-rating","ingress"]},{"id":"test-drop-iec-60068-2-31","kind":"test","tier":2,"title":"Drop/rough-handling test (IEC 60068-2-31)","summary":"IEC 60068-2-31 drops equipment-class enclosures 250-1000 mm (by mass/class) onto each face/edge/corner; surviving it means ≥ 2 mm corner radii, no unsupported wall span over ~40 mm, and standoffs stiff enough the board doesn't slam into the lid.","applies":["enclosure","drop test"],"value":{"min":250,"max":1000,"unit":"mm"},"basis":"IEC 60068-2-31 Test Ec rough-handling shock procedure","sources":["iec-60068-2-31"],"tags":["test","drop","shock"]},{"id":"test-thermal-cycling","kind":"test","tier":2,"title":"Thermal cycling test","summary":"A typical enclosure thermal-cycling test runs -40°C to +85°C for 100-1000 cycles; geometrically this needs CTE-compatible mating parts (metal insert vs. plastic boss), TIM bond-line gap to absorb expansion, and snap fits with fatigue margin.","applies":["enclosure","thermal cycling"],"value":{"min":-40,"max":85,"unit":"C"},"basis":"Common automotive/industrial electronics thermal-cycling profile","sources":["iec-60068-2-31"],"tags":["test","thermal","cycling"]},{"id":"test-ul94-v0-flammability","kind":"test","tier":2,"title":"UL 94 V-0 flammability test","summary":"UL 94 V-0 requires a bar sample to self-extinguish within 10 s per flame application with no flaming drips; passing it means keeping the wall at the resin's minimum V-0 thickness (often ≥ 1.5 mm for FR-grade PC, thicker for HB-grade ABS).","applies":["enclosure","flammability"],"value":{"max":10,"unit":"s"},"basis":"UL 94 vertical burn test V-0 classification criteria","sources":["ul-94"],"tags":["test","ul94","flammability","v0"]},{"id":"test-vibration","kind":"test","tier":3,"title":"Random vibration test","summary":"A typical industrial/automotive vibration qualification runs random vibration at 5-20 Grms across 10-2000 Hz for 1-3 hours per axis; passing it needs standoffs on ≤ 100 mm spacing and connectors with a secondary lock so board flex doesn't crack joints.","applies":["enclosure","vibration"],"value":{"min":5,"max":20,"unit":"count","note":"Grms"},"basis":"Common industrial/automotive random-vibration qualification profile","sources":["iec-60068-2-31"],"tags":["test","vibration"]},{"id":"standard-iec-60529","kind":"standard","tier":2,"title":"IEC 60529 — the IP Code","summary":"IEC 60529 defines the two-digit IP rating (solids 0–6, liquids 0–9K) and the physical test rigs (finger/wire probes, dust chambers, water jets/immersion) that a housing's vent, gasket and gland geometry must survive to claim a rating.","applies":["ip rating","enclosure"],"basis":"Governing standard for ingress-protection claims","sources":["iec-60529"],"tags":["standard","ip-rating"]},{"id":"standard-en-60715","kind":"standard","tier":2,"title":"EN 60715 — DIN rail mounting","summary":"EN 60715 standardizes the TH35 (and TH15/TH32) top-hat rail cross-sections used across industrial control enclosures; any DIN-rail clip or housing foot geometry in this pack traces back to this standard's rail dimensions.","applies":["din rail","enclosure"],"basis":"Governing standard for standardized rail mounting dimensions","sources":["en-60715"],"tags":["standard","din-rail"]},{"id":"standard-ul94","kind":"standard","tier":2,"title":"UL 94 — plastic flammability classification","summary":"UL 94 classifies plastics HB through 5VA by burn behaviour; enclosure specs for consumer, industrial and mains-adjacent electronics commonly require V-0 or better, which drives both material selection and minimum wall thickness.","applies":["enclosure","flammability","material"],"basis":"Governing standard for plastic flammability classification used in electronics enclosure specs","sources":["ul-94"],"tags":["standard","ul94","flammability"]},{"id":"recipe-raspberry-pi-4-enclosure-base","kind":"recipe","tier":2,"title":"Recipe: Raspberry Pi 4 enclosure base with standoffs and port cutouts","summary":"Build a 95×66×20 mm enclosure base with a 2 mm shell wall, four 6×6×3 mm standoff bosses on the Pi 4's 58×49 mm hole pattern with ⌀2.7 mm holes, and USB-C plus HDMI cutouts through one side wall.","applies":["raspberry pi 4","enclosure"],"basis":"Combines enclosure-wall-thickness-im, raspberry-pi-4-5-mounting, pcb-mounting-hole-diameters, usb-c-cutout and hdmi-cutout into one buildable shell","sources":["rpi-4-mech","usb-if-type-c","hdmi-spec"],"tags":["recipe","raspberry-pi","enclosure"],"recipe":{"prompt":"Model a Raspberry Pi 4 enclosure base: 95x66x20mm shell, 2mm wall, four standoff bosses on the Pi4 hole pattern with M2.5 holes, and USB-C + HDMI cutouts","steps":[{"tool":"cad_box","args":{"dx":95,"dy":66,"dz":20},"note":"outer enclosure block, 2mm wall margin around the 85x56 board plus room for a 20mm tall shell"},{"tool":"cad_shell","args":{"of":"$0","thickness":2,"open":[{"normal":[0,0,1]}]},"note":"hollow into a tray, open top; shell first, before any boss or hole"},{"tool":"cad_box","args":{"dx":6,"dy":6,"dz":3,"origin":[7,5,2]},"note":"standoff boss box near hole 1 (centre 10,8), 3mm tall per pcb-standoff-height, sitting on the 2mm floor"},{"tool":"cad_boolean_union","args":{"of":"$1","tool":"$2"},"note":"union boss1 onto the tray"},{"tool":"cad_box","args":{"dx":6,"dy":6,"dz":3,"origin":[65,5,2]},"note":"boss 2, 58mm in x from boss 1 (Pi4 hole pitch)"},{"tool":"cad_boolean_union","args":{"of":"$3","tool":"$4"}},{"tool":"cad_box","args":{"dx":6,"dy":6,"dz":3,"origin":[7,54,2]},"note":"boss 3, 49mm in y from boss 1 (Pi4 hole pitch)"},{"tool":"cad_boolean_union","args":{"of":"$5","tool":"$6"}},{"tool":"cad_box","args":{"dx":6,"dy":6,"dz":3,"origin":[65,54,2]},"note":"boss 4, diagonal from boss 1"},{"tool":"cad_boolean_union","args":{"of":"$7","tool":"$8"}},{"tool":"cad_drill_hole","args":{"of":"$9","type":"drill","diameter":2.7,"axis":[0,0,-1],"start":[10,8,5],"depth":3},"note":"M2.5 standoff hole per pcb-mounting-hole-diameters"},{"tool":"cad_drill_hole","args":{"of":"$10","type":"drill","diameter":2.7,"axis":[0,0,-1],"start":[68,8,5],"depth":3}},{"tool":"cad_drill_hole","args":{"of":"$11","type":"drill","diameter":2.7,"axis":[0,0,-1],"start":[10,57,5],"depth":3}},{"tool":"cad_drill_hole","args":{"of":"$12","type":"drill","diameter":2.7,"axis":[0,0,-1],"start":[68,57,5],"depth":3}},{"tool":"cad_box","args":{"dx":6,"dy":10,"dz":4,"origin":[92,20,8]},"note":"USB-C cutout tool, through the x=95 wall, 10x4mm opening per usb-c-cutout"},{"tool":"cad_boolean_subtract","args":{"of":"$13","tool":"$14"}},{"tool":"cad_box","args":{"dx":6,"dy":15,"dz":6,"origin":[92,38,8]},"note":"HDMI cutout tool, 15x6mm opening per hdmi-cutout"},{"tool":"cad_boolean_subtract","args":{"of":"$15","tool":"$16"}}],"expect":{"volume":23941.1,"faceCount":55,"watertight":true,"note":"measured 2026-09-19: CADSF-1561 (cc1f38cb, 2026-09-15) gave a BLIND hole a 118° DRILL POINT: the flat floor became a cone on the four Ø2.7x3 blind boss holes: +4 faces, -6.3 mm^3"}}},{"id":"recipe-din-rail-clip-profile","kind":"recipe","tier":2,"title":"Recipe: DIN-rail mounting clip cross-section","summary":"Extrude a 35 mm wide DIN-rail clip channel profile (25 mm channel opening, 7 mm channel depth) 15 mm deep along the rail, matching the TH35 EN 60715 rail cross-section this pack's din-rail-profile entry cites.","applies":["din rail","enclosure","clip"],"basis":"Combines din-rail-profile and din-rail-clip-dimensions into one extruded channel","sources":["en-60715"],"tags":["recipe","din-rail","clip"],"recipe":{"prompt":"Extrude a DIN-rail clip channel profile, 35mm wide opening down to a 25mm wide x 7mm deep channel, 15mm deep along the rail","steps":[{"tool":"cad_extrude_profile","args":{"depth":15,"outer":[[0,0],[35,0],[35,10],[30,10],[30,3],[5,3],[5,10],[0,10]]},"note":"U-channel: 35mm wide x 10mm tall block with a 25mm wide x 7mm deep open channel for the rail to snap into"}],"expect":{"volume":2625,"faceCount":10,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-finned-heatsink","kind":"recipe","tier":2,"title":"Recipe: finned heat sink base plate","summary":"Build a 60×40×3 mm heat-sink base with six 60×2×15 mm fins patterned at 6 mm centre spacing (within the 5–8 mm natural-convection range) and unioned into one solid.","applies":["heat sink","thermal","enclosure"],"basis":"Combines fin-spacing-natural-convection and fin-thickness-by-process (FDM 2mm) into one buildable finned block","sources":["protolabs-thermal"],"tags":["recipe","heatsink","thermal"],"recipe":{"prompt":"Model a 60x40x3mm heatsink base with six 2mm thick, 15mm tall fins on 6mm spacing","steps":[{"tool":"cad_box","args":{"dx":60,"dy":40,"dz":3},"note":"base plate"},{"tool":"cad_box","args":{"dx":60,"dy":2,"dz":15,"origin":[0,2,3]},"note":"first fin, 2mm thick (FDM floor) x 15mm tall, sitting on top of the base"},{"tool":"cad_pattern_copies","args":{"of":"$1","type":"linear","step":[0,6,0],"count":6},"note":"6 fins at 6mm centre spacing, within the 5-8mm natural-convection range"},{"tool":"cad_boolean_union","args":{"of":"$0","tool":"$2"},"note":"union base plate with all six fin copies"}],"expect":{"volume":18000,"faceCount":30,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}}]},{"$schema":"nativecad-dfm-pack/1","id":"fdm-x1c","title":"Bambu Lab X1 Carbon - design rules for parts that print first time","sector":"fdm-x1c","version":"2026-09-22","summary":"The FDM numbers for the machine on the bench: real build envelope including the front-left exclusion corner, wall and line width per nozzle, overhang, bridge, hole and clearance limits, eleven filaments with warp class and AMS rules, four calibration coupons and two worked builds. Every value names the profile or the guide it came from.","aliases":["bambu","bambu lab","bambu lab x1 carbon","x1c","x1 carbon","bambu studio","ams","fdm","fff","fdm printing","filament printing","desktop 3d printer","gcode.3mf"],"crossSector":false,"size":"full","sources":[{"id":"bbl-machine-x1c04","title":"Bambu Studio machine profile - Bambu Lab X1 Carbon 0.4 nozzle.json","url":"https://github.com/bambulab/BambuStudio/blob/master/resources/profiles/BBL/machine/Bambu%20Lab%20X1%20Carbon%200.4%20nozzle.json","accessed":"2026-09-21"},{"id":"bbl-process-common","title":"Bambu Studio process profile - fdm_process_common.json (line widths, brim, compensation)","url":"https://github.com/bambulab/BambuStudio/blob/master/resources/profiles/BBL/process/fdm_process_common.json","accessed":"2026-09-21"},{"id":"bbl-forum-volume","title":"Bambu Lab forum thread 12875 - what is the real maximum print volume","url":"https://forum.bambulab.com/t/what-is-the-real-maximum-print-volume/12875","accessed":"2026-09-21"},{"id":"bbl-issue-1793","title":"BambuStudio issue 1793 - object too close to the exclusion area","url":"https://github.com/bambulab/BambuStudio/issues/1793","accessed":"2026-09-21"},{"id":"hubs-fdm","title":"Hubs - How to design parts for FDM 3D printing","url":"https://www.hubs.com/knowledge-base/how-design-parts-fdm-3d-printing/","accessed":"2026-09-21"},{"id":"xometry-fdm","title":"Xometry - FDM design tips","url":"https://xometry.pro/en-eu/articles/fdm-design-tips/","accessed":"2026-09-21"},{"id":"prusa-modeling","title":"Prusa Knowledge Base - Modeling with 3D printing in mind","url":"https://help.prusa3d.com/article/modeling-with-3d-printing-in-mind_164135","accessed":"2026-09-21"},{"id":"adp-abs-asa","title":"ADP Industries - Bambu Lab ABS and ASA printing guide","url":"https://www.adpindustries.com/blog/bambu-lab-abs-asa-printing-guide/","accessed":"2026-09-21"},{"id":"flush-guide","title":"3DProfileFix - AMS flushing volumes guide","url":"https://www.3dprofilefix.com/guides/flushing-volumes-guide.html","accessed":"2026-09-21"},{"id":"filamentcalcs-ams","title":"FilamentCalcs - multi-colour printing with the AMS, is it worth it","url":"https://filamentcalcs.com/guides/multi-color-printing-ams-worth-it","accessed":"2026-09-21"},{"id":"bbl-wiki-step","title":"Bambu Lab wiki - Bambu Studio STEP import","url":"https://wiki.bambulab.com/en/software/bambu-studio/step","accessed":"2026-09-21"},{"id":"printago-3mf","title":"Printago - inside the .gcode.3mf file format","url":"https://printago.io/blog/3mf-file-format","accessed":"2026-09-21"},{"id":"openbambu-mqtt","title":"OpenBambuAPI - MQTT and FTPS notes for the LAN print path","url":"https://github.com/Doridian/OpenBambuAPI/blob/main/mqtt.md","accessed":"2026-09-21"},{"id":"bbl-cli","title":"BambuStudio wiki - command-line usage (headless slicing)","url":"https://github.com/bambulab/BambuStudio/wiki/Command-Line-Usage","accessed":"2026-09-21"},{"id":"nativecad-fdm-x1c","title":"NativeCAD rule pack data/dfm/fdm_x1c.json and ops/fdmX1cRules.js (CADSF-1772)","note":"the sourced warn/fail table this pack reshapes; every row there carries its own source and an inference flag"},{"id":"kb-research-x1c","title":"NativeCAD research note 2026-09-21 - CAD to Bambu Lab X1 Carbon","note":"projectpads/CADSolver/kb/research-2026-09-21-cad-to-bambu-lab-x1-carbon-file-path-headless-slicing-lan-protocol-ams-fdm-dfm-pack.md"}],"entries":[{"id":"build-envelope","kind":"dimension","tier":1,"title":"X1 Carbon build envelope","summary":"The bed is 256 x 256 mm and the profile's printable height is 250 mm - Bambu's marketing copy says 256. A part past that is not a tall print, it is a plate the slicer refuses.","applies":["bambu lab x1 carbon","build volume","plate layout"],"value":{"table":[{"axis":"x","value":256},{"axis":"y","value":256},{"axis":"z","value":250}],"unit":"mm"},"basis":"printable_area and printable_height in the X1C machine profile Bambu Studio enforces","sources":["bbl-machine-x1c04","bbl-forum-volume"],"tags":["envelope","machine","x1c"]},{"id":"bed-exclusion-corner","kind":"rule","tier":1,"title":"Front-left 18 x 28 mm bed exclusion","summary":"The X1C reserves a front-left 18 (X) by 28 (Y) mm rectangle for the wiper and cutter. It is an XY footprint exclusion at every Z, and switching it off in the slicer switches the AMS off with it.","applies":["plate layout","bed","first part placement"],"value":{"table":[{"x0":0,"y0":0,"x1":18,"y1":28}],"unit":"mm"},"basis":"bed_exclude_area in the X1C 0.4 machine profile; BambuStudio issue 1793 is the 'too close to exclusion area' refusal it produces","sources":["bbl-machine-x1c04","bbl-issue-1793"],"tags":["bed","exclusion","layout","x1c"]},{"id":"usable-envelope","kind":"dimension","tier":1,"title":"Usable envelope once the exclusion corner is respected","summary":"A part that has to clear the front-left exclusion gets about 238 x 256 x 249 mm full-depth, or 256 x 228 x 249 mm full-width. Size the biggest part against one of those two, never against the headline 256 x 256.","applies":["build volume","large part","plate layout"],"value":{"table":[{"orientation":"full-depth","x":238,"y":256,"z":249},{"orientation":"full-width","x":256,"y":228,"z":249}],"unit":"mm"},"basis":"forum measurement of the real maximum print volume with the exclusion area enabled, cross-checked against the machine profile","sources":["bbl-forum-volume","bbl-machine-x1c04"],"tags":["envelope","layout","x1c"]},{"id":"wall-thickness-by-nozzle","kind":"dimension","tier":1,"title":"Minimum and recommended wall by nozzle","summary":"A wall is a stack of extrusions, so the floor is two outer-wall line widths: 0.84 mm at the 0.4 nozzle, and 0.42 / 1.26 / 1.68 mm at 0.2 / 0.6 / 0.8. Published FDM guidance wants 1.2 mm before a wall counts as structural.","applies":["wall","shell","rib","printed part"],"value":{"table":[{"nozzle":0.2,"fail":0.42,"recommended":0.75},{"nozzle":0.4,"fail":0.84,"recommended":1.2},{"nozzle":0.6,"fail":1.26,"recommended":1.8},{"nozzle":0.8,"fail":1.68,"recommended":2.4}],"unit":"mm"},"basis":"2 x outer_wall_line_width from the Bambu process profile; the 1.2 mm recommendation is Hubs' FDM wall guidance","sources":["bbl-process-common","hubs-fdm","nativecad-fdm-x1c"],"tags":["wall","nozzle","thickness"]},{"id":"nozzle-line-widths","kind":"dimension","tier":1,"title":"Default line widths per nozzle","summary":"At the 0.4 nozzle: line 0.42, outer wall 0.42, inner wall 0.45, first layer 0.5 mm. The 0.2 / 0.6 / 0.8 rows scale by nozzle ratio. Every wall, rib and text stroke on this machine is a multiple of one of these.","applies":["wall","rib","text","thin feature"],"value":{"table":[{"nozzle":0.2,"line":0.21,"outer":0.21,"inner":0.23,"first":0.25},{"nozzle":0.4,"line":0.42,"outer":0.42,"inner":0.45,"first":0.5},{"nozzle":0.6,"line":0.63,"outer":0.63,"inner":0.68,"first":0.75},{"nozzle":0.8,"line":0.84,"outer":0.84,"inner":0.9,"first":1}],"unit":"mm"},"basis":"default line widths at 0.4 from fdm_process_common.json; the other three nozzles scale by nozzle ratio and are flagged as inference in the rule pack","sources":["bbl-process-common","nativecad-fdm-x1c"],"tags":["line-width","nozzle","extrusion"]},{"id":"layer-height-by-nozzle","kind":"dimension","tier":1,"title":"Layer-height range per nozzle","summary":"Profile limits: 0.04-0.14 mm at the 0.2 nozzle, 0.08-0.28 at 0.4, 0.12-0.42 at 0.6, 0.16-0.56 at 0.8. Vertical features that must land on a layer boundary - lids, steps, engraving depth - are multiples of the one you pick.","applies":["layer height","z feature","engraving depth"],"value":{"table":[{"nozzle":0.2,"min":0.04,"max":0.14},{"nozzle":0.4,"min":0.08,"max":0.28},{"nozzle":0.6,"min":0.12,"max":0.42},{"nozzle":0.8,"min":0.16,"max":0.56}],"unit":"mm"},"basis":"min and max layer height per nozzle in the Bambu Studio machine profiles","sources":["bbl-machine-x1c04"],"tags":["layer-height","nozzle","z"]},{"id":"overhang-limit","kind":"rule","tier":1,"title":"Overhang angle before it needs support","summary":"45 deg off vertical prints clean, 55 deg is the fail line, and ABS/ASA/PC pull that in to 40/50. Bambu's default process auto-supports past a 30 deg threshold angle, so a steeper face costs support material and comes off scarred.","applies":["overhang","orientation","support"],"value":{"typical":45,"max":55,"unit":"deg"},"basis":"45 deg is the universal FDM safe overhang in the published guidance; the 55 deg fail and the 40/50 ABS/ASA pair are the rule pack's warn/fail tiers","sources":["hubs-fdm","prusa-modeling","adp-abs-asa","nativecad-fdm-x1c"],"tags":["overhang","support","orientation"]},{"id":"bridge-span","kind":"rule","tier":1,"title":"Unsupported bridge span","summary":"A bridge over 10 mm starts to droop and 25 mm is the fail line on this machine, against 5 mm in the conservative published guidance. Give every bridge two anchored ends - a span anchored at one end is not a bridge, it is an overhang.","applies":["bridge","span","ceiling","hole roof"],"value":{"typical":10,"max":25,"unit":"mm"},"basis":"Xometry's FDM bridging guidance reduced to the rule pack's warn/fail pair for the X1C's part cooling","sources":["xometry-fdm","hubs-fdm","nativecad-fdm-x1c"],"tags":["bridge","overhang","span"]},{"id":"hole-size-and-compensation","kind":"rule","tier":1,"title":"Hole diameter and the shrink you design around","summary":"Printed holes come out 0.1-0.3 mm undersize and Bambu ships xy_hole_compensation at 0, so add 0.15-0.2 mm to any hole meant to fit something. Below 1.5 mm diameter a hole is a dimple: drill it after the print or drop it.","applies":["hole","bore","clearance hole","fit"],"value":{"table":[{"param":"min-diameter","value":1.5},{"param":"compensation-min","value":0.15},{"param":"compensation-max","value":0.2}],"unit":"mm"},"basis":"Hubs' printed-hole undersize guidance read against Bambu's xy_hole_compensation default of 0","sources":["hubs-fdm","bbl-process-common"],"tags":["hole","tolerance","fit"]},{"id":"horizontal-hole-teardrop","kind":"rule","tier":1,"title":"Teardrop a horizontal hole over 8 mm","summary":"A hole with its axis in the plate plane has to bridge its own ceiling. Past about 8 mm diameter that ceiling sags into the bore, so replace the top of the circle with a teardrop or a 45 deg roof and print it without support.","applies":["hole","horizontal bore","teardrop"],"value":{"max":8,"unit":"mm"},"basis":"Prusa's modeling-for-3D-printing guidance on horizontal holes and self-supporting roofs","sources":["prusa-modeling"],"tags":["hole","overhang","teardrop"]},{"id":"min-pin-diameter","kind":"dimension","tier":1,"title":"Free-standing pin and boss diameter","summary":"Under 1.5 mm a free-standing pin is one or two extrusions wide and snaps off the plate; under 3 mm it survives the print but not the handling. Published guidance goes as far as 5 mm - fillet the base whichever number you take.","applies":["pin","boss","post","thin feature"],"value":{"min":1.5,"typical":3,"unit":"mm"},"basis":"Xometry's 1-3 mm pin guidance and Hubs' 5 mm free-standing recommendation, reduced to the rule pack's fail/warn pair","sources":["xometry-fdm","hubs-fdm","nativecad-fdm-x1c"],"tags":["pin","boss","thin-feature"]},{"id":"printed-tolerance","kind":"tolerance","tier":1,"title":"Dimensional tolerance you can design to","summary":"Design to +/- 0.2 mm on this machine; after the X1C's own flow calibration users hold +/- 0.1-0.2 mm. That is the band every mating dimension has to tolerate before you add a single micron of clearance on top.","applies":["tolerance","mating part","fit"],"value":{"min":0.1,"max":0.2,"typical":0.2,"unit":"mm"},"basis":"Prusa's published FDM tolerance baseline; the tighter post-flow-calibration band is the rule pack's inference from user reports","sources":["prusa-modeling","nativecad-fdm-x1c"],"tags":["tolerance","fit","accuracy"]},{"id":"mating-clearance","kind":"tolerance","tier":1,"title":"Clearance by fit class","summary":"Press fit 0.1-0.15 mm, sliding 0.2-0.3, hinge 0.3 and up, loose 0.5. Apply it on the diameter or across the slot - two printed parts modelled to the same nominal dimension do not go together.","applies":["clearance","fit","assembly","hinge","press fit"],"value":{"table":[{"fit":"press","min":0.1,"max":0.15},{"fit":"sliding","min":0.2,"max":0.3},{"fit":"hinge","min":0.3},{"fit":"loose","min":0.5}],"unit":"mm"},"basis":"Prusa's published clearance classes for printed mating parts","sources":["prusa-modeling"],"tags":["clearance","fit","assembly"]},{"id":"elephant-foot-chamfer","kind":"rule","tier":1,"title":"Chamfer the bed-face edge, never fillet it","summary":"The first layers squash out by about 0.15 mm - exactly Bambu's default elephant-foot compensation. Break every bed-touching edge with a chamfer: a fillet down there is a near-horizontal overhang that prints straight back out flat.","applies":["first layer","bed face","edge break","chamfer"],"value":{"typical":0.15,"unit":"mm"},"basis":"elefant_foot_compensation default in the Bambu process profile; chamfer-over-fillet at the bed face is Prusa's and Hubs' guidance","sources":["bbl-process-common","prusa-modeling"],"tags":["elephant-foot","chamfer","first-layer"]},{"id":"z-anisotropy-orientation","kind":"rule","tier":1,"title":"Orient the load off the build direction","summary":"An FDM part is weakest in tension across the layers. A section whose run-to-thickness ratio passes 8:1 along the build direction carries its load through layer bonds in series - reorient it, or thicken it.","applies":["orientation","load path","strength","thin section"],"value":{"max":8,"unit":"ratio"},"basis":"layer-bond anisotropy is published FDM guidance; the 8:1 run-to-thickness threshold is the rule pack's warn limit (ops/fdmX1cRules.js x1c_z_anisotropy)","sources":["hubs-fdm","prusa-modeling","nativecad-fdm-x1c"],"tags":["anisotropy","orientation","strength"]},{"id":"ams-and-soft-filament","kind":"rule","tier":2,"title":"AMS slots, and the filament that cannot use them","summary":"Four slots per AMS and up to four units is 16 filaments on one machine, but TPU and other soft filaments buckle in the feed path and must run from the external spool. A plate that maps TPU to an AMS slot does not print.","applies":["ams","multi-material","tpu","filament mapping"],"value":{"table":[{"param":"slots-per-unit","value":4},{"param":"max-units","value":4},{"param":"max-filaments","value":16}],"unit":"count"},"basis":"Bambu's published AMS capacity and soft-filament exclusion, carried in the rule pack as x1c_ams_tpu","sources":["kb-research-x1c","nativecad-fdm-x1c"],"tags":["ams","multi-material","tpu"]},{"id":"material-pla","kind":"material","tier":1,"title":"PLA - the default, and the one that does not warp","summary":"Density 1.24 g/cm3, warp class 1 of 5, 45/55 deg overhang, 5 mm brim, no chamber, no hardened nozzle. It softens around 55-60 C, so it is the right answer for anything that is not hot, heavily loaded or outdoors.","applies":["pla","filament","indoor part","prototype"],"value":{"table":[{"param":"density","value":1.24},{"param":"overhang-warn-deg","value":45},{"param":"overhang-fail-deg","value":55},{"param":"warp-index","value":1},{"param":"brim","value":5}],"note":"density g/cm3, overhang deg, warp class 1-5, brim mm"},"basis":"filament_density and the brim default from the Bambu profiles; the overhang pair is the rule pack's PLA row and the softening range is Hubs' FDM material guidance","sources":["bbl-process-common","hubs-fdm","nativecad-fdm-x1c"],"tags":["pla","material","filament"]},{"id":"material-abs-asa","kind":"material","tier":1,"title":"ABS and ASA - warp class 4, lid closed","summary":"Density 1.04 (ABS) and 1.07 (ASA) g/cm3, overhang tightened to 40/50 deg, 8 mm brim, chamber around 55 C with the lid on and the aux fan off. Warp class 4 of 5: a big flat footprint with square corners lifts off the plate.","applies":["abs","asa","outdoor part","heat resistant part"],"value":{"table":[{"material":"abs","density":1.04,"overhang-warn-deg":40,"overhang-fail-deg":50,"warp-index":4,"brim":8,"chamber-c":55},{"material":"asa","density":1.07,"overhang-warn-deg":40,"overhang-fail-deg":50,"warp-index":4,"brim":8,"chamber-c":55}],"note":"density g/cm3, overhang deg, brim mm, chamber C"},"basis":"ADP's Bambu ABS/ASA guide plus the rule pack's ABS and ASA rows (overhang tightened by 5 deg, flagged as inference there)","sources":["adp-abs-asa","nativecad-fdm-x1c"],"tags":["abs","asa","warp","material"]},{"id":"sequential-print-clearance","kind":"rule","tier":2,"title":"Clearance for by-object (sequential) printing","summary":"Printing objects one at a time needs 68 mm of radial clearance around the extruder and nothing already finished taller than 90 mm - the gantry sweeps over the parts it has built. Past 90 mm, plate them layer by layer instead.","applies":["sequential printing","by object","plate layout"],"value":{"table":[{"param":"clearance-radius","value":68},{"param":"clearance-height","value":90}],"unit":"mm"},"basis":"extruder_clearance_radius and extruder_clearance_height_to_lid in the X1C machine profile","sources":["bbl-machine-x1c04"],"tags":["sequential","layout","plate"],"detail":"Sequential printing is how you get a clean first layer on many small parts without a stringy travel between them, and how you print two filaments on one plate without the AMS. The cost is the clearance envelope: the extruder body needs 68 mm of radius and the gantry needs 90 mm of headroom above anything already standing. A tall part on a sequential plate is therefore a layout error, not a slicer setting."},{"id":"text-legibility","kind":"rule","tier":2,"title":"Embossed and engraved text that survives the print","summary":"Emboss a stroke at least 0.84 mm wide (two 0.4-nozzle line widths) and 0.5 mm proud; engrave 1.0 mm wide and 0.5 mm deep. cad_engrave_text legibility:\"fdm_x1c\" gates the floors: stroke 0.8, gap 0.45, counter 0.4, cap 3.0 mm, arc 200 deg.","applies":["text","emboss","engrave","logo","part marking"],"value":{"table":[{"param":"emboss-stroke","value":0.84},{"param":"emboss-height","value":0.5},{"param":"engrave-stroke","value":1},{"param":"engrave-depth","value":0.5},{"param":"gate-stroke-p2","value":0.8},{"param":"gate-glyph-gap","value":0.45},{"param":"gate-counter","value":0.4},{"param":"gate-cap-height","value":3},{"param":"gate-arc-max-deg","value":200}],"unit":"mm"},"basis":"Xometry's FDM text guidance, restated in line widths so it tracks whichever nozzle is fitted","sources":["xometry-fdm","bbl-process-common","nativecad-fdm-x1c"],"tags":["text","emboss","engrave","legibility","embolden"],"detail":"Restating the stroke as 'two line widths' rather than '0.8 mm' is what makes it portable: at the 0.6 nozzle the same rule reads 1.26 mm and at the 0.2 nozzle 0.42 mm. Height and depth are best read in layers instead of millimetres - 0.5 mm is two layers at 0.25, four at 0.12 - because a feature that does not land on a layer boundary is rounded to one. CADSF-2231 made this a gate (ops/font/textLegibility.js): the stroke is read at the 2nd percentile of the distance-transform ridge on the placed glyph polygons, because the minimum is always a junction or a tip. Refusals: text_stem_too_thin, text_counter_closed, text_glyphs_fuse, text_cap_too_small, text_arc_too_long. Measured on DejaVu Sans Bold: a 2.4 mm cap gives a 0.44 mm stroke and fails four ways (the LABS pendant planet words); 3.3 mm gives 0.60, and embolden 0.07 mm (offset plus swallowtail untangle) lifts it to 0.74 at the cost of letter gap. A bold face needs about a 4.5 mm cap to clear 0.8 mm unaided."},{"id":"hardened-nozzle-for-filled","kind":"rule","tier":2,"title":"Filled filament needs the hardened nozzle","summary":"PLA-CF, PA-CF and glass-filled PETG chew through brass and stainless. The X1C's 0.4 / 0.6 / 0.8 nozzles are hardened steel, the 0.2 is stainless, so filled filament on the 0.2 nozzle is a pairing the rule pack refuses outright.","applies":["carbon fibre filament","glass filled filament","nozzle choice"],"value":{"table":[{"nozzle":0.2,"nozzle-material":"stainless steel","hardened":false},{"nozzle":0.4,"nozzle-material":"hardened steel","hardened":true},{"nozzle":0.6,"nozzle-material":"hardened steel","hardened":true},{"nozzle":0.8,"nozzle-material":"hardened steel","hardened":true}]},"basis":"nozzle material per diameter in the X1C machine profiles; the abrasive-filament pairing is the rule pack's x1c_nozzle_material_compat rule","sources":["bbl-machine-x1c04","nativecad-fdm-x1c"],"tags":["nozzle","abrasive","carbon-fibre"]},{"id":"filament-catalogue","kind":"material","tier":2,"title":"Filament catalogue - eleven filaments, one table","summary":"Density, warp class 1-5, overhang warn/fail pair, AMS compatibility and hardened-nozzle flag for PLA, PETG, ABS, ASA, PC, PA, PA-CF, PLA-CF, PETG-GF, PVA and TPU. Pick the row first, then the geometry follows from it.","applies":["filament","material selection","ams"],"value":{"table":[{"id":"pla","density":1.24,"warp":1,"overhang":"45/55","ams":true,"hardened":false,"brim":5},{"id":"petg","density":1.27,"warp":2,"overhang":"45/55","ams":true,"hardened":false,"brim":5},{"id":"abs","density":1.04,"warp":4,"overhang":"40/50","ams":true,"hardened":false,"brim":8},{"id":"asa","density":1.07,"warp":4,"overhang":"40/50","ams":true,"hardened":false,"brim":8},{"id":"pc","density":1.2,"warp":5,"overhang":"40/50","ams":true,"hardened":false,"brim":8},{"id":"pa","density":1.14,"warp":3,"overhang":"45/55","ams":true,"hardened":false,"brim":8},{"id":"pa-cf","density":1.14,"warp":3,"overhang":"45/55","ams":true,"hardened":true,"brim":8},{"id":"pla-cf","density":1.24,"warp":1,"overhang":"45/55","ams":true,"hardened":true,"brim":5},{"id":"pet-gf","density":1.27,"warp":2,"overhang":"45/55","ams":true,"hardened":true,"brim":5},{"id":"pva","density":1.23,"warp":1,"overhang":"45/55","ams":true,"hardened":false,"brim":5},{"id":"tpu","density":1.21,"warp":1,"overhang":"45/55","ams":false,"hardened":false,"brim":5}],"note":"density g/cm3, warp class 1-5, overhang warn/fail deg, brim mm"},"basis":"filament_density from the Bambu filament profiles; warp class, the overhang pairs and the hardened-nozzle flags are the rule pack's material rows","sources":["bbl-process-common","adp-abs-asa","kb-research-x1c","nativecad-fdm-x1c"],"tags":["filament","material","density","warp"],"detail":"Warp class is this pack's own 1-5 ordering of the published shrinkage ranking (ABS/ASA/PC far above PETG, PETG above PLA), not a number any one page prints. It exists so a geometry rule can be written against it: class 4 and up wants a brim, a closed lid and chamfered rather than square footprint corners, and it is the class that makes a 200 mm flat plate a bad idea on this machine."},{"id":"material-petg","kind":"material","tier":2,"title":"PETG - tougher than PLA, still no chamber","summary":"Density 1.27 g/cm3, warp class 2 of 5, 45/55 deg overhang, 5 mm brim. It is the sensible step up from PLA for a part that flexes or lives somewhere warm, at the cost of stringing and worse bridging.","applies":["petg","filament","functional part"],"value":{"table":[{"param":"density","value":1.27},{"param":"warp-index","value":2},{"param":"overhang-warn-deg","value":45},{"param":"brim","value":5}],"note":"density g/cm3, warp class 1-5, overhang deg, brim mm"},"basis":"filament_density from the Bambu profiles and the rule pack's PETG row","sources":["bbl-process-common","hubs-fdm","nativecad-fdm-x1c"],"tags":["petg","material","filament"]},{"id":"material-pa-cf","kind":"material","tier":2,"title":"PA-CF - the strong one, and the expensive one","summary":"Carbon-filled nylon at 1.14 g/cm3, chamber around 50 C, 8 mm brim, hardened nozzle required, and a 1.2 mm wall floor rather than 0.84 - filled filament does not lay a reliable two-extrusion wall.","applies":["pa-cf","nylon","carbon fibre","structural part"],"value":{"table":[{"param":"density","value":1.14},{"param":"warp-index","value":3},{"param":"min-wall-floor","value":1.2},{"param":"chamber-c","value":50},{"param":"brim","value":8}],"note":"density g/cm3, wall and brim mm, chamber C"},"basis":"the rule pack's pa-cf row; the 1.2 mm filled-filament wall floor is carried over from ops/machineCatalog.js's bambu_x1c pa_cf entry (CADSF-655)","sources":["kb-research-x1c","nativecad-fdm-x1c"],"tags":["pa-cf","nylon","material","structural"]},{"id":"material-tpu","kind":"material","tier":2,"title":"TPU - flexible, and external spool only","summary":"Density 1.21 g/cm3, warp class 1, external spool only because the AMS feed path buckles it. Design for it the way you design a moulded elastomer: thin walls that bend, generous radii, and no press fits anywhere.","applies":["tpu","flexible part","gasket","bumper"],"value":{"table":[{"param":"density","value":1.21},{"param":"warp-index","value":1},{"param":"ams-compatible","value":0}],"note":"density g/cm3; ams-compatible 0 means external spool only"},"basis":"the rule pack's tpu row and Bambu's published soft-filament exclusion from the AMS","sources":["kb-research-x1c","nativecad-fdm-x1c"],"tags":["tpu","flexible","material","ams"]},{"id":"warp-risk-composite","kind":"rule","tier":2,"title":"Warp risk is a footprint problem, not a material problem","summary":"Shrinkage class times footprint size times flatness times how completely the footprint fills its own bounding box. A score of 1.0 is where the published guidance starts asking for a brim and a hot chamber - a square-cornered flat plate is the worst case.","applies":["warping","footprint","flat part","abs"],"value":{"max":1,"unit":"ratio"},"basis":"composite score in ops/fdmX1cRules.js x1c_warp_risk over the published shrinkage ranking; 1.0 is the rule pack's warn limit, not a figure any one page prints","sources":["hubs-fdm","adp-abs-asa","nativecad-fdm-x1c"],"tags":["warp","footprint","abs","first-layer"],"detail":"The four factors are multiplicative, which is why a small ABS part is fine and a large one is not, and why the same part in PLA never lifts. The geometric levers are all in the footprint: chamfer the plan-view corners instead of leaving them square, break a big solid plate into a ribbed one so the bed-contact area drops, and keep the aspect ratio of the footprint under control. The process levers - brim width and a closed lid with the aux fan off - are the ones the rule pack cannot see."},{"id":"flow-rate-budget","kind":"process","tier":2,"title":"Volumetric flow is what actually caps print speed","summary":"Realistic flow at the 0.4 nozzle is 12-20 mm3/s. Layer height times line width times speed has to stay under it, so a part that is all thin outer wall prints slowly no matter what the 500 mm/s headline says.","applies":["print time","wall","infill","speed"],"value":{"table":[{"param":"flow-min","value":12},{"param":"flow-max","value":20}],"note":"volumetric flow in mm3/s at the 0.4 nozzle"},"basis":"realistic 0.4-nozzle volumetric flow from the research note, flagged there as inference over the profile's speed and acceleration ceilings","sources":["kb-research-x1c","nativecad-fdm-x1c"],"tags":["flow","print-time","speed"]},{"id":"machine-thermals-and-speed","kind":"process","tier":2,"title":"Hotend, bed, chamber and the motion ceiling","summary":"300 C hotend, 120 C bed, enclosed chamber that holds heat, 500 mm/s XY and 20000 mm/s2 extruding acceleration, with a 107 mm3 nozzle volume. Those are the ceilings every other number on this page sits under.","applies":["machine","thermals","speed","chamber"],"value":{"table":[{"param":"hotend-max-c","value":300},{"param":"bed-max-c","value":120},{"param":"max-speed-xy","value":500},{"param":"max-accel-extruding","value":20000},{"param":"nozzle-volume","value":107}],"note":"temperatures C, speed mm/s, acceleration mm/s2, nozzle volume mm3"},"basis":"machine profile limits for the X1C plus the published spec for the enclosure and hotend","sources":["bbl-machine-x1c04","kb-research-x1c"],"tags":["machine","thermal","speed","x1c"]},{"id":"multicolour-flush-cost","kind":"process","tier":2,"title":"What a colour change actually costs","summary":"Every filament change purges the 107 mm3 nozzle plus a flush of 100-200 mm3 light to dark, 500-800 dark to light and 700+ into clear, and a 35 mm prime tower stands for the whole build. A 100 g part becomes about 135 g in colour.","applies":["multi-colour","ams","colour change","print cost"],"value":{"table":[{"param":"nozzle-purge","value":107},{"param":"flush-light-to-dark","value":"100-200"},{"param":"flush-dark-to-light","value":"500-800"},{"param":"flush-into-clear","value":700},{"param":"prime-tower-width","value":35}],"note":"volumes mm3, prime tower width mm"},"basis":"published AMS flushing-volume matrix and the FilamentCalcs multi-colour mass comparison, carried in the rule pack as x1c_multicolour_cost","sources":["flush-guide","filamentcalcs-ams","nativecad-fdm-x1c"],"tags":["ams","multi-colour","waste","print-cost"],"detail":"The design consequence is geometric: the cost scales with the number of distinct filaments per Z slab times the number of layers in it, not with how much of each colour is visible. A logo inlaid through the full height of a part costs a change on every layer; the same logo recessed into the top 2 mm costs a change on a handful. Grouping colours into Z bands is the single biggest saving available to the model."},{"id":"process-defaults","kind":"process","tier":2,"title":"The defaults the 0.20 Standard profile prints with","summary":"Two walls, three bottom and five top layers, 15 percent grid infill, 30 deg support threshold, 0.15 mm elephant-foot compensation, 0 hole compensation, 5 mm brim, 35 mm prime tower. Design against these, not against a slicer you have retuned.","applies":["slicer defaults","process profile","infill","support"],"value":{"table":[{"param":"walls","value":2},{"param":"bottom-layers","value":3},{"param":"top-layers","value":5},{"param":"infill-percent","value":15},{"param":"support-threshold-deg","value":30},{"param":"elephant-foot-comp","value":0.15},{"param":"xy-hole-comp","value":0},{"param":"brim","value":5},{"param":"prime-tower-width","value":35}],"note":"counts, percent, deg and mm as named"},"basis":"the 0.20mm Standard @BBL X1C process profile as shipped","sources":["bbl-process-common","bbl-machine-x1c04"],"tags":["defaults","process","infill","support"]},{"id":"unsupported-island","kind":"rule","tier":2,"title":"No unsupported islands","summary":"A face that starts in mid-air with nothing under it is 0 supportable layers of contact: the extruder draws it into open space and the part fails there. Count of unsupported islands in a printable model must be 0.","applies":["island","overhang","orientation","support"],"value":{"max":0,"unit":"count"},"basis":"published FDM guidance that a new region needs a layer beneath it; carried in the rule pack as the x1c_unsupported_island fail rule","sources":["hubs-fdm","nativecad-fdm-x1c"],"tags":["island","overhang","support","orientation"]},{"id":"step-into-bambu-studio","kind":"process","tier":2,"title":"STEP goes into Bambu Studio directly","summary":"Bambu Studio reads STEP natively through OCCT with its own linear and angular deflection settings, so a NativeCAD STEP export needs no mesh step at all. A multi-solid STEP arrives as 1 object carrying parts, and STEP colours are not mapped to filaments.","applies":["step export","slicer import","file path"],"value":{"options":["step","stl","obj","3mf"],"note":"the four formats Bambu Studio accepts as input geometry"},"basis":"Bambu Lab's STEP import documentation and the observed multi-solid behaviour recorded in the research note","sources":["bbl-wiki-step","kb-research-x1c"],"tags":["step","export","slicer","file-path"],"detail":"This is the practical reason to hand the slicer a B-rep rather than a mesh: the tessellation happens inside Bambu Studio against its own deflection settings, so a curve stays a curve until the last possible moment and the user can re-tessellate finer without going back to CAD. The one thing STEP does not carry across is colour-to-filament assignment - that needs a Bambu-flavoured 3MF with per-part extruder metadata."},{"id":"gcode-3mf-handoff","kind":"process","tier":2,"title":"The printer eats .gcode.3mf, not G-code","summary":"The machine consumes a .gcode.3mf: a zip holding per-plate G-code, an md5 the printer checks, plate thumbnails and the full resolved settings. The slicer is what produces it - there are 4 input formats in and exactly 1 out.","applies":["gcode.3mf","print job","file path","slicer output"],"value":{"table":[{"param":"input-formats","value":4},{"param":"output-format","value":"gcode.3mf"}],"note":"STEP / STL / OBJ / 3MF in, one .gcode.3mf out"},"basis":"the .gcode.3mf anatomy from the BambuStudio 3MF writer and the Printago teardown, as recorded in the research note","sources":["printago-3mf","kb-research-x1c"],"tags":["3mf","print-job","file-path"],"detail":"Inside it: 3D/3dmodel.model plus 3D/Objects/*.model (per-triangle paint for colour, supports and seams), Metadata/project_settings.config (every resolved key as JSON), Metadata/model_settings.config (plate, gcode file, bed type, print sequence, per-part extruder), Metadata/slice_info.config (predicted time, weight, per-filament usage), Metadata/plate_1.gcode and its .md5, and the plate/top/pick PNGs. printer_model has to match the target machine or the printer rejects the job."},{"id":"test-clearance-coupon","kind":"test","tier":2,"title":"Clearance coupon - pick the fit class before you print the part","summary":"A 70 x 24 x 6 mm plate with five holes at 5.0, 5.1, 5.2, 5.3 and 5.5 mm, printed and tried against a 5 mm pin. The first hole that slides is the clearance this filament and nozzle actually give you, and the number beats any table.","applies":["clearance","fit test","calibration","assembly"],"value":{"min":0.1,"max":0.5,"typical":0.2,"unit":"mm"},"basis":"the published clearance classes turned into a printable gauge; the geometry it demands is a flat plate at least 6 mm thick so the bore is a bore and not a bridge","sources":["prusa-modeling","hubs-fdm"],"see":["fdm-x1c/mating-clearance"],"tags":["test","clearance","calibration","fit"]},{"id":"test-overhang-tower","kind":"test","tier":2,"title":"Overhang tower - find the angle this filament really fails at","summary":"Tongues stepping from 30 to 70 deg in 5 deg increments, each at least 5 mm deep, printed in the filament you intend to use. The step where the underside goes rough is the fail angle; it moves with material, cooling and layer height.","applies":["overhang","support","orientation","calibration"],"value":{"min":30,"max":70,"unit":"deg"},"basis":"the standard FDM overhang-tower method against the published 45 deg baseline; demands tongues deep enough to be a real overhang rather than a bridge","sources":["hubs-fdm","prusa-modeling"],"see":["fdm-x1c/overhang-limit"],"tags":["test","overhang","calibration","orientation"]},{"id":"test-bridge-ladder","kind":"test","tier":2,"title":"Bridge ladder - the span that still droops","summary":"Spans of 5, 10, 15, 20, 25 and 30 mm between two 10 mm pillars, printed as one part. Measure the sag under each: the last clean rung is this machine's bridge limit for that filament, and it is usually nearer 25 mm than the 5 mm guidance.","applies":["bridge","span","ceiling","calibration"],"value":{"min":5,"max":30,"unit":"mm"},"basis":"published FDM bridging guidance turned into a printable ladder; demands both ends anchored so it measures bridging rather than overhang","sources":["xometry-fdm","hubs-fdm"],"see":["fdm-x1c/bridge-span"],"tags":["test","bridge","calibration"]},{"id":"test-hole-gauge","kind":"test","tier":2,"title":"Hole gauge - measure the undersize, then design it out","summary":"Holes at 2, 4, 6, 8, 10 and 12 mm through a 6 mm plate, measured with calipers after printing. The difference is the compensation to add in CAD - expect 0.1-0.3 mm, and expect it to be worse at the small end.","applies":["hole","bore","calibration","fit"],"value":{"min":2,"max":12,"unit":"mm"},"basis":"Hubs' printed-hole undersize guidance turned into a gauge; a 6 mm plate keeps every hole a through-bore rather than a blind pocket","sources":["hubs-fdm","bbl-process-common"],"see":["fdm-x1c/hole-size-and-compensation"],"tags":["test","hole","calibration","tolerance"]},{"id":"recipe-x1c-print-ready-bracket","kind":"recipe","tier":2,"title":"Recipe: print-ready L-bracket for the X1 Carbon","summary":"Build a 60 x 60 x 40 mm L-bracket that obeys this pack: 3 mm walls above the 1.2 mm recommendation, a 0.6 mm chamfer on every bed-touching edge for the elephant foot, and a 5.2 mm clearance hole for an M5 with the printed undersize designed out.","applies":["bracket","l-bracket","printed part","fixture"],"basis":"combines wall-thickness-by-nozzle, elephant-foot-chamfer and hole-size-and-compensation into one buildable part that fits the plate with room to spare","sources":["bbl-process-common","hubs-fdm","prusa-modeling"],"see":["fdm-x1c/elephant-foot-chamfer","fdm-x1c/hole-size-and-compensation"],"tags":["recipe","bracket","printed-part"],"recipe":{"prompt":"Model a 60x60x40mm printed L-bracket for a Bambu X1 Carbon: 3mm walls, a 0.6mm chamfer on the bed-face edges, and a 5.2mm clearance hole through the base leg","steps":[{"tool":"cad_box","args":{"dx":60,"dy":60,"dz":3},"note":"base leg, bed face at z=0, 3 mm thick"},{"tool":"cad_box","args":{"dx":60,"dy":3,"dz":40},"note":"upright leg, 3 mm thick, overlapping the base"},{"tool":"cad_boolean_union","args":{"of":"$0","tool":"$1"},"note":"one L-shaped solid"},{"tool":"cad_chamfer_edges","args":{"of":"$2","distance":0.6},"note":"break every edge 0.6 mm - chamfer, not fillet, so the bed-face edge absorbs the elephant foot"},{"tool":"cad_drill_hole","args":{"of":"$3","center":[30,35],"type":"drill","diameter":5.2},"note":"M5 clearance through the base leg: 5.0 nominal plus 0.2 mm for the printed undersize"}],"expect":{"volume":17284.9045009852,"faceCount":33,"watertight":true,"note":"measured 2026-09-22: 60x60x3 base plus 60x3x40 upright unioned is 17460 mm3; the 0.6 mm blanket chamfer takes 111 mm3 and the 5.2 mm through-hole another 64, and the chamfer is what turns 8 faces into 31"}}},{"id":"recipe-x1c-clearance-coupon","kind":"recipe","tier":2,"title":"Recipe: X1 Carbon clearance coupon","summary":"Build the fit gauge from the clearance-coupon test: a 70 x 24 x 6 mm plate with five bores at 5.0, 5.1, 5.2, 5.3 and 5.5 mm on a 13 mm pitch. Print it once and every fit on the machine afterwards is a measurement instead of a guess.","applies":["calibration","clearance","fit test","coupon"],"basis":"the geometry the test-clearance-coupon entry demands, built as real tool calls so an agent can produce it without re-deriving the pitch","sources":["prusa-modeling","hubs-fdm"],"see":["fdm-x1c/test-clearance-coupon","fdm-x1c/mating-clearance"],"tags":["recipe","calibration","clearance"],"recipe":{"prompt":"Model a 70x24x6mm 3D printing clearance test coupon with five holes at 5.0, 5.1, 5.2, 5.3 and 5.5mm on a 13mm pitch","steps":[{"tool":"cad_box","args":{"dx":70,"dy":24,"dz":6},"note":"coupon plate, 6 mm thick so every hole is a through-bore"},{"tool":"cad_drill_hole","args":{"of":"$0","center":[11,12],"type":"drill","diameter":5},"note":"nominal - a 5 mm pin should NOT enter this one"},{"tool":"cad_drill_hole","args":{"of":"$1","center":[24,12],"type":"drill","diameter":5.1},"note":"press fit, 0.1 mm"},{"tool":"cad_drill_hole","args":{"of":"$2","center":[37,12],"type":"drill","diameter":5.2},"note":"sliding fit, 0.2 mm"},{"tool":"cad_drill_hole","args":{"of":"$3","center":[50,12],"type":"drill","diameter":5.3},"note":"sliding to hinge, 0.3 mm"},{"tool":"cad_drill_hole","args":{"of":"$4","center":[63,12],"type":"drill","diameter":5.5},"note":"loose fit, 0.5 mm"}],"expect":{"volume":9437.277266965333,"faceCount":16,"watertight":true,"note":"measured 2026-09-22: 70x24x6 plate is 10080 mm3 and the five bores at 5.0 to 5.5 mm remove 643; each through-bore adds a cylindrical face and closes one, so 6 faces become 16"}}},{"id":"per-body-filament-slots","kind":"process","tier":3,"title":"Per-body filament slots need a Bambu-flavoured 3MF","summary":"Assigning bodies to AMS slots without a dialog means writing model_settings.config with an extruder metadata key of 1 to 16 per part, alongside project_settings naming the printer model and variant. STEP colours will not do it.","applies":["3mf","multi-material","ams mapping","export"],"value":{"min":1,"max":16,"unit":"count","note":"the extruder slot index a part may be assigned to"},"basis":"the model_settings.config and project_settings.config structure in the BambuStudio 3MF writer, as recorded in the research note","sources":["printago-3mf","kb-research-x1c"],"tags":["3mf","ams","multi-material","export"],"detail":"A non-Bambu 3MF triggers a 'not from Bambu Lab, load geometry data only' path in Bambu Studio, and the standard-3MF colour import applies colours as face paint rather than filament assignment. Writing the flavoured variant - 3D/3dmodel.model plus 3D/Objects/*.model, Metadata/model_settings.config with per-part extruder, Metadata/project_settings.config with printer_model, printer_variant, filament_type, filament_colour and filament_ids - is what makes a multi-body assembly arrive already mapped."},{"id":"headless-slicing","kind":"note","tier":3,"title":"Slicing without opening the app","summary":"Bambu Studio has a CLI: --load-settings with a machine and process profile, --load-filaments, --arrange, --orient, --ensure-on-bed, --slice 0 and --export-3mf. It is the same binary, invoked as a separate process.","applies":["headless","automation","batch","ci"],"basis":"BambuStudio command-line usage, cross-checked against the published CLI reference in the research note","sources":["bbl-cli","kb-research-x1c"],"tags":["cli","headless","automation"],"detail":"Each slice writes hundreds of megabytes of temporary files, and the stock profiles use an inherits chain the CLI handles imperfectly - flattening the profile first is the usual workaround. Bambu Studio is AGPL-3.0; invoking the unmodified binary as a separate process is a different posture from linking libslic3r or shipping a patched build, and that distinction is an engineering note here, not legal advice."},{"id":"lan-print-path","kind":"note","tier":3,"title":"Getting the job onto the machine over the LAN","summary":"Historically: FTPS on port 990 to upload the .gcode.3mf, then MQTT over TLS on 8883 to start it with an ams_mapping array. Since the 2025 firmware a signed channel is required, and third parties go through Bambu Connect instead.","applies":["lan","print start","automation","ams mapping"],"basis":"the OpenBambuAPI LAN protocol notes and the 2025 authorization change, both recorded in the research note","sources":["openbambu-mqtt","kb-research-x1c"],"tags":["lan","mqtt","automation","print-start"],"detail":"The escape hatch is LAN-only mode plus Developer Mode on the printer, which reopens raw MQTT, FTPS and the camera stream at the cost of disconnecting the machine from Bambu Cloud. ams_mapping is indexed by the 3MF's filament slot and carries global tray ids - AMS1 is 0-3, AMS2 is 4-7 - with -1 for unused, and an external-spool job sends use_ams false with a single -1."}]},{"$schema":"nativecad-dfm-pack/1","id":"furniture-construction","title":"Furniture construction & joinery — how a chair is actually built","sector":"furniture-construction","version":"2026-09-12","summary":"The construction vocabulary of furniture — rail, stretcher, splat, apron, shell, star base, cantilever, lamination, tenon, dowel, cord seat — each mapped to the ops that build it, plus standard member sections, joint-selection rules and worked recipes for ten chair construction types.","aliases":["joinery","woodworking joinery","furniture joinery","chair construction","furniture construction","chair frame","mortise and tenon","mortise-tenon","stretcher","splat","apron","crest rail","bentwood","bent lamination","bent plywood","moulded shell","shell chair","star base","cantilever chair","sled base","cord seat","danish cord","cane seat","turned leg","cabinetmaking","chair joint"],"crossSector":false,"size":"full","sources":[{"id":"joyce-furniture","title":"Ernest Joyce, The Technique of Furniture Making (rev. Alan Peters), 4th ed. — chair and table joinery proportions","note":"Standard cabinetmaking reference for rail, stretcher and leg sections and tenon proportions."},{"id":"hayward-joints","title":"Charles H. Hayward, Woodwork Joints — mortise-and-tenon, half-lap, bridle and dowel proportions","note":"Source of the one-third and two-thirds tenon rules."},{"id":"wood-handbook","title":"USDA Forest Products Laboratory, Wood Handbook FPL-GTR-190 (ch. 8 fastenings, ch. 10 adhesives, ch. 19 bent wood members)","url":"https://www.fpl.fs.usda.gov/documnts/fplgtr/fpl_gtr190.pdf","accessed":"2026-09-10"},{"id":"en-12520","title":"EN 12520:2015 Furniture — Strength, durability and safety — Requirements for domestic seating","accessed":"2026-09-10"},{"id":"en-1728","title":"EN 1728:2012+AC:2013 Furniture — Seating — Test methods for the determination of strength and durability","accessed":"2026-09-10"},{"id":"en-1022","title":"EN 1022:2018 Furniture — Seating — Determination of stability","accessed":"2026-09-10"},{"id":"en-636","title":"EN 636:2012+A1:2015 Plywood — Specifications (veneer thickness and panel build-up)","accessed":"2026-09-10"},{"id":"en-10305-3","title":"EN 10305-3:2016 Steel tubes for precision applications — Welded cold-sized tubes (furniture tube sizes and wall thicknesses)","accessed":"2026-09-10"},{"id":"astm-d3574","title":"ASTM D3574-17 Standard Test Methods for Flexible Cellular Materials — Slab, Bonded and Molded Urethane Foams","accessed":"2026-09-10"},{"id":"pu-handbook","title":"Covestro (Bayer) Polyurethanes Handbook — cold-cure moulded flexible and self-skinning foam seat shells","accessed":"2026-09-10"},{"id":"iso-4762","title":"ISO 4762:2004 Hexagon socket head cap screws","accessed":"2026-09-10"},{"id":"din-7997","title":"DIN 7997 Countersunk head wood screws with cross recess","accessed":"2026-09-10"},{"id":"iso-8734","title":"ISO 8734:1997 Parallel pins, of hardened steel and martensitic stainless steel (dowel pins)","accessed":"2026-09-10"},{"id":"franks-cord","title":"Frank's Cane & Rush Supply — Danish (laid paper) seat cord and pre-woven cane webbing technical data","accessed":"2026-09-10"},{"id":"titebond-tds","title":"Franklin International, Titebond III Ultimate Wood Glue technical data sheet — clamp time, open time and bond-line thickness","accessed":"2026-09-10"}],"entries":[{"id":"op-inventory-for-furniture","kind":"note","tier":1,"title":"Which ops build furniture today","summary":"Furniture is built today from cad_box, cad_cylinder, cad_extrude_profile, cad_revolve_profile, cad_sweep_profile, cad_tube_sweep, cad_loft_profiles, cad_boolean_subtract, cad_fillet_edges, cad_pattern_copies, cad_transform, cad_drill_hole and cad_hole_pattern.","applies":["chair","stool","table","cabinet"],"basis":"The tool surface this build ships, now including cad_joint (CADSF-1370) and cad_fastener (CADSF-1371); the recipes below predate them and remain valid manual alternatives.","tags":["glossary","ops","shipped"],"sources":[]},{"id":"planned-joinery-ops","kind":"note","tier":1,"title":"cad_joint and cad_fastener ship","summary":"A one-call mortise-and-tenon (cad_joint, CADSF-1370) and standard fastener (cad_fastener, CADSF-1371) now ship; cad_fastener_audit must return zero findings before a bolted assembly ships. The manual recipes below remain valid alternatives.","applies":["chair","stool","table"],"basis":"cad_joint and cad_fastener appear in this build's tools/list (CADSF-1370, CADSF-1371); the recipes below predate them and remain buildable manual alternatives.","tags":["glossary","shipped","joinery"],"sources":[]},{"id":"glossary-rail","kind":"feature","tier":1,"title":"Rail — the horizontal member between two legs","summary":"A rail is the horizontal member tying two legs at seat level (seat rail) or at the back (back rail); 20-30 mm thick and 50-80 mm deep. Build it with cad_box, or cad_extrude_profile for a shaped rail, and tenon it into the legs.","applies":["chair","stool","table"],"basis":"A rail carries the seat load in bending between the legs, so it is deep in the load direction and thin across it.","tags":["glossary","rail","frame"],"sources":["joyce-furniture"]},{"id":"glossary-stretcher","kind":"feature","tier":1,"title":"Stretcher — the low rail that triangulates the legs","summary":"A stretcher is a low horizontal member between legs, 20-25 mm square or round, whose job is to stop the leg frame racking. Build it with cad_box or cad_revolve_profile (turned) and tenon or dowel it into the legs.","applies":["chair","stool","table"],"basis":"A stretcher works in tension/compression against racking, not bending, so its section is small and square.","tags":["glossary","stretcher","frame"],"sources":["joyce-furniture"]},{"id":"glossary-apron","kind":"feature","tier":1,"title":"Apron — the skirt rail under a seat or table top","summary":"An apron is the rail immediately under a top or seat, set back 5-15 mm from the edge, 18-25 mm thick. Build it with cad_box and cad_transform; it is the member a top screws down onto.","applies":["table","chair","casegoods"],"basis":"The apron stiffens the top and hides the joint line; the setback reads as a shadow gap.","tags":["glossary","apron","frame"],"sources":["joyce-furniture"]},{"id":"glossary-splat","kind":"feature","tier":1,"title":"Splat — the shaped vertical board in a chair back","summary":"A splat is the single shaped board rising from the back seat rail into the crest rail, 8-16 mm thick. Build it with cad_extrude_profile on a curved outline, or cad_loft_profiles for a twisted splat, then tenon both ends.","applies":["chair"],"basis":"One wide board spans the back with fewer joints than a set of spindles.","tags":["glossary","splat","back"],"sources":["joyce-furniture"]},{"id":"glossary-shell","kind":"feature","tier":1,"title":"Shell — a one-piece seat-and-back surface","summary":"A shell is a single curved panel forming seat and back, 8-10 mm in moulded veneer or 25-40 mm in moulded foam. Build it with cad_sweep_profile (a thin rectangular section along the curved side profile) or cad_loft_profiles plus cad_shell / cad_thicken.","applies":["chair"],"basis":"A shell replaces a seat frame, a back frame and their joints with one moulded part.","tags":["glossary","shell","moulded"],"sources":["en-636"]},{"id":"glossary-star-base","kind":"feature","tier":1,"title":"Star base — the radial multi-arm foot of a swivel chair","summary":"A star base is a hub with 4-5 radial arms carrying glides or casters. Build one arm with cad_box or cad_sweep_profile and repeat it with cad_pattern_copies {type:'circular', count:5, totalAngle:6.2832}, then cad_boolean_union it to a cad_cylinder hub.","applies":["chair","office chair"],"basis":"Radial arms put the support polygon under a single central column.","tags":["glossary","base","swivel"],"sources":["en-1022"]},{"id":"glossary-lamination","kind":"feature","tier":1,"title":"Bent lamination — a curved member glued up from thin plies","summary":"A bent laminate is a curved solid member glued from 1.0-1.5 mm veneer plies over a form. Model the FINISHED member, not the plies: cad_sweep_profile with a rectangular section along the bend path, corner radii via path.fillets.","applies":["chair","stool"],"basis":"Thin plies bend elastically and the glue line holds the curve; the finished part is one solid in CAD.","tags":["glossary","lamination","bent"],"sources":["wood-handbook"]},{"id":"glossary-tenon","kind":"feature","tier":1,"title":"Tenon — the tongue formed on the entering member","summary":"A tenon is the reduced tongue on the end of a rail, one third of the rail thickness and two thirds of the receiving member's width long. Cut it today as a cad_box tenon cad_boolean_union'ed to the rail; cad_joint ships (CADSF-1370).","applies":["chair","table"],"basis":"One third of the stock leaves equal cheeks and a shoulder that resists racking.","tags":["glossary","tenon","joinery"],"sources":["hayward-joints"]},{"id":"glossary-mortise","kind":"feature","tier":1,"title":"Mortise — the socket cut in the receiving member","summary":"A mortise is the rectangular socket in a leg that receives a tenon, 0.2 mm larger than the tenon on each face for glue. Cut it today with cad_boolean_subtract of an oversize cad_box, or cad_drill_hole for a round mortise; cad_joint ships (CADSF-1370).","applies":["chair","table"],"basis":"A socket in the leg keeps the joint's glue area on long grain.","tags":["glossary","mortise","joinery"],"sources":["hayward-joints"]},{"id":"glossary-mount-plate","kind":"feature","tier":1,"title":"Mount plate — the metal plate between a shell and a frame","summary":"A mount plate is a 3-5 mm steel or aluminium plate brazed or welded to a tube frame, drilled 4 x M6, that the shell bolts down onto. Build it with cad_box + cad_hole_pattern and bolt through with cad_drill_hole; cad_fastener ships (CADSF-1371).","applies":["chair"],"basis":"A plate spreads a bolt load over a thin shell that a bolt head alone would crush.","tags":["glossary","plate","shell","frame"],"sources":["iso-4762"]},{"id":"glossary-crest-rail","kind":"feature","tier":2,"title":"Crest rail — the top rail of a chair back","summary":"The crest rail is the shaped top member of a back, 25-45 mm deep, often curved in plan. Build it with cad_sweep_profile along a shallow arc path, or cad_extrude_profile of a curved outline, then mortise it for the splat.","applies":["chair"],"basis":"The crest takes the occupant's back load and is the member a back is judged by.","tags":["glossary","crest","back"],"sources":["joyce-furniture"]},{"id":"glossary-arm-rail","kind":"feature","tier":2,"title":"Arm rail — a continuous rail forming arms and back","summary":"An arm rail is one continuous curved member that forms both arms and the back top, 25-40 mm thick. Build it with cad_sweep_profile along a U-shaped coplanar path with generous path.fillets, or as a laminated bend.","applies":["chair"],"basis":"A single continuous rail removes the arm-to-back joint entirely.","tags":["glossary","arm","continuous"],"sources":["joyce-furniture"]},{"id":"glossary-seat-frame","kind":"feature","tier":2,"title":"Seat frame — the four-rail frame the seat sits in","summary":"A seat frame is four rails tenoned into four legs, with 20-30 mm thick rails, carrying a drop-in panel, a cord weave or a cane sheet. Build it as four cad_box rails plus cad_transform, mortised into the legs.","applies":["chair"],"basis":"A frame lets the seat surface be a separate material from the structure.","tags":["glossary","frame","seat"],"sources":["joyce-furniture"]},{"id":"glossary-turned-leg","kind":"feature","tier":2,"title":"Turned leg — a leg of revolution from a lathe profile","summary":"A turned leg is a leg whose section is circular everywhere, typically 30-45 mm at the top tapering to 20-28 mm at the floor. Build it with cad_revolve_profile on an [[r,z],...] half profile — never sample it as an N-gon.","applies":["chair","stool","table"],"basis":"A lathe only makes bodies of revolution, so the CAD op that matches the process is the revolve.","tags":["glossary","leg","turned"],"sources":["joyce-furniture"]},{"id":"glossary-cantilever","kind":"feature","tier":2,"title":"Cantilever frame — a chair with no back legs","summary":"A cantilever frame carries the seat on a sprung front-to-back loop of 19-25 mm steel tube with no rear leg. Build it with cad_tube_sweep along a coplanar side-profile path and cad_mirror for the second side.","applies":["chair"],"basis":"The tube's elastic springback is the chair's suspension; EN 1728 fatigue is the governing case.","tags":["glossary","cantilever","tube"],"sources":["en-10305-3"]},{"id":"glossary-sled-base","kind":"feature","tier":2,"title":"Sled base — a pair of runner-shaped tube frames","summary":"A sled base carries the chair on two floor runners rather than four feet, from 19-25 mm tube. Build it with cad_tube_sweep along the runner side profile and cad_mirror; it cannot use cad_pattern_copies because the two sides are mirrored, not translated.","applies":["chair"],"basis":"Runners spread the load on soft floors and stop the chair sinking.","tags":["glossary","sled","tube"],"sources":["en-10305-3"]},{"id":"glossary-spacer","kind":"feature","tier":2,"title":"Spacer — the short cylinder that carries a panel off a frame","summary":"A spacer is a short turned or machined cylinder, 12-25 mm diameter, that stands a seat or back panel off the frame to make a shadow gap. Build it with cad_cylinder {r,h} and screw through it.","applies":["chair"],"basis":"The gap is a deliberate detail and a ventilation path, not a tolerance.","tags":["glossary","spacer","detail"],"sources":["joyce-furniture"]},{"id":"glossary-cord-seat","kind":"feature","tier":2,"title":"Cord seat — a seat woven from laid paper cord","summary":"A cord seat is a hand-woven envelope of ~3 mm laid paper cord over the seat frame. In CAD model the FRAME and the woven envelope as a 12-18 mm thick panel inset in the frame with cad_extrude_profile — do not model individual cords.","applies":["chair"],"basis":"Modelling each cord costs thousands of faces and tells a reviewer nothing the envelope does not.","tags":["glossary","cord","seat","weave"],"sources":["franks-cord"]},{"id":"glossary-cane-seat","kind":"feature","tier":2,"title":"Cane seat — a pre-woven cane sheet in a groove","summary":"A cane seat is a pre-woven cane sheet, 1.5-2.5 mm thick, held in a 5-6 mm groove around the seat frame by a spline. Model it as a thin cad_extrude_profile panel let into a cad_boolean_subtract groove in the frame.","applies":["chair"],"basis":"The spline groove is real geometry a maker needs; the weave is not.","tags":["glossary","cane","seat"],"sources":["franks-cord"]},{"id":"glossary-half-lap","kind":"feature","tier":2,"title":"Half-lap — two members each cut back to half thickness","summary":"A half-lap removes half the thickness from each of two crossing members so they finish flush. Cut it today with two cad_boolean_subtract cad_box pockets, each half the member thickness deep; cad_joint ships (CADSF-1370).","applies":["chair","table"],"basis":"Half-lap trades glue area for a joint that can be cut with one setting.","tags":["glossary","half-lap","joinery"],"sources":["hayward-joints"]},{"id":"glossary-dowel-joint","kind":"feature","tier":2,"title":"Dowel joint — two or more pins across a butt joint","summary":"A dowel joint pins a butt joint with 2 or more 8-10 mm dowels at 32 mm centres, entering 15-20 mm each side. Cut it today with matching cad_hole_pattern holes in both parts plus a cad_cylinder dowel; cad_fastener ships (CADSF-1371).","applies":["chair","casegoods"],"basis":"Two pins locate and stop the joint rotating; one pin is a hinge.","tags":["glossary","dowel","joinery"],"sources":["iso-8734"]},{"id":"glossary-scrolled-sheet","kind":"feature","tier":2,"title":"Scrolled sheet — a seat rolled from one continuous panel","summary":"A scrolled seat is one 8-12 mm plywood sheet rolled through seat and back with scrolled ends, carried by two side frames. Build it with cad_sweep_profile: a thin rectangular section along the coplanar side-profile path, scrolls as path.fillets.","applies":["chair"],"basis":"A single sheet on two frames is the whole chair; the scrolls stiffen the free edges.","tags":["glossary","sheet","scroll","bent"],"sources":["en-636"]},{"id":"glossary-swivel-hub","kind":"feature","tier":2,"title":"Swivel hub — the column and tilt fitting under a shell","summary":"A swivel hub is the column (40-60 mm diameter) plus a tilt/plate fitting between shell and base, bolted up 4 x M8. Build the column with cad_cylinder, the fitting with cad_box + cad_hole_pattern, and bolt through with cad_drill_hole.","applies":["chair","office chair"],"basis":"The hub is where the shell's load enters the base, so it is the one place a plate is unavoidable.","tags":["glossary","swivel","hub","base"],"sources":["iso-4762"]},{"id":"glossary-glide","kind":"feature","tier":2,"title":"Glide — the foot fitting at the bottom of a leg","summary":"A glide is a 16-25 mm diameter disc or dome at a leg's foot, entering a 8-10 mm hole. Build it with cad_cylinder or cad_revolve_profile and cad_drill_hole for its stem socket.","applies":["chair","stool","table"],"basis":"The glide, not the leg, is what touches the floor and what a stability test slides on.","tags":["glossary","glide","foot"],"sources":["en-1022"]},{"id":"glossary-veneer-lay-up","kind":"feature","tier":2,"title":"Veneer lay-up — the ply schedule inside a moulded shell","summary":"A moulded shell is 7-9 plies of 1.0-1.5 mm veneer with alternating grain, finishing 8-10 mm. Model the FINISHED shell thickness; the lay-up is a note for the maker, not geometry.","applies":["chair"],"basis":"Alternating grain is what stops a curved panel splitting along one direction.","tags":["glossary","veneer","lay-up","shell"],"sources":["en-636"]},{"id":"glossary-haunch","kind":"feature","tier":3,"title":"Haunch — the short shoulder that fills a rail's top edge","summary":"A haunch is a 6-10 mm deep step left on the top of a tenon so a rail flush with a leg top does not open the mortise. Cut it as a second, shallower cad_boolean_subtract pocket.","applies":["chair","table"],"basis":"Without the haunch the mortise runs out at the leg top and the joint has nothing to close it.","tags":["glossary","haunch","tenon"],"sources":["hayward-joints"]},{"id":"glossary-wedged-through-tenon","kind":"feature","tier":3,"title":"Wedged through-tenon — a tenon that passes and is split","summary":"A through-tenon passes right through the receiving member and is locked by 2 wedges driven into saw kerfs, spreading the tenon 1-2 mm. Model the tenon through and the wedge slots as thin cad_boolean_subtract pockets.","applies":["chair","stool"],"basis":"The wedge makes the joint mechanically locked, not glue-dependent.","tags":["glossary","tenon","wedge"],"sources":["hayward-joints"]},{"id":"glossary-corner-block","kind":"feature","tier":3,"title":"Corner block — the triangular brace inside a seat frame","summary":"A corner block is a triangular or L-shaped block, 40-60 mm on the leg, screwed and glued into the inside corner of a seat frame. Build it with cad_extrude_profile on a triangular outline.","applies":["chair"],"basis":"The block turns a racking load on two rails into a compression load across the corner.","tags":["glossary","brace","frame"],"sources":["joyce-furniture"]},{"id":"glossary-kerf-bend","kind":"feature","tier":3,"title":"Kerf bend — a solid member curved by sawn kerfs","summary":"A kerf bend curves a solid member by cutting a row of 2-3 mm kerfs at 10-20 mm pitch to 80% of the thickness. Model the finished curve with cad_sweep_profile and the kerfs, if wanted, with cad_pattern_copies of a subtracted slot.","applies":["chair","casegoods"],"basis":"Kerfing bends a member without a lamination press, at the cost of strength on the kerfed face.","tags":["glossary","kerf","bent"],"sources":["wood-handbook"]},{"id":"section-leg-square-timber","kind":"dimension","tier":1,"title":"Chair/table leg section, solid hardwood (square)","summary":"A solid hardwood chair or table leg is 30-45 mm square, typically 36 mm; below 30 mm the mortises for the seat rails leave too little cheek, above 45 mm the leg reads as a table leg.","applies":["chair","stool","table"],"value":{"min":30,"max":45,"typical":36,"unit":"mm"},"basis":"Leg width must leave >= 2 x tenon-thickness of cheek each side of a 1/3-thickness rail mortise, at a seat height that puts the leg in bending.","sources":["joyce-furniture","wood-handbook"],"tags":["section","leg","timber"]},{"id":"section-stretcher","kind":"dimension","tier":1,"title":"Stretcher section (square or turned)","summary":"A stretcher between chair or stool legs is 20-25 mm square or round, typically 22 mm — big enough for a 7-8 mm tenon, small enough to stay out of the sitter's way.","applies":["chair","stool","table"],"value":{"min":20,"max":25,"typical":22,"unit":"mm"},"basis":"Sized by the tenon it must carry (1/3 of 22 mm = 7 mm) rather than by bending, because a stretcher works in tension and compression.","sources":["joyce-furniture","hayward-joints"],"tags":["section","stretcher"]},{"id":"section-tube-leg","kind":"dimension","tier":1,"title":"Light steel tube leg, outside diameter","summary":"A light chair tube leg or stretcher is 12-16 mm outside diameter, typically 14 mm, with a 1.0-1.5 mm wall — the section used for stacking-chair leg frames and understructures.","applies":["chair","stool"],"value":{"min":12,"max":16,"typical":14,"unit":"mm"},"basis":"EN 10305-3 precision welded tube is stocked in this range; below 12 mm the frame is not stiff enough to pass EN 1728 seat fatigue.","sources":["en-10305-3"],"tags":["section","tube","frame"]},{"id":"section-veneer-shell","kind":"dimension","tier":1,"title":"Moulded veneer (bent plywood) shell thickness","summary":"A moulded veneer seat/back shell finishes 8-10 mm, typically 9 mm: 7-9 plies of 1.0-1.5 mm veneer laid with alternating grain and pressed in one operation.","applies":["chair"],"value":{"min":8,"max":10,"typical":9,"unit":"mm"},"basis":"Thinner than 8 mm the shell flexes past its glue lines under EN 1728 seat load; thicker than 10 mm it will not take the compound curve without splitting.","sources":["en-636","wood-handbook"],"tags":["section","shell","veneer"]},{"id":"section-moulded-shell","kind":"dimension","tier":1,"title":"Moulded polyurethane foam shell thickness","summary":"A cold-cure moulded PU foam shell over a rigid substrate finishes 25-40 mm, typically 30 mm, measured normal to the substrate at the seat pan.","applies":["chair"],"value":{"min":25,"max":40,"typical":30,"unit":"mm"},"basis":"Below 25 mm the sitter feels the substrate; above 40 mm the shell loses the sharp moulded silhouette and the demould time climbs.","sources":["pu-handbook","astm-d3574"],"tags":["section","shell","foam"]},{"id":"section-seat-rail","kind":"dimension","tier":2,"title":"Seat rail section (thickness x depth)","summary":"A chair seat rail is 20-30 mm thick and 50-80 mm deep, typically 25 x 65 mm, with the depth in the vertical (load) direction.","applies":["chair"],"value":{"table":[{"member":"seat rail","thickness_mm":25,"depth_mm":65},{"member":"back rail","thickness_mm":22,"depth_mm":55},{"member":"front rail","thickness_mm":25,"depth_mm":70}],"unit":"mm"},"basis":"The rail spans between legs in bending under the sitter, so depth, not thickness, is the sizing dimension.","sources":["joyce-furniture"],"tags":["section","rail"]},{"id":"section-arm-rail","kind":"dimension","tier":2,"title":"Arm rail / continuous rail section","summary":"A continuous arm rail is 25-40 mm thick, typically 32 mm, and 45-70 mm deep where it crosses the back.","applies":["chair"],"value":{"min":25,"max":40,"typical":32,"unit":"mm"},"basis":"The rail is loaded by a sitter pushing up on the arm and must still take a tenon from each back leg.","sources":["joyce-furniture"],"tags":["section","arm"]},{"id":"section-splat","kind":"dimension","tier":2,"title":"Back splat thickness","summary":"A shaped back splat is 8-16 mm thick, typically 12 mm, and tenoned 8-10 mm into the crest rail and the back seat rail.","applies":["chair"],"value":{"min":8,"max":16,"typical":12,"unit":"mm"},"basis":"Thin enough to flex with the sitter's back, thick enough to carry a tenon at each end.","sources":["joyce-furniture"],"tags":["section","splat"]},{"id":"section-mount-plate","kind":"dimension","tier":2,"title":"Shell-to-frame mount plate thickness","summary":"The steel mount plate between a shell and a tube frame is 3-5 mm thick, typically 4 mm, with 4 holes on a 60-120 mm pattern.","applies":["chair"],"value":{"min":3,"max":5,"typical":4,"unit":"mm"},"basis":"Thick enough not to dish under a bolt torque, thin enough to disappear under the shell.","sources":["iso-4762"],"tags":["section","plate","frame"]},{"id":"section-laminate-ply","kind":"dimension","tier":2,"title":"Veneer ply thickness for a bent lamination","summary":"Plies for a bent lamination are 1.0-1.5 mm thick, typically 1.2 mm; a 24 mm finished leg is about 20 plies.","applies":["chair","stool"],"value":{"min":1,"max":1.5,"typical":1.2,"unit":"mm"},"basis":"Bending stress in a ply is proportional to its thickness over the bend radius; 1.5 mm is the practical limit at a 60 mm radius in beech.","sources":["wood-handbook","en-636"],"tags":["lamination","veneer"]},{"id":"section-spacer-diameter","kind":"dimension","tier":2,"title":"Spacer diameter between a panel and a frame","summary":"A turned spacer standing a seat or back panel off a frame is 12-25 mm in diameter, typically 18 mm, and 8-20 mm long.","applies":["chair"],"value":{"min":12,"max":25,"typical":18,"unit":"mm"},"basis":"The spacer must be wider than the screw washer it hides and narrower than the rail it stands on.","sources":["joyce-furniture"],"tags":["section","spacer"]},{"id":"section-seat-panel","kind":"dimension","tier":2,"title":"Solid or plywood seat panel thickness","summary":"A flat drop-in or screwed-on seat panel is 12-20 mm thick, typically 16 mm in plywood and 20 mm in solid timber.","applies":["chair","stool"],"value":{"min":12,"max":20,"typical":16,"unit":"mm"},"basis":"Sized to take a wood screw into its edge or face without splitting and to span the seat frame without sagging.","sources":["en-636","wood-handbook"],"tags":["section","seat","panel"]},{"id":"section-tube-wall","kind":"dimension","tier":2,"title":"Steel furniture tube wall thickness","summary":"Furniture tube wall is 1.0-2.0 mm, typically 1.5 mm, in EN 10305-3 precision welded tube; below 1.0 mm the tube collapses at the bend.","applies":["chair"],"value":{"min":1,"max":2,"typical":1.5,"unit":"mm"},"basis":"Wall/diameter ratio must stay above about 0.07 for a mandrel bend at 3 x diameter without ovalising.","sources":["en-10305-3"],"tags":["section","tube","wall"]},{"id":"section-tube-frame-heavy","kind":"dimension","tier":2,"title":"Heavy steel tube leg frame, outside diameter","summary":"A load-bearing chair leg frame or cantilever loop uses 19-25 mm outside-diameter tube, typically 22 mm, where section-tube-leg's 12-16 mm is only an understructure or stretcher.","applies":["chair"],"value":{"min":19,"max":25,"typical":22,"unit":"mm"},"basis":"A cantilever or four-leg frame takes the whole seat moment through the tube and needs the larger second moment of area.","sources":["en-10305-3","en-1728"],"tags":["section","tube","frame"]},{"id":"section-glide-diameter","kind":"dimension","tier":3,"title":"Glide disc diameter and stem","summary":"A leg glide is 16-25 mm in diameter, typically 20 mm, on a 8-10 mm stem entering a 8.5 mm hole 15-20 mm deep.","applies":["chair","stool","table"],"value":{"min":16,"max":25,"typical":20,"unit":"mm"},"basis":"The disc must spread the leg load on a soft floor without being visible beyond the leg section.","sources":["en-1022"],"tags":["glide","foot"]},{"id":"section-corner-block","kind":"dimension","tier":3,"title":"Corner block leg length","summary":"A seat-frame corner block runs 40-60 mm along each rail, typically 50 mm, from 18-25 mm stock.","applies":["chair"],"value":{"min":40,"max":60,"typical":50,"unit":"mm"},"basis":"Long enough for two screws per rail at 25 mm centres without splitting the block.","sources":["joyce-furniture"],"tags":["brace","frame"]},{"id":"joint-leg-rail-mortise-tenon","kind":"rule","tier":1,"title":"Leg to rail: mortise and tenon","summary":"A rail meeting a leg is ALWAYS a mortise-and-tenon: tenon 1/3 of the rail thickness, 2/3 of the leg width long, 0.2 mm clearance on the cheeks. Never butt-and-screw a seat rail to a leg.","applies":["chair","table","stool"],"basis":"The seat rail carries the racking moment; only a tenon puts long-grain glue area on both sides of that moment.","sources":["hayward-joints","joyce-furniture"],"tags":["joint-selection","tenon"],"value":{"typical":0.2,"unit":"mm","note":"cheek clearance per face"}},{"id":"joint-shell-to-frame-plate","kind":"rule","tier":1,"title":"Shell to frame: screws through a mount plate","summary":"A moulded shell NEVER bolts straight to a tube: braze or weld a 3-5 mm mount plate to the frame and bolt the shell to the plate, 4 x M6 on a 60-120 mm pattern with washers under the shell.","applies":["chair"],"basis":"A bolt head bearing on 9 mm of veneer crushes it; the plate spreads the load and gives the frame a flat datum.","sources":["iso-4762","en-1728"],"tags":["joint-selection","shell","frame"],"value":{"typical":6,"unit":"mm","note":"M6 through a 4 mm plate"}},{"id":"joint-bent-leg-to-seat-screws","kind":"rule","tier":1,"title":"Bent laminate leg to seat: screws, not a tenon","summary":"A bent laminate leg meets a seat panel on its flat glued end and is fixed with 2-4 wood screws up through the seat into the leg end grain, pilot 4.0-4.5 mm, 25-40 mm long. Do not tenon a laminate leg.","applies":["stool","chair"],"basis":"The leg's glue lines run along the leg, so a mortise across them would sever every ply; a screw up the leg axis loads them in shear.","sources":["din-7997","wood-handbook"],"tags":["joint-selection","screws","lamination"],"value":{"min":2,"max":4,"unit":"count","note":"screws per leg"}},{"id":"tenon-one-third-rule","kind":"rule","tier":2,"title":"Tenon thickness: one third of the stock","summary":"Tenon thickness = 1/3 of the entering member's thickness, rounded to the nearest 1 mm (a 24 mm rail gives an 8 mm tenon). Equal cheeks each side is what the rule buys.","applies":["chair","table"],"basis":"Equal thirds keep both mortise cheeks and the tenon at the same strength, so no one part fails first.","sources":["hayward-joints"],"tags":["tenon","proportion"],"value":{"typical":0.333,"unit":"ratio"}},{"id":"tenon-length-rule","kind":"rule","tier":2,"title":"Tenon length: two thirds into the receiving member","summary":"Tenon length = 2/3 of the receiving member's width, up to 35 mm for a blind tenon (a 36 mm leg gives a 24 mm tenon). A through-tenon runs the full width plus 2-5 mm proud.","applies":["chair","table"],"basis":"Two thirds leaves a mortise wall thick enough not to blow out and gives most of the available glue area.","sources":["hayward-joints"],"tags":["tenon","proportion"],"value":{"typical":0.667,"unit":"ratio"}},{"id":"joint-stretcher-to-leg","kind":"rule","tier":2,"title":"Stretcher to leg: round tenon or dowel","summary":"A 20-25 mm stretcher enters a leg as a round tenon 10-14 mm in diameter, 15-20 mm deep — a cad_drill_hole mortise, not a rectangular one.","applies":["chair","stool","table"],"basis":"A round stretcher's tenon is turned in the same lathe setting, so a drilled socket is the matching operation.","sources":["joyce-furniture"],"tags":["joint-selection","stretcher"],"value":{"min":10,"max":14,"typical":12,"unit":"mm"}},{"id":"joint-splat-to-rail","kind":"rule","tier":2,"title":"Splat to rails: stub tenon both ends","summary":"A splat is tenoned 8-10 mm into both the crest rail and the back seat rail, tenon thickness 1/3 of the splat (a 12 mm splat gives a 4 mm tenon).","applies":["chair"],"basis":"The splat is loaded by the sitter's back in bending at both ends, so both ends need a shoulder.","sources":["hayward-joints"],"tags":["joint-selection","splat"],"value":{"min":8,"max":10,"unit":"mm"}},{"id":"joint-panel-screw-slot","kind":"rule","tier":2,"title":"Solid panel to frame: screws in slots","summary":"Screw a solid-timber top or seat panel to its rails through 8-10 mm cross-grain slots, not round holes: allow 2-3 mm of movement per 300 mm of panel width.","applies":["table","chair","casegoods"],"basis":"Solid wood moves 2-3 mm per 300 mm across the grain over a season; a tight screw splits the panel.","sources":["wood-handbook"],"tags":["joint-selection","movement"],"value":{"min":2,"max":3,"unit":"mm","note":"per 300 mm of width"}},{"id":"joint-shell-to-star-base","kind":"rule","tier":2,"title":"Shell to swivel base: 4 bolts through a hub plate","summary":"A shell on a swivel base bolts to the tilt/hub plate with 4 x M8 on a 100-160 mm square pattern, through a 4-6 mm plate, with the column concentric to the base hub.","applies":["chair","office chair"],"basis":"Four bolts on a wide pattern carry the tilt moment; fewer or closer and the plate works loose under EN 1728 cycling.","sources":["iso-4762","en-1728"],"tags":["joint-selection","base","shell"],"value":{"typical":8,"unit":"mm","note":"M8"}},{"id":"joint-selection-table","kind":"rule","tier":2,"title":"Joint selection: which joint for which pair","summary":"One table: leg-rail = mortise-tenon; leg-stretcher = round tenon; splat-rail = stub tenon; shell-frame = screws through a mount plate; bent leg-seat = screws; panel-frame = slotted screws; shell-base = 4 bolts; crossing flat members = half-lap.","applies":["chair","stool","table"],"basis":"Every pair in the table is chosen by which member carries the moment and which way the glue lines run.","sources":["hayward-joints","joyce-furniture"],"tags":["joint-selection","table"],"value":{"table":[{"pairing":"leg + rail","joint":"mortise-tenon","today":"cad_box tenon + cad_boolean_subtract mortise"},{"pairing":"leg + stretcher","joint":"round tenon","today":"cad_revolve_profile tenon + cad_drill_hole"},{"pairing":"splat + rail","joint":"stub tenon","today":"cad_extrude_profile + cad_boolean_subtract"},{"pairing":"shell + tube frame","joint":"screws through a mount plate","today":"cad_box plate + cad_hole_pattern"},{"pairing":"bent laminate leg + seat","joint":"wood screws","today":"cad_hole_pattern pilot holes"},{"pairing":"solid panel + frame","joint":"slotted screws","today":"cad_extrude_profile slot"},{"pairing":"shell + swivel base","joint":"4 bolts through a hub plate","today":"cad_hole_pattern"},{"pairing":"crossing flat members","joint":"half-lap","today":"two cad_boolean_subtract pockets"}]}},{"id":"lamination-radius-rule","kind":"rule","tier":2,"title":"Minimum bend radius for a lamination","summary":"Minimum inside bend radius >= 40 x ply thickness for beech or birch veneer: 1.2 mm plies bend to about a 50 mm radius, 1.5 mm plies to 60 mm. Tighter needs steaming or thinner plies.","applies":["chair","stool"],"basis":"Bending strain in the outer fibre is ply thickness / (2 x radius); 40:1 keeps it under the elastic limit of beech veneer.","sources":["wood-handbook"],"tags":["lamination","bend"],"value":{"typical":40,"unit":"ratio","note":"radius / ply thickness"}},{"id":"joint-clearance-rule","kind":"rule","tier":2,"title":"Clearance in a modelled joint","summary":"Model a glued wood joint with 0.1-0.3 mm clearance per mated face (0.2 mm default) and a bolted metal joint with 0.5-1.0 mm hole clearance, so cad_assembly_fit reports a fit instead of an interference.","applies":["chair","table"],"basis":"A zero-clearance CAD joint reads as interference; a glue line is 0.1-0.2 mm of cured adhesive in reality.","sources":["titebond-tds","iso-4762"],"tags":["clearance","assembly"],"value":{"min":0.1,"max":0.3,"typical":0.2,"unit":"mm"}},{"id":"grain-direction-rule","kind":"rule","tier":3,"title":"Grain direction in a chair member","summary":"Run the grain along the member's length in every leg, rail and stretcher; a short-grain run-out shorter than 8 x the section thickness is a break waiting to happen.","applies":["chair","stool"],"basis":"Wood is 10-20 times weaker across the grain than along it, so a curved member cut from a board fails at the short-grain corner.","sources":["wood-handbook"],"tags":["grain","strength"],"value":{"typical":8,"unit":"ratio"}},{"id":"glue-area-rule","kind":"rule","tier":3,"title":"Minimum glue area at a chair joint","summary":"A seat-rail tenon should present at least 1500 mm2 of long-grain glue area (e.g. 8 x 45 mm cheeks x 2 x 24 mm deep); end grain counts for nothing.","applies":["chair"],"basis":"PVA on long grain develops 8-12 MPa in shear; end grain wicks the adhesive and develops a fraction of it.","sources":["titebond-tds","wood-handbook"],"tags":["glue","joint"],"value":{"min":1500,"unit":"mm2"}},{"id":"fastener-wood-screw-leg-seat","kind":"fastener","tier":2,"title":"Wood screw, leg to seat (DIN 7997 countersunk)","summary":"A 5.0 x 40 mm countersunk wood screw fixing a leg to a seat panel wants a 3.5 mm pilot in the leg end grain, a 5.2 mm clearance hole in the seat and a 10 mm countersink.","applies":["stool","chair"],"value":{"table":[{"screw":"5.0 x 40","pilot_mm":3.5,"clearance_mm":5.2,"csk_mm":10},{"screw":"4.5 x 35","pilot_mm":3,"clearance_mm":4.7,"csk_mm":9},{"screw":"4.0 x 30","pilot_mm":2.8,"clearance_mm":4.2,"csk_mm":8}],"unit":"mm"},"basis":"Wood Handbook ch. 8: lead hole 70% of root diameter in softwood, 90% in hardwood; clearance hole = shank diameter + 0.2 mm.","sources":["din-7997","wood-handbook"],"tags":["fastener","screw","seat"]},{"id":"fastener-m6-shell-plate","kind":"fastener","tier":2,"title":"M6 bolt, shell to mount plate","summary":"An M6 socket-head bolt through a shell into a mount plate wants a 6.6 mm clearance hole in the shell, a 12 mm washer under the head and 8-12 mm of thread engagement in the plate.","applies":["chair"],"value":{"typical":6.6,"unit":"mm","note":"clearance hole in the shell"},"basis":"ISO 4762 medium-fit clearance for M6 is 6.6 mm; a 12 mm washer keeps bearing stress on 9 mm veneer under 10 MPa.","sources":["iso-4762"],"tags":["fastener","bolt","shell"]},{"id":"fastener-dowel-pin-8","kind":"fastener","tier":2,"title":"Dowel, 8 mm — locating a butt joint","summary":"An 8 mm fluted wood dowel enters 15-20 mm each side with a 8.0 mm hole (H8) and 0.1-0.2 mm glue clearance; use 2 or more dowels at 32 mm centres, never one.","applies":["chair","casegoods"],"value":{"typical":8,"unit":"mm"},"basis":"One dowel is a hinge; two fix rotation. 32 mm centres match line-boring practice.","sources":["iso-8734","wood-handbook"],"tags":["fastener","dowel"]},{"id":"material-steam-bent-beech","kind":"material","tier":2,"title":"Steam-bent beech (Fagus sylvatica)","summary":"Beech at 0.72 g/cm3, ~14 GPa MOE, steam-bent at 100 C and 25-30% moisture to an inside radius of about 3 x the section thickness — the classic bentwood leg and back-hoop material.","applies":["chair","stool"],"value":{"table":[{"property":"density","value":0.72,"unit":"g/cm3"},{"property":"MOE","value":14,"unit":"GPa"},{"property":"min bend radius","value":3,"unit":"ratio"}]},"basis":"Wood Handbook ch. 19: beech and ash are the temperate species with the highest steam-bending ratio.","sources":["wood-handbook"],"tags":["material","beech","bent"]},{"id":"material-birch-laminate","kind":"material","tier":2,"title":"Birch veneer laminate (bent lamination and moulded shells)","summary":"Birch laminate at 0.68 g/cm3 and 11-13 GPa in the face-grain direction, from 1.2-1.5 mm plies; the standard material for a moulded 8-10 mm shell or a laminated leg.","applies":["chair","stool"],"value":{"table":[{"property":"density","value":0.68,"unit":"g/cm3"},{"property":"MOE (face grain)","value":12,"unit":"GPa"},{"property":"ply thickness","value":1.35,"unit":"mm"}]},"basis":"EN 636 plywood classes plus Wood Handbook ch. 19 laminate properties.","sources":["en-636","wood-handbook"],"tags":["material","birch","laminate"]},{"id":"material-moulded-pu-foam","kind":"material","tier":2,"title":"Cold-cure moulded polyurethane foam shell","summary":"Moulded flexible PU seat foam at 45-60 kg/m3 core density with a 3-6 mm self-skin, 25-40 mm thick over the substrate, demoulded in 4-8 minutes.","applies":["chair"],"value":{"table":[{"property":"core density","value":50,"unit":"kg/m3"},{"property":"skin thickness","value":4,"unit":"mm"},{"property":"shell thickness","value":30,"unit":"mm"}]},"basis":"Cold-cure moulded foam practice; density measured to ASTM D3574 Test A.","sources":["pu-handbook","astm-d3574"],"tags":["material","foam","shell"]},{"id":"material-paper-cord","kind":"material","tier":2,"title":"Laid paper cord (Danish cord) seat","summary":"Three-ply laid paper cord at 3.0-3.2 mm diameter, about 12 m per 100 mm of seat width in a plain weave, tensioned over the seat rails and held by L-nails at 25 mm pitch.","applies":["chair"],"value":{"table":[{"property":"cord diameter","value":3.1,"unit":"mm"},{"property":"L-nail pitch","value":25,"unit":"mm"}]},"basis":"Supplier technical data for Danish laid paper cord; the L-nail pitch is what stops the weave creeping.","sources":["franks-cord"],"tags":["material","cord","seat"]},{"id":"test-seat-static-load","kind":"test","tier":2,"title":"EN 1728 seat static load","summary":"1300 N applied vertically to the seat, 10 times. Geometry: the seat panel must span its frame without the rails deflecting into the legs, and every seat-rail tenon must carry the moment.","applies":["chair","stool"],"basis":"EN 1728 clause 6.4 seat static load for domestic seating; the failure mode is a seat-rail tenon shearing.","sources":["en-1728","en-12520"],"tags":["test","seat","load"],"value":{"typical":1300,"unit":"N"}},{"id":"test-back-static-load","kind":"test","tier":2,"title":"EN 1728 backrest static load","summary":"560 N applied horizontally to the top of the backrest, 10 times, with the seat loaded. Geometry: the back leg-to-crest joint and the splat tenons take the whole moment.","applies":["chair"],"basis":"EN 1728 clause 6.5; this is the load that pulls a back-leg mortise open.","sources":["en-1728","en-12520"],"tags":["test","back","load"],"value":{"typical":560,"unit":"N"}},{"id":"test-leg-forward-static","kind":"test","tier":2,"title":"EN 1728 leg forward static load","summary":"500 N applied horizontally at seat level with the chair blocked, 10 times. Geometry: this is the racking case a stretcher or a corner block exists to carry.","applies":["chair","stool"],"basis":"EN 1728 clause 6.15 leg forward static load; a chair with no stretcher and no corner block fails here first.","sources":["en-1728","en-12520"],"tags":["test","racking","frame"],"value":{"typical":500,"unit":"N"}},{"id":"test-seat-durability-cycles","kind":"test","tier":3,"title":"EN 1728 seat and back durability cycling","summary":"100 000 seat cycles at 1000 N and 50 000 back cycles at 300 N. Geometry: every glued joint must have the glue-area-rule's 1500 mm2 of long-grain area or it creeps open.","applies":["chair"],"basis":"EN 1728 clause 6.17/6.18 durability; cycling, not static load, is what finds an undersized tenon.","sources":["en-1728"],"tags":["test","fatigue"],"value":{"typical":100000,"unit":"cycles"}},{"id":"test-stability-forward","kind":"test","tier":3,"title":"EN 1022 forward stability","summary":"600 N applied 60 mm from the front edge of the seat with the chair on a 10 degree ramp; the chair must not overturn. Geometry: the front glides must lie ahead of the seat front edge.","applies":["chair","stool"],"basis":"EN 1022 forward overturning; it is a support-polygon problem, so it is decided by where the glides are, not by the frame.","sources":["en-1022","en-12520"],"tags":["test","stability"],"value":{"typical":600,"unit":"N"}},{"id":"standard-en-12520","kind":"standard","tier":2,"title":"EN 12520 — domestic seating strength, durability and safety","summary":"EN 12520:2015 sets the requirement levels a domestic chair must meet and points at the EN 1728 test methods and EN 1022 stability; the geometric clauses are edge radii >= 2 mm and no accessible shear gap of 8-25 mm.","applies":["chair","stool"],"basis":"The umbrella requirement standard a domestic chair is certified against in the EU.","sources":["en-12520","en-1728","en-1022"],"tags":["standard","seating"]},{"id":"joint-recipe-mortise-tenon-today","kind":"recipe","tier":2,"title":"Recipe: a mortise-and-tenon between a leg and a rail with today's ops","summary":"Cut a real mortise-and-tenon with the ops this build ships: a cad_box mortise subtracted from the leg, a cad_box tenon unioned to the rail, 0.2 mm clearance per face. cad_joint ships (CADSF-1370).","applies":["chair","table"],"basis":"Implements joint-leg-rail-mortise-tenon and tenon-one-third-rule as buildable calls; cad_joint (CADSF-1370) now offers a one-call alternative.","sources":["hayward-joints"],"tags":["recipe","joinery","tenon","shipped"],"recipe":{"prompt":"Cut a mortise-and-tenon joint between a 36mm square leg and a 25x65mm rail","steps":[{"tool":"cad_box","args":{"dx":36,"dy":36,"dz":420},"note":"the leg, section-leg-square-timber typical 36mm"},{"tool":"cad_box","args":{"dx":8.4,"dy":24.2,"dz":45.4,"origin":[13.8,12,340]},"note":"mortise cutter: 8mm tenon + 0.2mm per face, 24mm deep (2/3 of 36), 45mm tall"},{"tool":"cad_boolean_subtract","args":{"of":"$0","tool":"$1"},"note":"the mortise in the leg"},{"tool":"cad_box","args":{"dx":25,"dy":300,"dz":65,"origin":[5.5,36,330]},"note":"the rail, section-seat-rail 25x65"},{"tool":"cad_box","args":{"dx":8,"dy":24,"dz":45,"origin":[14,12,340]},"note":"the tenon: 1/3 of 25mm rounded to 8mm, 24mm long, shoulders all round"},{"tool":"cad_boolean_union","args":{"of":"$3","tool":"$4"},"note":"tenon on the rail; it now enters the mortise with 0.2mm per face"}],"expect":{"volume":496140,"faceCount":11,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"joint-recipe-screwed-today","kind":"recipe","tier":2,"title":"Recipe: a screwed shell-to-plate joint with today's ops","summary":"Bolt a shell to a frame mount plate with the ops this build ships: a cad_box plate, cad_hole_pattern for the 4 x M6 pattern, cad_drill_hole clearance holes in the shell. cad_fastener ships (CADSF-1371).","applies":["chair"],"basis":"Implements joint-shell-to-frame-plate and fastener-m6-shell-plate as buildable calls; cad_fastener (CADSF-1371) now offers a one-call alternative.","sources":["iso-4762"],"tags":["recipe","joinery","fastener","shipped"],"recipe":{"prompt":"Make a 4mm mount plate with a 4 x M6 pattern and put matching clearance holes in a 9mm shell panel","steps":[{"tool":"cad_box","args":{"dx":120,"dy":100,"dz":4},"note":"section-mount-plate typical 4mm"},{"tool":"cad_hole_pattern","args":{"of":"$0","type":"drill","diameter":5,"depth":4,"pattern":{"kind":"grid","origin":[20,20],"dx":80,"dy":60,"nx":2,"ny":2}},"note":"4 x M6 tapping holes on an 80 x 60mm pattern"},{"tool":"cad_box","args":{"dx":400,"dy":380,"dz":9,"origin":[-140,-140,4]},"note":"the 9mm shell panel, section-veneer-shell typical"},{"tool":"cad_hole_pattern","args":{"of":"$2","type":"drill","diameter":6.6,"depth":9,"pattern":{"kind":"grid","origin":[20,20],"dx":80,"dy":60,"nx":2,"ny":2}},"note":"6.6mm clearance, fastener-m6-shell-plate"}],"expect":{"volume":1366768.37,"faceCount":14,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-bent-laminate-leg-stool","kind":"recipe","tier":2,"title":"Recipe: bent-laminate legs screwed under a round seat","summary":"Construction type 1: three bent-laminate legs, each swept as one solid along its bend path, screwed up into a round seat panel through a circular pilot-hole pattern.","applies":["stool","chair"],"basis":"Combines glossary-lamination, section-leg-square-timber, joint-bent-leg-to-seat-screws and fastener-wood-screw-leg-seat into one buildable frame.","sources":["wood-handbook","din-7997"],"tags":["recipe","construction-type","lamination","stool"],"recipe":{"prompt":"Model a three-legged stool: bent laminate legs swept along their bend, a round seat panel, legs screwed up into the seat","steps":[{"tool":"cad_sweep_profile","args":{"section":{"start":[-20,-12],"segments":[{"to":[20,-12]},{"to":[20,12]},{"to":[-20,12]},{"to":[-20,-12]}]},"path":{"points":[[0,0,0],[0,0,380],[0,60,420]],"fillets":60}},"note":"one bent laminate leg: 40x24 section, bend radius 60mm (>= 40 x 1.2mm ply, lamination-radius-rule)"},{"tool":"cad_pattern_copies","args":{"of":"$0","type":"circular","center":[0,0,0],"count":3,"totalAngle":6.283185},"note":"three legs at 120 degrees — separate parts, not a union (CADSF-1376)"},{"tool":"cad_extrude_profile","args":{"depth":18,"outer":{"circle":{"cx":0,"cy":0,"r":175}}},"note":"the seat panel, section-seat-panel typical 16-18mm, native circle not an N-gon"},{"tool":"cad_hole_pattern","args":{"of":"$2","type":"drill","diameter":4.2,"depth":12,"pattern":{"kind":"circular","center":[0,0],"radius":140,"count":3}},"note":"one 4.2mm clearance hole per leg, fastener-wood-screw-leg-seat"},{"tool":"cad_transform","args":{"of":"$3","translate":[0,0,420]},"note":"seat up onto the leg tops"}],"expect":{"volume":1731286.71,"faceCount":16,"watertight":true,"note":"measured 2026-09-19: CADSF-1561 (cc1f38cb, 2026-09-15) gave a BLIND hole a 118° DRILL POINT: the flat floor became a cone on the three Ø4.2x12 seat holes: +3 faces. The +0.160% volume is NOT the drill points (three cones are 17.5 mm^3) — it is the chord deficit of the three tessellated swept legs, and it is inside the 0.5% band"}}},{"id":"recipe-moulded-shell-on-tube-frame","kind":"recipe","tier":2,"title":"Recipe: moulded veneer shell on a tube leg frame with a mount plate","summary":"Construction type 2: a 9 mm moulded shell swept as a thin section along its side profile, four hollow tube legs, and a 4 mm mount plate drilled 4 x M6 that the shell bolts to.","applies":["chair"],"basis":"Combines section-veneer-shell, section-tube-leg, section-mount-plate and joint-shell-to-frame-plate.","sources":["en-636","en-10305-3","iso-4762"],"tags":["recipe","construction-type","shell","tube"],"recipe":{"prompt":"Model a moulded plywood shell chair: one-piece seat-and-back shell, four tubular steel legs, shell bolted to a mount plate on the frame","steps":[{"tool":"cad_sweep_profile","args":{"section":{"start":[-4.5,-200],"segments":[{"to":[4.5,-200]},{"to":[4.5,200]},{"to":[-4.5,200]},{"to":[-4.5,-200]}]},"path":{"points":[[0,-190,0],[0,120,0],[0,200,70],[0,230,300]],"fillets":[90,70]}},"note":"the shell: 400mm wide x 9mm thick section swept through seat and back"},{"tool":"cad_tube_sweep","args":{"section":{"start":[11,0],"segments":[{"to":[-11,0],"center":[0,0],"ccw":true},{"to":[11,0],"center":[0,0],"ccw":true}]},"holes":[{"start":[9.5,0],"segments":[{"to":[-9.5,0],"center":[0,0],"ccw":false},{"to":[9.5,0],"center":[0,0],"ccw":false}]}],"path":{"points":[[0,0,0],[0,0,380],[0,55,410]]}},"note":"one 22mm OD x 1.5mm wall tube leg, section-tube-frame-heavy; the hole loop is wound CW so it is subtracted"},{"tool":"cad_transform","args":{"of":"$1","translate":[0,340,0],"copy":true},"note":"the second leg as a copy — cad_pattern_copies and cad_mirror do not accept a cad_tube_sweep body on this build; repeat cad_transform for the rest"},{"tool":"cad_box","args":{"dx":120,"dy":100,"dz":4,"origin":[-60,-50,410]},"note":"the mount plate, section-mount-plate typical 4mm"},{"tool":"cad_hole_pattern","args":{"of":"$3","type":"drill","diameter":5,"depth":4,"pattern":{"kind":"grid","origin":[-40,-30],"dx":80,"dy":60,"nx":2,"ny":2}},"note":"4 x M6 tapping holes, joint-shell-to-frame-plate"}],"expect":{"volume":47685.84,"faceCount":14,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-turned-leg-frame-through-tenon","kind":"recipe","tier":2,"title":"Recipe: turned legs through-tenoned into a seat frame","summary":"Construction type 3: legs turned as bodies of revolution with their round through-tenons turned in the same profile, and a 22 mm seat frame ring drilled to receive them.","applies":["chair","stool"],"basis":"Combines glossary-turned-leg, glossary-seat-frame, joint-stretcher-to-leg and glossary-wedged-through-tenon.","sources":["joyce-furniture","hayward-joints"],"tags":["recipe","construction-type","turned","tenon"],"recipe":{"prompt":"Model a turned-leg chair frame: tapered turned legs, a seat frame ring, legs through-tenoned into the frame","steps":[{"tool":"cad_revolve_profile","args":{"profile":[[0,0],[18,0],[18,40],[14,200],[16,380],[13,380],[13,440],[0,440]]},"note":"leg and its 26mm round through-tenon turned in ONE body of revolution — the tenon is a step in the lathe profile, not a unioned cylinder"},{"tool":"cad_extrude_profile","args":{"depth":22,"outer":{"rect":{"x":0,"y":0,"w":440,"h":400,"cornerRadius":40}},"holes":[{"rect":{"x":0,"y":0,"w":360,"h":320,"cornerRadius":30}}]},"note":"the seat frame ring, 40mm rails x 22mm"},{"tool":"cad_drill_hole","args":{"of":"$1","center":[180,160],"diameter":26.4,"through":true},"note":"the through-mortise: 26mm round tenon + 0.2mm per face, joint-clearance-rule"}],"expect":{"volume":1312405.74,"faceCount":1065,"watertight":true,"note":"measured 2026-09-19: faceCount was ABSENT from this pin, so every gate skipped the one number a representation change can move (CADSF-1630). Measured 1065 — a turned leg is a tessellated revolve, so this is a tessellation DENSITY, not a topology fact. Volume agrees to 0.0005%"}}},{"id":"recipe-tenoned-rail-frame-with-splat","kind":"recipe","tier":2,"title":"Recipe: legs, tenoned rails and stretchers carrying a back splat","summary":"Construction type 4: 36 mm square legs, a 25 x 65 mm seat rail and a 22 mm stretcher between them, and a 12 mm shaped back splat stub-tenoned between the crest and the back rail.","applies":["chair"],"basis":"Combines section-leg-square-timber, section-seat-rail, section-stretcher, section-splat and joint-splat-to-rail.","sources":["joyce-furniture","hayward-joints"],"tags":["recipe","construction-type","frame","splat"],"recipe":{"prompt":"Model a wooden chair frame: square legs, seat rails and stretchers tenoned in, a shaped back splat between the crest rail and the back rail","steps":[{"tool":"cad_box","args":{"dx":36,"dy":36,"dz":440},"note":"a back leg, section-leg-square-timber typical 36mm"},{"tool":"cad_pattern_copies","args":{"of":"$0","type":"linear","step":[420,0,0],"count":2},"note":"the pair of back legs"},{"tool":"cad_box","args":{"dx":384,"dy":25,"dz":65,"origin":[36,5.5,340]},"note":"the seat rail between them, section-seat-rail 25 x 65"},{"tool":"cad_box","args":{"dx":384,"dy":22,"dz":22,"origin":[36,7,120]},"note":"the stretcher, section-stretcher typical 22mm"},{"tool":"cad_extrude_profile","args":{"depth":12,"outer":{"rect":{"x":0,"y":0,"w":180,"h":260,"cornerRadius":70}}},"note":"the shaped back splat, section-splat typical 12mm"},{"tool":"cad_transform","args":{"of":"$4","translate":[228,18,470]},"note":"the splat standing between the back rail and the crest rail"}],"expect":{"volume":511125.65,"faceCount":10,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-closed-loop-laminated-side-frames","kind":"recipe","tier":2,"title":"Recipe: closed-loop laminated side frames carrying a scrolled sheet","summary":"Construction type 5: two closed-loop laminated side frames, each a 24 mm extruded ring, carrying one scrolled 10 mm sheet swept through seat and back with rolled ends.","applies":["chair"],"basis":"Combines glossary-lamination, glossary-scrolled-sheet and lamination-radius-rule.","sources":["wood-handbook","en-636"],"tags":["recipe","construction-type","lamination","sheet"],"recipe":{"prompt":"Model a chair built from two closed laminated side loops and one continuous scrolled plywood sheet","steps":[{"tool":"cad_extrude_profile","args":{"depth":24,"outer":{"rect":{"x":0,"y":0,"w":640,"h":700,"cornerRadius":140}},"holes":[{"rect":{"x":0,"y":0,"w":560,"h":620,"cornerRadius":100}}]},"note":"one closed-loop laminated side frame, 40mm band x 24mm"},{"tool":"cad_transform","args":{"of":"$0","translate":[0,0,420],"copy":true},"note":"the second side frame — a copy, so both stay separate parts"},{"tool":"cad_sweep_profile","args":{"section":{"start":[-5,-210],"segments":[{"to":[5,-210]},{"to":[5,210]},{"to":[-5,210]},{"to":[-5,-210]}]},"path":{"points":[[0,-260,0],[0,140,0],[0,215,80],[0,240,300]],"fillets":[110,80]}},"note":"the scrolled sheet: 10mm section swept through seat and back, scrolls as path fillets"}],"expect":{"volume":3040304.67,"faceCount":22,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-carried-panels-on-spacers","kind":"recipe","tier":2,"title":"Recipe: seat and back panels carried off a frame on spacers","summary":"Construction type 6: a solid frame rail, four 18 mm turned spacers standing a 16 mm seat panel off it, and the clearance holes the through-screws pass.","applies":["chair"],"basis":"Combines glossary-spacer, section-spacer-diameter, section-seat-panel and joint-panel-screw-slot.","sources":["joyce-furniture","din-7997"],"tags":["recipe","construction-type","spacer","panel"],"recipe":{"prompt":"Model a chair whose seat and back panels are carried off the frame on spacers, with a shadow gap","steps":[{"tool":"cad_box","args":{"dx":420,"dy":60,"dz":28},"note":"the frame rail the panel is carried on"},{"tool":"cad_cylinder","args":{"r":9,"h":16},"note":"one spacer, section-spacer-diameter typical 18mm diameter"},{"tool":"cad_pattern_copies","args":{"of":"$1","type":"linear","step":[340,0,0],"count":2},"note":"a pair of spacers along the rail"},{"tool":"cad_box","args":{"dx":420,"dy":400,"dz":16,"origin":[0,-170,44]},"note":"the seat panel, section-seat-panel typical 16mm, standing 16mm clear of the rail"},{"tool":"cad_hole_pattern","args":{"of":"$3","type":"drill","diameter":5.2,"depth":16,"pattern":{"kind":"grid","origin":[40,10],"dx":340,"dy":30,"nx":2,"ny":1}},"note":"5.2mm clearance holes through the panel into the spacers, fastener-wood-screw-leg-seat"}],"expect":{"volume":2687320.41,"faceCount":10,"watertight":true,"note":"measured 2026-09-19: faceCount was ABSENT from this pin (CADSF-1630). Measured 10 — an analytic all-planar body. Volume agrees to 4e-7%"}}},{"id":"recipe-two-shells-on-laminated-legs","kind":"recipe","tier":2,"title":"Recipe: separate seat and back shells on laminated legs","summary":"Construction type 7: two separate moulded shells (seat and back), each a 9 mm section swept along its own curve, three laminated legs, and the plate that joins back shell to seat shell.","applies":["chair"],"basis":"Combines section-veneer-shell, glossary-lamination, glossary-mount-plate and joint-shell-to-frame-plate.","sources":["en-636","iso-4762"],"tags":["recipe","construction-type","shell","lamination"],"recipe":{"prompt":"Model a chair with a separate seat shell and back shell on three laminated legs, joined by plates","steps":[{"tool":"cad_sweep_profile","args":{"section":{"start":[-4.5,-210],"segments":[{"to":[4.5,-210]},{"to":[4.5,210]},{"to":[-4.5,210]},{"to":[-4.5,-210]}]},"path":{"points":[[0,-200,0],[0,140,0],[0,200,45]],"fillets":120}},"note":"the seat shell, section-veneer-shell typical 9mm"},{"tool":"cad_sweep_profile","args":{"section":{"start":[-4.5,-190],"segments":[{"to":[4.5,-190]},{"to":[4.5,190]},{"to":[-4.5,190]},{"to":[-4.5,-190]}]},"path":{"points":[[0,220,180],[0,250,330],[0,215,460]],"fillets":200}},"note":"the back shell, a second moulded part"},{"tool":"cad_sweep_profile","args":{"section":{"start":[-19,-11],"segments":[{"to":[19,-11]},{"to":[19,11]},{"to":[-19,11]},{"to":[-19,-11]}]},"path":{"points":[[0,0,0],[0,0,360],[0,70,405]],"fillets":55}},"note":"one laminated leg"},{"tool":"cad_pattern_copies","args":{"of":"$2","type":"circular","center":[0,0,0],"count":3,"totalAngle":6.283185},"note":"three legs"},{"tool":"cad_box","args":{"dx":90,"dy":60,"dz":4,"origin":[-45,190,170]},"note":"the plate joining the back shell to the seat shell, section-mount-plate"},{"tool":"cad_hole_pattern","args":{"of":"$4","type":"drill","diameter":6.6,"depth":4,"pattern":{"kind":"grid","origin":[-25,205],"dx":50,"dy":30,"nx":2,"ny":2}},"note":"4 x M6 clearance holes, fastener-m6-shell-plate"}],"expect":{"volume":21052.61,"faceCount":14,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-lofted-body-with-dowelled-legs","kind":"recipe","tier":2,"title":"Recipe: a sculptural lofted body on dowelled turned legs","summary":"Construction type 8: a sculptural body lofted through three section polygons, turned legs, and the 10 mm dowel socket that pins each leg into the body.","applies":["chair"],"basis":"Combines cad_loft_profiles for a carved body with glossary-turned-leg, glossary-dowel-joint and fastener-dowel-pin-8.","sources":["joyce-furniture","iso-8734"],"tags":["recipe","construction-type","loft","dowel"],"recipe":{"prompt":"Model a sculptural chair body lofted from sections, standing on turned legs pinned in with dowels","steps":[{"tool":"cad_loft_profiles","args":{"profiles":[{"pts":[[180,0],[166.3,57.4],[127.28,106.07],[68.88,138.58],[0,150],[-68.88,138.58],[-127.28,106.07],[-166.3,57.4],[-180,0],[-166.3,-57.4],[-127.28,-106.07],[-68.88,-138.58],[0,-150],[68.88,-138.58],[127.28,-106.07],[166.3,-57.4]],"z":0},{"pts":[[210,0],[194.01,65.06],[148.49,120.21],[80.36,157.06],[0,170],[-80.36,157.06],[-148.49,120.21],[-194.01,65.06],[-210,0],[-194.01,-65.06],[-148.49,-120.21],[-80.36,-157.06],[0,-170],[80.36,-157.06],[148.49,-120.21],[194.01,-65.06]],"z":60},{"pts":[[190,0],[175.54,57.4],[134.35,106.07],[72.71,138.58],[0,150],[-72.71,138.58],[-134.35,106.07],[-175.54,57.4],[-190,0],[-175.54,-57.4],[-134.35,-106.07],[-72.71,-138.58],[0,-150],[72.71,-138.58],[134.35,-106.07],[175.54,-57.4]],"z":130}]},"note":"the sculptural body: three sections lofted, a cubic loft"},{"tool":"cad_revolve_profile","args":{"profile":[[0,0],[16,0],[16,30],[13,180],[15,330],[0,350]]},"note":"a turned leg, glossary-turned-leg"},{"tool":"cad_drill_hole","args":{"of":"$1","center":[0,0],"diameter":10.2,"depth":20},"note":"the dowel socket in the leg top: 10mm dowel + 0.2mm, fastener-dowel-pin-8"},{"tool":"cad_cylinder","args":{"r":5,"h":36},"note":"the dowel itself, entering 18mm each side"}],"expect":{"volume":2827.43,"faceCount":4,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-foam-shell-over-substrate","kind":"recipe","tier":2,"title":"Recipe: a moulded foam shell over a rigid substrate","summary":"Construction type 9: the rigid substrate lofted as a solid, the finished outer surface lofted as a second solid, and the 25-40 mm foam layer produced by subtracting one from the other.","applies":["chair"],"basis":"Combines section-moulded-shell and material-moulded-pu-foam; the foam is modelled as the difference between the finished surface and the substrate.","sources":["pu-handbook","astm-d3574"],"tags":["recipe","construction-type","foam","loft"],"recipe":{"prompt":"Model a moulded foam chair shell over its rigid substrate: substrate, finished outer form, and the foam layer between them","steps":[{"tool":"cad_loft_profiles","args":{"profiles":[{"pts":[[210,0],[181.87,95],[105,164.54],[0,190],[-105,164.54],[-181.87,95],[-210,0],[-181.87,-95],[-105,-164.54],[0,-190],[105,-164.54],[181.87,-95]],"z":0},{"pts":[[200,0],[173.21,90],[100,155.88],[0,180],[-100,155.88],[-173.21,90],[-200,0],[-173.21,-90],[-100,-155.88],[0,-180],[100,-155.88],[173.21,-90]],"z":260}]},"note":"the finished outer form of the shell, lofted from two sections"},{"tool":"cad_loft_profiles","args":{"profiles":[{"pts":[[180,0],[155.88,80],[90,138.56],[0,160],[-90,138.56],[-155.88,80],[-180,0],[-155.88,-80],[-90,-138.56],[0,-160],[90,-138.56],[155.88,-80]],"z":30},{"pts":[[170,0],[147.22,75],[85,129.9],[0,150],[-85,129.9],[-147.22,75],[-170,0],[-147.22,-75],[-85,-129.9],[0,-150],[85,-129.9],[147.22,-75]],"z":230}]},"note":"the rigid substrate inside it, offset ~30mm all round"},{"tool":"cad_boolean_subtract","args":{"of":"$0","tool":"$1"},"note":"the foam layer between the two surfaces, section-moulded-shell 25-40mm of PU"}],"expect":{"volume":13308444.21,"faceCount":44,"watertight":true,"note":"measured 2026-09-19: faceCount was ABSENT from this pin (CADSF-1630). Measured 44. Volume agrees to 3e-8%"}}},{"id":"recipe-shell-on-swivel-star-base","kind":"recipe","tier":2,"title":"Recipe: a moulded shell on a column and star base","summary":"Construction type 10: the shell swept as a 9 mm section, a hub, five radial arms repeated with a circular pattern, and the column that carries the shell on the base.","applies":["chair","office chair"],"basis":"Combines glossary-star-base, glossary-swivel-hub and joint-shell-to-star-base.","sources":["en-1022","iso-4762"],"tags":["recipe","construction-type","shell","base","swivel"],"recipe":{"prompt":"Model a shell chair on a swivel column and a five-arm star base","steps":[{"tool":"cad_sweep_profile","args":{"section":{"start":[-4.5,-220],"segments":[{"to":[4.5,-220]},{"to":[4.5,220]},{"to":[-4.5,220]},{"to":[-4.5,-220]}]},"path":{"points":[[0,-200,0],[0,150,0],[0,225,90],[0,250,340]],"fillets":[100,80]}},"note":"the moulded shell, section-veneer-shell typical 9mm"},{"tool":"cad_cylinder","args":{"r":45,"h":60},"note":"the base hub"},{"tool":"cad_box","args":{"dx":250,"dy":26,"dz":20,"origin":[40,-13,0]},"note":"one star-base arm"},{"tool":"cad_pattern_copies","args":{"of":"$2","type":"circular","center":[0,0,0],"count":5,"totalAngle":6.283185},"note":"five arms, glossary-star-base"},{"tool":"cad_cylinder","args":{"r":25,"h":300},"note":"the swivel column, glossary-swivel-hub"},{"tool":"cad_transform","args":{"of":"$4","translate":[0,0,60]},"note":"column standing on the hub, carrying the shell above"}],"expect":{"volume":589048.62,"faceCount":4,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"finish-edge-solid-hardwood","kind":"rule","tier":2,"title":"Edge treatment: break every exposed solid-hardwood edge, 1-3 mm","summary":"Break every exposed solid-hardwood arris with a 1-3 mm roundover (2 mm typical); arm rails and seat fronts take a larger one, up to ~12 mm. Mating faces (tenon cheeks, glue lines) stay sharp. Use cad_fillet_edges on the exposed edges, after the joints.","applies":["chair","stool","table","solid wood"],"value":{"min":1,"max":3,"typical":2,"unit":"mm"},"basis":"A sharp hardwood arris splinters, dents and will not hold a finish film; a 1-3 mm roundover (a hand-plane chamfer or a 1/8 in router roundover) is the trade's minimum edge break. Mating faces stay sharp so the joint line closes without a visible groove.","sources":["joyce-furniture","wood-handbook"],"tags":["finish","edge","roundover","hardwood","fillet"]},{"id":"finish-edge-ply-laminate","kind":"rule","tier":2,"title":"Edge treatment: ease exposed plywood / laminate edges 0.5-1 mm","summary":"A plywood or moulded-veneer edge shows its laminations; it is eased with a 0.5-1 mm radius (sanded arris), not rounded over - a large radius cuts through the face veneer and exposes the core. Seat and shell rims follow this rule; mating faces are not eased.","applies":["plywood","moulded shell","bent lamination","chair"],"value":{"min":0.5,"max":1,"typical":1,"unit":"mm"},"basis":"Face veneers on furniture ply are 0.6-1.5 mm thick; a roundover larger than the face veneer exposes the glue line and the cross-band beneath.","sources":["joyce-furniture","en-636"],"tags":["finish","edge","plywood","laminate","fillet"]},{"id":"finish-tube-end-cap","kind":"rule","tier":2,"title":"Edge treatment: tube cut ends are capped, not left open","summary":"A steel or aluminium tube's cut end (typically 16-25 mm OD, 1-2 mm wall) is closed by an end cap, plug or glide - never left as an open sharp ring. Model the cap or glide as its own part; the tube's own bends need no edge treatment. Bought-in fasteners are not eased.","applies":["tube frame","steel chair","glide"],"basis":"An open tube end is a laceration hazard and scratches floors; EN 12520 / EN 1728 durability testing assumes glides are fitted.","sources":["en-12520","en-1728","en-10305-3"],"tags":["finish","edge","tube","cap","glide"]},{"id":"finish-cast-parting-line","kind":"rule","tier":2,"title":"Edge treatment: blend cast and moulded parting lines, 1-3 mm","summary":"A die-cast aluminium base or a moulded plastic/FRP shell has its parting line and exposed edges blended with a 1-3 mm radius (1.5 mm typical) - the tool is polished to it. Build it with cad_fillet_edges; faces that seat on a column or a hub are left sharp.","applies":["star base","die-cast","moulded shell","plastic"],"value":{"min":1,"max":3,"typical":1.5,"unit":"mm"},"basis":"Sharp external corners on a casting or moulding are stress raisers and fill badly; a 1-3 mm external radius is the usual design minimum for die-cast and injection-moulded parts.","sources":["en-1022"],"tags":["finish","edge","casting","moulding","blend"]}]},{"$schema":"nativecad-dfm-pack/1","id":"furniture","title":"Furniture — desks, chairs, tables, shelving, cabinets","sector":"furniture","version":"2026-09-03","summary":"Ergonomic and regulatory dimensions, joinery, materials and the BIFMA/EN/ADA tests a piece of furniture is held to, plus real build recipes for desks, task chairs and shelving.","aliases":["desk","chair","table","shelf","shelving","cabinet","office furniture","seating","casegoods"],"crossSector":false,"size":"full","sources":[{"id":"bifma-x5.1","title":"ANSI/BIFMA X5.1-2017 General-Purpose Office Chairs — Tests","url":"https://www.bifma.org/store/viewproduct.aspx?id=8391764","accessed":"2026-09-03"},{"id":"bifma-x5.5","title":"ANSI/BIFMA X5.5-2014 (R2019) Desk Products — Tests","url":"https://www.bifma.org/store/viewproduct.aspx?id=8391767","accessed":"2026-09-03"},{"id":"bifma-g1","title":"BIFMA G1-2013 Ergonomics Guideline for Furniture Used in Office Work Spaces","url":"https://www.bifma.org/","accessed":"2026-09-03"},{"id":"en-1335","title":"EN 1335-1:2020 Office furniture — Office work chair — Dimensions","url":"https://www.en-standard.eu/","accessed":"2026-09-03"},{"id":"en-527","title":"EN 527-1:2011 Office furniture — Work tables and desks — Dimensions","url":"https://www.en-standard.eu/","accessed":"2026-09-03"},{"id":"ada-2010","title":"2010 ADA Standards for Accessible Design, §306 knee/toe clearance & §902 dining/work surfaces","url":"https://www.ada.gov/law-and-regs/design-standards/2010-stds/","accessed":"2026-09-03"},{"id":"bifma-x5.9","title":"ANSI/BIFMA X5.9-2014 Storage Units — Tests","url":"https://www.bifma.org/","accessed":"2026-09-03"},{"id":"astm-f2057","title":"ASTM F2057-19 Standard Safety Specification for Clothing Storage Units (tip-over)","url":"https://www.astm.org/f2057-19.html","accessed":"2026-09-03"},{"id":"32mm-system","title":"The 32 mm cabinet construction system — shelf-pin hole spacing and line-boring convention","note":"industry convention, widely documented by cabinet-hardware makers (Blum, Hettich); no single normative document","accessed":"2026-09-03"},{"id":"wood-handbook","title":"USDA Forest Products Laboratory, Wood Handbook: Wood as an Engineering Material (FPL-GTR-282)","url":"https://www.fpl.fs.usda.gov/documnts/fplgtr/fpl_gtr282.pdf","accessed":"2026-09-03"},{"id":"matweb-6061","title":"MatWeb — Aluminum 6063-T5 extrusion, typical properties","url":"https://www.matweb.com/search/DataSheet.aspx?MatGUID=8e5f6879abc74221ad14006031a54d7c","accessed":"2026-09-03"},{"id":"azo-steel-tube","title":"AZoM — mild/low-carbon steel tube (ERW), typical density and yield","url":"https://www.azom.com/article.aspx?ArticleID=6115","accessed":"2026-09-03"},{"id":"lee-valley-confirmat","title":"Lee Valley / Häfele technical data — Confirmat (KD) screw hole drilling specification","url":"https://www.leevalley.com/en-us/shop/hardware/knock-down-fittings","accessed":"2026-09-03"}],"entries":[{"id":"seat-height","kind":"dimension","tier":1,"title":"Task chair seat height (adjustable range)","summary":"Adjustable seat height should span at least 380–510 mm above the floor (5th–95th percentile popliteal height); a fixed-height chair sits at 430–460 mm.","applies":["task chair","office chair","fixed-height chair"],"value":{"min":380,"max":510,"typical":450,"unit":"mm"},"basis":"Popliteal height 5th–95th percentile adult, seated, shod","sources":["bifma-g1","en-1335"],"tags":["ergonomics","seating","chair"]},{"id":"seat-depth","kind":"dimension","tier":1,"title":"Task chair seat depth","summary":"Usable seat pan depth (front edge to backrest) should be 380–440 mm, ideally adjustable, so the front edge clears the back of the knee by 40–70 mm.","applies":["task chair","office chair"],"value":{"min":380,"max":440,"typical":410,"unit":"mm"},"basis":"Buttock-popliteal length 5th percentile minus knee clearance margin","sources":["bifma-g1","en-1335"],"tags":["ergonomics","seating","chair"]},{"id":"seat-width","kind":"dimension","tier":1,"title":"Task chair seat width","summary":"Seat pan width at the front should be at least 400 mm (typical 460–510 mm) to clear the 95th-percentile hip breadth with clothing allowance.","applies":["task chair","office chair"],"value":{"min":400,"max":510,"typical":460,"unit":"mm"},"basis":"95th percentile seated hip breadth + clothing allowance","sources":["bifma-g1"],"tags":["ergonomics","seating","chair"]},{"id":"backrest-height-width","kind":"dimension","tier":1,"title":"Task chair backrest height and width","summary":"A mid-back backrest spans 450–500 mm above the seat and is 300–360 mm wide; lumbar support centre sits 150–250 mm above the seat, adjustable.","applies":["task chair","office chair"],"value":{"min":450,"max":500,"typical":480,"unit":"mm"},"basis":"Lumbar-to-scapula coverage for 5th–95th percentile torso length","sources":["en-1335","bifma-g1"],"tags":["ergonomics","seating","backrest"]},{"id":"armrest-height","kind":"dimension","tier":1,"title":"Armrest height above seat (adjustable)","summary":"Armrest top surface should adjust 200–280 mm above the compressed seat surface so forearms rest level with elbows at 90°, and clear the desk apron underside.","applies":["task chair","office chair"],"value":{"min":200,"max":280,"typical":230,"unit":"mm"},"basis":"Elbow rest height 5th–95th percentile seated, minus seat compression","sources":["bifma-g1","en-1335"],"tags":["ergonomics","seating","armrest"]},{"id":"desk-height-fixed","kind":"dimension","tier":1,"title":"Fixed desk / worksurface height","summary":"A non-adjustable desk or work table sits 720–760 mm above the floor, 730 mm typical, to clear a seated elbow with the chair at 450 mm seat height.","applies":["desk","table","workstation"],"value":{"min":720,"max":760,"typical":730,"unit":"mm"},"basis":"Seated elbow height above floor minus 20–30 mm worksurface clearance","sources":["en-527","bifma-x5.5"],"tags":["ergonomics","desk","worksurface"]},{"id":"desk-height-sit-stand","kind":"dimension","tier":1,"title":"Sit-stand desk height range","summary":"A sit-stand desk must adjust across 650–1250 mm to cover seated (5th percentile) through standing (95th percentile) elbow height.","applies":["sit-stand desk","height-adjustable desk"],"value":{"min":650,"max":1250,"unit":"mm"},"basis":"Seated 5th-percentile elbow height to standing 95th-percentile elbow height","sources":["bifma-x5.5","bifma-g1"],"tags":["ergonomics","desk","sit-stand"]},{"id":"desk-knee-clearance","kind":"dimension","tier":1,"title":"Desk knee and toe clearance (ADA 306)","summary":"Knee clearance under a worksurface needs ≥ 685 mm width, ≥ 635 mm depth at 230 mm height tapering to 480 mm depth at 685 mm height, with toe clearance to 230 mm.","applies":["desk","table","accessible workstation"],"value":{"min":685,"unit":"mm"},"basis":"ADA 2010 §306 knee and toe clearance for a forward wheelchair approach","sources":["ada-2010"],"tags":["accessibility","desk","clearance"]},{"id":"dining-table-height","kind":"dimension","tier":2,"title":"Dining / conference table height and clearance","summary":"Dining and conference tables sit 710–760 mm high (740 mm typical) with ≥ 685 mm knee clearance width per seat and 300 mm minimum apron-to-seat-edge overlap.","applies":["dining table","conference table"],"value":{"min":710,"max":760,"typical":740,"unit":"mm"},"basis":"ADA 902 dining surface height plus seated knee clearance","sources":["ada-2010","en-527"],"tags":["dimension","table"]},{"id":"coffee-side-table-height","kind":"dimension","tier":2,"title":"Coffee table / side table height","summary":"A coffee table sits 330–430 mm high, roughly level with or slightly below adjacent sofa seat height (typical sofa seat 400–450 mm).","applies":["coffee table","side table"],"value":{"min":330,"max":430,"typical":380,"unit":"mm"},"basis":"Convention: level with or ~50 mm below adjacent seat height","sources":["bifma-g1"],"tags":["dimension","table"]},{"id":"worksurface-thickness","kind":"dimension","tier":1,"title":"Desk / table worksurface thickness","summary":"A panel worksurface (particleboard or MDF core, laminate faced) runs 18–25 mm thick; 25 mm is standard for spans over 900 mm without a centre support.","applies":["desk","table","worksurface"],"value":{"min":18,"max":25,"typical":25,"unit":"mm"},"basis":"Deflection under 250 N point load stays under 6 mm at this thickness and span","sources":["bifma-x5.5"],"tags":["dimension","worksurface","panel"]},{"id":"leg-section-square","kind":"dimension","tier":1,"title":"Desk/table leg section, square steel tube","summary":"A steel-tube desk leg is typically 40×40 mm to 50×50 mm square, 1.5–2 mm wall, for a 720 mm leg under a 25 mm worksurface up to 1600×800 mm.","applies":["desk leg","table leg","steel-frame table"],"value":{"min":40,"max":50,"typical":40,"unit":"mm"},"basis":"Column buckling and racking stiffness for BIFMA X5.5 stability loads","sources":["bifma-x5.5"],"tags":["dimension","leg","steel"]},{"id":"leg-section-timber","kind":"dimension","tier":2,"title":"Table leg section, solid hardwood","summary":"A solid hardwood table leg runs 60–80 mm square (or ⌀60–75 mm turned) for legs up to 750 mm; below 60 mm section, racking stiffness needs a stretcher.","applies":["table leg","wood furniture"],"value":{"min":60,"max":80,"typical":70,"unit":"mm"},"basis":"Slenderness ratio keeping buckling load well above service load with FS ≈ 4","sources":["wood-handbook"],"tags":["dimension","leg","hardwood"]},{"id":"apron-rail-section","kind":"dimension","tier":2,"title":"Apron / rail section under a tabletop","summary":"An apron rail joining legs under a solid-wood tabletop is 18–25 mm thick × 70–100 mm deep, set back 10–15 mm from the top's edge.","applies":["table","desk","apron","rail"],"value":{"min":70,"max":100,"typical":90,"unit":"mm"},"basis":"Rail depth resists racking at the leg-to-top joint without a metal bracket","sources":["wood-handbook"],"tags":["dimension","apron","joinery"]},{"id":"shelf-span-sag","kind":"rule","tier":1,"title":"Shelf span vs. sag (particleboard/MDF)","summary":"An 18 mm particleboard shelf should not span more than 700–800 mm unsupported under normal book/storage load (≈0.6 mm sag per 100 mm span at mid-load); add a centre support beyond 900 mm.","applies":["shelf","shelving","cabinet shelf"],"value":{"max":800,"unit":"mm"},"basis":"Deflection limit L/300 under a uniform 40 kg/m distributed load, E ≈ 2500 MPa for particleboard","sources":["bifma-x5.9"],"tags":["rule","shelf","deflection"]},{"id":"shelf-span-sag-plywood","kind":"rule","tier":2,"title":"Shelf span vs. sag (plywood)","summary":"An 18 mm birch-plywood shelf can span up to 900–1000 mm before sag exceeds L/300 under the same load, thanks to plywood's higher bending modulus (≈7000 MPa) versus particleboard.","applies":["shelf","plywood shelf"],"value":{"max":1000,"unit":"mm"},"basis":"Deflection limit L/300, E ≈ 7000 MPa cross-grain-averaged for 18 mm birch plywood","sources":["wood-handbook"],"tags":["rule","shelf","plywood","deflection"]},{"id":"shelf-thickness","kind":"dimension","tier":1,"title":"Cabinet/bookcase shelf thickness","summary":"Fixed or adjustable cabinet shelving runs 16–19 mm thick (18 mm nominal) for particleboard/MDF/plywood; glass shelves run 6–10 mm tempered.","applies":["shelf","cabinet","bookcase"],"value":{"min":16,"max":19,"typical":18,"unit":"mm"},"basis":"Standard panel stock thickness matching the 32 mm system's edge-band allowance","sources":["32mm-system"],"tags":["dimension","shelf","panel"]},{"id":"32mm-system-pitch","kind":"rule","tier":1,"title":"32 mm cabinet system: hole pitch and line-boring","summary":"Cabinet-side shelf-pin and hinge holes are line-bored on a 32 mm vertical pitch, ⌀5 mm × 12–13 mm deep, front row 37 mm from the front edge, back row 37 mm from the back edge.","applies":["cabinet","shelving","carcass"],"value":{"value":32,"unit":"mm"},"basis":"Industry-standard 32 mm system lets any panel width use the same boring template","sources":["32mm-system"],"tags":["fastener","shelf-pin","32mm-system","cabinet"],"check":{"process":"sheet","rule":"hole-edge-distance","params":{"minEdgeMm":8}}},{"id":"shelf-pin-hole","kind":"fastener","tier":1,"title":"Shelf-pin hole size","summary":"Shelf-pin holes are ⌀5 mm (metric pin system) or ⌀1/4 in (imperial), bored 12–13 mm deep in 18 mm stock, leaving ≥ 5 mm of material behind the hole.","applies":["shelf","cabinet","shelf pin"],"value":{"value":5,"unit":"mm"},"basis":"5 mm pin diameter is the de-facto metric standard across European cabinet hardware","sources":["32mm-system"],"tags":["fastener","shelf-pin"]},{"id":"cam-lock-fitting","kind":"fastener","tier":1,"title":"Cam-lock (cam-and-dowel) knock-down fitting","summary":"A cam-lock joint uses a ⌀15 mm × 12 mm deep cam housing bored face-on and a ⌀8 mm × 30–35 mm deep cam-bolt hole bored edge-on, tied together by an 8 mm locating dowel 25–30 mm from the panel edge.","applies":["cabinet","knock-down furniture","flat-pack"],"value":{"value":15,"unit":"mm"},"basis":"Standard RTA-furniture cam-lock hardware (e.g. Häfele/Blum minifix) hole set","sources":["lee-valley-confirmat"],"tags":["fastener","cam-lock","knock-down","flat-pack"]},{"id":"dowel-8x30-32mm-system","kind":"fastener","tier":2,"title":"Locating dowel, ⌀8 × 30 mm (32 mm system)","summary":"The 32 mm system's locating dowel is ⌀8 mm × 30 mm, bored ⌀8.0–8.2 mm × 15–16 mm deep into each mating face, centred 8–10 mm from the panel's outer face for standard 18–19 mm stock.","applies":["cabinet","carcass joinery","flat-pack"],"value":{"value":8,"unit":"mm"},"basis":"8×30 fluted dowel is the standard RTA carcass locating pin; half its length seats in each panel","sources":["lee-valley-confirmat"],"tags":["fastener","dowel","32mm-system"]},{"id":"confirmat-screw","kind":"fastener","tier":2,"title":"Confirmat (KD) screw, 7×50","summary":"A Confirmat screw for 16–19 mm panel-to-panel carcass joints is ⌀7 × 50 mm, needing a stepped pilot: ⌀4.5 mm through the face panel and ⌀7.0 mm × ~35 mm into the mating panel's edge.","applies":["cabinet","carcass joinery","flat-pack"],"value":{"value":7,"unit":"mm"},"basis":"Confirmat's coarse thread needs a stepped two-diameter pilot, unlike a standard wood screw","sources":["lee-valley-confirmat"],"tags":["fastener","confirmat","screw","cabinet"]},{"id":"pocket-screw-joint","kind":"fastener","tier":2,"title":"Pocket-screw joint (Kreg-style)","summary":"A pocket-screw joint for 18–19 mm stock uses a 15° stepped pocket bored ⌀9.5 mm (shank) stepping to ⌀7 mm (pilot), with a #8 self-tapping screw 32–38 mm long.","applies":["table apron","face frame","shelving"],"value":{"value":15,"unit":"deg"},"basis":"15° pocket angle is the Kreg-jig convention balancing screw shear and edge distance","sources":["lee-valley-confirmat"],"tags":["fastener","pocket-screw","joinery"]},{"id":"cabinet-hinge-cup","kind":"fastener","tier":2,"title":"Concealed (Euro) cabinet hinge cup","summary":"A concealed cabinet hinge cup is ⌀35 mm × 11.5–13 mm deep, bored 21.5–22.5 mm from the door edge with two ⌀2.9–3.5 mm pilot holes at 45 mm pitch either side of the cup.","applies":["cabinet door","hinge"],"value":{"value":35,"unit":"mm"},"basis":"35 mm cup is the near-universal Euro-hinge standard across cabinet hardware brands","sources":["32mm-system"],"tags":["fastener","hinge","cabinet"]},{"id":"leg-leveller-insert","kind":"fastener","tier":2,"title":"Leg leveller / T-nut insert","summary":"An adjustable furniture leg leveller uses an M8 or M10 threaded T-nut insert pressed into a ⌀10–12.5 mm bore in the leg base, ± 8–10 mm of level adjustment.","applies":["table leg","cabinet base","leveller"],"value":{"value":10,"unit":"mm"},"basis":"M8/M10 threaded levellers are the common capacity for domestic and light-commercial furniture","sources":["lee-valley-confirmat"],"tags":["fastener","leveller","leg"]},{"id":"material-particleboard","kind":"material","tier":1,"title":"Particleboard (chipboard) core panel","summary":"Particleboard: density 650–750 kg/m³, MOE ≈ 2200–2800 MPa, stocked 16/18/25 mm, melamine- or laminate-faced; the default RTA-furniture and shelf core.","applies":["shelf","cabinet","worksurface","flat-pack"],"value":{"table":[{"property":"density","min":650,"max":750,"unit":"kg/m3"},{"property":"MOE","min":2200,"max":2800,"unit":"MPa"}]},"basis":"Typical EN 312 particleboard grade P2, melamine faced","sources":["wood-handbook"],"tags":["material","particleboard","panel"]},{"id":"material-mdf","kind":"material","tier":2,"title":"MDF (medium-density fibreboard)","summary":"MDF: density 680–800 kg/m³, MOE ≈ 3000–4000 MPa, stocked 12/16/18/25 mm; machines and edge-profiles cleanly, common for painted furniture faces.","applies":["cabinet door","furniture face","moulding"],"value":{"table":[{"property":"density","min":680,"max":800,"unit":"kg/m3"},{"property":"MOE","min":3000,"max":4000,"unit":"MPa"}]},"basis":"Typical EN 622-5 MDF grade for interior furniture use","sources":["wood-handbook"],"tags":["material","mdf","panel"]},{"id":"material-birch-plywood","kind":"material","tier":2,"title":"Birch plywood","summary":"Birch plywood: density 650–700 kg/m³, bending MOE ≈ 6000–8000 MPa along face grain, stocked 12/15/18/25 mm; used for structural shelves, seat pans, drawer sides.","applies":["shelf","seat pan","drawer","structural panel"],"value":{"table":[{"property":"density","min":650,"max":700,"unit":"kg/m3"},{"property":"MOE","min":6000,"max":8000,"unit":"MPa"}]},"basis":"Baltic birch plywood, 9–13 ply cross-laminated construction","sources":["wood-handbook"],"tags":["material","plywood","panel"]},{"id":"material-solid-hardwood","kind":"material","tier":2,"title":"Solid hardwood (oak / beech / maple)","summary":"Solid hardwood for legs and frames: density 650–750 kg/m³ (oak/beech), MOE ≈ 11000–13000 MPa along grain; move ~0.25–0.5 % dimensionally per % moisture-content change across the grain.","applies":["table leg","chair frame","solid-wood furniture"],"value":{"table":[{"property":"density","min":650,"max":750,"unit":"kg/m3"},{"property":"MOE","min":11000,"max":13000,"unit":"MPa"}]},"basis":"USDA Wood Handbook species tables for red oak / European beech","sources":["wood-handbook"],"tags":["material","hardwood","solid-wood"]},{"id":"material-steel-tube-frame","kind":"material","tier":2,"title":"Mild-steel tube (desk/chair frame)","summary":"ERW mild-steel tube for desk and chair frames: density 7850 kg/m³, yield ≈ 250–350 MPa, 1.2–2.0 mm wall, powder-coated; the default structural-frame material for office furniture.","applies":["desk frame","chair frame","table frame"],"value":{"table":[{"property":"density","value":7850,"unit":"kg/m3"},{"property":"yield","min":250,"max":350,"unit":"MPa"}]},"basis":"Typical ASTM A500/EN 10305 ERW tube for furniture-grade steel frames","sources":["azo-steel-tube"],"tags":["material","steel","tube","frame"]},{"id":"material-aluminium-extrusion","kind":"material","tier":2,"title":"Aluminium extrusion (6063-T5)","summary":"6063-T5 aluminium extrusion for lightweight legs/rails: density 2700 kg/m³, yield ≈ 145–186 MPa, anodised finish common; ~1/3 the weight of steel tube for equal wall thickness.","applies":["desk leg","table frame","lightweight furniture"],"value":{"table":[{"property":"density","value":2700,"unit":"kg/m3"},{"property":"yield","min":145,"max":186,"unit":"MPa"}]},"basis":"MatWeb 6063-T5 extrusion datasheet, typical values","sources":["matweb-6061"],"tags":["material","aluminium","extrusion"]},{"id":"finish-melamine-edge","kind":"process","tier":2,"title":"Melamine face with PVC/ABS edge-banding","summary":"A melamine-faced panel gets 0.4–2.0 mm PVC or ABS edge-banding hot-glued to exposed edges; specify the panel's true (banded) dimension, not the raw-core dimension, in the model.","applies":["shelf","cabinet","worksurface"],"value":{"min":0.4,"max":2,"unit":"mm"},"basis":"Edge-band thickness range across common cabinet-panel suppliers","sources":["32mm-system"],"tags":["process","finish","edge-band"]},{"id":"finish-lacquer-solidwood","kind":"process","tier":3,"title":"Catalysed lacquer finish on solid wood","summary":"A catalysed (conversion) lacquer on solid-wood furniture builds 75–125 µm total dry film across 2–3 coats, sanded between coats at 320 grit.","applies":["solid-wood furniture","table","chair frame"],"value":{"min":75,"max":125,"unit":"um"},"basis":"Typical dry-film build for a durable conversion-varnish furniture finish","sources":["wood-handbook"],"tags":["process","finish","lacquer"]},{"id":"powder-coat-steel-frame","kind":"process","tier":2,"title":"Powder coat on steel furniture frames","summary":"Powder coat on a steel desk/chair frame builds 60–120 µm dry film after a phosphate pretreatment; inside corners need ≥ 3 mm radius so coating doesn't bridge or pinhole.","applies":["chair frame","desk frame","steel furniture"],"value":{"min":60,"max":120,"unit":"um"},"basis":"Typical electrostatic powder-coat build for furniture-grade steel","sources":["azo-steel-tube"],"tags":["process","finish","powder-coat","steel"]},{"id":"chair-caster-stem","kind":"fastener","tier":2,"title":"Chair caster stem (grip-ring)","summary":"A twin-wheel office-chair caster uses a ⌀10 or 11 mm grip-ring stem pressed into the base's leg socket to a friction fit of 0.05–0.15 mm interference.","applies":["task chair","office chair base"],"value":{"value":11,"unit":"mm"},"basis":"ANSI/BIFMA standard grip-ring stem sizes for 5-star chair bases","sources":["bifma-x5.1"],"tags":["fastener","caster","chair-base"]},{"id":"chair-base-diameter","kind":"dimension","tier":1,"title":"5-star chair base diameter","summary":"A 5-star swivel chair base spans 640–700 mm diameter — at least as wide as the seat plus armrests — to prevent tip-over per BIFMA X5.1.","applies":["task chair","office chair base"],"value":{"min":640,"max":700,"typical":660,"unit":"mm"},"basis":"Stability envelope must exceed the seated occupant's centre-of-gravity offset at max recline","sources":["bifma-x5.1"],"tags":["dimension","chair-base","stability"]},{"id":"table-overhang-max","kind":"rule","tier":2,"title":"Tabletop overhang beyond leg frame","summary":"A tabletop should not overhang its leg frame or apron by more than 300–350 mm per side without added bracing, to keep static tip load within BIFMA's edge-load stability limit.","applies":["table","desk"],"value":{"max":350,"unit":"mm"},"basis":"BIFMA X5.5 stability test applies a 450 N edge load; unbraced overhang beyond this rotates the frame","sources":["bifma-x5.5"],"tags":["rule","stability","overhang"]},{"id":"drawer-slide-clearance","kind":"rule","tier":2,"title":"Drawer box clearance for ball-bearing slides","summary":"A drawer box needs 13 mm total side clearance per full-extension ball-bearing slide pair (12.7 mm slide width + ~0.3 mm running clearance) inside the cabinet opening.","applies":["cabinet","drawer"],"value":{"value":13,"unit":"mm"},"basis":"Standard side-mount ball-bearing slide envelope (e.g. Accuride/Blum 3832 series)","sources":["32mm-system"],"tags":["rule","drawer","slide","clearance"]},{"id":"tabletop-corner-radius","kind":"rule","tier":1,"title":"Tabletop and desk corner radius","summary":"Exposed tabletop and desk corners need ≥ 6 mm radius (BIFMA) to pass the sharp-edge/corner safety check; 12–20 mm is typical for a soft 'waterfall' front edge.","applies":["desk","table","worksurface"],"value":{"min":6,"max":20,"typical":12,"unit":"mm"},"basis":"BIFMA X5.5 sharp-edges-and-corners requirement","sources":["bifma-x5.5"],"tags":["rule","safety","corner","edge"]},{"id":"cable-grommet-hole","kind":"feature","tier":2,"title":"Desk cable-management grommet hole","summary":"A desk grommet for cable pass-through is ⌀60 or ⌀80 mm through the worksurface, centred ≥ 100 mm from the back edge to clear the apron.","applies":["desk","worksurface"],"value":{"options":[60,80]},"basis":"Standard grommet-cap diameters sold for office desking","sources":["bifma-x5.5"],"tags":["feature","grommet","cable"]},{"id":"modesty-panel","kind":"feature","tier":3,"title":"Desk modesty panel","summary":"A modesty panel hangs from the desk's back apron, bottom edge 250–300 mm above the floor, to screen legs while clearing a sit-stand base's travel.","applies":["desk"],"value":{"min":250,"max":300,"unit":"mm"},"basis":"Convention balancing privacy screening against toe/foot clearance","sources":["bifma-g1"],"tags":["feature","modesty-panel","desk"]},{"id":"seat-pan-contour","kind":"feature","tier":2,"title":"Seat pan waterfall front edge","summary":"A task-chair seat pan's front edge is radiused (waterfall) with an 8–15 mm minimum radius and the front 50–80 mm sloped down 3–5° to relieve under-thigh pressure.","applies":["task chair seat pan"],"value":{"min":8,"max":15,"unit":"mm"},"basis":"Reduces popliteal pressure per ergonomic seating guidance","sources":["bifma-g1","en-1335"],"tags":["feature","seat-pan","ergonomics"]},{"id":"test-bifma-seating-cycle","kind":"test","tier":2,"title":"BIFMA X5.1 seating cyclic backrest/seat test","summary":"BIFMA X5.1 cyclic backrest test applies 334 N at the backrest top for 120,000 cycles; seat cyclic load applies 890 N for 100,000 cycles — the frame and pan must show no fracture or looseness after.","applies":["task chair","office chair"],"value":{"table":[{"test":"backrest cyclic","load":334,"cycles":120000,"unit":"N"},{"test":"seat cyclic","load":890,"cycles":100000,"unit":"N"}]},"basis":"BIFMA X5.1-2017 §7 (backrest) and §6 (seat) cyclic durability","sources":["bifma-x5.1"],"tags":["test","durability","chair","cyclic"]},{"id":"test-bifma-seating-drop","kind":"test","tier":1,"title":"BIFMA X5.1 drop test","summary":"BIFMA X5.1 drop test releases a 1500 N load onto the seat from a 100 mm drop height, once; the seat pan and its fixings must not fracture — the mounting boss under the pan needs ≥ 3 mm wall around fasteners.","applies":["task chair","office chair"],"value":{"value":1500,"unit":"N"},"basis":"BIFMA X5.1-2017 §11 drop test","sources":["bifma-x5.1"],"tags":["test","drop","chair","impact"]},{"id":"test-chair-tipover","kind":"test","tier":1,"title":"BIFMA X5.1 tip / stability test","summary":"BIFMA X5.1 stability test applies a 400 N side load at the armrest with the seat at max height; the base footprint must keep the chair from tipping — base radius ≥ 330 mm (⌀660 mm) typically passes.","applies":["task chair","office chair base"],"value":{"value":400,"unit":"N"},"basis":"BIFMA X5.1-2017 §17 stability test, worst-case recline and reach","sources":["bifma-x5.1"],"tags":["test","stability","tip-over","chair"]},{"id":"test-desk-load","kind":"test","tier":1,"title":"BIFMA X5.5 worksurface static load test","summary":"BIFMA X5.5 static worksurface load test applies 730 N distributed over the top for 24 h with ≤ 6 mm permanent set allowed, plus a 450 N edge-load test at the front corner without tipping.","applies":["desk","table","worksurface"],"value":{"table":[{"test":"static top load","load":730,"unit":"N"},{"test":"edge load","load":450,"unit":"N"}]},"basis":"BIFMA X5.5-2014 §4/§8 static load and stability","sources":["bifma-x5.5"],"tags":["test","desk","static-load"]},{"id":"test-desk-tipover","kind":"test","tier":2,"title":"Desk / cabinet tip-over test (ASTM F2057)","summary":"ASTM F2057 tip-over test hangs a 22.7 kg (50 lb) mass from a fully-extended drawer or open door; the unit must not tip — a storage unit over 760 mm tall generally needs anti-tip hardware or a wider base.","applies":["cabinet","storage unit","chest of drawers"],"value":{"value":22.7,"unit":"kg"},"basis":"ASTM F2057-19 tip-over test for clothing storage units","sources":["astm-f2057"],"tags":["test","tip-over","cabinet","storage"]},{"id":"test-shelf-load","kind":"test","tier":2,"title":"BIFMA X5.9 shelf static load test","summary":"BIFMA X5.9 shelf load test applies a uniformly distributed load of 0.24 N/mm² (≈24 kg per 300×300 mm) for 24 h; permanent set must stay ≤ shelf thickness × 0.5.","applies":["shelf","shelving unit","storage"],"value":{"value":0.24,"unit":"MPa"},"basis":"BIFMA X5.9-2014 §5 shelf static load","sources":["bifma-x5.9"],"tags":["test","shelf","static-load"]},{"id":"test-desk-durability-cycle","kind":"test","tier":2,"title":"BIFMA X5.5 leg/frame cyclic durability","summary":"BIFMA X5.5 cyclic test racks the desk frame with a 222 N horizontal load at worksurface height for 10,000 cycles side-to-side and 10,000 front-to-back; joints must show no visible looseness.","applies":["desk frame","table frame"],"value":{"value":222,"unit":"N"},"basis":"BIFMA X5.5-2014 §10 cyclic racking durability","sources":["bifma-x5.5"],"tags":["test","durability","desk","cyclic"]},{"id":"standard-bifma-x5-1","kind":"standard","tier":2,"title":"ANSI/BIFMA X5.1 — General-Purpose Office Chairs","summary":"ANSI/BIFMA X5.1-2017 covers seat/back static and cyclic loading, drop, tip stability, caster/base fatigue and arm-load tests for task and executive office chairs.","applies":["task chair","office chair"],"basis":"The governing US test standard for office seating durability and stability","sources":["bifma-x5.1"],"tags":["standard","chair","bifma"]},{"id":"standard-bifma-x5-5","kind":"standard","tier":2,"title":"ANSI/BIFMA X5.5 — Desk Products","summary":"ANSI/BIFMA X5.5-2014 (R2019) covers static/cyclic loading, stability and drawer/door durability for desks, tables and storage-integrated worksurfaces.","applies":["desk","table","workstation"],"basis":"The governing US test standard for desk-product structural performance","sources":["bifma-x5.5"],"tags":["standard","desk","bifma"]},{"id":"standard-en-1335","kind":"standard","tier":2,"title":"EN 1335-1 — Office Work Chair Dimensions","summary":"EN 1335-1:2020 sets the European dimensional envelope (seat height/depth/width, backrest, armrest travel) that a work chair must meet for the CE-relevant EN 1335 series.","applies":["task chair","office chair"],"basis":"The EU dimensional counterpart to BIFMA G1's guideline numbers","sources":["en-1335"],"tags":["standard","chair","en"]},{"id":"standard-ada-306-902","kind":"standard","tier":1,"title":"ADA 2010 §306/§902 — Knee clearance and work surfaces","summary":"ADA 2010 §306 sets knee/toe clearance under accessible worksurfaces and §902 sets accessible dining/work surface height at 730–865 mm — a fixed constraint any accessible desk design must clear.","applies":["desk","table","accessible workstation"],"basis":"US federal accessibility requirement for forward wheelchair approach to a worksurface","sources":["ada-2010"],"tags":["standard","accessibility","ada"]},{"id":"seat-recline-angle","kind":"dimension","tier":2,"title":"Backrest recline angle range","summary":"A task-chair backrest reclines 90–120° from the seat pan (measured seat-to-back), with a synchro-tilt mechanism coupling seat tilt to roughly half the backrest angle change.","applies":["task chair","office chair"],"value":{"min":90,"max":120,"unit":"deg"},"basis":"Range needed to move from upright typing posture to relaxed recline without losing lumbar contact","sources":["en-1335","bifma-g1"],"tags":["dimension","chair","recline"]},{"id":"table-apron-setback","kind":"dimension","tier":2,"title":"Apron setback from tabletop edge","summary":"An apron rail sits set back 10–15 mm from the tabletop's finished edge so a seated person's thighs don't strike the rail, and to hide the rail from a standing viewer's sightline.","applies":["table","desk"],"value":{"min":10,"max":15,"typical":12,"unit":"mm"},"basis":"Convention balancing thigh clearance against visual/structural apron depth","sources":["en-527"],"tags":["dimension","apron","table"]},{"id":"recipe-desk-top-leg-frame","kind":"recipe","tier":2,"title":"Recipe: desk top on a four-leg steel frame","summary":"Build a 1200×700 mm desk: 25 mm worksurface at 720 mm overall height on four 40×40 mm legs inset 50 mm from each edge, with a 3 mm eased top edge.","applies":["desk","table"],"basis":"Combines desk-height-fixed (720–760 mm), worksurface-thickness (18–25 mm) and leg-section-square (40–50 mm) into one buildable frame","sources":["bifma-x5.5","en-527"],"tags":["recipe","desk","leg-frame"],"recipe":{"prompt":"Model a 1200x700mm desk: 25mm top, four 40x40mm steel legs, 720mm overall height, legs inset 50mm from each edge","steps":[{"tool":"cad_box","args":{"dx":1200,"dy":700,"dz":25,"origin":[0,0,695]},"note":"25mm worksurface, top sits at 695-720mm so overall height is 720mm"},{"tool":"cad_box","args":{"dx":40,"dy":40,"dz":695,"origin":[50,50,0]},"note":"front-left leg"},{"tool":"cad_box","args":{"dx":40,"dy":40,"dz":695,"origin":[1110,50,0]},"note":"front-right leg"},{"tool":"cad_box","args":{"dx":40,"dy":40,"dz":695,"origin":[50,610,0]},"note":"back-left leg"},{"tool":"cad_box","args":{"dx":40,"dy":40,"dz":695,"origin":[1110,610,0]},"note":"back-right leg"},{"tool":"cad_fillet_edges","args":{"of":"$0","radius":3},"note":"3mm eased edge on the worksurface, BIFMA sharp-edge minimum"}],"expect":{"volume":20985164.25,"faceCount":26,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-task-chair-seat-pan","kind":"recipe","tier":2,"title":"Recipe: task-chair seat pan with waterfall edge and mount holes","summary":"Build a 460×410 mm, 18 mm plywood seat pan with a 10 mm eased waterfall front edge and a 4-hole ⌀9 mm mechanism mounting pattern.","applies":["task chair"],"basis":"Combines seat-width/seat-depth with seat-pan-contour and a clearance-hole mounting pattern","sources":["bifma-g1","en-1335"],"tags":["recipe","chair","seat-pan"],"recipe":{"prompt":"Model a 460x410mm task-chair seat pan, 18mm plywood, waterfall front edge, 4 mounting holes for the tilt mechanism","steps":[{"tool":"cad_box","args":{"dx":460,"dy":410,"dz":18},"note":"18mm plywood seat pan blank"},{"tool":"cad_fillet_edges","args":{"of":"$0","radius":8},"note":"8mm eased edges including the waterfall front"},{"tool":"cad_hole_pattern","args":{"of":"$1","type":"drill","diameter":9,"depth":10,"pattern":{"kind":"grid","origin":[130,105],"dx":200,"dy":200,"nx":2,"ny":2}},"note":"4x M8-clearance mechanism mounting holes, blind 10mm"}],"expect":{"volume":3343926.64,"faceCount":42,"watertight":true,"note":"measured 2026-09-19: CADSF-1561 (cc1f38cb, 2026-09-15) gave a BLIND hole a 118° DRILL POINT: the flat floor became a cone on the four Ø9x10 blind holes: +4 faces. Volume agrees to 0.002%"}}},{"id":"recipe-shelf-32mm-system","kind":"recipe","tier":2,"title":"Recipe: cabinet side panel with 32 mm shelf-pin hole columns","summary":"Build a 600×300 mm, 18 mm cabinet side panel with two vertical columns of ⌀5 mm shelf-pin holes on 32 mm pitch, 37 mm from front and back edges, 12 mm deep.","applies":["cabinet","shelving"],"basis":"Combines 32mm-system-pitch and shelf-pin-hole into a real line-bored side panel","sources":["32mm-system"],"tags":["recipe","cabinet","shelf-pin","32mm-system"],"recipe":{"prompt":"Model a 600x300mm, 18mm cabinet side panel with two columns of 5mm shelf-pin holes on 32mm pitch, 37mm from front and back edges, 12mm deep","steps":[{"tool":"cad_box","args":{"dx":300,"dy":600,"dz":18},"note":"300mm deep x 600mm tall x 18mm side panel, laid flat for drilling on its top face"},{"tool":"cad_hole_pattern","args":{"of":"$0","type":"drill","diameter":5,"depth":12,"pattern":{"kind":"grid","origin":[37,50],"dx":226,"dy":32,"nx":2,"ny":16}},"note":"front row at x=37mm, back row at x=263mm, 16 stations per column on 32mm pitch"}],"expect":{"volume":3232145.57,"faceCount":134,"watertight":true,"note":"measured 2026-09-19: CADSF-1561 (cc1f38cb, 2026-09-15) gave a BLIND hole a 118° DRILL POINT: the flat floor became a cone on the 32 Ø5x12 shelf-pin holes: faceCount 6+32x3 = 102 (two barrel halves + a FLAT floor) -> 6+32x4 = 134 (two barrel halves + two CONE halves), and 314.7 mm^3 more removed"}}},{"id":"chair-armrest-pad-width","kind":"dimension","tier":3,"title":"Armrest pad width and length","summary":"An armrest pad is 40–80 mm wide × 200–300 mm long, positioned so the pad's inner edge sits within 480–510 mm of its opposite pad for average shoulder width.","applies":["task chair","office chair"],"value":{"min":40,"max":80,"unit":"mm"},"basis":"Convention for forearm support width without restricting elbow movement","sources":["bifma-g1"],"tags":["dimension","armrest","chair"]},{"id":"footrest-bar-height","kind":"dimension","tier":3,"title":"Task-chair base footrest / kick bar height","summary":"A 5-star base's central column shroud clears the floor by 100–130 mm at the caster axle so the chair rolls over carpet pile without dragging.","applies":["task chair base"],"value":{"min":100,"max":130,"unit":"mm"},"basis":"Caster and column clearance convention over typical commercial carpet pile height","sources":["bifma-x5.1"],"tags":["dimension","chair-base","caster"]},{"id":"gas-lift-cylinder","kind":"fastener","tier":2,"title":"Chair gas-lift cylinder mount","summary":"A Class 3/4 pneumatic gas-lift cylinder mounts in a ⌀50 mm taper bore in the seat mechanism plate and a matching ⌀50 mm bore in the base column, rated 100 mm stroke.","applies":["task chair","office chair base"],"value":{"value":50,"unit":"mm"},"basis":"Standard 5-series gas-lift cylinder taper diameter used across chair-mechanism suppliers","sources":["bifma-x5.1"],"tags":["fastener","gas-lift","chair"]},{"id":"table-stretcher-height","kind":"feature","tier":3,"title":"Table leg stretcher height","summary":"A stretcher bracing solid-wood table legs sits 200–300 mm above the floor, sized 25×50 mm minimum, to add racking stiffness without fouling knee clearance.","applies":["table","wood furniture"],"value":{"min":200,"max":300,"unit":"mm"},"basis":"Balances added rigidity against ADA/ergonomic knee clearance envelopes","sources":["wood-handbook"],"tags":["feature","stretcher","table"]},{"id":"bookcase-back-panel","kind":"feature","tier":3,"title":"Bookcase back panel thickness","summary":"A bookcase/cabinet back panel is a thin 3–6 mm hardboard or plywood set into a rebate, relying on the carcass sides for load and only racking-bracing the box.","applies":["bookcase","cabinet"],"value":{"min":3,"max":6,"unit":"mm"},"basis":"Convention: back panel is a racking brace, not a load-bearing shelf","sources":["bifma-x5.9"],"tags":["feature","back-panel","cabinet"]},{"id":"chair-base-material-nylon","kind":"material","tier":3,"title":"Glass-filled nylon chair base","summary":"A moulded 5-star chair base in 30 % glass-filled nylon (PA6-GF30): density ≈ 1350 kg/m³, tensile strength ≈ 130 MPa, chosen over steel for cost and corrosion resistance in lighter-duty chairs.","applies":["task chair base"],"value":{"table":[{"property":"density","value":1350,"unit":"kg/m3"},{"property":"tensile","value":130,"unit":"MPa"}]},"basis":"Typical PA6-GF30 injection-moulding datasheet range for chair-base grades","sources":["matweb-6061"],"tags":["material","nylon","chair-base"]},{"id":"desk-cord-channel","kind":"feature","tier":3,"title":"Under-desk cable channel/tray","summary":"An under-desk cable tray spans 80–150 mm deep, mounted 50–100 mm below the worksurface underside, clipped to the apron or legs rather than fixed through the top.","applies":["desk"],"value":{"min":80,"max":150,"unit":"mm"},"basis":"Convention sized to carry a power strip plus cable bundle without touching the floor","sources":["bifma-x5.5"],"tags":["feature","cable-management","desk"]},{"id":"chair-mechanism-plate","kind":"dimension","tier":3,"title":"Tilt-mechanism mounting plate footprint","summary":"A synchro-tilt mechanism plate footprint is roughly 280×280 to 320×320 mm, and the seat-pan mounting holes must clear this envelope without intruding on the front waterfall radius.","applies":["task chair"],"value":{"min":280,"max":320,"unit":"mm"},"basis":"Common commodity synchro-tilt mechanism envelope across chair-mechanism suppliers","sources":["bifma-g1"],"tags":["dimension","mechanism","chair"]},{"id":"table-glass-top-thickness","kind":"material","tier":3,"title":"Tempered-glass tabletop thickness","summary":"A tempered-glass tabletop runs 8–12 mm thick with polished, ground (flat/pencil/bevel) edges; density 2500 kg/m³, minimum 6 mm radius at any exposed corner.","applies":["glass tabletop","coffee table"],"value":{"min":8,"max":12,"typical":10,"unit":"mm"},"basis":"Common tempered soda-lime glass tabletop thickness for spans up to ~1200 mm supported at the perimeter","sources":["bifma-x5.5"],"tags":["material","glass","tabletop"]}]},{"$schema":"nativecad-dfm-pack/1","id":"garden-outdoor","title":"Garden & outdoor — planters, birdhouses, hose fittings, mailboxes, stakes","sector":"garden-outdoor","version":"2026-09-04","summary":"Pot sizing, drainage, self-watering wicks, birdhouse hole diameters by species, hose/sprinkler/drip thread and tube sizes, mailbox and post-cap dimensions, raised-bed heights, and the UV/freeze-thaw/water-tightness tests an outdoor product is held to.","aliases":["planter","plant pot","flower pot","self-watering","birdhouse","bird feeder","watering can","mailbox","hose fitting","garden hose","sprinkler","raised bed","trellis","garden stake","seed tray","hanging basket","post cap","fence bracket","drip irrigation"],"crossSector":false,"size":"full","sources":[{"id":"nabs-nestbox","title":"North American Bluebird Society Nest Box Specs","url":"https://www.nabluebirdsociety.org/nest-box-plans/","accessed":"2026-09-04"},{"id":"sialis-nestbox","title":"Sialis.org Nest Box Specifications Chart","url":"https://www.sialis.org/nestboxguide/","accessed":"2026-09-04"},{"id":"usps-std-7b","title":"USPS-STD-7B Curbside Mailbox Standard","url":"https://about.usps.com/publications/engineering-standards-specifications/spusps-std-7b.pdf","accessed":"2026-09-04"},{"id":"asme-b1-20-7","title":"ASME B1.20.7 Garden Hose Thread (GHT)","url":"https://www.engineersedge.com/hardware/standard_hose_coupling_threads_16277.htm","accessed":"2026-09-04"},{"id":"iso-228-bsp","title":"ISO 228-1 BSP Pipe Threads","url":"https://www.iso.org/standard/4599.html","accessed":"2026-09-04"},{"id":"asme-b1-20-1","title":"ASME B1.20.1 NPT Pipe Threads","url":"https://www.asme.org/codes-standards/find-codes-standards/b1-20-1-pipe-threads-general-purpose-inch","accessed":"2026-09-04"},{"id":"astm-g154","title":"ASTM G154 UV Fluorescent Weathering Test","url":"https://www.astm.org/g0154-16.html","accessed":"2026-09-04"},{"id":"astm-c666","title":"ASTM C666 Freeze-Thaw Resistance Test","url":"https://www.astm.org/c0666_c0666m-15.html","accessed":"2026-09-04"},{"id":"awpa-u1","title":"AWPA U1 Treated-Wood Use Categories","url":"https://awpa.com/standards","accessed":"2026-09-04"},{"id":"ps20-lumber","title":"PS 20 American Softwood Lumber Standard","url":"https://www.nist.gov/standardsgov/voluntary-product-standards","accessed":"2026-09-04"},{"id":"astm-a123","title":"ASTM A123 Hot-Dip Galvanized Coatings","url":"https://www.astm.org/a0123_a0123m-17.html","accessed":"2026-09-04"},{"id":"ansi-z60-1","title":"ANSI Z60.1 Nursery Container Size Standard","url":"https://www.americanhort.org/page/ansiz601","accessed":"2026-09-04"},{"id":"protolabs-guide","title":"Protolabs Injection Molding Design Guide","url":"https://www.protolabs.com/resources/design-tips/","accessed":"2026-09-04"},{"id":"hubs-3dp-guide","title":"Hubs 3D Printing Design Guidelines","url":"https://www.hubs.com/knowledge-base/","accessed":"2026-09-04"},{"id":"rainbird-drip-guide","title":"Rain Bird Drip Irrigation Design Guide","url":"https://www.rainbird.com/resources","accessed":"2026-09-04"},{"id":"iec-60068-2-31","title":"IEC 60068-2-31 Rough Handling Shocks","url":"https://webstore.iec.ch/publication/1000","accessed":"2026-09-04"},{"id":"extension-drainage","title":"Purdue/Ask-Extension Container Drainage Guidance","url":"https://ask.extension.org/kb/faq.php?id=220577","accessed":"2026-09-04"},{"id":"uga-raised-bed","title":"UGA Extension Raised Garden Bed Dimensions","url":"https://extension.uga.edu/publications/detail.html?number=C1027-4","accessed":"2026-09-04"}],"entries":[{"id":"nursery-pot-nominal-sizes","kind":"dimension","tier":1,"title":"Nursery pot nominal vs true size","summary":"A nominal '4 in' pot measures 3.5-3.8 in (89-97 mm) true top-rim diameter, a nominal '6 in' pot 5.5-5.9 in (140-150 mm), and a trade '1-gallon' pot 6-6.5 in (150-165 mm) diameter holding ~0.7 US gal (2.6 L) actual volume — the trade name is not the mould dimension.","applies":["planter","plant pot","flower pot","nursery pot"],"value":{"table":[{"param":"nominal-4in","trueDiameter":3.65},{"param":"nominal-6in","trueDiameter":5.7},{"param":"nominal-1gal","trueDiameter":6.25}],"unit":"in"},"basis":"ANSI Z60.1 nursery-container trade-size convention: the sold name is a rounded marketing size, not the moulded rim diameter","sources":["ansi-z60-1"],"tags":["planter","nursery-pot","nominal-size"]},{"id":"planter-wall-thickness","kind":"dimension","tier":1,"title":"Planter/pot wall thickness by process","summary":"An injection-moulded HDPE/PP planter runs a 1.5-3 mm nominal wall (2 mm typical); a rotomoulded planter over ~400 mm diameter runs 3-6 mm since rotomoulding self-levels thicker and needs the extra section for rigidity without a core.","applies":["planter","plant pot","flower pot"],"value":{"table":[{"param":"injection-molded","min":1.5,"max":3},{"param":"rotomolded-large","min":3,"max":6}],"unit":"mm"},"basis":"Standard HDPE/PP wall-thickness guidance for a hollow moulded container, scaled up for rotomoulding's single-wall, coreless process","sources":["protolabs-guide"],"tags":["wall","planter","injection-molding","rotomolding"],"check":{"process":"injection_molding","rule":"min_wall_thickness"}},{"id":"planter-taper-draft","kind":"rule","tier":1,"title":"Planter/pot wall taper for de-moulding and stacking","summary":"Taper a planter wall 5-10° off vertical (steeper for a tall or textured pot); less than 5° binds in the mould or welds nested pots together in shipping, more than 10° wastes material and stack height.","applies":["planter","plant pot","flower pot","nursery pot"],"value":{"min":5,"max":10,"unit":"deg"},"basis":"Mould-release draft floor plus the nursery-trade convention of nesting pots for shipping, which needs a taper shallow enough that nested pots don't wedge tight","sources":["protolabs-guide","ansi-z60-1"],"tags":["draft","taper","planter","stacking"],"check":{"process":"injection_molding","rule":"min_draft_angle"}},{"id":"planter-drainage-holes","kind":"rule","tier":1,"title":"Planter floor drainage hole size and count","summary":"Cut at least 3-5 drainage holes >=6 mm (1/4 in) diameter in a pot floor, up to 13 mm (1/2 in) for a planter over 300 mm across; fewer or smaller holes waterlog the root ball, the most common cause of container root rot.","applies":["planter","plant pot","flower pot","raised bed"],"value":{"min":6,"max":13,"unit":"mm","note":"3-5 holes; size scales with pot diameter"},"basis":"Extension-service container-gardening guidance on drainage hole size versus pot diameter and clog resistance","sources":["extension-drainage"],"tags":["drainage","hole","planter","root-rot"]},{"id":"self-watering-reservoir-wick","kind":"dimension","tier":1,"title":"Self-watering planter reservoir depth and wick","summary":"Size a self-watering reservoir to 100-150 mm deep below a false floor, holding 25-33% of the soil volume above it, with one 6 mm (1/4 in) cotton/felt wick per ~250 mm of pot diameter reaching from the reservoir floor up through the false floor into the mix.","applies":["self-watering","planter","plant pot"],"value":{"min":100,"max":150,"unit":"mm","note":"wick 6mm dia, ~1 per 250mm pot diameter"},"basis":"Common self-watering container design convention: reservoir sized as a fraction of soil volume, capillary wick sized to the pot's contact-point count","sources":["protolabs-guide"],"tags":["self-watering","reservoir","wick","planter"]},{"id":"birdhouse-floor-min","kind":"dimension","tier":1,"title":"Birdhouse floor and interior height minimum","summary":"Give a birdhouse a floor of at least 100x100 mm (4x4 in) and 150-300 mm of interior height below the entrance, sized to the target species; a floor smaller than 100x100 mm crowds the brood and depth below 150 mm exposes chicks at the entrance to predators.","applies":["birdhouse"],"value":{"min":100,"unit":"mm","note":"floor min; interior height 150-300mm below the hole"},"basis":"NABS/Cornell nest box design guidance on minimum floor area and entrance-to-floor depth by cavity-nesting species","sources":["nabs-nestbox","sialis-nestbox"],"tags":["birdhouse","floor","nest-box"]},{"id":"birdhouse-entrance-bluebird","kind":"dimension","tier":1,"title":"Birdhouse entrance hole diameter, bluebird","summary":"An Eastern/Western bluebird nest box wants a round entrance hole 38 mm (1.5 in) diameter, centred 150-175 mm above the floor; smaller admits only wrens/chickadees, larger lets in starlings which will evict the bluebirds.","applies":["birdhouse","bluebird"],"value":{"value":38,"unit":"mm"},"basis":"North American Bluebird Society standard entrance size for Eastern/Western/Mountain bluebird boxes","sources":["nabs-nestbox","sialis-nestbox"],"tags":["birdhouse","entrance-hole","bluebird"]},{"id":"birdhouse-entrance-wren-chickadee","kind":"dimension","tier":1,"title":"Birdhouse entrance hole diameter, wren and chickadee","summary":"A house wren box wants a 25-29 mm (1-1.125 in) entrance hole and a chickadee box a 29 mm (1.125 in) hole; both are small enough to exclude house sparrows, which need >=32 mm to squeeze through.","applies":["birdhouse","wren","chickadee"],"value":{"table":[{"param":"wren","min":25,"max":29},{"param":"chickadee","value":29}],"unit":"mm"},"basis":"Cornell NestWatch / Sialis nest-box specification chart, entrance diameters by cavity-nesting species","sources":["nabs-nestbox","sialis-nestbox"],"tags":["birdhouse","entrance-hole","wren","chickadee"]},{"id":"birdhouse-drainage-ventilation","kind":"rule","tier":1,"title":"Birdhouse floor drainage and no interior perch","summary":"Cut 3-4 drainage holes >=6 mm in the floor corners and 2 ventilation gaps/slots near the roofline, and never add a perch below or beside the entrance hole — a perch only helps predators and House Sparrows reach the nest.","applies":["birdhouse"],"value":{"min":6,"unit":"mm","note":"3-4 floor drainage holes; no perch"},"basis":"NABS nest box guidance: standing water and stagnant air kill broods, while an external perch offers no benefit to cavity-nesting species and aids predators","sources":["nabs-nestbox","sialis-nestbox"],"tags":["birdhouse","drainage","ventilation","perch"]},{"id":"bird-feeder-port-size","kind":"dimension","tier":2,"title":"Bird feeder seed port diameter by seed type","summary":"Size a tube feeder's seed ports 12-25 mm (0.5-1 in) for mixed/sunflower seed and 5-6 mm slotted ports for nyjer/thistle; a mixed-seed port cut for thistle clogs constantly, and a thistle port cut oversize dumps seed on the ground.","applies":["bird feeder"],"value":{"min":12,"max":25,"unit":"mm","note":"5-6mm slot for nyjer/thistle"},"basis":"Common tube-feeder port sizing separating small-seed (nyjer) feeders from mixed-seed/sunflower feeders","sources":["nabs-nestbox"],"tags":["bird-feeder","port","seed"]},{"id":"watering-can-dims","kind":"dimension","tier":1,"title":"Watering can capacity, spout and handle","summary":"Size a hand watering can for 5-10 L capacity (a full 10 L can weighs ~10 kg, near the practical one-hand-carry limit), a rose spout mounted 50-80 mm above the fill line so it doesn't glug, and a handle clearance >=40 mm for a gloved grip.","applies":["watering can"],"value":{"table":[{"param":"capacity","min":5,"max":10,"unit":"L"},{"param":"spout-height-above-fill","min":50,"max":80,"unit":"mm"},{"param":"handle-clearance","min":40,"unit":"mm"}],"unit":"mm"},"basis":"Common consumer watering-can sizing balancing one-hand carry weight against refill frequency","sources":["protolabs-guide"],"tags":["watering-can","capacity","spout","handle"]},{"id":"mailbox-usps-gauge","kind":"dimension","tier":1,"title":"USPS curbside mailbox interior gauge and slot","summary":"A USPS-approved curbside mailbox must clear an interior test gauge 18.5 x 5 x 6 in (470x127x152 mm) and, if it uses a mail slot instead of a lid, the slot must be >=10 in wide x 1.75 in high (254x44mm) for a carrier's hand and parcel.","applies":["mailbox"],"value":{"table":[{"param":"gauge-length","value":18.5},{"param":"gauge-width","value":5},{"param":"gauge-height","value":6},{"param":"slot-width-min","value":10},{"param":"slot-height-min","value":1.75}],"unit":"in"},"basis":"USPS-STD-7B curbside mailbox design standard: the carrier's test gauge every approved box must accept","sources":["usps-std-7b"],"tags":["mailbox","usps","gauge"]},{"id":"mailbox-mount-height","kind":"dimension","tier":2,"title":"Mailbox mounting height above road surface","summary":"Mount a curbside mailbox 41-45 in (1041-1143 mm) from the road surface to the bottom of the mailbox floor or lowest mail-entry edge, per USPS delivery placement rules a post-mount design must clear.","applies":["mailbox"],"value":{"min":41,"max":45,"unit":"in"},"basis":"USPS-STD-7B curbside placement standard for delivery-height clearance","sources":["usps-std-7b"],"tags":["mailbox","usps","mount-height"]},{"id":"hose-thread-ght","kind":"dimension","tier":1,"title":"Garden hose thread (GHT/NH), US","summary":"US garden hose fittings use one thread, 3/4-11.5 NH per ASME B1.20.7: a straight (non-tapered) thread, 1.0625 in major diameter, 11.5 threads per inch, sealed by a washer, not thread interference.","applies":["garden hose","hose fitting","sprinkler"],"value":{"value":0.75,"unit":"in","note":"3/4-11.5 NH; major dia 1.0625in"},"basis":"ASME B1.20.7 Hose Coupling Screw Threads, the single US garden-hose thread standard","sources":["asme-b1-20-7"],"tags":["hose","thread","ght","nh"]},{"id":"hose-thread-bsp","kind":"dimension","tier":2,"title":"Hose connector thread, EU (BSP)","summary":"EU garden hose connectors commonly use G3/4 (BSP) per ISO 228-1: a parallel thread with a 26.44 mm major diameter and 14 threads per inch pitch, sealed with a washer like GHT but not interchangeable with it.","applies":["garden hose","hose fitting"],"value":{"value":26.44,"unit":"mm","note":"G3/4-14, BSP parallel"},"basis":"ISO 228-1 pipe thread standard, the BSP designation EU hose fittings commonly use","sources":["iso-228-bsp"],"tags":["hose","thread","bsp","g-thread"]},{"id":"sprinkler-npt-thread","kind":"dimension","tier":1,"title":"Sprinkler riser thread, 1/2 NPT","summary":"A sprinkler head or riser threads onto 1/2 in NPT (ASME B1.20.1): a tapered thread, ~21.3 mm (0.84 in) major diameter at the gauge plane, 14 threads per inch, sealing on thread interference plus PTFE tape.","applies":["sprinkler"],"value":{"value":21.3,"unit":"mm","note":"1/2-14 NPT, tapered"},"basis":"ASME B1.20.1 NPT pipe-thread standard, the standard sprinkler-riser connection","sources":["asme-b1-20-1"],"tags":["sprinkler","npt","thread"]},{"id":"drip-tube-sizes","kind":"dimension","tier":1,"title":"Drip irrigation tube sizes","summary":"A drip system runs 16 mm (5/8 in) OD polyethylene mainline tubing off the hose-thread valve, feeding 4 mm (or 6 mm) microtube branches to individual emitters/drippers; mixing the two up a size range makes every push-fit leak.","applies":["drip irrigation","garden hose"],"value":{"table":[{"param":"mainline","value":16},{"param":"microtube","value":4}],"unit":"mm"},"basis":"Common commercial drip-irrigation kit tube sizing (Rain Bird/Netafim-style two-tier system)","sources":["rainbird-drip-guide"],"tags":["drip","irrigation","tube"]},{"id":"raised-bed-height","kind":"dimension","tier":1,"title":"Raised garden bed height","summary":"A standing-gardener raised bed runs 300-600 mm (12-24 in) tall; a seated/wheelchair-accessible bed needs 600-900 mm (24-36 in) so the gardener can reach the soil without bending over the rim.","applies":["raised bed"],"value":{"min":300,"max":600,"unit":"mm","note":"600-900mm for wheelchair access"},"basis":"University extension raised-bed design guidance for standing versus seated/wheelchair gardeners","sources":["uga-raised-bed"],"tags":["raised-bed","height","accessibility"]},{"id":"post-cap-4x4-actual","kind":"dimension","tier":1,"title":"Fence post nominal vs actual size, 4x4","summary":"A nominal '4x4' fence/deck post measures 3.5x3.5 in (88.9x88.9 mm) actual, dressed-lumber size; a post cap's inside skirt must be sized to the 88.9 mm actual post, not the 4 in (101.6 mm) nominal name, or it won't fit.","applies":["post cap","fence bracket"],"value":{"value":3.5,"unit":"in","note":"actual size of a nominal 4x4"},"basis":"PS 20 American Softwood Lumber Standard, which fixes actual dressed dimensions below the nominal sawn size","sources":["ps20-lumber"],"tags":["post-cap","lumber","nominal-size"]},{"id":"frost-water-expansion","kind":"rule","tier":1,"title":"Frost expansion cracks a filled outdoor vessel","summary":"Water expands ~9% in volume on freezing; a planter, watering can or birdhouse left outdoors full of water in freezing weather can crack unless it has a flexible wall, a drain, or enough headspace to absorb that 9% without stressing the shell.","applies":["planter","watering can","birdhouse","raised bed"],"value":{"value":9,"unit":"%"},"basis":"Physical expansion of water into ice; the load a rigid outdoor vessel must either vent (drainage) or accommodate (headspace/flex)","sources":["astm-c666"],"tags":["frost","freeze-thaw","expansion"]},{"id":"planter-foot-lugs-saucer","kind":"feature","tier":2,"title":"Planter foot lugs and integral saucer lip","summary":"Mould 3-4 foot lugs 5-8 mm tall under a planter's floor to lift the drainage holes off the ground for airflow, or add an integral saucer lip 15-20 mm deep around the base to catch runoff without a separate dish.","applies":["planter","plant pot"],"value":{"min":5,"max":8,"unit":"mm","note":"foot lugs; saucer lip 15-20mm"},"basis":"Common moulded-planter base geometry keeping drainage holes clear of standing water on a patio or sill","sources":["protolabs-guide"],"tags":["planter","foot","saucer","drainage"]},{"id":"trellis-mesh-spacing","kind":"dimension","tier":2,"title":"Trellis grid/mesh spacing","summary":"Space a trellis grid 100-150 mm for climbing vegetables (peas, beans, cucumbers) and 150-250 mm for larger vines (grape, wisteria); tighter than 100 mm makes hand-training the vine through the mesh difficult.","applies":["trellis"],"value":{"min":100,"max":250,"unit":"mm"},"basis":"Common garden-trellis grid spacing sized to a climbing plant's tendril/stem reach","sources":["protolabs-guide"],"tags":["trellis","mesh","spacing"]},{"id":"garden-stake-taper","kind":"rule","tier":2,"title":"Garden stake point taper","summary":"Taper a garden stake's driven end to a 30-45 deg included point over 40-60 mm; a blunter point needs more force to drive and splits soft ground unevenly, a sharper point bends over on stony ground.","applies":["garden stake"],"value":{"min":30,"max":45,"unit":"deg"},"basis":"Common stake-point geometry balancing drive force against tip strength in typical garden soil","sources":["protolabs-guide"],"tags":["stake","taper","point"]},{"id":"seed-tray-cell-dims","kind":"dimension","tier":2,"title":"Standard 1020 seed tray and cell counts","summary":"A standard '1020' seed tray measures ~254x521 mm (10x20.5 in) outside, 51-64 mm (2-2.5 in) deep, and holds interchangeable cell inserts of 32, 72 or 128 cells; higher cell count means smaller cells for quicker-germinating starts.","applies":["seed tray"],"value":{"table":[{"param":"outer-length","value":521},{"param":"outer-width","value":254},{"param":"depth-min","value":51},{"param":"depth-max","value":64}],"unit":"mm"},"basis":"The nursery-trade '1020' tray footprint and its common interchangeable cell-insert counts","sources":["ansi-z60-1"],"tags":["seed-tray","1020","cell"]},{"id":"hanging-basket-dims","kind":"dimension","tier":2,"title":"Hanging basket diameter and chain points","summary":"A hanging basket runs 250-400 mm rim diameter with 3 evenly-spaced chain/bracket attachment points 15-20 mm below the rim; fewer than 3 points lets a loaded, wet basket tip and spill.","applies":["hanging basket"],"value":{"min":250,"max":400,"unit":"mm","note":"3 chain points, 15-20mm below rim"},"basis":"Common moulded hanging-basket sizing and the 3-point suspension needed to keep a loaded basket level","sources":["protolabs-guide"],"tags":["hanging-basket","diameter","chain"]},{"id":"fence-bracket-post-clearance","kind":"feature","tier":2,"title":"Fence rail bracket post clearance and fastener pattern","summary":"Fit a fence rail bracket with 1-2 mm clearance to the actual 88.9 mm (3.5 in) post face and a 3-4 hole fastener pattern on a >=25 mm edge distance from the bracket's own edge, so it doesn't split the post or crack in a moulded/cast bracket corner.","applies":["fence bracket"],"value":{"min":1,"max":2,"unit":"mm","note":"clearance to 88.9mm actual post face"},"basis":"Post-actual-size clearance fit plus generic fastener edge-distance practice for a bracket loaded in shear/tension","sources":["ps20-lumber","protolabs-guide"],"tags":["fence-bracket","clearance","fastener"]},{"id":"hose-quick-connect","kind":"fastener","tier":2,"title":"Hose quick-connect fitting engagement","summary":"A garden-hose quick-connect couples over a 15-16 mm barrel with a spring-loaded collar retracting 3-4 mm to release; size the male barrel's retaining groove 2 mm deep so the collar's ball detents seat without a gap that leaks under mains pressure.","applies":["hose fitting","garden hose"],"value":{"min":15,"max":16,"unit":"mm","note":"collar retracts 3-4mm; groove 2mm deep"},"basis":"Common garden-hose quick-connect coupler geometry (ball-detent collar over a grooved barrel)","sources":["asme-b1-20-7"],"tags":["hose","quick-connect","fastener"]},{"id":"material-hdpe-uv-outdoor","kind":"material","tier":2,"title":"UV-stabilised HDPE for outdoor mouldings","summary":"UV-stabilised HDPE (~0.955 g/cm3) is the default resin for planters, mailboxes and post caps left outdoors year-round; the UV package (carbon black or a hindered-amine stabiliser) is what keeps it from chalking and embrittling under ASTM G154 exposure, not the base polymer.","applies":["planter","mailbox","post cap","hose fitting"],"value":{"value":0.955,"unit":"g/cm3"},"basis":"Standard HDPE resin datasheet density; UV package is an additive package spec, not a density change","sources":["protolabs-guide"],"tags":["material","hdpe","uv","outdoor"]},{"id":"material-pp-outdoor","kind":"material","tier":2,"title":"UV-stabilised PP for outdoor mouldings","summary":"UV-stabilised PP (~0.905 g/cm3) is common for hinged/flexed outdoor parts (self-watering flip lids, sprinkler valve boxes) but degrades faster than HDPE without a stabiliser package since PP's tertiary carbon is more UV-reactive.","applies":["planter","sprinkler","self-watering"],"value":{"value":0.905,"unit":"g/cm3"},"basis":"Standard homopolymer PP resin datasheet density; base PP has weaker inherent UV resistance than HDPE","sources":["protolabs-guide"],"tags":["material","pp","uv","outdoor"]},{"id":"material-asa-vs-pla-outdoor","kind":"material","tier":2,"title":"ASA over PLA for FDM-printed outdoor parts","summary":"Print outdoor garden parts in ASA (HDT ~95-100 degC, weather-stable like ABS) rather than PLA (HDT ~55-60 degC): PLA softens in a sun-heated planter or mailbox and embrittles under UV within one season, where ASA is formulated for exactly that exposure.","applies":["planter","mailbox","post cap","garden stake"],"value":{"min":95,"max":100,"unit":"C","note":"ASA HDT; PLA HDT 55-60C"},"basis":"ASA filament datasheets formulate for UV/weather stability and higher HDT versus PLA, which was never intended for outdoor exposure","sources":["hubs-3dp-guide"],"tags":["material","asa","pla","fdm","outdoor"]},{"id":"material-terracotta","kind":"material","tier":2,"title":"Terracotta for planters","summary":"Fired terracotta runs 12-25% water absorption by weight (ASTM C67) depending on firing temperature; that porosity is what makes an unglazed terracotta pot breathe (good for roots) and also what makes it crack in a hard freeze if left full of wet soil.","applies":["planter","plant pot"],"value":{"min":12,"max":25,"unit":"%"},"basis":"ASTM C67 water-absorption test method applied to fired clay ware; absorption tracks firing temperature and body porosity","sources":["astm-c666"],"tags":["material","terracotta","porosity"]},{"id":"material-cedar","kind":"material","tier":2,"title":"Cedar for raised beds and trellises","summary":"Western red cedar (~0.33 g/cm3) is naturally rot- and insect-resistant without chemical treatment, the default timber for a raised bed or trellis that will sit in wet soil for 10-15 years before the heartwood needs replacing.","applies":["raised bed","trellis","fence bracket"],"value":{"value":0.33,"unit":"g/cm3"},"basis":"Western red cedar heartwood's natural extractives give rot/insect resistance without pressure treatment","sources":["ps20-lumber"],"tags":["material","cedar","timber"]},{"id":"material-treated-pine","kind":"material","tier":2,"title":"Pressure-treated pine, ground-contact rated","summary":"Specify AWPA UC4A ground-contact pressure-treated pine for a raised bed, post or stake in direct soil contact; UC3 (above-ground only) treated lumber rots within a few seasons once it's buried or backfilled against.","applies":["raised bed","garden stake","fence bracket"],"value":{"value":4,"unit":"count","note":"AWPA Use Category UC4A, ground contact"},"basis":"AWPA U1 Use Category System specifies the treatment retention level required for direct soil/ground contact","sources":["awpa-u1"],"tags":["material","treated-timber","ground-contact"]},{"id":"material-galvanised-steel","kind":"material","tier":2,"title":"Hot-dip galvanised steel for fence hardware","summary":"Hot-dip galvanise a fence bracket or post cap's steel per ASTM A123 to a 45-100 micron zinc coating; below 45 microns the coating wears through to bare steel within a few years of outdoor rain exposure.","applies":["fence bracket","post cap"],"value":{"min":45,"max":100,"unit":"um"},"basis":"ASTM A123 minimum coating thickness by steel section, sized for multi-decade outdoor corrosion protection","sources":["astm-a123"],"tags":["material","galvanised","steel","corrosion"]},{"id":"test-uv-weathering-garden","kind":"test","tier":2,"title":"UV/weathering exposure test (ASTM G154)","summary":"ASTM G154 cycles UV-A/UV-B fluorescent lamps with condensation for 500-1000 h; a garden part passes on no visible chalking/fade and no crack initiating at a sharp corner, so keep outer radii >=1.5 mm on anything left in the sun.","applies":["planter","mailbox","post cap","trellis"],"value":{"min":500,"max":1000,"unit":"h"},"basis":"ASTM G154 accelerated UV/condensation weathering cycle, the standard screen for outdoor plastic and coated-metal parts","sources":["astm-g154"],"tags":["test","uv","weathering"]},{"id":"test-freeze-thaw-garden","kind":"test","tier":2,"title":"Freeze-thaw cycling test","summary":"Cycle a water-filled planter or watering can 25-50 times between -18 degC and +4 degC (ASTM C666-style cycling); passing means the >=9% ice-expansion rule's headspace/drainage/flex margin actually holds, not just the flat wall.","applies":["planter","watering can","raised bed"],"value":{"min":25,"max":50,"unit":"cycles"},"basis":"ASTM C666 freeze-thaw resistance test cycle adapted from concrete/masonry practice to a filled outdoor vessel","sources":["astm-c666"],"tags":["test","freeze-thaw","cycles"]},{"id":"test-drop-full-garden","kind":"test","tier":2,"title":"Drop test, filled (soil or water)","summary":"Drop a filled planter or watering can 500-750 mm onto a hard surface on its base and on one edge (IEC 60068-2-31 style); the added mass of soil/water means a garden drop test uses a lower height than an empty consumer housing's 1000-1500 mm.","applies":["planter","watering can","mailbox"],"value":{"min":500,"max":750,"unit":"mm"},"basis":"Rough-handling shock procedure per IEC 60068-2-31, scaled down in height for a filled (heavier) garden vessel","sources":["iec-60068-2-31"],"tags":["test","drop","shock"]},{"id":"test-water-tightness-garden","kind":"test","tier":2,"title":"Water-tightness test, seams and threads","summary":"Hold a hose fitting, sprinkler body or self-watering reservoir at 1.5x its rated working pressure (typically 4-6 bar for a residential hose connection) for 5 minutes with zero visible leak at any seam, weld or thread.","applies":["hose fitting","sprinkler","self-watering"],"value":{"min":4,"max":6,"unit":"count","note":"bar working pressure; 1.5x for 5 min hold"},"basis":"Common hydrostatic proof-test practice for a threaded/sealed water fitting, 1.5x working pressure being the standard proof-test multiplier","sources":["asme-b1-20-7"],"tags":["test","water-tightness","pressure"]},{"id":"test-wind-load-garden","kind":"test","tier":2,"title":"Wind load test, post-mounted structures","summary":"A post-mounted mailbox or trellis must stay upright and functional in a sustained 90 km/h (56 mph) gust without the post pulling out of its footing or the panel racking permanently; test by static side-load to the equivalent overturning moment at the post base.","applies":["mailbox","trellis"],"value":{"value":90,"unit":"count","note":"km/h sustained gust"},"basis":"Common residential wind-exposure design target for a light post-mounted garden structure","sources":["usps-std-7b"],"tags":["test","wind-load","post"]},{"id":"tolerance-hose-thread-fit","kind":"tolerance","tier":2,"title":"Hose thread fit tolerance, GHT","summary":"Mould a GHT male thread's major diameter to +/-0.15 mm and the washer seat face flat to <=0.1 mm to seal at typical 4-6 bar mains pressure on the compressible washer alone, since GHT (unlike NPT) carries no thread-interference seal.","applies":["hose fitting","garden hose"],"value":{"value":0.15,"unit":"mm"},"basis":"GHT's washer-seal design puts the sealing tolerance on the seat face flatness and thread pitch diameter, not the thread taper","sources":["asme-b1-20-7"],"tags":["tolerance","hose","thread","ght"]},{"id":"process-rotomold-planter","kind":"process","tier":2,"title":"Rotational moulding for large planters","summary":"Rotomould a planter over ~400 mm diameter rather than injection-mould it: rotomoulding needs no core (lower tooling cost at low volume) and gives a uniform 3-6 mm wall, but holds looser +/-1-2% dimensional tolerance than injection moulding.","applies":["planter"],"value":{"min":400,"unit":"mm"},"basis":"Rotomoulding's coreless, single-shell process trades tooling cost and size flexibility for looser wall-thickness and dimensional control","sources":["protolabs-guide"],"tags":["process","rotomolding","planter"]},{"id":"standard-usps-std7b-garden","kind":"standard","tier":2,"title":"USPS-STD-7B — curbside mailbox design standard","summary":"USPS-STD-7B is the design standard a curbside mailbox must meet for USPS approval: the interior test gauge, mail-slot minimums, door/latch durability and mounting-height clearance a manufacturer submits a sample against.","applies":["mailbox"],"basis":"Governing US standard for curbside mailbox approval, referenced by both manufacturers and rural-route carriers","sources":["usps-std-7b"],"tags":["standard","usps","mailbox"]},{"id":"recipe-tapered-nursery-planter","kind":"recipe","tier":2,"title":"Recipe: tapered nursery planter with drainage holes","summary":"Build a 100 mm-tall tapered planter, rim r55/floor r45 (5.7 deg taper), 2.5 mm shell wall open at the rim, with 4 drainage holes (dia 8mm) on a 15 mm bolt circle through the floor.","applies":["planter","plant pot","nursery pot"],"basis":"Combines nursery-pot-nominal-sizes-scale taper with planter-taper-draft and planter-drainage-holes into one buildable shelled frustum","sources":["ansi-z60-1","extension-drainage"],"tags":["recipe","planter","drainage"],"recipe":{"prompt":"Model a tapered nursery planter: 100mm tall, rim radius 55mm, floor radius 45mm, 2.5mm shell wall open at the rim, 4 drainage holes 8mm diameter on a 15mm-radius bolt circle through the floor","steps":[{"tool":"cad_frustum","args":{"r0":55,"r1":45,"h":100},"note":"outer taper: r0 at z=0 is the open rim, r1 at z=100 is the floor (built floor-up for the hole pattern's top-face convention)"},{"tool":"cad_shell","args":{"of":"$0","thickness":2.5,"open":[{"normal":[0,0,-1]}]},"note":"hollow into a shell, open at the z=0 rim; shell before the drainage holes"},{"tool":"cad_hole_pattern","args":{"of":"$1","type":"drill","diameter":8,"pattern":{"kind":"circular","center":[0,0],"radius":15,"count":4}},"note":"4 drainage holes through the floor (the bbox top face, z=100), 15mm bolt circle, clear of the tapered wall"}],"expect":{"volume":90707.27,"faceCount":15,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-birdhouse-box","kind":"recipe","tier":2,"title":"Recipe: birdhouse box with entrance hole and roof","summary":"Build a 120x120x140 mm birdhouse box, 6 mm shell wall open at the top, a 38 mm bluebird entrance hole 20 mm deep through the front wall, and a flat 140x140x8 mm roof cap with 10 mm eaves overhang unioned on top.","applies":["birdhouse"],"basis":"Combines birdhouse-floor-min wall thickness, birdhouse-entrance-bluebird hole size and a roof-cap overhang into one buildable box","sources":["nabs-nestbox","sialis-nestbox"],"tags":["recipe","birdhouse","entrance-hole"],"recipe":{"prompt":"Model a 120x120x140mm birdhouse box: 6mm shell wall open at the top, a 38mm bluebird entrance hole through the front wall, and a flat roof cap overhanging 10mm on all sides","steps":[{"tool":"cad_box","args":{"dx":120,"dy":120,"dz":140},"note":"birdhouse body block"},{"tool":"cad_shell","args":{"of":"$0","thickness":6,"open":[{"normal":[0,0,1]}]},"note":"hollow into a box shell open at the top; shell before the entrance hole"},{"tool":"cad_drill_hole","args":{"of":"$1","type":"drill","diameter":38,"axis":[0,-1,0],"start":[60,125,105],"depth":20},"note":"38mm bluebird entrance hole through the front (y=120) wall, blind 20mm so it stops in the cavity rather than piercing the back wall"},{"tool":"cad_box","args":{"dx":140,"dy":140,"dz":8,"origin":[-10,-10,137]},"note":"flat roof cap, 10mm eaves overhang on all sides, overlapping 3mm down into the wall tops so the union actually pierces rather than just touching"},{"tool":"cad_boolean_union","args":{"of":"$2","tool":"$3"},"note":"union the roof cap onto the box"}],"expect":{"volume":594811.31,"faceCount":19,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-post-cap-4x4","kind":"recipe","tier":2,"title":"Recipe: post cap for a nominal 4x4 fence post","summary":"Build a 96x96x60 mm post cap: a 3 mm shell wall open at the bottom, sized with a 1-2 mm clearance skirt over the 88.9 mm actual 4x4 post, and chamfered top edges.","applies":["post cap"],"basis":"Combines post-cap-4x4-actual (actual 88.9mm post size) and fence-bracket-post-clearance into one buildable slip-over cap","sources":["ps20-lumber"],"tags":["recipe","post-cap","fence"],"recipe":{"prompt":"Model a post cap for a nominal 4x4 fence post: 96x96x60mm outer, 3mm shell wall open at the bottom to slip over the 88.9mm actual post with clearance, chamfered top edges","steps":[{"tool":"cad_box","args":{"dx":96,"dy":96,"dz":60},"note":"cap outer block, 96mm gives a ~3.5mm skirt clearance over the 88.9mm actual post face"},{"tool":"cad_shell","args":{"of":"$0","thickness":3,"open":[{"normal":[0,0,-1]}]},"note":"hollow into a cap shell open at the bottom so it slips over the post"},{"tool":"cad_chamfer_edges","args":{"of":"$1","distance":2},"note":"bevel every convex edge the 3mm wall carries, softening the top corners — the blanket chamfer blends the 8 outer top/vertical edges and refuses the 8 bottom-rim edges by name (partition-radius-exceeds-face): two 2mm setbacks meeting across the 3mm rim would be built through each other (CADSB-735), max setback there is 1.5mm. CADSF-1604 re-measured"}],"expect":{"volume":90033.33,"faceCount":23,"watertight":true,"selfIntersection":false,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}}]},{"$schema":"nativecad-dfm-pack/1","id":"hardware","title":"Hardware — fasteners, threads, holes, inserts, pins","sector":"hardware","version":"2026-09-12","summary":"Cross-sector fastener facts every product pack points at: metric clearance and tap-drill sizes, counterbores and countersinks, thread engagement, inserts, dowels, retaining-ring grooves, edge distances.","aliases":["fastener","fasteners","screw","screws","bolt","bolts","thread","threads","tap","clearance hole","counterbore","countersink","insert","dowel","circlip","rivet","rivnut","pem","helicoil","standoff","t-nut","shoulder bolt","set screw","dowel pin","roll pin"],"crossSector":true,"size":"full","sources":[{"id":"iso-273","title":"ISO 273:1979 Fasteners — Clearance holes for bolts and screws","url":"https://www.iso.org/standard/4183.html","accessed":"2026-09-03"},{"id":"iso-4762","title":"ISO 4762:2004 Hexagon socket head cap screws (head dimensions)","url":"https://www.iso.org/standard/34460.html","accessed":"2026-09-03"},{"id":"iso-10642","title":"ISO 10642:2019 Hexagon socket countersunk head screws","url":"https://www.iso.org/standard/76437.html","accessed":"2026-09-03"},{"id":"iso-262","title":"ISO 262:1998 ISO general purpose metric screw threads — selected sizes (tap-drill = major − pitch)","url":"https://www.iso.org/standard/4167.html","accessed":"2026-09-03"},{"id":"iso-8734","title":"ISO 8734:1997 Parallel pins of hardened steel (dowel pins, m6)","url":"https://www.iso.org/standard/16151.html","accessed":"2026-09-03"},{"id":"din-471","title":"DIN 471 Retaining rings for shafts (groove dimensions)","url":"https://www.din.de/","accessed":"2026-09-03"},{"id":"iso-4032","title":"ISO 4032:2012 Hexagon regular nuts, style 1 (across-flats)","url":"https://www.iso.org/standard/56617.html","accessed":"2026-09-03"},{"id":"protolabs-threads","title":"Protolabs design tips — threaded holes, inserts and thread engagement","url":"https://www.protolabs.com/resources/design-tips/","accessed":"2026-09-03"},{"id":"cnc-cookbook-heatset","title":"Heat-set insert supplier data (McMaster-Carr 94180A series hole sizes)","url":"https://www.mcmaster.com/products/heat-set-inserts/","accessed":"2026-09-03"},{"id":"iso-7379","title":"ISO 7379:1983 Hexagon socket head shoulder screws"},{"id":"din-472","title":"DIN 472 Retaining rings for bores (internal circlips)"},{"id":"iso-8752","title":"ISO 8752:2009 Spring-type straight pins, slotted, heavy duty"},{"id":"asme-b18-8-2","title":"ASME B18.8.2 Taper pins, dowel pins, straight & spring pins, and grooved pins"},{"id":"asme-b1-1","title":"ASME B1.1 Unified inch screw threads (UN and UNR thread form) — UNF series"},{"id":"iso-4017","title":"ISO 4017:2014 Hexagon head screws — product grade A/B (AF across-flats)"},{"id":"iso-228-1","title":"ISO 228-1:2003 Pipe threads for non-pressure-tight joints (BSPP)"},{"id":"asme-b1-20-1","title":"ASME B1.20.1 Pipe Threads, General Purpose (NPT)"},{"id":"pem-catalog","title":"PEM self-clinching fastener installation specifications (Penn Engineering)"},{"id":"bollhoff-rivnut","title":"Bollhoff RIVKLE blind rivet nut installation data"},{"id":"helicoil-catalog","title":"Helicoil / Bollhoff wire thread insert (STI) tap-drill data"},{"id":"ejot-delta-pt","title":"EJOT Delta PT / thread-forming screw design guide for plastics"},{"id":"asme-b18-6-4","title":"ASME B18.6.4 Thread-forming and thread-cutting tapping screws and metallic drive screws"},{"id":"wood-screw-chart","title":"Wood-screw pilot-hole reference chart (gauge vs. hard/soft wood)"},{"id":"t-slot-8020","title":"80/20 Inc. T-slot aluminum extrusion catalog (10/15/20 series)"},{"id":"din-127","title":"DIN 127 Spring (lock) washers"},{"id":"asme-y14-5","title":"ASME Y14.5-2018 Dimensioning and Tolerancing (positional tolerance)"},{"id":"iso-898-1","title":"ISO 898-1 Mechanical properties of fasteners — property classes and tightening torque"}],"entries":[{"id":"clearance-holes-metric","kind":"fastener","tier":1,"title":"Metric clearance holes (ISO 273 fine / medium / coarse)","summary":"Clearance ⌀ medium series: M2 2.4, M2.5 2.9, M3 3.4, M4 4.5, M5 5.5, M6 6.6, M8 9.0, M10 11.0, M12 13.5 mm. Fine is ~0.2 mm tighter (M3 3.2, M6 6.4), coarse ~0.4 mm looser (M3 3.6, M6 7.0). Use medium unless told otherwise.","applies":[],"value":{"table":[{"size":"M2","fine":2.2,"medium":2.4,"coarse":2.6},{"size":"M2.5","fine":2.7,"medium":2.9,"coarse":3.1},{"size":"M3","fine":3.2,"medium":3.4,"coarse":3.6},{"size":"M4","fine":4.3,"medium":4.5,"coarse":4.8},{"size":"M5","fine":5.3,"medium":5.5,"coarse":5.8},{"size":"M6","fine":6.4,"medium":6.6,"coarse":7},{"size":"M8","fine":8.4,"medium":9,"coarse":10},{"size":"M10","fine":10.5,"medium":11,"coarse":12},{"size":"M12","fine":13,"medium":13.5,"coarse":14.5},{"size":"M16","fine":17,"medium":17.5,"coarse":18.5}],"unit":"mm"},"basis":"ISO 273 table; medium series is what cad_drill_hole type 'clearance' cuts","sources":["iso-273"],"tags":["clearance","hole","bolt","metric"]},{"id":"tap-drills-metric-coarse","kind":"fastener","tier":1,"title":"Tap-drill diameters, metric coarse","summary":"Tap drill = major − pitch: M2 1.6, M2.5 2.05, M3 2.5, M4 3.3, M5 4.2, M6 5.0, M8 6.8, M10 8.5, M12 10.2, M16 14.0 mm. Model a tapped hole as its tap-drill cylinder plus a callout; never model the helix.","applies":[],"value":{"table":[{"size":"M2","pitch":0.4,"tapDrill":1.6},{"size":"M2.5","pitch":0.45,"tapDrill":2.05},{"size":"M3","pitch":0.5,"tapDrill":2.5},{"size":"M4","pitch":0.7,"tapDrill":3.3},{"size":"M5","pitch":0.8,"tapDrill":4.2},{"size":"M6","pitch":1,"tapDrill":5},{"size":"M8","pitch":1.25,"tapDrill":6.8},{"size":"M10","pitch":1.5,"tapDrill":8.5},{"size":"M12","pitch":1.75,"tapDrill":10.2},{"size":"M16","pitch":2,"tapDrill":14}],"unit":"mm"},"basis":"ISO 262 coarse pitches; ~75 % thread engagement drill","sources":["iso-262"],"tags":["tap","thread","drill","metric"]},{"id":"counterbore-shcs-iso-4762","kind":"fastener","tier":1,"title":"Counterbore for socket head cap screws (ISO 4762)","summary":"Counterbore ⌀ / depth for SHCS (DIN 974-1, head flush): M3 6.5/3, M4 8/4, M5 10/5, M6 11/6, M8 15/8, M10 18/10, M12 20/12 mm — depth = head height k; add 0.5–1 mm if the head must sit below the surface. Through hole = medium clearance.","applies":[],"value":{"table":[{"size":"M3","headDia":5.5,"headHeight":3,"cboreDia":6.5,"cboreDepth":3},{"size":"M4","headDia":7,"headHeight":4,"cboreDia":8,"cboreDepth":4},{"size":"M5","headDia":8.5,"headHeight":5,"cboreDia":10,"cboreDepth":5},{"size":"M6","headDia":10,"headHeight":6,"cboreDia":11,"cboreDepth":6},{"size":"M8","headDia":13,"headHeight":8,"cboreDia":15,"cboreDepth":8},{"size":"M10","headDia":16,"headHeight":10,"cboreDia":18,"cboreDepth":10},{"size":"M12","headDia":18,"headHeight":12,"cboreDia":20,"cboreDepth":12}],"unit":"mm"},"basis":"ISO 4762 head dk/k with DIN 974-1 counterbore; the same table cad_drill_hole type 'counterbore' cuts (ops/holes.js)","sources":["iso-4762","iso-273"],"tags":["counterbore","shcs","cap screw"]},{"id":"countersink-iso-10642","kind":"fastener","tier":1,"title":"Countersink for flat-head socket screws (ISO 10642, 90°)","summary":"90° countersink, theoretical head ⌀ dk: M3 6.3, M4 8.4, M5 10.4, M6 12.6, M8 17.3, M10 20.0, M12 24.0 mm — what cad_drill_hole type 'countersink' cuts. Head height k: M3 1.9, M4 2.5, M5 3.1, M6 3.7, M8 5.0 mm; never countersink a wall thinner than k.","applies":[],"value":{"table":[{"size":"M3","dk":6.3,"k":1.86},{"size":"M4","dk":8.4,"k":2.48},{"size":"M5","dk":10.4,"k":3.1},{"size":"M6","dk":12.6,"k":3.72},{"size":"M8","dk":17.3,"k":4.96},{"size":"M10","dk":20,"k":6.2},{"size":"M12","dk":24,"k":7.44}],"unit":"mm"},"basis":"ISO 10642 theoretical dk and k at 90°; matches ops/holes.js CSK table","sources":["iso-10642"],"tags":["countersink","flat head","csk"]},{"id":"thread-engagement-by-material","kind":"rule","tier":1,"title":"Minimum thread engagement by tapped material","summary":"Tapped-hole depth as a multiple of the screw diameter: steel 1.0×d, cast iron/brass 1.5×d, aluminium 2.0×d, plastics 2.5–3.0×d (or use an insert). Add 2–3 pitches of tap-drill depth beyond the thread for a blind hole.","applies":[],"value":{"table":[{"material":"steel","engagement":1},{"material":"cast iron","engagement":1.5},{"material":"brass","engagement":1.5},{"material":"aluminium","engagement":2},{"material":"plastic","engagement":2.5}],"unit":"ratio","note":"× nominal diameter"},"basis":"Screw should fail before the internal thread strips. cad_fastener sizes a tapped joint's engagement from this table; cad_fastener_audit flags a shortfall as a floating-bolt finding.","sources":["protolabs-threads"],"tags":["thread","engagement","depth","tapped"]},{"id":"edge-distance-holes","kind":"rule","tier":1,"title":"Hole edge distance","summary":"Keep the hole centre ≥ 1.5×⌀ from any edge (≥ 2×⌀ for loaded bolts or sheet metal), and ≥ 2×⌀ between hole centres. Closer than this the ligament tears out or the punch/drill wanders.","applies":[],"value":{"min":1.5,"typical":2,"unit":"ratio","note":"centre-to-edge ÷ hole diameter"},"basis":"Ligament strength and tool wander; sheet-metal shops publish 2× as the floor. cad_fastener_audit does not check edge distance; it stays a design-time call (or the fastener rules' ≥1.5×d / ≥3×d rules of thumb, CADSF-1428).","sources":["protolabs-threads"],"tags":["edge distance","hole","spacing"]},{"id":"heat-set-inserts-metric","kind":"fastener","tier":1,"title":"Heat-set threaded inserts for plastic and 3D prints","summary":"Pilot hole ⌀ / min depth for brass heat-set inserts: M2 3.2/4.0, M2.5 3.6/5.0, M3 4.0/5.5, M4 5.6/7.5, M5 6.4/9.0, M6 8.0/12.0 mm. Boss OD ≥ 2× insert OD; for FDM print the hole 0.1–0.2 mm under and let the insert form it.","applies":["3d print","injection moulded housing"],"value":{"table":[{"size":"M2","holeDia":3.2,"depth":4,"insertOD":3.5},{"size":"M2.5","holeDia":3.6,"depth":5,"insertOD":4},{"size":"M3","holeDia":4,"depth":5.5,"insertOD":4.6},{"size":"M4","holeDia":5.6,"depth":7.5,"insertOD":6.3},{"size":"M5","holeDia":6.4,"depth":9,"insertOD":7.1},{"size":"M6","holeDia":8,"depth":12,"insertOD":8.7}],"unit":"mm"},"basis":"Supplier tapered-insert hole tables (McMaster 94180A); depth = insert length + 1 mm","sources":["cnc-cookbook-heatset"],"tags":["insert","heat-set","plastic","3d print","boss"]},{"id":"dowel-pin-holes","kind":"fastener","tier":1,"title":"Dowel pin holes (ISO 8734 m6 pins)","summary":"Press-fit side: ream to H7 in the part the pin lives in (⌀3 H7 = 3.000–3.010); slip side: F7 or a 0.02–0.05 mm oversize (⌀3.02). Sizes stocked: 2, 3, 4, 5, 6, 8, 10, 12 mm. Model as the nominal cylinder; the fit is a callout.","applies":["fixture","housing halves","mating plates"],"value":{"options":[2,3,4,5,6,8,10,12],"unit":"mm"},"basis":"ISO 8734 pins are m6 (+0.004/+0.012 on 3 mm); H7 hole gives a light press","sources":["iso-8734"],"tags":["dowel","pin","locating","fit"]},{"id":"nut-pocket-hex","kind":"fastener","tier":1,"title":"Hex nut pocket (captive nut) dimensions","summary":"ISO 4032 across-flats: M2 4, M2.5 5, M3 5.5, M4 7, M5 8, M6 10, M8 13, M10 16 mm; thickness M3 2.4, M4 3.2, M5 4.7, M6 5.2, M8 6.8 mm. Pocket = AF + 0.2 mm (0.3–0.4 for FDM), depth = thickness + 0.3 mm.","applies":["3d print","plastic housing","extrusion bracket"],"value":{"table":[{"size":"M2","af":4,"thick":1.6},{"size":"M2.5","af":5,"thick":2},{"size":"M3","af":5.5,"thick":2.4},{"size":"M4","af":7,"thick":3.2},{"size":"M5","af":8,"thick":4.7},{"size":"M6","af":10,"thick":5.2},{"size":"M8","af":13,"thick":6.8},{"size":"M10","af":16,"thick":8.4}],"unit":"mm"},"basis":"ISO 4032 style 1 s and m; clearance so the nut drops in","sources":["iso-4032"],"tags":["nut","pocket","captive","hex"]},{"id":"retaining-ring-groove-din-471","kind":"fastener","tier":1,"title":"Shaft retaining-ring groove (DIN 471)","summary":"Groove ⌀ / width for external circlips: shaft 6 → 5.7/0.8, 8 → 7.6/0.9, 10 → 9.6/1.1, 12 → 11.5/1.1, 15 → 14.3/1.1, 20 → 19.0/1.3, 25 → 23.9/1.3, 30 → 28.6/1.6 mm. The width is the ring's, not yours — do not snap it to a blade.","applies":["shaft","axle","pin"],"value":{"table":[{"shaft":6,"grooveDia":5.7,"width":0.8},{"shaft":8,"grooveDia":7.6,"width":0.9},{"shaft":10,"grooveDia":9.6,"width":1.1},{"shaft":12,"grooveDia":11.5,"width":1.1},{"shaft":15,"grooveDia":14.3,"width":1.1},{"shaft":20,"grooveDia":19,"width":1.3},{"shaft":25,"grooveDia":23.9,"width":1.3},{"shaft":30,"grooveDia":28.6,"width":1.6}],"unit":"mm"},"basis":"DIN 471 d2 and m; cad_shaft_groove cuts it","sources":["din-471"],"tags":["circlip","retaining ring","groove","shaft"]},{"id":"screw-boss-plastic","kind":"feature","tier":1,"title":"Self-tapping screw boss in moulded plastic","summary":"Boss OD = 2.0–2.5× screw ⌀, pilot hole = 0.8× thread OD (M3 thread-forming: ⌀2.5 hole, ⌀6.5–7 boss), depth ≥ 2× screw ⌀, boss wall ≤ 60 % of nominal wall at the root, 0.5° draft inside, 1 mm counterbore at the mouth to stop the top splitting.","applies":["injection moulded housing","consumer product"],"value":{"typical":2.25,"unit":"ratio","note":"boss OD ÷ screw diameter"},"basis":"Thread-forming screw supplier guidance; sink marks above 60 % wall","sources":["protolabs-threads"],"tags":["boss","screw","plastic","moulding"],"check":{"process":"injection_molding","rule":"max_rib_thickness_ratio"}},{"id":"bolt-torque-and-preload-classes","kind":"note","tier":2,"title":"Property classes and what they mean for the joint","summary":"Metric screws come 8.8 (structural default), 10.9, 12.9 (SHCS default); stainless A2-70 is ~8.8 strength. Design the clamped part so the bearing stress under the head/washer stays below yield — aluminium under an M6 12.9 needs a washer.","applies":[],"basis":"ISO 898-1 property classes; head bearing area vs part yield","sources":["protolabs-threads"],"tags":["torque","preload","class","washer"]},{"id":"washer-sizes-iso-7089","kind":"fastener","tier":1,"title":"Plain washer sizes (ISO 7089 normal series)","summary":"ID/OD/thickness: M3 3.2/7/0.5, M4 4.3/9/0.8, M5 5.3/10/1.0, M6 6.4/12/1.6, M8 8.4/16/1.6, M10 10.5/20/2.0, M12 13/24/2.5 mm. Counterbores meant to take a washer need the OD + 1 mm.","applies":[],"value":{"table":[{"size":"M3","id":3.2,"od":7,"t":0.5},{"size":"M4","id":4.3,"od":9,"t":0.8},{"size":"M5","id":5.3,"od":10,"t":1},{"size":"M6","id":6.4,"od":12,"t":1.6},{"size":"M8","id":8.4,"od":16,"t":1.6},{"size":"M10","id":10.5,"od":20,"t":2},{"size":"M12","id":13,"od":24,"t":2.5}],"unit":"mm"},"basis":"ISO 7089 normal series","sources":["iso-4032"],"tags":["washer"]},{"id":"unc-unf-tap-and-clearance","kind":"fastener","tier":1,"title":"Inch fasteners: UNC tap drills and clearance","summary":"UNC tap drill / close clearance: #4-40 0.089/0.116, #6-32 0.107/0.144, #8-32 0.136/0.172, #10-24 0.150/0.201, 1/4-20 0.201/0.257, 5/16-18 0.257/0.323, 3/8-16 0.313/0.386, 1/2-13 0.422/0.516 in. Published in inches; keep them in inches.","applies":["north america"],"value":{"table":[{"size":"#4-40","tapDrill":0.089,"clearance":0.116},{"size":"#6-32","tapDrill":0.107,"clearance":0.144},{"size":"#8-32","tapDrill":0.136,"clearance":0.172},{"size":"#10-24","tapDrill":0.15,"clearance":0.201},{"size":"1/4-20","tapDrill":0.201,"clearance":0.257},{"size":"5/16-18","tapDrill":0.257,"clearance":0.323},{"size":"3/8-16","tapDrill":0.313,"clearance":0.386},{"size":"1/2-13","tapDrill":0.422,"clearance":0.516}],"unit":"in"},"basis":"ASME B1.1 / B18.2.8 close-fit clearance","sources":["protolabs-threads"],"tags":["unc","inch","tap","clearance"]},{"id":"press-fit-pin-interference","kind":"tolerance","tier":2,"title":"Press-fit interference for steel pins in aluminium and steel","summary":"Light press (H7/m6, H7/n6): 0.005–0.02 mm interference on a 3–10 mm pin. In plastic use 0.05–0.1 mm and a lead-in chamfer. Model the hole at nominal and carry the fit as a tolerance callout.","applies":[],"value":{"min":0.005,"max":0.02,"unit":"mm"},"basis":"ISO 286 transition/interference fits for locating pins","sources":["iso-8734"],"tags":["press fit","interference","pin"]},{"id":"blind-hole-drill-point-allowance","kind":"rule","tier":1,"title":"Blind hole: drill-point and tap run-out allowance","summary":"A 118° drill leaves a cone 0.3×⌀ deep; a tap needs 2–3 pitches of unthreaded hole below the last full thread. So a blind M6 tapped 12 deep needs the tap drill 12 + 3 = 15 deep plus the 1.5 mm point — say 16.5 mm to the cone tip.","applies":[],"value":{"typical":0.3,"unit":"ratio","note":"drill-point depth ÷ diameter"},"basis":"118° point geometry; tap chamfer length","sources":["protolabs-threads"],"tags":["blind","drill point","tap","depth"]},{"id":"lead-in-chamfer","kind":"feature","tier":1,"title":"Lead-in chamfer on holes and pins","summary":"Put a 0.5 × 45° chamfer (0.3 on holes under ⌀3, 1.0 over ⌀12) at the mouth of every tapped or press-fit hole and on the end of every pin: it starts the tap square and guides the press. Cheap in every process.","applies":[],"value":{"min":0.3,"typical":0.5,"max":1,"unit":"mm"},"basis":"Tap start and pin alignment; deburr in the same operation","sources":["protolabs-threads"],"tags":["chamfer","lead-in","deburr"]},{"id":"slot-for-adjustment","kind":"feature","tier":2,"title":"Adjustment slot width and length","summary":"Slot width = clearance ⌀ (M6 → 6.6), length = 2–3× the width for ±5 mm of adjustment; add a washer under the head because a screw head bridging a slot bears on two thin lands.","applies":["bracket","mount"],"value":{"min":2,"max":3,"unit":"ratio","note":"slot length ÷ width"},"basis":"Head bearing on slot lands","sources":["iso-273"],"tags":["slot","adjustment"]},{"id":"safety-and-locking","kind":"note","tier":3,"title":"Locking a threaded joint","summary":"Vibration: nyloc (needs 2 threads past the nut), thread-locker (blind holes vent nothing), serrated flange, or wire-lock holes (⌀1.5 through the head, aerospace). Geometry only changes for wire-lock and for the extra nut height.","applies":["automotive","aerospace","machinery"],"basis":"Locking method by environment","sources":["protolabs-threads"],"tags":["locking","vibration","nyloc"]},{"id":"tap-drills-metric-fine","kind":"fastener","tier":2,"title":"Fine-pitch metric tap drills (M8x1, M10x1.25, M12x1.5)","summary":"Fine-pitch tap drill = major - pitch: M8x1 -> 7.0, M10x1.25 -> 8.75 (use 8.8), M12x1.5 -> 10.5 mm. Fine pitch gives more thread engagement per length and is common on thin-walled aluminium housings and adjustment screws.","applies":["thin wall housing","precision adjustment"],"value":{"table":[{"size":"M8x1","pitch":1,"tapDrill":7},{"size":"M10x1.25","pitch":1.25,"tapDrill":8.8},{"size":"M12x1.5","pitch":1.5,"tapDrill":10.5}],"unit":"mm"},"basis":"ISO 262 fine-pitch series; major - pitch rounded to nearest 0.05 mm drill","sources":["iso-262"],"tags":["tap","fine pitch","metric","drill"]},{"id":"clearance-tap-extended-sizes","kind":"fastener","tier":2,"title":"Extended metric sizes: M1.6, M14, M20, M24 clearance and tap drill","summary":"Clearance (medium) / tap drill: M1.6 1.8/1.25, M14 15.5/12.0, M20 22.0/17.5, M24 26.0/21.0 mm. Matches ops/holes.js CLEARANCE and TAP_DRILL tables so a modelled hole and this pack never disagree.","applies":[],"value":{"table":[{"size":"M1.6","clearance":1.8,"tapDrill":1.25},{"size":"M14","clearance":15.5,"tapDrill":12},{"size":"M20","clearance":22,"tapDrill":17.5},{"size":"M24","clearance":26,"tapDrill":21}],"unit":"mm"},"basis":"ISO 273 medium series and ISO 262 coarse tap drills; identical to the kernel's own lookup tables","sources":["iso-273","iso-262"],"tags":["clearance","tap","metric","m1.6","m14","m20","m24"]},{"id":"unf-tap-and-clearance","kind":"fastener","tier":2,"title":"Inch fasteners: UNF tap drills and clearance","summary":"UNF tap drill / close clearance: #4-48 0.0935/0.116, #6-40 0.1110/0.144, #8-36 0.1360/0.172, #10-32 0.1590/0.201, 1/4-28 0.213/0.257, 5/16-24 0.272/0.323, 3/8-24 0.332/0.386, 1/2-20 0.4531/0.516 in. Finer pitch than UNC at the same nominal diameter.","applies":["north america","precision assembly"],"value":{"table":[{"size":"#4-48","tapDrill":0.0935,"clearance":0.116},{"size":"#6-40","tapDrill":0.111,"clearance":0.144},{"size":"#8-36","tapDrill":0.136,"clearance":0.172},{"size":"#10-32","tapDrill":0.159,"clearance":0.201},{"size":"1/4-28","tapDrill":0.213,"clearance":0.257},{"size":"5/16-24","tapDrill":0.272,"clearance":0.323},{"size":"3/8-24","tapDrill":0.332,"clearance":0.386},{"size":"1/2-20","tapDrill":0.4531,"clearance":0.516}],"unit":"in"},"basis":"ASME B1.1 UNF series tap-drill and clearance columns","sources":["asme-b1-1"],"tags":["unf","tap","clearance","inch"]},{"id":"pipe-thread-tap-drills-bsp-npt","kind":"fastener","tier":3,"title":"BSP / NPT pipe thread tap drills (reference)","summary":"Tap drill by nominal pipe size: 1/8 BSP 8.8mm / NPT 11/32in, 1/4 BSP 11.8mm / NPT 7/16in, 3/8 BSP 15.2mm / NPT 9/16in, 1/2 BSP 19.0mm / NPT 45/64in, 3/4 BSP 24.3mm / NPT 15/16in. Tapered NPT needs a tapered tap; do not model a straight hole as sealing.","applies":["pneumatics","fluid fitting","piping"],"value":{"table":[{"size":"1/8","bspDrillMm":8.8,"nptDrillIn":0.344},{"size":"1/4","bspDrillMm":11.8,"nptDrillIn":0.4375},{"size":"3/8","bspDrillMm":15.2,"nptDrillIn":0.5625},{"size":"1/2","bspDrillMm":19,"nptDrillIn":0.7031},{"size":"3/4","bspDrillMm":24.3,"nptDrillIn":0.9375}]},"basis":"ISO 228-1 (BSPP) and ASME B1.20.1 (NPT) tap-drill tables; cross-reference the piping sector pack for fitting geometry","sources":["iso-228-1","asme-b1-20-1"],"tags":["bsp","npt","pipe thread","tap drill"],"detail":"BSP (ISO 228-1) is parallel and seals on a bonded washer or O-ring; NPT (ASME B1.20.1) is a 1:16 taper and seals on thread interference plus sealant. Never assume they are interchangeable: a BSP nipple in an NPT port strips or leaks. See the piping sector pack for port and fitting envelope dimensions; this entry gives only the tap-drill numbers."},{"id":"thread-forming-screws-plastite","kind":"fastener","tier":2,"title":"Thread-forming screws for plastic (Delta PT / Plastite type)","summary":"Thread-forming screw into plastic: pilot hole = 0.80x screw major diameter, boss OD = 2.0x screw major diameter. E.g. a 4mm thread-forming screw wants a 3.2mm hole in a 8mm boss. No chips are cut, so engagement can be shallower than a cut thread (1.5-2x diameter).","applies":["injection moulded housing","3d print","plastic enclosure"],"value":{"typical":0.8,"unit":"ratio","note":"pilot hole diameter / screw major diameter; boss OD = 2.0x"},"basis":"EJOT Delta PT / generic Plastite-type screw manufacturer design guides","sources":["ejot-delta-pt"],"tags":["thread-forming","self-tapping","plastite","delta pt","plastic","boss"]},{"id":"wood-screw-pilot-holes","kind":"fastener","tier":2,"title":"Wood screw pilot holes by gauge","summary":"Pilot drill by gauge, softwood/hardwood: #6 2.4/2.9mm (3/32 / 7/64 in), #8 2.9/3.5mm (7/64 / 9/64 in), #10 3.2/3.8mm (1/8 / 5/32 in). Clearance (shank) hole = screw major diameter. Hardwood always gets the larger pilot to avoid splitting.","applies":["furniture","cabinetry","enclosure to wood mount"],"value":{"table":[{"gauge":"#6","softwoodMm":2.4,"hardwoodMm":2.9},{"gauge":"#8","softwoodMm":2.9,"hardwoodMm":3.5},{"gauge":"#10","softwoodMm":3.2,"hardwoodMm":3.8}],"unit":"mm"},"basis":"Standard wood-screw pilot-hole reference chart, softwood vs. hardwood columns","sources":["wood-screw-chart"],"tags":["wood screw","pilot hole","gauge","softwood","hardwood"]},{"id":"sheet-metal-screw-pilot-holes","kind":"fastener","tier":2,"title":"Sheet-metal (self-tapping) screw pilot holes","summary":"Pilot hole for thread-forming sheet-metal screws in sheet steel/aluminium: #6 2.6mm, #8 3.2mm, #10 3.6mm, #12 4.1mm. Undersize vs. a machine-screw tap drill because the screw forms rather than cuts; verify sheet thickness supports >= 2 full threads.","applies":["sheet metal enclosure","bracket"],"value":{"table":[{"gauge":"#6","holeMm":2.6},{"gauge":"#8","holeMm":3.2},{"gauge":"#10","holeMm":3.6},{"gauge":"#12","holeMm":4.1}],"unit":"mm"},"basis":"ASME B18.6.4 thread-forming tapping-screw pilot-hole recommendations","sources":["asme-b18-6-4"],"tags":["sheet metal screw","self-tapping","pilot hole"]},{"id":"pop-rivet-hole-sizes","kind":"fastener","tier":2,"title":"Pop (blind) rivet hole sizes","summary":"Rivet hole diameter by shank size: 1/8in shank -> 3.3mm, 5/32in -> 4.1mm, 3/16in -> 4.9mm. Hole is nominally 0.1mm over the shank so the mandrel sets without binding; oversize holes lose clamp-up and shear strength.","applies":["sheet metal","enclosure seam"],"value":{"table":[{"shank":"1/8 in","holeMm":3.3},{"shank":"5/32 in","holeMm":4.1},{"shank":"3/16 in","holeMm":4.9}],"unit":"mm"},"basis":"Industrial blind-rivet hole-size chart, shank + ~0.1mm clearance","sources":["pem-catalog"],"tags":["rivet","pop rivet","blind rivet","hole"]},{"id":"rivnut-hole-sizes","kind":"fastener","tier":2,"title":"Rivet nut (rivnut) installation hole sizes","summary":"Drill hole for a blind rivet nut (steel/aluminium, standard body): M4 6.0mm, M5 7.0mm, M6 9.0mm, M8 11.0mm. Too tight and the body will not draw up; too loose and it spins under torque — hold +-0.1mm.","applies":["thin sheet","access from one side only"],"value":{"table":[{"size":"M4","holeMm":6},{"size":"M5","holeMm":7},{"size":"M6","holeMm":9},{"size":"M8","holeMm":11}],"unit":"mm"},"basis":"Bollhoff RIVKLE blind rivet nut installation drill-size table","sources":["bollhoff-rivnut"],"tags":["rivnut","rivet nut","blind fastener","insert"]},{"id":"pem-self-clinching-nut-holes","kind":"fastener","tier":2,"title":"PEM self-clinching nut / standoff hole sizes (CLS series)","summary":"Punched/drilled hole in sheet for a self-clinching nut (CLS series, cold-rolled steel): M3 4.22mm, M4 5.41mm, M5 6.35mm, M6 8.75mm. Minimum sheet thickness roughly 1.5x the fastener pitch diameter (M3 ~1.0mm, M6 ~2.0mm); thinner sheet cannot resist push-out.","applies":["sheet metal chassis","electronics enclosure"],"value":{"table":[{"size":"M3","holeMm":4.22,"minSheetMm":1},{"size":"M4","holeMm":5.41,"minSheetMm":1.5},{"size":"M5","holeMm":6.35,"minSheetMm":1.6},{"size":"M6","holeMm":8.75,"minSheetMm":2}],"unit":"mm"},"basis":"PEM (Penn Engineering) self-clinching fastener installation specification, CLS series hole sizes","sources":["pem-catalog"],"tags":["pem","self-clinching","standoff","insert","sheet metal"]},{"id":"t-slot-extrusion-hardware","kind":"fastener","tier":2,"title":"T-slot aluminium extrusion hardware (80/20-type)","summary":"T-nut and slot by extrusion series: 20 series slot 6mm takes M5 T-nuts, 30/40 series slot 8mm takes M6/M8 T-nuts. Drop-in T-nuts need the full slot width to insert; slide-in fits from the extrusion end only.","applies":["frame","enclosure rail","fixture"],"value":{"table":[{"series":"20 (2020)","slotMm":6,"tNut":"M5"},{"series":"30 (3030)","slotMm":8,"tNut":"M6"},{"series":"40 (4040)","slotMm":8,"tNut":"M8"}]},"basis":"80/20 Inc. T-slot extrusion catalogue, 10/15/20/30/40 series hardware compatibility","sources":["t-slot-8020"],"tags":["t-slot","extrusion","80-20","t-nut","frame"]},{"id":"captive-keyhole-slots","kind":"feature","tier":3,"title":"Captive slot and keyhole hanger dimensions","summary":"Keyhole slot for hang-and-drop mounting: large bore = screw head dia + 1mm clearance, narrow width = shank dia + 0.5mm, length >= 1.5x head dia for travel. Captive panel-screw slots use a land 0.5mm under the minor diameter.","applies":["panel mounting","tool-free assembly","wall mount enclosure"],"value":{"typical":1.5,"unit":"ratio","note":"slot length / screw head diameter"},"basis":"Common sheet-metal keyhole and captive-slot conventions used for hang-on-wall and panel fasteners","sources":["protolabs-threads"],"tags":["keyhole","captive slot","hanger","panel mount"]},{"id":"thumb-screws","kind":"fastener","tier":3,"title":"Thumb screws (knurled/winged, hand-operable)","summary":"Common panel thumb-screw threads M3-M6 or #6-32 to 1/4-20, knurled head OD roughly 3x the thread major diameter (M4 -> ~12mm head) so fingers get enough grip torque without tools; specify a captive/panel-mount style when the screw must not be lost.","applies":["removable panel","tool-free access cover"],"value":{"typical":3,"unit":"ratio","note":"knurled head diameter / thread major diameter"},"basis":"General panel-hardware supplier thumb-screw dimension ranges","sources":["protolabs-threads"],"tags":["thumb screw","knurled","panel","hand tighten"]},{"id":"shoulder-bolts-iso-7379","kind":"fastener","tier":2,"title":"Shoulder bolts / shoulder screws (ISO 7379)","summary":"Shoulder diameter / matching H7 bore: 6mm, 8mm, 10mm, 12mm (thread is one size smaller than the shoulder, e.g. 8mm shoulder -> M6 thread). Bore to H7 for a running or pivoting fit on the shoulder land; the threaded end always goes into a tapped hole, never a clearance hole.","applies":["pivot pin","idler","cam follower mount"],"value":{"table":[{"shoulderMm":6,"thread":"M4","boreFit":"H7"},{"shoulderMm":8,"thread":"M6","boreFit":"H7"},{"shoulderMm":10,"thread":"M8","boreFit":"H7"},{"shoulderMm":12,"thread":"M10","boreFit":"H7"}]},"basis":"ISO 7379 hexagon socket shoulder screw shoulder diameters and thread sizes","sources":["iso-7379"],"tags":["shoulder bolt","shoulder screw","pivot","h7"]},{"id":"set-screws-d-flats","kind":"fastener","tier":2,"title":"Set screws and matching shaft D-flats","summary":"Set screw size by shaft diameter (light duty): 6mm shaft -> M4, 8mm -> M5, 10mm -> M6, 12mm -> M6-M8. D-flat depth on the shaft = 0.1-0.15x shaft diameter (e.g. 8mm shaft -> 0.8-1.2mm flat) so the cup-point seats on a flat, not a point contact that marks and slips.","applies":["hub to shaft","collar","pulley"],"value":{"table":[{"shaftMm":6,"setScrew":"M4"},{"shaftMm":8,"setScrew":"M5"},{"shaftMm":10,"setScrew":"M6"},{"shaftMm":12,"setScrew":"M8"}]},"basis":"General mechanical-design set-screw sizing and D-flat depth convention","sources":["protolabs-threads"],"tags":["set screw","d-flat","shaft","collar","grub screw"]},{"id":"circlip-internal-groove-din-472","kind":"fastener","tier":2,"title":"Bore (internal) retaining-ring groove (DIN 472)","summary":"Groove dia / width for internal circlips in a bore: 10 -> 10.4/1.1, 12 -> 12.5/1.1, 16 -> 16.5/1.1, 20 -> 21.0/1.3, 25 -> 26.2/1.3, 30 -> 31.4/1.6mm. Groove is cut into the bore wall (larger than the bore), the mirror of the external DIN 471 shaft groove already in this pack.","applies":["bore","bearing bore retention","housing"],"value":{"table":[{"bore":10,"grooveDia":10.4,"width":1.1},{"bore":12,"grooveDia":12.5,"width":1.1},{"bore":16,"grooveDia":16.5,"width":1.1},{"bore":20,"grooveDia":21,"width":1.3},{"bore":25,"grooveDia":26.2,"width":1.3},{"bore":30,"grooveDia":31.4,"width":1.6}],"unit":"mm"},"basis":"DIN 472 internal retaining ring groove diameter d1 and width m","sources":["din-472"],"tags":["circlip","retaining ring","internal","bore","groove"]},{"id":"e-clips","kind":"fastener","tier":3,"title":"E-clips (E-rings)","summary":"E-clip for shaft dia 3mm needs a groove dia ~2.75mm at ~0.4mm width; 6mm shaft -> groove ~5.5mm/0.7mm; 10mm shaft -> groove ~9.2/1.15mm. Installs radially (push-on) rather than DIN 471's axial ring, so it needs radial clearance to fit a screwdriver or pliers, not axial clearance.","applies":["small shaft","light axial retention"],"value":{"table":[{"shaftMm":3,"grooveDia":2.75,"width":0.4},{"shaftMm":6,"grooveDia":5.5,"width":0.7},{"shaftMm":10,"grooveDia":9.2,"width":1.15}],"unit":"mm"},"basis":"Common E-ring (E-clip) supplier groove dimension tables","sources":["din-471"],"tags":["e-clip","e-ring","shaft retention"]},{"id":"spring-pins-roll-pins-iso-8752","kind":"fastener","tier":2,"title":"Spring pins / roll pins (ISO 8752)","summary":"Hole diameter for a slotted spring (roll) pin equals the pin's nominal size — no oversize, no reaming: a 6mm roll pin goes into a 6mm (H9-ish) drilled hole and compresses to fit. Do not treat it like a dowel pin; drilling oversize kills the retained force.","applies":["light shaft retention","hinge pin","assembly locating"],"value":{"value":"nominal","unit":"text","note":"hole = pin nominal diameter, no oversize"},"basis":"ISO 8752 spring pin nominal-size-equals-hole-size convention","sources":["iso-8752"],"tags":["roll pin","spring pin","dowel","pin"]},{"id":"taper-pins","kind":"fastener","tier":3,"title":"Taper pins","summary":"Standard taper pin taper is 1:48 (self-locking, no thread); ream the hole with the matching taper reamer to the small-end diameter marked on the pin, then drive until the large end protrudes slightly. Common small-end sizes: #0 3.7mm, #2 4.7mm, #4 6.3mm, #6 7.9mm.","applies":["shaft-to-hub locking","precision alignment"],"value":{"table":[{"size":"#0","smallEndMm":3.7},{"size":"#2","smallEndMm":4.7},{"size":"#4","smallEndMm":6.3},{"size":"#6","smallEndMm":7.9}]},"basis":"ASME B18.8.2 taper pin taper ratio and size series","sources":["asme-b18-8-2"],"tags":["taper pin","reamer","alignment"]},{"id":"cotter-pins","kind":"fastener","tier":3,"title":"Cotter (split) pins","summary":"Cotter pin diameter for a clevis/castle-nut hole: 1/16in (1.6mm) pin for M4-M5 shafts, 3/32in (2.4mm) for M6-M8, 1/8in (3.2mm) for M10-M12. Hole is a plain clearance drill at the pin's nominal diameter; the pin bends over after insertion, so it is not reusable.","applies":["castle nut retention","clevis pin retention"],"value":{"table":[{"pinIn":"1/16","shaftRange":"M4-M5"},{"pinIn":"3/32","shaftRange":"M6-M8"},{"pinIn":"1/8","shaftRange":"M10-M12"}]},"basis":"ASME B18.8.2 cotter pin size-to-application guidance","sources":["asme-b18-8-2"],"tags":["cotter pin","split pin","castle nut"]},{"id":"clevis-pins","kind":"fastener","tier":3,"title":"Clevis pins","summary":"Clevis pin diameter is a close running fit in the clevis bore, typically nominal + 0.1-0.2mm clearance (e.g. 8mm pin in an 8.1-8.2mm bore); the head end is a formed flange and the tail end takes a cotter pin or retaining ring through a cross-drilled hole near the tip.","applies":["linkage pivot","removable pivot joint"],"value":{"typical":0.15,"unit":"mm","note":"bore clearance over nominal pin diameter"},"basis":"ASME B18.8.2 clevis pin fit and retention practice","sources":["asme-b18-8-2"],"tags":["clevis pin","linkage","pivot"]},{"id":"threaded-rod","kind":"fastener","tier":3,"title":"Threaded rod (studding)","summary":"Threaded rod is sold continuously threaded, cut to length; use the same clearance-hole and nut-pocket numbers as a bolt of the same nominal size (see clearance-holes-metric, nut-pocket-hex in this pack). Common stock: M3-M20 metric, #6-32 to 1-8 UNC inch, full length 1m/3ft bars.","applies":["all-thread standoff","tie rod","levelling foot"],"value":{"options":["M3","M4","M5","M6","M8","M10","M12","M16","M20"],"unit":"text"},"basis":"General threaded-rod (studding) stocking practice; sizing follows standard bolt tables","sources":["iso-273"],"tags":["threaded rod","studding","all-thread"]},{"id":"helicoil-keensert-sizes","kind":"fastener","tier":2,"title":"Wire thread insert (Helicoil/Keensert) drill and tap sizes","summary":"Free-running (STI) insert drill/tap: M3 drill 3.3mm tap M3.5x0.6 STI; M4 drill 4.4mm tap M4.5x0.75 STI; M5 drill 5.5mm tap M5.5x0.9 STI; M6 drill 6.6mm tap M6.5x1.0 STI. The STI tap ships with the insert kit.","applies":["stripped thread repair","soft alloy tapped hole","aerospace-grade thread"],"value":{"table":[{"nominal":"M3","drillMm":3.3,"stiTap":"M3.5x0.6"},{"nominal":"M4","drillMm":4.4,"stiTap":"M4.5x0.75"},{"nominal":"M5","drillMm":5.5,"stiTap":"M5.5x0.9"},{"nominal":"M6","drillMm":6.6,"stiTap":"M6.5x1.0"}],"unit":"mm"},"basis":"Helicoil / Bollhoff wire thread insert drill and STI tap size chart","sources":["helicoil-catalog"],"tags":["helicoil","keensert","insert","sti","tap"]},{"id":"press-fit-bearing-h7-n7","kind":"tolerance","tier":2,"title":"Pressed-in bearing fits (H7 bore / N7 shaft rule)","summary":"Bearing outer race in a housing bore: H7 for a removable stationary fit, N7 for a tighter fit that resists creep under load. Inner race on a rotating shaft: k6/j6. Check the bearing maker's fit chart for the load case.","applies":["motor mount","pulley bearing bore","robotics joint"],"value":{"options":["H7","N7","k6","j6"],"unit":"text"},"basis":"Common ISO tolerance-grade convention for rolling-bearing bore and shaft fits","sources":["protolabs-threads"],"tags":["bearing","press fit","h7","n7","interference"]},{"id":"knurled-press-nuts-pcb","kind":"fastener","tier":3,"title":"Knurled press-in nuts (PCB / plastic panel)","summary":"Knurled brass press-nut for M3 needs a 4.0mm hole in FR4/thin plastic (0.3mm oversize on OD-to-hole is press-fit, not floating); flange sits flush or counterbored. Common in PCB standoff mounting where a heat-set insert is not wanted because reflow will melt the substrate area.","applies":["pcb mounting","thin plastic panel"],"value":{"typical":4,"unit":"mm","note":"M3 knurled press-nut hole diameter"},"basis":"Generic knurled press-nut supplier hole-size guidance","sources":["cnc-cookbook-heatset"],"tags":["press nut","knurled nut","pcb","insert"]},{"id":"standoffs-hex-af-lengths","kind":"fastener","tier":3,"title":"Hex standoffs — across-flats and common lengths","summary":"M3 hex standoff: 5.5mm across-flats (same AF as the M3 nut), common stock lengths 5/6/8/10/12/15/20/25/30mm, male-female or female-female thread combinations. Choose AF large enough to clear the mating screw head/washer when torquing.","applies":["pcb mounting","panel spacer"],"value":{"value":5.5,"unit":"mm","note":"M3 hex standoff across-flats"},"basis":"Standard hex standoff catalogue AF and length series","sources":["iso-4032"],"tags":["standoff","hex spacer","pcb","m3"]},{"id":"screw-head-styles-dimensions","kind":"fastener","tier":2,"title":"Screw head styles — diameter and height, M3-M8","summary":"Head dia / height by style at M3, M5, M8: pan M3 5.6/2.0, M5 9.0/3.3, M8 13.0/5.3; button (ISO 7380) M3 5.7/1.65, M5 9.5/2.7, M8 14.2/4.4; socket (ISO 4762) M3 5.5/3.0, M5 8.5/5.0, M8 13.0/8.0; flat/csk (ISO 10642) M3 6.3/1.86, M5 10.4/3.1, M8 17.3/4.96 mm.","applies":[],"value":{"table":[{"size":"M3","panDiaHt":"5.6/2.0","buttonDiaHt":"5.7/1.65","socketDiaHt":"5.5/3.0","flatDiaHt":"6.3/1.86"},{"size":"M5","panDiaHt":"9.0/3.3","buttonDiaHt":"9.5/2.7","socketDiaHt":"8.5/5.0","flatDiaHt":"10.4/3.1"},{"size":"M8","panDiaHt":"13.0/5.3","buttonDiaHt":"14.2/4.4","socketDiaHt":"13.0/8.0","flatDiaHt":"17.3/4.96"}],"unit":"mm"},"basis":"ISO 7045 (pan), ISO 7380 (button), ISO 4762 (socket cap), ISO 10642 (flat csk) head tables","sources":["iso-4762","iso-10642"],"tags":["head style","pan head","button head","socket head","flat head"]},{"id":"spring-lock-washers","kind":"fastener","tier":2,"title":"Spring (lock) washers, DIN 127","summary":"Spring washer ID/OD/thickness: M3 3.1/5.6/0.8, M4 4.1/7.1/0.9, M5 5.1/8.7/1.2, M6 6.1/10.9/1.6, M8 8.1/13.4/2.0, M10 10.2/16.4/2.2 mm. Use under a nut or bolt head where vibration risks loosening; not a substitute for a proper torque/thread-locker spec on safety-critical joints.","applies":[],"value":{"table":[{"size":"M3","id":3.1,"od":5.6,"t":0.8},{"size":"M4","id":4.1,"od":7.1,"t":0.9},{"size":"M5","id":5.1,"od":8.7,"t":1.2},{"size":"M6","id":6.1,"od":10.9,"t":1.6},{"size":"M8","id":8.1,"od":13.4,"t":2},{"size":"M10","id":10.2,"od":16.4,"t":2.2}],"unit":"mm"},"basis":"DIN 127 spring lock washer dimension table","sources":["din-127"],"tags":["spring washer","lock washer","vibration"]},{"id":"torque-table-class-8-8","kind":"fastener","tier":2,"title":"Tightening torque, property class 8.8, M3-M12","summary":"Dry, class 8.8 steel, approx. torque: M3 1.3Nm, M4 3.0Nm, M5 6.0Nm, M6 10.0Nm, M8 25.0Nm, M10 49.0Nm, M12 86.0Nm. Lubricated threads: multiply by ~0.85; always follow the specific joint's engineering spec over a generic table when one exists.","applies":[],"value":{"table":[{"size":"M3","torqueNm":1.3},{"size":"M4","torqueNm":3},{"size":"M5","torqueNm":6},{"size":"M6","torqueNm":10},{"size":"M8","torqueNm":25},{"size":"M10","torqueNm":49},{"size":"M12","torqueNm":86}],"unit":"Nm"},"basis":"ISO 898-1 property class 8.8 recommended tightening torque (approx. 75% proof load)","sources":["iso-898-1"],"tags":["torque","class 8.8","tightening","nm"]},{"id":"positional-tolerance-conventions","kind":"tolerance","tier":2,"title":"Hole-to-hole positional tolerance conventions by process","summary":"Default positional tolerance for hole patterns: +-0.1mm for CNC-milled/drilled holes, +-0.2mm for laser-cut sheet, +-0.4mm for FDM print. Tighten only where a mating part needs it; over-tolerancing raises cost without improving fit.","applies":[],"value":{"table":[{"process":"CNC milled/drilled","tolMm":0.1},{"process":"laser-cut sheet","tolMm":0.2},{"process":"FDM 3D print","tolMm":0.4}]},"basis":"ASME Y14.5 positional tolerancing practice applied to typical shop-floor process capability","sources":["asme-y14-5"],"tags":["positional tolerance","true position","cnc","laser cut"]},{"id":"counterbore-hex-bolt-iso-4017","kind":"fastener","tier":2,"title":"Counterbore for hex head bolts (ISO 4017 AF)","summary":"Counterbore diameter to clear a hex bolt head across-flats plus wrench clearance: M4 AF7 -> cbore 9mm, M6 AF10 -> cbore 13mm, M8 AF13 -> cbore 16mm, M10 AF16 -> cbore 19mm, M12 AF18 -> cbore 21mm. Depth = head height + 1mm minimum for a socket/wrench to clear the sides.","applies":[],"value":{"table":[{"size":"M4","af":7,"cboreDia":9},{"size":"M6","af":10,"cboreDia":13},{"size":"M8","af":13,"cboreDia":16},{"size":"M10","af":16,"cboreDia":19},{"size":"M12","af":18,"cboreDia":21}],"unit":"mm"},"basis":"ISO 4017 hexagon head across-flats plus standard wrench-clearance allowance","sources":["iso-4017"],"tags":["counterbore","hex bolt","hex head","af"]},{"id":"spot-face-depth","kind":"rule","tier":3,"title":"Spot-face depth for a rough or cast surface","summary":"A spot face just needs to clean up the bearing surface for a washer/head: depth 0.5-1.5mm below the as-cast/as-rolled surface is usually enough, cut to a diameter matching the washer or head OD. Do not confuse with a counterbore, which sinks the head fully flush or below.","applies":["casting","rough sheet","weldment"],"value":{"min":0.5,"max":1.5,"unit":"mm"},"basis":"General machining practice for spot-facing a fastener bearing surface","detail":"cad_fastener requires the head to bear on a face normal to the fastener axis; on a sloped or cast/curved seat it cuts a spot-face or counterbore like this one instead of leaving a proud head over an angled surface.","sources":["protolabs-threads"],"tags":["spot face","counterbore","bearing surface"]},{"id":"cad-fastener-seated-not-floating","kind":"process","tier":1,"title":"cad_fastener places it, cad_fastener_audit proves it seated","summary":"cad_fastener derives bolt length from grip + engagement (steel 1×d, aluminium 1.5-2×d, cast iron 1.25×d) using the same station table that cuts the hole; cad_fastener_audit must return zero findings for head bearing, engagement and protrusion before a bolted assembly ships.","applies":["assembly","bolted joint","fastener QA"],"basis":"V12 fastener seat audit baseline (tools/v12/fastener_audit.js, HEAD 0fae7ced): 355 fasteners measured, 112 seated, 243 not (CADSF-1422/1423/1424) — no fastener in NativeCAD output floats (CADSF-1428).","sources":[],"tags":["cad_fastener","cad_fastener_audit","bolt","bolt length","engagement","floating bolt","floating","stud","screw","nut","seated"]}]},{"$schema":"nativecad-dfm-pack/1","id":"jewellery-wearables","title":"Jewellery & wearables — rings, pendants, bracelets, watches, glasses","sector":"jewellery-wearables","version":"2026-09-04","summary":"Ring sizing (ISO 8653 and US/UK), band and bezel dimensions, prong and bezel settings, bangle/bracelet/pendant-bail sizing, watch case and strap dimensions, eyeglass frame box-system numbers, casting/DMLS processes, metal densities and the nickel-release, retention and drop tests jewellery and wearables are held to.","aliases":["ring","signet ring","wedding band","bracelet","bangle","cuff","pendant","necklace","earring","stud earring","watch case","watch strap","lug","glasses","eyeglass frame","sunglasses","jewelry","jewellery","brooch","cufflink","charm","bail"],"crossSector":false,"size":"full","sources":[{"id":"iso-8653","title":"ISO 8653:2016 Ring-sizes","url":"https://www.iso.org/standard/65408.html","accessed":"2026-09-04"},{"id":"en-1811","title":"EN 1811:2023 Nickel release test method","url":"https://standards.iteh.ai/catalog/standards/cen/6692f2c9-c4b6-4539-a4d3-17611e1acdbc/en-1811-2023","accessed":"2026-09-04"},{"id":"iso-12870","title":"ISO 12870 Spectacle frames — requirements/tests","url":"https://www.iso.org/search.html?q=ISO%2012870","accessed":"2026-09-04"},{"id":"iso-8624","title":"ISO 8624 Spectacle frames — box system","url":"https://www.iso.org/search.html?q=ISO%208624","accessed":"2026-09-04"},{"id":"astm-f136","title":"ASTM F136 Ti-6Al-4V ELI implant alloy","url":"https://www.astm.org/f0136-13r21.html","accessed":"2026-09-04"},{"id":"astm-f138","title":"ASTM F138 316L implant stainless","url":"https://www.astm.org/f0138-19.html","accessed":"2026-09-04"},{"id":"materialise-gold-guide","title":"Materialise gold lost-wax casting guide","url":"https://www.materialise.com/en/academy/industrial/design-am/gold","accessed":"2026-09-04"},{"id":"ganoksin-casting","title":"Ganoksin — casting shrinkage/shop practice","url":"https://orchid.ganoksin.com/t/casting-shrinkage/48368","accessed":"2026-09-04"},{"id":"dmls-jewelry-guide","title":"i.materialise gold DMLS design guide","url":"https://i.materialise.com/en/3d-printing-materials/gold/design-guide","accessed":"2026-09-04"},{"id":"nihs-spring-bar","title":"NIHS 37-01 spring-bar diameters","url":"https://pompe-de-montre.com/en/content/16-measuring-watch-spring-bar","accessed":"2026-09-04"},{"id":"watch-lug-guide","title":"Watch lug-width sizing convention","url":"https://www.hewore.com/watch-lug-width-guide/","accessed":"2026-09-04"},{"id":"oura-ring-5","title":"Oura Ring 5 dimensions/battery","url":"https://ouraring.com/blog/introducing-oura-ring-5/","accessed":"2026-09-04"},{"id":"galaxy-ring-wiki","title":"Samsung Galaxy Ring dimensions","url":"https://en.wikipedia.org/wiki/Samsung_Galaxy_Ring","accessed":"2026-09-04"},{"id":"gia-diamond-sizes","title":"GIA diamond mm-to-carat chart","url":"https://www.gia.edu/gia-news-research/diamond-size-chart","accessed":"2026-09-04"},{"id":"density-reference","title":"Metal alloy density reference","url":"https://www.engineeringtoolbox.com/metal-alloys-densities-d_50.html","accessed":"2026-09-04"}],"entries":[{"id":"ring-size-definition-iso8653","kind":"standard","tier":2,"title":"Ring size is defined by inner circumference (ISO 8653)","summary":"ISO 8653 defines ring size as the inner circumference in mm, spanning roughly 40-76 mm for adult rings; every US/UK/EU size table is a relabelling of that one circumference number.","applies":["ring","signet ring","wedding band"],"basis":"ISO 8653 measures and designates ring size by internal circumference, not diameter, because a mandrel gauges circumference directly","sources":["iso-8653"],"tags":["ring","sizing","standard"]},{"id":"ring-size-us-uk-table","kind":"dimension","tier":1,"title":"US/UK ring size to inner diameter and circumference","summary":"US size 7 (UK N, EU 54) = 17.3 mm inner diameter / 54.4 mm circumference; each US half-size steps about 0.4 mm in diameter, e.g. US 6 = 16.5 mm ID, US 8 = 18.1 mm ID.","applies":["ring","signet ring","wedding band"],"value":{"table":[{"usSize":5,"idMm":15.7,"circumferenceMm":49.3},{"usSize":6,"idMm":16.5,"circumferenceMm":51.9},{"usSize":7,"idMm":17.3,"circumferenceMm":54.4},{"usSize":8,"idMm":18.1,"circumferenceMm":57},{"usSize":9,"idMm":18.9,"circumferenceMm":59.5},{"usSize":10,"idMm":19.8,"circumferenceMm":62.1}],"unit":"mm"},"basis":"ISO 8653 circumference table cross-referenced to the US/UK jeweller sizing convention","sources":["iso-8653"],"tags":["ring","sizing","us","uk"]},{"id":"band-width-range","kind":"dimension","tier":1,"title":"Ring band width","summary":"A ring band runs 2-8 mm wide (axial length along the finger); 2-3 mm reads as a stacking/eternity band, 5-6 mm as a standard wedding band, 7-8 mm as a chunky signet or men's band.","applies":["ring","wedding band","signet ring"],"value":{"min":2,"max":8,"typical":5,"unit":"mm"},"basis":"Common jeweller band-width range balancing comfort against visual weight for the stated ring classes","sources":["iso-8653"],"tags":["ring","band","width"]},{"id":"band-thickness-by-process","kind":"dimension","tier":1,"title":"Ring band radial thickness by process","summary":"Size a band's radial (wall) thickness at >=1.2 mm for cast gold, >=1.5 mm for cast/fabricated silver, and >=2 mm for a 3D-printed (resin-to-cast or DMLS) band, since each process's own minimum-section floor is what actually limits it.","applies":["ring","wedding band","signet ring"],"value":{"table":[{"process":"cast-gold","minMm":1.2},{"process":"cast-silver","minMm":1.5},{"process":"printed","minMm":2}],"unit":"mm"},"basis":"Gold's higher density and fluidity lets a cast band run thinner than silver at the same strength; a printed/print-and-cast band needs the extra margin the additive process's own minimum wall imposes","sources":["materialise-gold-guide","ganoksin-casting"],"tags":["ring","band","thickness","wall"]},{"id":"comfort-fit-inner-radius","kind":"rule","tier":1,"title":"Comfort-fit inner profile","summary":"A comfort-fit band rounds its inner bore to a radius roughly equal to the band's own radial thickness (1.2-2 mm), domed rather than flat, so the ring rocks past a knuckle instead of catching its full flat width on the skin.","applies":["ring","wedding band"],"value":{"min":1.2,"max":2,"unit":"mm"},"basis":"A domed inner profile reduces the ring's effective bearing width against the finger to roughly its thickness rather than its full band width, which is what a wearer feels as comfort fit","sources":["iso-8653"],"tags":["ring","comfort-fit","ergonomics"]},{"id":"prong-setting-basics","kind":"feature","tier":1,"title":"Prong count and prong-tip sizing for a stone setting","summary":"Use 4 prongs for a square/princess stone and 6 prongs for a round stone >=5 mm; each prong tip runs 0.8-1.2 mm square before it is filed down over the stone's girdle, thick enough to hold but thin enough not to hide the stone.","applies":["ring","pendant","prong setting"],"value":{"min":0.8,"max":1.2,"unit":"mm"},"basis":"Fewer, wider prongs suit a squared stone's flat girdle edges; a round stone's continuous girdle is held more securely by more, narrower prongs distributing load evenly","sources":["gia-diamond-sizes"],"tags":["ring","prong","setting","stone"]},{"id":"stone-size-mm-to-carat","kind":"dimension","tier":2,"title":"Round stone diameter to carat weight","summary":"A round-brilliant stone's carat weight tracks its diameter roughly as: 4.1 mm = 0.25 ct, 5.2 mm = 0.5 ct, 6.5 mm = 1 ct, 8.2 mm = 2 ct — use the mm figure to size the setting seat, not the carat.","applies":["ring","pendant","prong setting","bezel setting"],"value":{"table":[{"carat":0.25,"diameterMm":4.1},{"carat":0.5,"diameterMm":5.2},{"carat":1,"diameterMm":6.5},{"carat":2,"diameterMm":8.2}],"unit":"mm"},"basis":"Round-brilliant proportions relate carat weight to diameter through the stone's fixed depth-to-diameter ratio; the geometry that must be modelled is the diameter, not the weight","sources":["gia-diamond-sizes"],"tags":["stone","diamond","carat","sizing"]},{"id":"bezel-wall-thickness","kind":"dimension","tier":1,"title":"Bezel setting wall thickness","summary":"A metal bezel wrapping a stone's girdle runs 0.5-0.8 mm thick before burnishing over the stone; thinner tears when pushed over the girdle, thicker looks heavy and needs more force to set.","applies":["ring","pendant","bezel setting"],"value":{"min":0.5,"max":0.8,"unit":"mm"},"basis":"The bezel wall must be thin enough to burnish (cold-flow) over the stone's girdle by hand or with a bezel roller, but thick enough not to split while doing so","sources":["materialise-gold-guide"],"tags":["bezel","setting","wall"]},{"id":"bangle-id-oval","kind":"dimension","tier":1,"title":"Bangle inner diameter, oval opening","summary":"A rigid bangle needs a 60-70 mm oval inner opening (measured across the long axis, ~5-8 mm narrower on the short axis) to pass over an adult hand; a hinged bangle can drop the long axis toward 55 mm.","applies":["bangle","bracelet"],"value":{"min":60,"max":70,"typical":65,"unit":"mm"},"basis":"The oval opening must clear the widest part of an adult hand (the metacarpals) on the long axis while sitting close on the wrist once past the knuckles","sources":["iso-8653"],"tags":["bangle","sizing","oval"]},{"id":"bracelet-length-range","kind":"dimension","tier":1,"title":"Chain/flexible bracelet length","summary":"A flexible chain or bead bracelet runs 170-190 mm finished length for an adult wrist, plus 20-40 mm of clasp/extender adjustment; a men's bracelet sits at the upper end, a petite/child size below 170 mm.","applies":["bracelet","cuff"],"value":{"min":170,"max":190,"typical":180,"unit":"mm"},"basis":"Standard adult wrist circumference range plus the drape allowance a chain or bead bracelet needs to sit rather than bind","sources":["iso-8653"],"tags":["bracelet","sizing","length"]},{"id":"earring-post-dimensions","kind":"dimension","tier":1,"title":"Stud earring post diameter and length","summary":"A stud earring post runs 0.8 mm diameter x 10 mm long, sized to pass a standard pierced lobe and take a friction (butterfly) back with 2-4 mm of travel before it seats.","applies":["earring","stud earring"],"value":{"table":[{"param":"diameter","value":0.8},{"param":"length","value":10}],"unit":"mm"},"basis":"0.8 mm is the de-facto standard post gauge sized to a standard ear-piercing gun/needle bore, with 10 mm long enough to clear most lobe thicknesses plus the butterfly back","sources":["en-1811"],"tags":["earring","post","butterfly-back"]},{"id":"pendant-bail-clearance-rule","kind":"rule","tier":1,"title":"Pendant bail inner diameter vs chain gauge","summary":"Size a pendant bail's inner diameter to at least the chain's wire diameter plus 1 mm, so the chain articulates freely through the bail instead of binding or wearing a flat spot into the link.","applies":["pendant","bail","charm","necklace"],"value":{"min":1,"unit":"mm","note":"bail ID >= chain wire diameter + 1mm"},"basis":"A bail sized only to the chain's own diameter binds under normal articulation; the 1 mm margin is what lets the chain pivot instead of dragging metal-on-metal at one contact line","sources":["iso-8653"],"tags":["pendant","bail","chain","clearance"]},{"id":"watch-case-lug-width","kind":"dimension","tier":1,"title":"Watch case lug width","summary":"Watch straps come in 18, 20 or 22 mm lug width, matching the gap between the case's lug horns; 20 mm is the most common size across men's watches, with 18 mm skewing smaller/women's and 22-24 mm sport/diver cases.","applies":["watch case","watch strap","lug"],"value":{"options":[18,20,22,24],"unit":"mm"},"basis":"Industry lug-width convention that a strap and its spring bars must match to fit a given case","sources":["watch-lug-guide"],"tags":["watch","lug","strap","sizing"]},{"id":"watch-case-diameter-range","kind":"dimension","tier":1,"title":"Watch case diameter","summary":"A wristwatch case runs 36-44 mm in diameter (excluding crown), with 40-42 mm the most common men's size and 36-38 mm reading as a smaller/unisex case; the case diameter also sets the lug-to-lug envelope for wrist fit.","applies":["watch case"],"value":{"min":36,"max":44,"typical":40,"unit":"mm"},"basis":"Common modern wristwatch case-diameter range across men's and unisex sport/dress designs","sources":["watch-lug-guide"],"tags":["watch","case","diameter"]},{"id":"watch-spring-bar-hole","kind":"dimension","tier":1,"title":"Spring bar hole diameter in a lug","summary":"Bore the spring-bar hole through each lug at 1.2-1.5 mm diameter (standard spring bars run 1.0/1.2/1.3/1.5/1.8 mm), with a +-0.2 mm functional tolerance so the bar seats without slop or binding.","applies":["watch case","lug"],"value":{"min":1.2,"max":1.5,"unit":"mm"},"basis":"Spring bars are made in a small set of standard diameters; the lug hole must match one of them within a tight functional tolerance to hold the bar under spring load","sources":["nihs-spring-bar"],"tags":["watch","spring-bar","lug","hole"]},{"id":"glasses-box-system","kind":"dimension","tier":1,"title":"Eyeglass frame box-system callout (e.g. 52-18-140)","summary":"A frame is specified as lens-width–bridge–temple in mm, e.g. 52-18-140: 52 mm horizontal lens width, 18 mm bridge gap between lenses, 140 mm temple arm length from hinge to tip.","applies":["glasses","eyeglass frame","sunglasses"],"value":{"table":[{"param":"lens-width","typical":52},{"param":"bridge","typical":18},{"param":"temple","typical":140}],"unit":"mm"},"basis":"ISO 8624 box (boxing) system measures each lens as if boxed in a rectangle, giving three numbers that fully describe a frame's fit envelope","sources":["iso-8624"],"tags":["glasses","box-system","sizing"]},{"id":"glasses-hinge-screw","kind":"dimension","tier":1,"title":"Eyeglass hinge screw diameter","summary":"A spectacle hinge barrel takes a 1.2-1.6 mm screw through 2-3 knuckles; undersize and the hinge racks loose in weeks, oversize and the barrel wall splits on tightening.","applies":["glasses","eyeglass frame"],"value":{"min":1.2,"max":1.6,"unit":"mm"},"basis":"Standard spectacle-hinge screw gauge sized to the thin metal or acetate barrel wall a temple hinge is built into","sources":["iso-12870"],"tags":["glasses","hinge","screw"]},{"id":"glasses-pantoscopic-tilt","kind":"rule","tier":1,"title":"Pantoscopic tilt of the lens plane","summary":"Tilt the lens plane 8-12 degrees forward at the bottom (pantoscopic tilt) relative to vertical, so the lens sits roughly perpendicular to the wearer's downward gaze rather than straight-on.","applies":["glasses","eyeglass frame","sunglasses"],"value":{"min":8,"max":12,"unit":"deg"},"basis":"Matching the lens plane to habitual downward gaze angle reduces off-axis optical distortion for progressive and single-vision lenses alike","sources":["iso-12870"],"tags":["glasses","tilt","ergonomics"]},{"id":"casting-min-wall-no-voids","kind":"rule","tier":1,"title":"Lost-wax casting minimum wall and enclosed voids","summary":"Keep every cast section >=0.6 mm and never fully enclose a void: the investment plaster fills every internal cavity during burnout and cannot be removed from a sealed pocket, so a hollow form needs a vent/access hole before casting.","applies":["ring","pendant","casting"],"value":{"min":0.6,"unit":"mm"},"basis":"Below ~0.6 mm the wax pattern itself is too fragile to invest and the molten metal freezes before filling the section; a sealed cavity traps investment that cannot be devested afterward","sources":["materialise-gold-guide","ganoksin-casting"],"tags":["casting","lost-wax","wall","void"]},{"id":"casting-shrinkage-sprue","kind":"process","tier":2,"title":"Lost-wax casting shrinkage and sprue sizing","summary":"Allow 1-2% linear shrinkage from wax pattern to cast gold/silver part, and size the sprue at roughly 0.5-1x the part's thickest section so metal keeps feeding the casting as it solidifies instead of freezing off early.","applies":["ring","pendant","casting"],"value":{"min":1,"max":2,"unit":"%"},"basis":"Metal shrinks more than wax on cooling; an undersized sprue freezes before the thick section behind it has fed, leaving a shrinkage porosity void","sources":["ganoksin-casting"],"tags":["casting","shrinkage","sprue"]},{"id":"nickel-release-en1811","kind":"test","tier":1,"title":"Nickel release test for skin-contact jewellery (EN 1811)","summary":"EN 1811 limits nickel release to 0.5 ug/cm2/week for rings, bracelets and watch cases, and 0.2 ug/cm2/week for a post inserted into a piercing; failing it means re-specifying the alloy (nickel-free white gold, titanium, 316L), not changing geometry.","applies":["ring","earring","bracelet","watch case"],"value":{"min":0.2,"max":0.5,"unit":"ratio","note":"ug/cm2/week; 0.2 for pierced posts, 0.5 for general skin-contact"},"basis":"EN 1811 sets the EU REACH nickel-release migration limit, tested by immersion in artificial sweat solution, tighter for articles inserted into a piercing than for general skin contact","sources":["en-1811"],"tags":["test","nickel","hypoallergenic","en1811"]},{"id":"clasp-jump-ring-wire-gauge","kind":"dimension","tier":2,"title":"Jump ring and clasp wire gauge by chain weight","summary":"Size jump rings at 0.6-0.8 mm wire for a fine necklace/bracelet chain, 0.8-1.0 mm for a medium chain, and 1.0-1.2 mm for a heavy curb or bag chain, with the jump ring's own ID at least 1.5x the wire it closes onto.","applies":["clasp","jump ring","bracelet","necklace"],"value":{"table":[{"chainClass":"fine","wireMm":0.7},{"chainClass":"medium","wireMm":0.9},{"chainClass":"heavy","wireMm":1.1}],"unit":"mm"},"basis":"A jump ring's wire must be stiff enough not to fatigue-open under repeated clasp cycling, scaled to the chain load it carries","sources":["iso-8653"],"tags":["jump-ring","clasp","wire-gauge"]},{"id":"clasp-type-sizing","kind":"feature","tier":2,"title":"Common clasp types and their footprint","summary":"A lobster clasp runs 8-14 mm long for a bracelet/necklace class, a spring-ring clasp 6-10 mm diameter, and a toggle clasp's bar must be >=1.5x its own ring's inner diameter so it cannot slip back through under tension.","applies":["clasp","bracelet","necklace"],"value":{"min":6,"max":14,"unit":"mm"},"basis":"Clasp footprint scales with the chain class it closes and, for a toggle, with the geometric margin needed to keep the bar from re-threading itself under wear","sources":["iso-8653"],"tags":["clasp","lobster","toggle","spring-ring"]},{"id":"signet-ring-face-dimensions","kind":"dimension","tier":2,"title":"Signet ring face envelope","summary":"A signet ring's engraved face runs 10-16 mm along its long axis (oval or cushion) and 8-13 mm across, raised 1-2 mm proud of the shoulder, with engraving cut 0.2-0.4 mm deep to survive years of re-polishing.","applies":["signet ring"],"value":{"min":10,"max":16,"unit":"mm"},"basis":"Common adult signet face size that reads legibly at arm's length while still fitting the shoulder width of a normal band","sources":["iso-8653"],"tags":["signet","engraving","face"]},{"id":"watch-lug-to-lug","kind":"dimension","tier":2,"title":"Watch case lug-to-lug length","summary":"Lug-to-lug (the case's total length across both lug tips) runs roughly 1.15-1.25x the case diameter, e.g. a 40 mm case commonly spans 46-50 mm lug-to-lug, which is what actually determines wrist fit, not the stated diameter.","applies":["watch case"],"value":{"min":1.15,"max":1.25,"unit":"ratio"},"basis":"Lug-to-lug is the dimension that overhangs a small wrist even when the dial diameter looks reasonable, so it is sized off the case diameter rather than specified independently","sources":["watch-lug-guide"],"tags":["watch","lug-to-lug","fit"]},{"id":"watch-crystal-thickness","kind":"dimension","tier":2,"title":"Watch crystal thickness and seat","summary":"A mineral or sapphire crystal runs 1.0-2.0 mm thick, seated in a bezel rebate 0.3-0.5 mm deep with a compressed O-ring or gasket for water resistance, sapphire favouring the thinner end for its higher stiffness.","applies":["watch case"],"value":{"min":1,"max":2,"unit":"mm"},"basis":"Crystal thickness trades scratch/shatter resistance against case height and weight; sapphire's higher modulus lets it run thinner than mineral glass for the same impact resistance","sources":["watch-lug-guide"],"tags":["watch","crystal","sapphire"]},{"id":"watch-crown-dimensions","kind":"dimension","tier":2,"title":"Watch crown diameter and stem","summary":"A winding/setting crown runs 5-7 mm diameter on a 1.2 mm stem, projecting 3-4 mm from the case side for a fingernail grip without snagging on a cuff.","applies":["watch case"],"value":{"min":5,"max":7,"unit":"mm"},"basis":"Crown size balances a graspable grip diameter against how far it may project from the case before it catches on clothing","sources":["watch-lug-guide"],"tags":["watch","crown","stem"]},{"id":"watch-strap-thickness","kind":"dimension","tier":2,"title":"Watch strap thickness at the lug end","summary":"A leather or rubber strap runs 2-4 mm thick where it enters the lug, tapering to 1.5-3 mm at the buckle end so the strap doesn't fight the spring bar's own diameter inside the lug gap.","applies":["watch strap"],"value":{"min":1.5,"max":4,"unit":"mm"},"basis":"The strap must be thin enough at the lug to leave clearance around the spring bar while thick enough through its body to resist stretch and tear","sources":["nihs-spring-bar"],"tags":["watch","strap","thickness"]},{"id":"watch-buckle-width","kind":"dimension","tier":2,"title":"Watch buckle width","summary":"Size a pin or deployant buckle to the strap's taper-end width, typically 60-75% of the lug width, e.g. 14-16 mm buckle on a 20 mm lug strap.","applies":["watch strap"],"value":{"min":60,"max":75,"unit":"%"},"basis":"The strap tapers from the lug width down to the buckle so the closed strap doesn't look wider at the wrist than at the case","sources":["watch-lug-guide"],"tags":["watch","buckle","strap"]},{"id":"glasses-nose-pad","kind":"feature","tier":2,"title":"Adjustable nose pad geometry","summary":"A pad-arm nose pad runs 10-14 mm long to an 8-10 mm silicone or acetate pad, angled 15-25 degrees to match the nose bridge and spaced 14-20 mm apart at the pads to clear most bridge widths.","applies":["glasses","eyeglass frame"],"value":{"min":14,"max":20,"unit":"mm"},"basis":"Nose pad spacing and angle must match the range of human nasal bridge widths and slopes the frame is meant to fit without a custom adjustment","sources":["iso-12870"],"tags":["glasses","nose-pad","fit"]},{"id":"glasses-temple-tip","kind":"feature","tier":2,"title":"Temple tip (ear piece) curvature","summary":"The last 30-40 mm of a temple curves behind the ear at a 20-30 degree bend, sized so the tip doesn't press a point-load behind the ear under the frame's own clamping force.","applies":["glasses","eyeglass frame"],"value":{"min":30,"max":40,"unit":"mm"},"basis":"A gentle, generous-radius bend distributes the frame's clamping load over the ear-tip contact area instead of concentrating it at one point","sources":["iso-12870"],"tags":["glasses","temple","ear-tip"]},{"id":"smart-ring-basics","kind":"dimension","tier":2,"title":"Smart ring band width, thickness and battery basics","summary":"A smart ring's electronics band runs 6-8 mm wide and 2.2-2.9 mm thick (vs 1.5-3 mm for a plain metal band), housing a coin-cell-class battery around 15-25 mAh good for several days between charges.","applies":["ring","smart ring"],"value":{"min":6,"max":8,"unit":"mm"},"basis":"The electronics/battery stack inside a smart ring's shell needs more radial and axial section than a plain band, which is why a smart ring reads visibly thicker than a wedding band of the same diameter","sources":["oura-ring-5","galaxy-ring-wiki"],"tags":["smart-ring","wearable","battery"]},{"id":"cufflink-post-dimensions","kind":"dimension","tier":2,"title":"Cufflink post and toggle dimensions","summary":"A cufflink's fixed post runs 12-16 mm long on a 2-3 mm shank, with a swivel toggle bar 12-18 mm long that rotates 90 degrees to pass through a cuff buttonhole and lock crosswise.","applies":["cufflink"],"value":{"min":12,"max":18,"unit":"mm"},"basis":"The toggle must be long enough to lock securely crosswise behind the cuff fabric once rotated, while short enough to pass through a standard buttonhole when aligned with the post","sources":["iso-8653"],"tags":["cufflink","toggle","post"]},{"id":"brooch-pin-clasp","kind":"feature","tier":2,"title":"Brooch pin and C-clasp geometry","summary":"A brooch pin stem runs 30-50 mm long on a 0.8-1.0 mm wire, hinged at one end and locking into a C-clasp (rollover or safety-catch) sized to trap the pin tip with 1-2 mm of overlap so it can't work loose in fabric.","applies":["brooch"],"value":{"min":30,"max":50,"unit":"mm"},"basis":"Pin length must span enough fabric to hang securely under the brooch's own weight, and the catch overlap must exceed normal garment-flex movement so it doesn't self-release","sources":["iso-8653"],"tags":["brooch","pin","clasp"]},{"id":"charm-jump-ring-attach","kind":"feature","tier":2,"title":"Charm attachment loop","summary":"A charm's integral attachment loop runs 3-5 mm ID on 0.8-1.0 mm wire, sized to take a jump ring or bail without the charm's own loop being the weak link in the chain.","applies":["charm","bracelet","necklace"],"value":{"min":3,"max":5,"unit":"mm"},"basis":"The charm's loop must be at least as stiff as the jump ring it hangs from, or repeated swinging fatigues and opens the loop rather than the ring","sources":["iso-8653"],"tags":["charm","loop","attachment"]},{"id":"hypoallergenic-material-rule","kind":"rule","tier":2,"title":"Choosing a hypoallergenic alloy","summary":"For skin-contact or pierced-skin jewellery, specify implant-grade titanium (ASTM F136), 316L stainless (ASTM F138), niobium, or nickel-free 14k+ gold/platinum rather than nickel-bearing white gold or costume alloys, to pass EN 1811 without relying on plating.","applies":["ring","earring","bracelet","watch case"],"basis":"Plating wears through with handling and re-exposes a nickel-bearing base metal; specifying a nickel-free alloy from the start passes EN 1811 for the life of the part, not just when new","sources":["astm-f136","astm-f138","en-1811"],"tags":["hypoallergenic","nickel","titanium","316l"]},{"id":"process-lost-wax-casting","kind":"process","tier":2,"title":"Lost-wax casting workflow from a resin print","summary":"Print or carve a wax/castable-resin pattern, tree it onto a sprue base, invest in plaster, burn out the pattern at 700-900C, then centrifugal or vacuum-cast molten metal into the cavity within the same hour the flask leaves the kiln.","applies":["ring","pendant","casting"],"value":{"min":700,"max":900,"unit":"C"},"basis":"Burnout temperature must fully ash the wax/resin pattern without cracking the investment mould, and the flask must still be hot when cast or the metal freezes before filling thin sections","sources":["ganoksin-casting","materialise-gold-guide"],"tags":["casting","lost-wax","process","burnout"]},{"id":"process-dmls-jewelry","kind":"process","tier":2,"title":"DMLS direct metal printing for jewellery","summary":"DMLS prints gold/platinum/silver jewellery directly in metal powder, layer by layer, holding a 0.3-0.5 mm minimum wall for small decorative features but needing >=0.8 mm for a load-bearing band or prong, with support removal driving the practical floor.","applies":["ring","pendant","dmls"],"value":{"min":0.3,"max":0.8,"unit":"mm"},"basis":"DMLS can sinter a very thin section, but a wall below ~0.8 mm on a structural feature like a band or prong is fragile to depowder and finish without deforming","sources":["dmls-jewelry-guide"],"tags":["dmls","3d-printing","process"]},{"id":"process-polishing-finish","kind":"process","tier":2,"title":"Polishing allowance on a cast or printed part","summary":"Budget 0.05-0.15 mm of material removal per polished surface across tumbling, hand polishing and final buffing; a fine engraved or textured detail shallower than about 0.2 mm can polish away entirely if over-worked.","applies":["ring","pendant","bracelet","polishing"],"value":{"min":0.05,"max":0.15,"unit":"mm"},"basis":"Each polishing stage abrades a thin surface layer; cumulative removal across stages is what limits how shallow a cast or engraved detail can safely be","sources":["ganoksin-casting"],"tags":["polishing","finish","process"]},{"id":"test-prong-pull-retention","kind":"test","tier":2,"title":"Prong/bezel pull (stone-retention) test","summary":"Pull-test a set stone to roughly 5-10 N applied at the girdle without dislodging it; failing means thickening the prong tips (this pack's 0.8-1.2 mm) or adding prong count rather than relying on glue.","applies":["ring","pendant","prong setting","bezel setting"],"value":{"min":5,"max":10,"unit":"N"},"basis":"A worn or thin prong tip is the classic stone-loss failure mode; a pull test at a modest hand-jostling load exposes it before the piece ships","sources":["gia-diamond-sizes"],"tags":["test","retention","prong","pull"]},{"id":"test-wear-abrasion-plating","kind":"test","tier":2,"title":"Wear/abrasion test for plating and polish","summary":"Tumble or Taber-abrade a plated or brushed surface for 500-1000 cycles; a plated part must keep >=0.3 um of coating over the highest-wear contact points (band shoulders, bezel rim) or the base alloy (and its nickel content) is exposed.","applies":["ring","bracelet","watch case"],"value":{"min":500,"max":1000,"unit":"cycles"},"basis":"Plating wears fastest at raised, frequently-contacted geometry; the cycle test targets exactly those high points rather than a flat coupon","sources":["en-1811"],"tags":["test","wear","abrasion","plating"]},{"id":"test-ring-deformation","kind":"test","tier":2,"title":"Ring out-of-round deformation test","summary":"Load a ring band radially to 50-100 N (a snug removal-over-a-knuckle force) and require it to spring back within 0.1 mm of round; failing means the band's radial thickness (this pack's cast/printed minimums) needs increasing, not just a harder alloy.","applies":["ring","wedding band"],"value":{"min":50,"max":100,"unit":"N"},"basis":"A ring is routinely squeezed elliptical passing a knuckle; a band that stays permanently out-of-round after that load will bind or spin on the finger","sources":["iso-8653"],"tags":["test","deformation","ring","spring-back"]},{"id":"test-watch-glasses-drop","kind":"test","tier":2,"title":"Drop test for a watch case or glasses frame","summary":"Drop a watch case or glasses frame 1000 mm onto a hard surface on its most vulnerable corner (lug tip, hinge barrel); surviving needs a lug/hinge wall thick enough not to crack, per this pack's lug and hinge-screw dimensions.","applies":["watch case","glasses","eyeglass frame"],"value":{"value":1000,"unit":"mm"},"basis":"A worn wearable is routinely dropped from hand/face height onto a hard floor; the lug and hinge are the thin, stress-concentrated features that fail first","sources":["iso-12870"],"tags":["test","drop","watch","glasses"]},{"id":"material-gold-alloys","kind":"material","tier":2,"title":"Gold alloy densities (fine gold and 14k)","summary":"Fine (24k) gold is 19.3 g/cm3; alloying down to 14k (58.3% gold) with silver/copper/palladium drops density to roughly 13 g/cm3, which is what should drive a cast-part weight estimate, not the 24k figure.","applies":["ring","pendant","bracelet","casting"],"value":{"table":[{"alloy":"24k-fine-gold","densityGcm3":19.3},{"alloy":"14k-gold","densityGcm3":13}],"unit":"g/cm3"},"basis":"Karat alloying dilutes gold with lighter base metals proportionally to the non-gold fraction, so density scales roughly with karat purity","sources":["density-reference"],"tags":["material","gold","density","karat"]},{"id":"material-silver-925","kind":"material","tier":2,"title":"Sterling silver (925) density","summary":"Sterling silver (92.5% Ag, 7.5% Cu, the standard jewellery alloy) is 10.4 g/cm3; use this figure, not pure silver's 10.5, for weight-from-volume estimates on a cast or printed silver part.","applies":["ring","pendant","bracelet","casting"],"value":{"value":10.4,"unit":"g/cm3"},"basis":"925 sterling is the near-universal jewellery-grade silver alloy; its copper content marginally lowers density from pure silver while raising hardness enough to hold a set stone","sources":["density-reference"],"tags":["material","silver","sterling","density"]},{"id":"material-titanium-grade5","kind":"material","tier":2,"title":"Titanium (Grade 5 / Ti-6Al-4V) for hypoallergenic pieces","summary":"Titanium runs 4.5 g/cm3, under a quarter the density of gold, making it the lightest common hypoallergenic option for a large ring, bangle or watch case; it does not readily solder or size like gold/silver, so it is usually machined or DMLS-printed, not cast-and-resized.","applies":["ring","watch case","bangle"],"value":{"value":4.5,"unit":"g/cm3"},"basis":"ASTM F136 implant-grade Ti-6Al-4V ELI datasheet density; titanium's biocompatibility and low density make it common in large-format or hypoallergenic pieces","sources":["astm-f136"],"tags":["material","titanium","density","hypoallergenic"]},{"id":"material-316l-stainless","kind":"material","tier":2,"title":"316L stainless steel for watch cases and posts","summary":"316L surgical stainless is 8.0 g/cm3, the standard low-nickel-release alloy for watch cases, bracelets and earring posts where cost rules out titanium but EN 1811 compliance is still required.","applies":["watch case","bracelet","earring"],"value":{"value":8,"unit":"g/cm3"},"basis":"ASTM F138 316L datasheet density; its low, tightly-bound nickel content (vs free-machining stainless grades) is what lets it pass EN 1811 where a generic 304 stainless would not","sources":["astm-f138"],"tags":["material","316l","stainless","density"]},{"id":"material-gemstone-hardness","kind":"material","tier":3,"title":"Gemstone Mohs hardness and setting implication","summary":"Diamond (Mohs 10), sapphire/ruby (9) and cubic zirconia (8-8.5) tolerate a tight prong/bezel burnish; softer stones like opal (5.5-6.5) or pearl (2.5-4) need a protective bezel or peg setting rather than prongs that could chip a sharp edge.","applies":["ring","pendant","prong setting","bezel setting"],"value":{"min":2.5,"max":10,"unit":"ratio"},"basis":"A stone's Mohs hardness sets how much point-contact stress (a prong tip, a burnished bezel edge) it can take without chipping, which is what should decide the setting style, not just aesthetics","sources":["gia-diamond-sizes"],"tags":["gemstone","hardness","setting"]},{"id":"recipe-plain-band-ring","kind":"recipe","tier":2,"title":"Recipe: plain wedding band, US size 7, comfort-fit wall","summary":"Build a US size 7 (17.3 mm ID) plain band 6 mm wide and 1.8 mm radial wall by revolving a rectangular r-z profile a full turn about the ring axis.","applies":["ring","wedding band"],"basis":"Combines ring-size-us-uk-table (17.3 mm ID), band-width-range (6 mm) and band-thickness-by-process (cast-gold 1.2 mm floor, used here at 1.8 mm) into one buildable revolve","sources":["iso-8653","materialise-gold-guide"],"tags":["recipe","ring","band"],"recipe":{"prompt":"Model a US size 7 plain wedding band: 17.3mm inner diameter, 6mm wide, 1.8mm radial wall thickness","steps":[{"tool":"cad_revolve_profile","args":{"profile":[[8.65,-3],[10.45,-3],[10.45,3],[8.65,3]]},"note":"revolve a rectangular r-z profile a full turn: inner radius 8.65mm (17.3mm ID), outer radius 10.45mm (1.8mm wall), 6mm band width along z"}],"expect":{"volume":648.05,"faceCount":4,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-pendant-tag-bail","kind":"recipe","tier":2,"title":"Recipe: round pendant tag with an integral bail","summary":"Build a 20 mm diameter, 2 mm thick pendant tag with an integral bail loop (torus, 4.5 mm outer diameter, 1.5 mm tube) on its top edge sized for a 1.5 mm-gauge chain.","applies":["pendant","bail","charm"],"basis":"Combines a plain disc tag with pendant-bail-clearance-rule (bail ID >= chain diameter + 1mm, here 1.5mm chain needs >=2.5mm ID, given as a 3mm-ID/1.5mm-tube torus) unioned onto the tag","sources":["iso-8653"],"tags":["recipe","pendant","bail"],"recipe":{"prompt":"Model a 20mm diameter, 2mm thick round pendant tag with a small bail loop on the top edge for a 1.5mm chain","steps":[{"tool":"cad_cylinder","args":{"r":10,"h":2},"note":"20mm diameter x 2mm thick tag disc"},{"tool":"cad_torus","args":{"R":2.25,"rmin":0.75,"origin":[0,8.5,1],"rotate":{"rx":1.5707963}},"note":"bail loop, 3mm ID x 1.5mm tube, tipped upright and overlapping the tag's top edge so it fuses on union"},{"tool":"cad_boolean_union","args":{"of":"$0","tool":"$1"},"note":"fuse the bail onto the tag (CADSF-1604: expect re-pinned to the analytic 8-face union — the old 3538 was a tessellated-era face count of the same body)"}],"expect":{"volume":645.24,"faceCount":8,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-watch-bezel-ring","kind":"recipe","tier":2,"title":"Recipe: watch-case bezel ring, 40mm case, 34mm crystal opening","summary":"Build a 40 mm outer diameter, 8 mm tall watch-case bezel ring with a 34 mm crystal opening by revolving a rectangular r-z profile a full turn about the case axis.","applies":["watch case"],"basis":"Combines watch-case-diameter-range (40mm typical) with a crystal-opening bore into one buildable revolve, the case-diameter twin of the plain-band-ring recipe","sources":["watch-lug-guide"],"tags":["recipe","watch","bezel"],"recipe":{"prompt":"Model a 40mm diameter, 8mm tall watch-case bezel ring with a 34mm crystal opening","steps":[{"tool":"cad_revolve_profile","args":{"profile":[[17,-4],[20,-4],[20,4],[17,4]]},"note":"revolve a rectangular r-z profile a full turn: inner radius 17mm (34mm crystal opening), outer radius 20mm (40mm case diameter), 8mm case height along z"}],"expect":{"volume":2789.73,"faceCount":4,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}}]},{"$schema":"nativecad-dfm-pack/1","id":"kitchen-tableware","title":"Kitchen & tableware — mugs, bowls, bottles, cutlery, cutters, boards","sector":"kitchen-tableware","version":"2026-09-04","summary":"Coffee mugs, cups, bowls, plates, water bottles, cutlery, bottle openers, cookie cutters, funnels, teapots, chopping boards and jar lids: envelope dimensions, food-contact materials, dishwasher/microwave limits and the tests they are held to.","aliases":["coffee mug","tumbler","mixing bowl","dinner plate","water bottle","bottle opener","cookie cutter","funnel","teapot","kettle","chopping board","cutting board","knife handle","jar lid","tableware","drinkware"],"crossSector":false,"size":"full","sources":[{"id":"fda-21cfr177","title":"FDA 21 CFR 177 — Food-Contact Polymers","url":"https://www.ecfr.gov/current/title-21/chapter-I/subchapter-B/part-177","accessed":"2026-09-04"},{"id":"eu-10-2011","title":"EU 10/2011 — Food-Contact Plastics","url":"https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32011R0010","accessed":"2026-09-04"},{"id":"nsf-ansi-51","title":"NSF/ANSI 51 — Food Equipment Materials","url":"https://www.nsf.org/knowledge-library/nsf-ansi-51-food-equipment-materials","accessed":"2026-09-04"},{"id":"nsf-ansi-184","title":"NSF/ANSI 184 — Residential Dishwashers","url":"https://webstore.ansi.org/standards/nsf/nsfansi1842019","accessed":"2026-09-04"},{"id":"astm-c554","title":"ASTM C554 — Ceramicware Thermal Shock","url":"https://store.astm.org/c0554-98r19.html","accessed":"2026-09-04"},{"id":"iso-8442-2","title":"ISO 8442-2 — Stainless Cutlery Requirements","url":"https://www.iso.org/standard/23095.html","accessed":"2026-09-04"},{"id":"isbt-threadspecs","title":"ISBT ThreadSpecs — PCO 1881 28mm Finish","url":"https://www.isbt.com/resources/isbt-threadspecs","accessed":"2026-09-04"},{"id":"gpi-glass-finish","title":"GPI — 63mm Wide-Mouth Glass Finish","url":"https://www.gpi.org","accessed":"2026-09-04"},{"id":"crown-cap-26mm","title":"GW Kent — 26mm Crown Cap Reference","url":"https://www.gwkent.com/crown-caps.html","accessed":"2026-09-04"},{"id":"digitalfire-shrinkage","title":"Digitalfire — Ceramic Firing Shrinkage","url":"https://digitalfire.com/glossary/firing+shrinkage","accessed":"2026-09-04"},{"id":"astm-d6400","title":"ASTM D6400 — Compostable Plastics Spec","url":"https://store.astm.org/d6400-23.html","accessed":"2026-09-04"},{"id":"iec-60068-2-31","title":"IEC 60068-2-31 — Rough Handling Shocks","url":"https://webstore.iec.ch/publication/1000","accessed":"2026-09-04"},{"id":"webstaurant-plate-guide","title":"Webstaurantstore — Plate Size Guide","url":"https://www.webstaurantstore.com/guide/1060/types-of-plates.html","accessed":"2026-09-04"},{"id":"steelcity-cutlery","title":"Steel City Cutlery — Flatware Sizes","url":"https://www.steelcitycutlery.com/shapesandsizes.html","accessed":"2026-09-04"},{"id":"cuttingboard-nsf","title":"Cuttingboard.com — NSF HDPE Board Specs","url":"https://www.cuttingboard.com/commercial-green-plastic-hdpe-cutting-board-nsf-certified-18-x-12-x-1-2/","accessed":"2026-09-04"},{"id":"fluentincoffee-mugsize","title":"Fluent in Coffee — Mug Size Chart","url":"https://www.fluentincoffee.com/coffee-cup-sizes-chart/","accessed":"2026-09-04"}],"entries":[{"id":"mug-capacity-envelope","kind":"dimension","tier":1,"title":"Coffee mug capacity and body envelope","summary":"A standard coffee mug holds 0.3-0.4 L (300-400 mL, typical 350 mL) in a body 70-90 mm outer diameter and 90-100 mm tall, sized for a full hand-wrap grip.","applies":["coffee mug","mug","tumbler"],"value":{"min":0.3,"max":0.4,"typical":0.35,"unit":"L"},"basis":"Common ceramic mug capacity for an 8-12 fl oz hot-beverage serving with headroom below the rim","sources":["fluentincoffee-mugsize"],"tags":["mug","capacity","envelope"]},{"id":"mug-wall-thickness-ceramic","kind":"dimension","tier":1,"title":"Ceramic mug wall and floor thickness","summary":"A ceramic (stoneware/porcelain) mug wall runs 3-5 mm thick, floor 5-7 mm, thick enough to survive glaze firing without being so thick it slows heat transfer to the drink.","applies":["coffee mug","ceramic","stoneware","porcelain"],"value":{"min":3,"max":5,"typical":4,"unit":"mm"},"basis":"Standard studio/industrial ceramic ware wall-thickness range balancing thermal-shock resistance against firing warp","sources":["digitalfire-shrinkage"],"tags":["mug","wall","ceramic"]},{"id":"mug-handle-clearance","kind":"dimension","tier":1,"title":"Mug handle finger clearance","summary":"Size the handle opening at least 25 mm deep (wall to handle) and 60 mm tall so three fingers can hook through together; under 25 mm deep only fits one or two fingers.","applies":["coffee mug","handle","teapot","kettle"],"value":{"min":25,"unit":"mm","note":"opening depth; opening height >=60mm for 3 fingers"},"basis":"Average adult finger width ~18-20mm x3 plus clearance for a relaxed grip through the loop","sources":["fluentincoffee-mugsize"],"tags":["mug","handle","ergonomics"]},{"id":"mug-base-foot-ring","kind":"dimension","tier":1,"title":"Mug base foot ring","summary":"Give a mug a 1-2 mm recessed foot ring 5-8 mm in from the outer wall so the unglazed footprint touching the table/kiln shelf is a thin ring, not the full underside.","applies":["coffee mug","bowl","plate","foot ring"],"value":{"min":1,"max":2,"unit":"mm"},"basis":"A recessed foot keeps the glazed underside off the kiln shelf during firing and off the table afterward","sources":["digitalfire-shrinkage"],"tags":["mug","foot","base"]},{"id":"tumbler-envelope","kind":"dimension","tier":1,"title":"Cup/tumbler capacity and body envelope","summary":"A drinking tumbler or cup runs 0.2-0.5 L in a straight or lightly tapered body 60-85 mm diameter and 90-130 mm tall, taller and narrower than a mug for a one-hand grip without a handle.","applies":["tumbler","cup","drinkware"],"value":{"min":0.2,"max":0.5,"typical":0.35,"unit":"L"},"basis":"Common single-wall drinkware capacity and proportions for a handle-free one-hand grip","sources":["fluentincoffee-mugsize"],"tags":["tumbler","cup","envelope"]},{"id":"bowl-envelope","kind":"dimension","tier":1,"title":"Mixing/salad bowl envelope","summary":"A mixing or salad bowl runs 150-300 mm rim diameter and 70-130 mm deep, with a flared wall (rim wider than base) so a whisk or hand can reach the base.","applies":["bowl","mixing bowl","salad bowl"],"value":{"min":150,"max":300,"typical":220,"unit":"mm"},"basis":"Common flared-wall bowl proportions used across ceramic and plastic mixing/serving bowls","sources":["digitalfire-shrinkage"],"tags":["bowl","envelope","flare"]},{"id":"plate-envelope-rim","kind":"dimension","tier":1,"title":"Dinner plate diameter and rim","summary":"A dinner plate runs 250-280 mm (10-11 in) diameter with a 15-30 mm rim band around a slightly recessed 150-200 mm well.","applies":["plate","dinner plate","tableware"],"value":{"min":250,"max":280,"typical":265,"unit":"mm"},"basis":"Common Western dinner-plate diameter range with a standard rimmed profile","sources":["webstaurant-plate-guide"],"tags":["plate","rim","envelope"]},{"id":"water-bottle-envelope","kind":"dimension","tier":1,"title":"Reusable water bottle envelope","summary":"A reusable water bottle runs 0.5-1.0 L capacity in a body 60-80 mm diameter and 200-280 mm tall, sized to fit a standard cup-holder (max ~72 mm bore).","applies":["water bottle","bottle"],"value":{"min":0.5,"max":1,"typical":0.75,"unit":"L"},"basis":"Common single-serving reusable bottle capacity sized to clear a car cup-holder's ~72mm bore","sources":["isbt-threadspecs"],"tags":["bottle","envelope","capacity"]},{"id":"water-bottle-thread-28mm-pco","kind":"standard","tier":1,"title":"28 mm PCO 1881 beverage bottle neck finish","summary":"The PCO 1881 28 mm neck finish (ISBT 2009) has a 21.74 mm bore, 17.2 mm finish height and 2 thread turns, the global standard beverage closure for a custom bottle taking an off-the-shelf 28mm cap.","applies":["water bottle","pet bottle","bottle cap"],"value":{"value":28,"unit":"mm","note":"bore 21.74mm; finish height 17.2mm; 2 thread turns"},"basis":"ISBT ThreadSpecs PCO 1881 finalized 2009 as the lightweighted successor to PCO 1810","sources":["isbt-threadspecs"],"tags":["bottle","thread","pco1881"]},{"id":"water-bottle-thread-63mm-wide-mouth","kind":"standard","tier":1,"title":"63 mm wide-mouth jar/bottle finish (63-485)","summary":"The 63mm wide-mouth finish (GPI 63-485) gives a 63 mm bore for a jar or wide-mouth bottle meant for scooping, versus the narrow 28mm beverage finish sized for sipping.","applies":["water bottle","jar","wide mouth"],"value":{"value":63,"unit":"mm"},"basis":"Glass Packaging Institute 63-485 finish standard, the common wide-mouth designation across glass and PET containers","sources":["gpi-glass-finish"],"tags":["bottle","jar","thread","wide-mouth"]},{"id":"cutlery-spoon-fork-length","kind":"dimension","tier":1,"title":"Table spoon and fork overall length","summary":"A place-size dinner fork runs 200-210 mm overall and a soup/table spoon 175-215 mm, with the bowl or tines roughly 40% of the total length.","applies":["spoon","fork","cutlery","flatware"],"value":{"min":175,"max":215,"typical":200,"unit":"mm"},"basis":"Common place-size (American) flatware length range used across stainless cutlery lines","sources":["steelcity-cutlery"],"tags":["cutlery","spoon","fork","length"]},{"id":"spatula-ladle-dims","kind":"dimension","tier":1,"title":"Spatula and ladle overall dimensions","summary":"A kitchen spatula runs 250-300 mm overall with a 60-90 mm wide blade, and a ladle 280-320 mm overall with a 60-80 mm diameter bowl, both keeping the hand clear of a hot pot rim.","applies":["spatula","ladle","kitchen utensil"],"value":{"min":250,"max":320,"typical":290,"unit":"mm"},"basis":"Common long-handled kitchen-utensil proportions sized to keep the hand clear of a hot pot rim","sources":["steelcity-cutlery"],"tags":["spatula","ladle","utensil"]},{"id":"bottle-opener-crown-cap","kind":"dimension","tier":1,"title":"26 mm crown cap and bottle-opener lever","summary":"A standard crown cap is 26 mm nominal (26.7 mm OD, 21 crimps) gripping a 26.5 mm bottle lip; the opener hook engages the crimped skirt and levers ~20-30 mm from the fulcrum.","applies":["bottle opener","crown cap"],"value":{"value":26,"unit":"mm","note":"OD ~26.7mm; 21 crimps; lever arm 20-30mm"},"basis":"The 26mm crown finish has been the international beer/soda bottle-cap standard for over a century","sources":["crown-cap-26mm"],"tags":["bottle-opener","crown-cap","lever"]},{"id":"cookie-cutter-wall-thickness","kind":"dimension","tier":1,"title":"Cookie cutter cutting-edge wall thickness","summary":"A cookie cutter's cutting wall runs 0.8-1.0 mm thick — thin enough to shear dough cleanly, thick enough to hold its shape and not deform when pressed.","applies":["cookie cutter"],"value":{"min":0.8,"max":1,"typical":0.9,"unit":"mm"},"basis":"Thin-wall metal/plastic cookie-cutter blades common across bakeware manufacturers","sources":["nsf-ansi-51"],"tags":["cookie-cutter","wall","blade"]},{"id":"cookie-cutter-height-flange","kind":"dimension","tier":1,"title":"Cookie cutter height and finger flange","summary":"A cookie cutter stands 15-20 mm tall — clearing a 10-12 mm dough sheet — with an optional 3-5 mm flange or rolled top edge so a finger can press down without biting into the palm.","applies":["cookie cutter"],"value":{"min":15,"max":20,"typical":18,"unit":"mm"},"basis":"Common cookie-cutter height clearing a standard rolled dough thickness with a press-flange for finger safety","sources":["nsf-ansi-51"],"tags":["cookie-cutter","height","flange"]},{"id":"funnel-cone-spout","kind":"dimension","tier":1,"title":"Funnel cone angle and spout diameter","summary":"A kitchen funnel tapers at a 40-60 deg full cone angle from a 70-120 mm mouth down to an 8-15 mm spout OD, steep enough to drain by gravity without bridging.","applies":["funnel"],"value":{"min":40,"max":60,"typical":50,"unit":"deg"},"basis":"A cone angle in this range drains most kitchen liquids by gravity without surface-tension bridging","sources":["nsf-ansi-51"],"tags":["funnel","cone","spout"]},{"id":"teapot-kettle-spout-lid","kind":"rule","tier":1,"title":"Teapot/kettle spout height versus lid","summary":"Set the spout tip at or slightly above the lid's highest point (within 5-10 mm) so the pot fills to its practical maximum before liquid reaches the lid seam.","applies":["teapot","kettle"],"value":{"min":5,"max":10,"unit":"mm","note":"spout tip height above lid crown"},"basis":"Classic teapot/kettle proportion rule so the usable fill line is set by the spout, not the lid seal","sources":["nsf-ansi-51"],"tags":["teapot","kettle","spout"]},{"id":"chopping-board-envelope","kind":"dimension","tier":1,"title":"Chopping/cutting board size and thickness","summary":"A home chopping board runs 300-450 mm long, 200-300 mm wide and 12-38 mm thick (plastic HDPE commonly 12.7 mm / 1/2in; wood boards 18-38 mm).","applies":["chopping board","cutting board"],"value":{"min":12,"max":38,"typical":18,"unit":"mm"},"basis":"Common commercial NSF-listed HDPE board thickness (1/2in) versus thicker solid-wood board practice","sources":["cuttingboard-nsf"],"tags":["chopping-board","thickness","envelope"]},{"id":"knife-handle-basics","kind":"dimension","tier":1,"title":"Kitchen knife handle length and diameter","summary":"A kitchen knife handle runs 100-130 mm long and 20-28 mm through its grip, sized for a full four-finger wrap with the thumb along the spine or bolster.","applies":["knife handle","knife"],"value":{"min":100,"max":130,"typical":115,"unit":"mm"},"basis":"Common Western chef's-knife handle proportions for a full-hand pinch or hammer grip","sources":["iso-8442-2"],"tags":["knife","handle","ergonomics"]},{"id":"jar-lid-standard-sizes","kind":"dimension","tier":1,"title":"Standard jar lid thread sizes","summary":"Common jar/lid thread sizes run 43, 53, 63, 70 and 89 mm bore (twist-off canning and retort jars), the number naming the lid's nominal thread diameter.","applies":["jar lid","jar"],"value":{"options":[43,53,63,70,89],"unit":"mm"},"basis":"Common twist-off (CT) and lug-cap jar finish sizes used across food-jar packaging","sources":["gpi-glass-finish"],"tags":["jar-lid","thread","sizes"]},{"id":"dishwasher-temperature-material-tg","kind":"rule","tier":1,"title":"Dishwasher wash/rinse temperature versus material Tg","summary":"A residential dishwasher's hot wash runs 49-66 C and an NSF/ANSI 184 sanitize rinse hits ~66 C; a dishwasher-safe part needs a Tg/heat-deflection point above 66 C, ruling out plain PLA (Tg ~55-60 C).","applies":["housing","water bottle","jar lid","mug"],"value":{"min":49,"max":66,"typical":60,"unit":"C"},"basis":"NSF/ANSI 184 sets the 66C sanitize-rinse benchmark residential dishwashers are certified to reach","sources":["nsf-ansi-184"],"tags":["dishwasher","temperature","tg"]},{"id":"food-contact-material-compliance","kind":"rule","tier":1,"title":"Food-contact material compliance (FDA/EU)","summary":"Any surface touching food or drink needs a food-contact-cleared material — FDA 21 CFR 177 (US) or EU 10/2011 (Europe) — and compliance is per resin grade, not generic to the polymer family.","applies":["mug","bowl","plate","water bottle","cutlery","chopping board","cookie cutter"],"basis":"FDA 21 CFR 177 and EU 10/2011 are the two governing food-contact-plastics regimes a tableware design must clear","sources":["fda-21cfr177","eu-10-2011"],"tags":["food-contact","fda","eu","compliance"]},{"id":"mug-handle-attachment-load-path","kind":"feature","tier":2,"title":"Mug handle attachment and load path","summary":"Attach a handle across two pads each at least 1.5x the wall thickness in diameter, so the joint spreads a lifting load (a full 350 mL mug is ~4-5 N) over area instead of a thin seam that cracks first.","applies":["coffee mug","handle"],"value":{"min":1.5,"unit":"ratio","note":"pad diameter / wall thickness"},"basis":"A wider attachment pad lowers the local stress at the handle-to-body joint, the classic failure point on a knocked mug","sources":["digitalfire-shrinkage"],"tags":["mug","handle","attachment"]},{"id":"tumbler-lid-compatibility","kind":"dimension","tier":2,"title":"Tumbler lid diameter compatibility","summary":"Size a tumbler's rim to a common lid bore of 70-90 mm (matching widely stocked press-fit or screw-travel lids) so a custom tumbler can still take an off-the-shelf lid.","applies":["tumbler","cup"],"value":{"min":70,"max":90,"typical":80,"unit":"mm"},"basis":"Common reusable-cup lid bore range across major drinkware brands","sources":["fluentincoffee-mugsize"],"tags":["tumbler","lid","compatibility"]},{"id":"bowl-nesting-stack-taper","kind":"rule","tier":2,"title":"Bowl nesting/stacking wall taper","summary":"Taper a bowl set's wall 3-6 deg from vertical so successive sizes nest without wedging, spacing nested diameters at least 10-15 mm apart so a nested bowl can be pulled back out by hand.","applies":["bowl","mixing bowl set"],"value":{"min":3,"max":6,"unit":"deg"},"basis":"A shallow taper lets a bowl set nest for storage while the diameter step keeps them from jamming under their own weight","sources":["digitalfire-shrinkage"],"tags":["bowl","nesting","taper"]},{"id":"plate-stacking-lug","kind":"feature","tier":2,"title":"Plate stacking lug/foot height","summary":"A stackable plate's foot ring or three raised stacking lugs stand 3-5 mm proud of the well, enough to clear rim decoration below but low enough that a tall stack stays stable.","applies":["plate","stacking"],"value":{"min":3,"max":5,"unit":"mm"},"basis":"A shallow stacking foot spaces plates enough to avoid glaze-on-glaze wear without making a tall stack unstable","sources":["webstaurant-plate-guide"],"tags":["plate","stacking","lug"]},{"id":"water-bottle-cap-thread-engagement","kind":"rule","tier":2,"title":"Bottle cap thread engagement turns","summary":"Give a bottle cap at least 1.5-2 full thread turns of engagement, matching the 28mm PCO finish's own 2-turn spec, so the cap seals and resists cross-threading without needing more than a half-turn-and-a-half to remove.","applies":["water bottle","bottle cap"],"value":{"min":1.5,"max":2,"unit":"count"},"basis":"Fewer than ~1.5 turns risks cross-threading; beverage closures standardise on 1.5-2 turns for a fast open/close","sources":["isbt-threadspecs"],"tags":["bottle","thread","engagement"]},{"id":"fork-tine-spacing","kind":"dimension","tier":2,"title":"Fork tine count and spacing","summary":"A standard table fork carries 4 tines spaced 4-5 mm apart (about 20-22 mm tip to tip), close enough to spear small food and wide enough not to clog on fibrous food.","applies":["fork","cutlery"],"value":{"min":4,"max":5,"unit":"mm"},"basis":"Common 4-tine place-size fork spacing balancing food-spearing size against clogging on fibrous foods","sources":["steelcity-cutlery"],"tags":["fork","tine","cutlery"]},{"id":"bottle-opener-lever-mechanical-advantage","kind":"rule","tier":2,"title":"Bottle-opener lever mechanical advantage","summary":"A bottle-opener lever gives roughly 3-4x mechanical advantage (hand distance / hook distance from the fulcrum), enough to pop a crown cap's ~500-800 N crimp-release force with a ~150-200 N hand pull.","applies":["bottle opener"],"value":{"min":3,"max":4,"unit":"ratio"},"basis":"A class-1 lever's mechanical advantage is set by the ratio of its two arm lengths either side of the fulcrum on the bottle neck","sources":["crown-cap-26mm"],"tags":["bottle-opener","lever","mechanical-advantage"]},{"id":"cookie-cutter-cutting-edge-bevel","kind":"feature","tier":2,"title":"Cookie cutter cutting-edge bevel","summary":"Bevel the bottom 2-3 mm of a cookie cutter's wall down to a sharper 0.3-0.5 mm edge (from the nominal 0.8-1.0mm wall) so it shears dough with less downward force instead of crushing it.","applies":["cookie cutter"],"value":{"min":0.3,"max":0.5,"unit":"mm"},"basis":"A thinned bottom edge concentrates the cutting force into a narrower contact line, the same principle as any blade bevel","sources":["nsf-ansi-51"],"tags":["cookie-cutter","bevel","edge"]},{"id":"funnel-spout-fit-to-neck","kind":"dimension","tier":2,"title":"Funnel spout fit to bottle neck","summary":"Size a funnel spout OD 1-2 mm under the target bottle's inner neck bore (e.g. ~19-20 mm OD for a 21.74 mm PCO-1881 bore) so it seats without wedging or rattling.","applies":["funnel","water bottle"],"value":{"min":1,"max":2,"unit":"mm"},"basis":"A close, non-wedging clearance keeps the funnel seated in the neck under the weight of the liquid being poured","sources":["isbt-threadspecs"],"tags":["funnel","spout","fit"]},{"id":"teapot-spout-drip-free-angle","kind":"rule","tier":2,"title":"Teapot spout drip-free pour angle","summary":"Cut the spout tip at a 30-45 deg angle to its own axis with a sharp outer edge, so surface tension breaks cleanly at the tip instead of the pour stream wetting the spout's underside.","applies":["teapot","kettle"],"value":{"min":30,"max":45,"unit":"deg"},"basis":"A sharp, angled tip gives the pour stream a clean separation point; a rounded tip lets liquid wick back along the underside","sources":["nsf-ansi-51"],"tags":["teapot","spout","drip"]},{"id":"chopping-board-warp-thickness-rule","kind":"rule","tier":2,"title":"Chopping board thickness versus warp resistance","summary":"Below about 10 mm a polymer or wood board warps noticeably across a 300+ mm span under kitchen humidity/heat cycling; the 12.7 mm (1/2in) commercial HDPE norm is the practical floor.","applies":["chopping board","cutting board"],"value":{"min":10,"unit":"mm"},"basis":"Board stiffness against warp scales with thickness cubed, so the commercial 1/2in HDPE norm is the practical floor over ~300mm","sources":["cuttingboard-nsf"],"tags":["chopping-board","warp","thickness"]},{"id":"jar-lid-gasket-liner","kind":"feature","tier":2,"title":"Jar lid gasket/liner thickness","summary":"A twist-off jar lid's inner plastisol or foam gasket liner runs 0.5-1.2 mm thick around the lid's inner rim, compressing against the jar's sealing bead to hold vacuum.","applies":["jar lid"],"value":{"min":0.5,"max":1.2,"unit":"mm"},"basis":"Common twist-off closure liner thickness that seals against the jar finish's sealing surface under cap torque alone","sources":["gpi-glass-finish"],"tags":["jar-lid","gasket","liner"]},{"id":"material-food-contact-pp","kind":"material","tier":2,"title":"Polypropylene (PP) for food-contact tableware","summary":"PP (~0.905 g/cm3) is a common food-contact tableware resin (FDA 21 CFR 177.1520 / EU 10/2011 listed), heat-tolerant to 100C+, used for reusable cups, lids and cutting boards.","applies":["water bottle","chopping board","jar lid","cutlery"],"value":{"value":0.905,"unit":"g/cm3"},"basis":"Standard homopolymer PP resin datasheet density; PP's heat resistance well exceeds dishwasher/microwave temperatures","sources":["fda-21cfr177"],"tags":["material","pp","food-contact"]},{"id":"material-food-contact-petg-pla","kind":"material","tier":2,"title":"PETG and PLA for printed/molded tableware","summary":"PETG (~1.27 g/cm3) is food-contact safe and dishwasher-tolerant to ~70C; PLA (~1.24 g/cm3) is compostable (ASTM D6400) but its ~55-60C Tg means it warps in a hot dishwasher, decorative-use-only.","applies":["water bottle","cutlery","cookie cutter"],"value":{"table":[{"material":"petg","density":1.27},{"material":"pla","density":1.24}],"unit":"g/cm3"},"basis":"Standard PETG and PLA filament/resin datasheet densities; PLA's low Tg is the key caveat for anything that meets hot water","sources":["astm-d6400","fda-21cfr177"],"tags":["material","petg","pla","food-contact"]},{"id":"material-stainless-304-316","kind":"material","tier":2,"title":"Stainless steel 304/316 for cutlery and bottles","summary":"304 stainless (~8.0 g/cm3) is the standard food-contact grade for cutlery and bottle bodies (ISO 8442-2); 316 (~8.0 g/cm3) adds molybdenum for better resistance to salty/acidic contents.","applies":["cutlery","water bottle","spoon","fork"],"value":{"value":8,"unit":"g/cm3"},"basis":"ISO 8442-2 specifies austenitic stainless steel requirements for cutlery and table holloware","sources":["iso-8442-2"],"tags":["material","stainless","304","316"]},{"id":"material-stoneware-porcelain-shrinkage","kind":"material","tier":2,"title":"Stoneware and porcelain firing shrinkage","summary":"Stoneware clay bodies shrink about 10-13% wet-to-fired and porcelain 12-15%+ (higher for a more vitrified body) — model a ceramic mug or bowl oversized by this factor to land on the fired target.","applies":["coffee mug","bowl","plate","ceramic"],"value":{"min":10,"max":15,"typical":12,"unit":"%"},"basis":"Digitalfire ceramic materials database wet-to-fired shrinkage ranges for common stoneware and porcelain bodies","sources":["digitalfire-shrinkage"],"tags":["material","stoneware","porcelain","shrinkage"]},{"id":"test-drop-tableware","kind":"test","tier":2,"title":"Drop test for ceramic/glass tableware","summary":"Drop a mug, bowl or plate 750-1000 mm onto a hard floor on its base, side and rim; passing needs the foot-ring radius and a wall without a thin/thick step that concentrates impact stress.","applies":["coffee mug","bowl","plate"],"value":{"min":750,"max":1000,"unit":"mm"},"basis":"Common household counter/table-height drop scenario used to qualify everyday ceramic and glass tableware","sources":["iec-60068-2-31"],"tags":["test","drop","tableware"]},{"id":"test-thermal-shock-ceramic","kind":"test","tier":2,"title":"Thermal shock test for ceramic ware (ASTM C554)","summary":"ASTM C554 quenches ceramic ware heated to 63-77C into ~20C water (a delta-T of 43-57C); passing needs uniform wall thickness since a thick/thin step is where a thermal-shock crack starts.","applies":["coffee mug","bowl","teapot","kettle"],"value":{"min":43,"max":57,"unit":"C"},"basis":"ASTM C554's water-quench thermal-shock method for glazed ceramicware, applied at oven-to-counter or dishwasher-to-counter delta-T","sources":["astm-c554"],"tags":["test","thermal-shock","ceramic"]},{"id":"test-handle-load","kind":"test","tier":2,"title":"Handle static/dynamic load test","summary":"Apply a 20-30 N pull load at the handle grip centre (roughly 5-6x a full 350 mL mug's own ~4-5 N weight, covering a swinging carry) and hold for 60 s; passing means no crack at the attachment pads.","applies":["coffee mug","handle","teapot"],"value":{"min":20,"max":30,"unit":"N"},"basis":"A multiple-of-weight pull load covers a dynamic carry rather than just the mug's static hanging weight","sources":["nsf-ansi-51"],"tags":["test","handle","load"]},{"id":"recipe-coffee-mug","kind":"recipe","tier":2,"title":"Recipe: coffee mug body with D-handle","summary":"Build a mug: an 80mm-outer-diameter x 95mm-tall hollow cylinder (4mm wall, 6mm floor) with a D-shaped handle loop unioned onto one side, giving a 34mm-deep x 64mm-tall finger-clearance opening.","applies":["coffee mug"],"basis":"Combines mug-capacity-envelope, mug-wall-thickness-ceramic and mug-handle-clearance into one buildable hollow body with an attached handle loop","sources":["fluentincoffee-mugsize","digitalfire-shrinkage"],"tags":["recipe","mug","handle"],"recipe":{"prompt":"Model a coffee mug: 80mm outer diameter, 95mm tall, 4mm wall, with a D-shaped handle loop on one side sized for 3 fingers","steps":[{"tool":"cad_cylinder","args":{"r":40,"h":95},"note":"outer body cylinder"},{"tool":"cad_cylinder","args":{"r":36,"h":95,"origin":[0,0,6]},"note":"inner cavity cylinder, floor 6mm thick, open through the top"},{"tool":"cad_boolean_subtract","args":{"of":"$0","tool":"$1"},"note":"hollow the mug body"},{"tool":"cad_box","args":{"dx":44,"dy":10,"dz":10,"origin":[38,-5,10]},"note":"bottom handle arm, embedded 2mm into the wall"},{"tool":"cad_boolean_union","args":{"of":"$2","tool":"$3","meshFallback":true},"note":"fuse the bottom arm onto the curved body"},{"tool":"cad_box","args":{"dx":44,"dy":10,"dz":10,"origin":[38,-5,84]},"note":"top handle arm"},{"tool":"cad_box","args":{"dx":8,"dy":10,"dz":84,"origin":[74,-5,10]},"note":"outer handle bridge connecting the two arms"},{"tool":"cad_boolean_union","args":{"of":"$5","tool":"$6"},"note":"fuse the top arm and bridge into one handle loop"},{"tool":"cad_boolean_union","args":{"of":"$4","tool":"$7","meshFallback":true},"note":"fuse the handle loop onto the mug body"}],"expect":{"volume":128474.23,"faceCount":425,"watertight":true,"note":"refuses 2026-09-19: step 8 cad_boolean_union refuses E_GEOMETRY 'boolean identity violated — vol(result)+vol(intersect) = 127880.386 but the operands hold 129506.336 (1.255% off, tolerance 1%)' on the meshFallback handle union. 128474.23/425 is the last known-good pin, and on a meshFallback body that faceCount was a tessellation DENSITY rather than a topology fact; neither is compared until it builds"}}},{"id":"recipe-mixing-bowl","kind":"recipe","tier":2,"title":"Recipe: flared mixing bowl body","summary":"Build a flared mixing bowl: revolve a hollow profile from a 60mm-diameter foot up to a 180mm-diameter rim over 70mm height, wall/floor ~4mm, in a single revolve with no separate shell step.","applies":["bowl","mixing bowl"],"basis":"Combines bowl-envelope and bowl-nesting-stack-taper into one single-step revolve build, the standard way to model a body of revolution with a floor","sources":["digitalfire-shrinkage"],"tags":["recipe","bowl","revolve"],"recipe":{"prompt":"Model a flared mixing bowl: 60mm foot diameter, 180mm rim diameter, 70mm tall, ~4mm wall and floor","steps":[{"tool":"cad_revolve_profile","args":{"profile":[[0,0],[30,0],[90,70],[86,70],[26,4],[0,4]]},"note":"revolve the half-profile: outer wall up from the foot to the flared rim, across the rim, down the inner wall to the floor, and back to the axis"}],"expect":{"volume":145216.98,"faceCount":9,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-cookie-cutter","kind":"recipe","tier":2,"title":"Recipe: scalloped cookie cutter with press flange","summary":"Build a round cookie cutter: a 60mm-diameter, 18mm-tall, 0.8mm-wall cutting ring whose outer profile carries four wider scalloped tabs (to 35mm radius) as an integral press flange, in one extrude.","applies":["cookie cutter"],"basis":"Combines cookie-cutter-wall-thickness and cookie-cutter-height-flange into one single-step extrude whose outer loop already carries the flange geometry, avoiding a fragile ring-on-ring boolean union","sources":["nsf-ansi-51"],"tags":["recipe","cookie-cutter","extrude"],"recipe":{"prompt":"Model a round cookie cutter: 60mm cutting diameter, 18mm tall, 0.8mm wall, with four scalloped press-flange tabs on the outer edge","steps":[{"tool":"cad_extrude_profile","args":{"outer":[[35,0],[34.867,3.05],[34.468,6.078],[29.336,7.86],[28.191,10.261],[27.189,12.679],[25.981,15],[24.575,17.207],[22.981,19.284],[21.213,21.213],[19.284,22.981],[17.207,24.575],[15,25.981],[12.679,27.189],[10.261,28.191],[7.86,29.336],[6.078,34.468],[3.05,34.867],[0,35],[-3.05,34.867],[-6.078,34.468],[-7.86,29.336],[-10.261,28.191],[-12.679,27.189],[-15,25.981],[-17.207,24.575],[-19.284,22.981],[-21.213,21.213],[-22.981,19.284],[-24.575,17.207],[-25.981,15],[-27.189,12.679],[-28.191,10.261],[-29.336,7.86],[-34.468,6.078],[-34.867,3.05],[-35,0],[-34.867,-3.05],[-34.468,-6.078],[-29.336,-7.86],[-28.191,-10.261],[-27.189,-12.679],[-25.981,-15],[-24.575,-17.207],[-22.981,-19.284],[-21.213,-21.213],[-19.284,-22.981],[-17.207,-24.575],[-15,-25.981],[-12.679,-27.189],[-10.261,-28.191],[-7.86,-29.336],[-6.078,-34.468],[-3.05,-34.867],[0,-35],[3.05,-34.867],[6.078,-34.468],[7.86,-29.336],[10.261,-28.191],[12.679,-27.189],[15,-25.981],[17.207,-24.575],[19.284,-22.981],[21.213,-21.213],[22.981,-19.284],[24.575,-17.207],[25.981,-15],[27.189,-12.679],[28.191,-10.261],[29.336,-7.86],[34.468,-6.078],[34.867,-3.05]],"holes":[[[29.2,0],[28.468,-6.498],[26.308,-12.669],[22.829,-18.206],[18.206,-22.829],[12.669,-26.308],[6.498,-28.468],[0,-29.2],[-6.498,-28.468],[-12.669,-26.308],[-18.206,-22.829],[-22.829,-18.206],[-26.308,-12.669],[-28.468,-6.498],[-29.2,0],[-28.468,6.498],[-26.308,12.669],[-22.829,18.206],[-18.206,22.829],[-12.669,26.308],[-6.498,28.468],[0,29.2],[6.498,28.468],[12.669,26.308],[18.206,22.829],[22.829,18.206],[26.308,12.669],[28.468,6.498]]],"depth":18},"note":"single extrude: outer loop traces the 30mm cutting-ring radius plus four 35mm scalloped press tabs; hole traces the 29.2mm inner bore for a 0.8mm wall"}],"expect":{"volume":8189.24,"faceCount":102,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel — volume within 0.5% and faceCount exact. 102 is an honest analytic count (the crimped outline), not a tessellation"}}}]},{"$schema":"nativecad-dfm-pack/1","id":"load-driven-detailing","title":"Load-driven detailing: rotating bodies, castings and fabricated frames","sector":"load-driven-detailing","version":"2026-10-23","summary":"Cited rules for taking material out of gear/pulley/sprocket bodies, castings and fabricated frames the way engineered parts are: rim backup ratio, web, hub, lightening holes, cast wall/draft/rib/boss, rail taper and flanged holes.","aliases":["load-driven detailing","load-driven design","lightening holes","material removal","gear web","gear rim","backup ratio","cast ribs","cast wall thickness","ladder frame","chassis rail","pulley body","flanged lightening hole"],"crossSector":false,"size":"full","sources":[{"id":"agma-2001-d04","title":"ANSI/AGMA 2001-D04 Fundamental rating factors and calculation methods for involute spur and helical gear teeth (rim thickness factor K_B)","accessed":"2026-10-23"},{"id":"iso-6336-3","title":"ISO 6336-3 Calculation of load capacity of spur and helical gears, Part 3: tooth bending strength (rim factor Y_B)","accessed":"2026-10-23"},{"id":"shigley-ch14","title":"Budynas & Nisbett, Shigleys Mechanical Engineering Design, ch. 14 (AGMA bending, K_B, backup ratio m_B)","url":"https://highered.mheducation.com/sites/dl/free/9814595284/1054140/Budynas_Chapter_14.pdf","accessed":"2026-10-23"},{"id":"iastate-me325","title":"Iowa State ME 325 handout: bending stress in gears (K_B piecewise form)","url":"https://engineering.iastate.edu/~gkstarns/me325/bending_stress_gears.pdf","accessed":"2026-10-23"},{"id":"thin-rim-2024","title":"Int. J. Automotive Technology 2024: thin-rim gear bending; standard K_B not applicable below backup ratio 0.5","url":"https://link.springer.com/article/10.1007/s12239-024-00020-y","accessed":"2026-10-23"},{"id":"gearsolutions-rim","title":"Gear Solutions: rim thickness factor origin (Drago, 1982); AGMA 2001 valid for external gears only","url":"https://gearsolutions.com/?p=25857","accessed":"2026-10-23"},{"id":"iso-53","title":"ISO 53 Cylindrical gears for general and heavy engineering: standard basic rack tooth profile (ha = 1.0 m, hf = 1.25 m)","accessed":"2026-10-23"},{"id":"machinerys-handbook","title":"Machinerys Handbook (Industrial Press): gear, flywheel and key/keyseat sections","accessed":"2026-10-23"},{"id":"dudley-gear","title":"Dudley, Handbook of Practical Gear Design (CRC Press): gear blank, web and hub proportions","accessed":"2026-10-23"},{"id":"schaeffler-needle","title":"Schaeffler / INA needle roller and cage assemblies catalogue (shaft/bore raceway hardness 58-64 HRC)","accessed":"2026-10-23"},{"id":"bralla-dfm","title":"Bralla, Design for Manufacturability Handbook, 2nd ed. (McGraw-Hill), casting chapters","accessed":"2026-10-23"},{"id":"nadca-pss","title":"NADCA Product Specification Standards for Die Castings (wall, draft, rib, boss guidance)","accessed":"2026-10-23"},{"id":"asm-hbk-15","title":"ASM Handbook Vol. 15 Casting (design of castings, section modulus, gating)","accessed":"2026-10-23"},{"id":"campbell-casting","title":"Campbell, Complete Casting Handbook (Chvorinov solidification rule, hot spots)","accessed":"2026-10-23"},{"id":"engineersedge-sand","title":"Engineers Edge: design for sand casting (minimum wall, draft, section change)","url":"https://www.engineersedge.com/sand_cast.htm","accessed":"2026-10-23"},{"id":"giessereilexikon-design","title":"Giessereilexikon: favorable casting design (fillet radius a third to a quarter of wall; hot spots at re-entrant angles)","url":"https://www.giessereilexikon.com/en/foundry-lexicon/Encyclopedia/show/favorable-casting-design-4660/","accessed":"2026-10-23"},{"id":"xometry-diecast","title":"Xometry die casting design guide (rib thickness, draft, boss coring)","url":"https://xometry.com/resources/design-guides/die-casting-design-guide/","accessed":"2026-10-23"},{"id":"iso-8062-3","title":"ISO 8062-3 Geometrical product specifications: dimensional and geometrical tolerances for moulded parts and required machining allowance (RMA)","accessed":"2026-10-23"},{"id":"asm-hbk-2","title":"ASM Handbook Vol. 2 Properties and selection: nonferrous alloys (A356.0-T6, A380.0)","accessed":"2026-10-23"},{"id":"astm-a48","title":"ASTM A48/A48M Gray iron castings (Class 30: 30 ksi min tensile)","accessed":"2026-10-23"},{"id":"astm-a536","title":"ASTM A536 Ductile iron castings (65-45-12)","accessed":"2026-10-23"},{"id":"en-10025-2","title":"EN 10025-2 Hot rolled structural steel, non-alloy grades (S355 yield 355 MPa to 16 mm)","accessed":"2026-10-23"},{"id":"astm-e155","title":"ASTM E155 Reference radiographs for inspection of aluminum and magnesium castings","accessed":"2026-10-23"},{"id":"niu-airframe","title":"Niu, Airframe Stress Analysis and Sizing: lightening holes in webs, flanged holes","accessed":"2026-10-23"},{"id":"peterson-kt","title":"Pilkey, Petersons Stress Concentration Factors (hole in plate: Kt = 3.0 infinite plate, uniaxial tension)","accessed":"2026-10-23"},{"id":"roark","title":"Young & Budynas, Roarks Formulas for Stress and Strain: beams, uniform-strength sections, shear","accessed":"2026-10-23"},{"id":"blodgett-weldments","title":"Blodgett, Design of Weldments (Lincoln Electric): distortion, HAZ, joint detailing","accessed":"2026-10-23"},{"id":"aws-d1-1","title":"AWS D1.1 Structural Welding Code - Steel (weld detailing, gusset and fatigue categories)","accessed":"2026-10-23"}],"entries":[{"id":"ldd-rim-backup-ratio","kind":"rule","tier":1,"title":"Rim backup ratio m_B = t_R / h_t","summary":"Backup ratio m_B = rim thickness under the tooth root t_R divided by whole tooth depth h_t (2.25 m for the ISO 53 rack). Compute it before drilling anything in a gear body: every rim cut is checked against it.","applies":["gear","rim"],"basis":"SRC: AGMA 2001 / Shigley ch.14 define m_B = t_R/h_t; ISO 53 gives h_t = 1.0 m + 1.25 m.","sources":["agma-2001-d04","shigley-ch14","iso-53"],"tags":["backup-ratio","rim","gear"],"value":{"value":"m_B = t_R / h_t, h_t = 2.25 m","unit":"ratio"}},{"id":"ldd-rim-factor-kb","kind":"rule","tier":1,"title":"Rim thickness factor K_B (AGMA 2001) for thin rims","summary":"K_B = 1.0 for m_B >= 1.2; K_B = 1.6 ln(2.242 / m_B) for m_B < 1.2 (1.29 at m_B 1.0, 2.40 at 0.5). Multiplies tooth bending stress. Continuous at 1.2. Covered range 0.5 <= m_B; external gears.","applies":["gear","rim","lightened gear"],"basis":"SRC: textbook piecewise form (Shigley 14); ISO 6336-3 carries an equivalent Y_B. Check constants against the purchased standard.","sources":["agma-2001-d04","iso-6336-3","shigley-ch14","iastate-me325"],"tags":["kb","rim-factor","bending"],"value":{"table":[{"m_B":1.2,"K_B":1},{"m_B":1,"K_B":1.29},{"m_B":0.8,"K_B":1.65},{"m_B":0.6,"K_B":2.11},{"m_B":0.5,"K_B":2.4}]}},{"id":"ldd-rim-min-thickness","kind":"dimension","tier":1,"title":"Rim thickness for K_B = 1.0","summary":"Keep t_R >= 1.2 h_t = 2.7 m under the root so K_B = 1.0 (m=2: 5.4 mm; m=3: 8.1 mm). Thinner is allowed only down to m_B 0.5 with the K_B penalty on the bending check.","applies":["gear","rim"],"basis":"SRC: 1.2 x 2.25 m from the m_B >= 1.2 knee of K_B.","sources":["agma-2001-d04","iso-53"],"tags":["rim","module"],"value":{"min":2.7,"typical":2.7,"unit":"ratio"}},{"id":"ldd-rim-below-half","kind":"rule","tier":2,"title":"Backup ratio below 0.5 is outside the standard","summary":"Below m_B 0.5 the AGMA/ISO rim factor is not applicable and is conservative against FEA; do not lighten there on the formula alone. Run a CalculiX tooth-root solve (cad_fea_run) and cap the cut at the FEA result.","applies":["gear","thin rim"],"basis":"SRC: 2024 thin-rim study reports the factor unusable below 0.5; AGMA/ISO fit range is 0.5 to 1.2.","sources":["thin-rim-2024","gearsolutions-rim"],"tags":["fea","thin-rim"],"value":{"min":0.5,"unit":"ratio"}},{"id":"ldd-rim-internal-gear-excluded","kind":"note","tier":3,"title":"K_B covers external gears only","summary":"AGMA 2001 K_B is stated for external gears; an internal (ring) gear with a thin rim needs its own calculation or FEA, not the external curve.","applies":["ring gear","internal gear"],"basis":"SRC: Gear Solutions note on AGMA 2001 scope.","sources":["gearsolutions-rim"],"tags":["internal-gear"]},{"id":"ldd-web-thickness","kind":"rule","tier":1,"title":"Web thickness against face width","summary":"Web thickness t_W = 0.25 to 0.40 of face width F, and not less than half the rim thickness t_R. A thin web is limited by stiffness and tooth alignment, not shear, so verify deflection with FEA before going thinner.","applies":["gear","web"],"basis":"EST: handbook proportion (Dudley) for webbed gear blanks; strength is rarely the limit, rim deflection is. Verify by cad_fea_run.","sources":["dudley-gear","machinerys-handbook"],"tags":["web","face-width"],"value":{"min":0.25,"max":0.4,"typical":0.3,"unit":"ratio"}},{"id":"ldd-web-position","kind":"rule","tier":2,"title":"Centre the web for spur and helical blanks","summary":"Put the web on the face-width centreline (offset <= 0.1 F) on spur gears; offset webs tilt the rim under load and spoil lead alignment. Helical and bevel blanks may offset to clear the mating gear.","applies":["gear","web"],"basis":"EST: standard blank practice; alignment effect is the reason (Dudley).","sources":["dudley-gear"],"tags":["web","alignment"],"value":{"max":0.1,"unit":"ratio"}},{"id":"ldd-hub-od","kind":"dimension","tier":1,"title":"Hub OD against bore","summary":"Hub OD = 1.6 to 2.0 x bore for a keyed steel hub (1.8 to 2.2 x for cast iron or aluminium). The wall left under the keyseat must still carry the key bearing load.","applies":["gear","timing pulley","chain sprocket","idler","flywheel"],"basis":"EST: common handbook proportion; keyseat depth from Machinerys Handbook key tables.","sources":["machinerys-handbook","dudley-gear"],"tags":["hub","bore"],"value":{"min":1.6,"max":2,"typical":1.8,"unit":"ratio"}},{"id":"ldd-hub-length","kind":"dimension","tier":2,"title":"Hub length against bore","summary":"Hub length = 1.0 to 1.5 x bore, and at least the key length; a hub shorter than 1.0 x bore rocks on the shaft and loads the key at its ends.","applies":["gear","timing pulley","chain sprocket","idler","flywheel"],"basis":"EST: handbook proportion (key length >= bore diameter for a hub that must not rock).","sources":["machinerys-handbook"],"tags":["hub","key"],"value":{"min":1,"max":1.5,"typical":1.25,"unit":"ratio"}},{"id":"ldd-web-fillet","kind":"rule","tier":2,"title":"Web-to-hub and web-to-rim fillets","summary":"Fillet the web into the hub and rim with R = 0.5 to 1.0 x web thickness; a sharp internal corner at the web root is the usual fatigue origin in a lightened body.","applies":["gear","web"],"basis":"EST: stress-concentration practice (Peterson Kt falls steeply by r/t = 0.5).","sources":["peterson-kt","dudley-gear"],"tags":["fillet","fatigue"],"value":{"min":0.5,"max":1,"unit":"ratio"}},{"id":"ldd-lighten-ligaments","kind":"rule","tier":1,"title":"Lightening-hole ligaments to rim, hub and each other","summary":"Leave a ligament >= max(t_W, 4 mm) from each hole to the rim inner face and to the hub OD, and >= max(1.5 t_W, 6 mm) between neighbouring holes. This keeps the rim at its t_R and the hub wall intact.","applies":["gear","pulley","flywheel"],"basis":"EST: ligament >= web thickness so no hole edge is thinner than the web it sits in.","sources":["dudley-gear","niu-airframe"],"tags":["ligament","lightening-hole"],"value":{"min":1,"unit":"ratio"}},{"id":"ldd-lighten-hole-count","kind":"rule","tier":2,"title":"Lightening-hole count and diameter","summary":"Use 4 to 8 equal holes on a web whose radial span (rim ID to hub OD) is >= 3 t_W; hole dia = radial span - 2 x ligament. Pick the count so the hole-to-hole ligament stays >= 1.5 t_W at the hole centre radius.","applies":["gear","pulley","idler"],"basis":"EST: derived from the ligament rule; counts of 4 to 8 are customary for webbed gears 100 to 300 mm.","sources":["dudley-gear"],"tags":["lightening-hole","count"],"value":{"min":4,"max":8,"unit":"count"}},{"id":"ldd-when-solid","kind":"rule","tier":1,"title":"When a rotating body stays solid","summary":"Keep the blank solid when (root radius - hub OD/2) < t_R + 2 x ligament + 6 mm: no hole fits that respects both ligaments. For m=2 that is roughly any gear under about 40 teeth on a 25 mm bore.","applies":["small gear","pinion"],"basis":"EST: geometric consequence of the ligament and rim rules; the 6 mm minimum drillable hole is the floor.","sources":["dudley-gear","agma-2001-d04"],"tags":["solid","pinion"],"value":{"min":6,"unit":"mm"}},{"id":"ldd-web-vs-spoke","kind":"rule","tier":2,"title":"Web or spokes by size and process","summary":"Machined or forged gears use a web with holes up to about 500 mm pitch diameter; cast blanks above that take 4 to 6 spokes of elliptical section, and welded gears use a plate web. Spokes cost a pattern, a web does not.","applies":["large gear","cast pulley","flywheel"],"basis":"EST: handbook practice for large gear and pulley blanks (Machinerys Handbook, Dudley).","sources":["machinerys-handbook","dudley-gear"],"tags":["spoke","web"],"value":{"value":500,"unit":"mm"}},{"id":"ldd-free-gear-limits","kind":"rule","tier":2,"title":"Free gears on needle cages and synchro cones","summary":"A free gear with dog ring, synchro cone and needle-cage bore stays near solid: no holes within 1 m + dog height of the dog teeth or under the cone, bore raceway hardened 58 to 64 HRC. Lighten only the plain web between them.","applies":["free gear","synchro","gearbox"],"basis":"EST: the gear bore is the needle-roller raceway (hardness per Schaeffler/INA) and the dog and cone zones carry shift loads; FEA sets the rest.","sources":["schaeffler-needle","dudley-gear"],"tags":["needle-bearing","dog-ring","synchro"]},{"id":"ldd-pulley-sprocket-body","kind":"rule","tier":2,"title":"Timing pulley and chain sprocket bodies","summary":"Treat the root circle as a gear root: rim >= 0.6 x chain pitch (sprocket) or >= 1.0 x belt tooth height + 2 mm (pulley) under the root, then web and holes by the gear rules. Idler and tensioner pulleys follow the same ligaments.","applies":["timing pulley","chain sprocket","idler","tensioner"],"basis":"EST: no published backup ratio for chain or belt drives; the gear rim rule is applied by analogy and checked by FEA.","sources":["dudley-gear","machinerys-handbook"],"tags":["pulley","sprocket","idler"],"value":{"min":0.6,"unit":"ratio"}},{"id":"ldd-flywheel-damper-inertia","kind":"rule","tier":2,"title":"Flywheels and dampers: put mass at the rim","summary":"Ring inertia I = 0.5 m (r_o^2 + r_i^2); a thin web carries the rim, so remove web and hub mass first. Cast-iron rim speed is held near 30 m/s; check burst margin by FEA, not by this figure.","applies":["flywheel","crank damper"],"basis":"EST: inertia is textbook dynamics; the 30 m/s rim-speed order is a handbook rule of thumb (Machinerys Handbook flywheel section).","sources":["machinerys-handbook"],"tags":["inertia","rim-speed"],"value":{"typical":30000,"unit":"mm/s"}},{"id":"ldd-cast-wall-sand-al","kind":"dimension","tier":1,"title":"Sand-cast aluminium nominal wall","summary":"Nominal wall 4 to 8 mm by size (minimum 2.5 mm, 0.10 in, for small areas); keep every wall within +-25 percent of nominal so solidification stays directional.","applies":["sand casting","aluminium casting","gearbox case"],"basis":"SRC: 0.10 in minimum for aluminium sand castings (Engineers Edge); size bands EST from Bralla.","sources":["engineersedge-sand","bralla-dfm"],"tags":["wall","sand"],"value":{"min":4,"max":8,"typical":5,"unit":"mm"}},{"id":"ldd-cast-wall-iron","kind":"dimension","tier":2,"title":"Grey and ductile iron nominal wall","summary":"Grey iron nominal wall 5 to 12 mm (minimum about 3 mm small parts); ductile iron needs about 1 mm more than grey at the same size. Larger castings take the upper end.","applies":["grey iron","ductile iron","engine block"],"basis":"EST: Bralla/ASM Handbook 15 section-size practice; grey flows into thinner sections than ductile.","sources":["bralla-dfm","asm-hbk-15"],"tags":["wall","iron"],"value":{"min":5,"max":12,"unit":"mm"}},{"id":"ldd-cast-wall-hpdc-al","kind":"dimension","tier":2,"title":"High-pressure die-cast aluminium wall","summary":"Nominal wall 2.0 to 3.5 mm (minimum about 1.2 mm on small areas); thicker walls trap gas porosity and sink. Beyond 4 mm choose permanent mould or sand.","applies":["die casting","timing case","cam cover"],"basis":"EST: NADCA guidance bands (verify against the current PSS table for the alloy and projected area).","sources":["nadca-pss","xometry-diecast"],"tags":["wall","hpdc"],"value":{"min":2,"max":3.5,"typical":2.5,"unit":"mm"},"see":["automotive/diecast-draft-angle"]},{"id":"ldd-cast-wall-pm-al","kind":"dimension","tier":2,"title":"Permanent-mould aluminium wall","summary":"Nominal wall 3 to 6 mm (minimum about 2.5 mm); gravity-fed permanent mould sits between die casting and sand in wall and in surface finish.","applies":["permanent mould casting"],"basis":"EST: Bralla process comparison.","sources":["bralla-dfm"],"tags":["wall","permanent-mould"],"value":{"min":3,"max":6,"unit":"mm"}},{"id":"ldd-cast-draft","kind":"dimension","tier":1,"title":"Draft by casting process","summary":"Draft per side: sand 1 to 3 deg (2 standard, 1 minimum); permanent mould 2 to 3 deg; HPDC 1 deg outside, 1.5 to 3 deg inside and on deep cores. Add draft to every face parallel to the pull, ribs and bosses included.","applies":["sand casting","permanent mould casting","die casting","grey iron","ductile iron"],"basis":"SRC: sand figures from Engineers Edge; die-cast figures from the Xometry/NADCA guide; PM EST.","sources":["engineersedge-sand","xometry-diecast","nadca-pss"],"tags":["draft"],"value":{"table":[{"process":"sand","min_deg":1,"typical_deg":2,"max_deg":3},{"process":"permanent mould","min_deg":2,"max_deg":3},{"process":"HPDC outside","min_deg":1},{"process":"HPDC inside","min_deg":1.5,"max_deg":3}]},"see":["automotive/diecast-draft-angle","consumer/draft-angle-minimum"]},{"id":"ldd-cast-rib-thickness","kind":"rule","tier":1,"title":"Rib thickness against wall","summary":"Rib root thickness 0.6 to 0.8 x wall in sand and iron, 0.4 to 0.6 x wall in die-cast aluminium; a rib as thick as the wall makes a hot spot and a sink at the root.","applies":["sand casting","permanent mould casting","die casting","grey iron","ductile iron"],"basis":"SRC: 40 to 60 percent (die casting, Xometry); sand/iron band EST from the same hot-spot logic (Campbell).","sources":["xometry-diecast","campbell-casting","bralla-dfm"],"tags":["rib"],"value":{"min":0.4,"max":0.8,"unit":"ratio"},"see":["automotive/diecast-rib-thickness-ratio"]},{"id":"ldd-cast-rib-height","kind":"rule","tier":2,"title":"Rib height","summary":"Rib height <= 5 x rib thickness (3 to 5 x wall) for a one-piece casting; taller ribs need draft >= 1 deg both sides and a fading height at the free end so the die releases.","applies":["sand casting","permanent mould casting","die casting","grey iron","ductile iron"],"basis":"EST: handbook practice; limit is core strength and ejection.","sources":["bralla-dfm","nadca-pss"],"tags":["rib","height"],"value":{"max":5,"unit":"ratio"}},{"id":"ldd-cast-rib-spacing","kind":"rule","tier":2,"title":"Rib spacing","summary":"Space ribs >= 2 to 3 x wall apart (centre-to-centre >= 3 x wall); closer ribs make a thin die-steel finger between them and a hot mass of metal under it.","applies":["sand casting","permanent mould casting","die casting","grey iron","ductile iron"],"basis":"EST: die-steel finger strength rule used by die casters (NADCA).","sources":["nadca-pss"],"tags":["rib","spacing"],"value":{"min":2,"max":3,"unit":"ratio"}},{"id":"ldd-cast-boss-od","kind":"dimension","tier":1,"title":"Boss OD at a bolt","summary":"Boss OD = 2.0 to 2.5 x thread diameter (M10: 20 to 25 mm); core out the middle so the boss wall equals the nominal wall, and give the tapped hole at least 1 x d of thread engagement in aluminium.","applies":["bolt boss","bolted flange"],"basis":"EST: handbook proportion; coring to keep a uniform wall is the die-cast practice (Xometry guide).","sources":["xometry-diecast","bralla-dfm"],"tags":["boss","bolt"],"value":{"min":2,"max":2.5,"typical":2.2,"unit":"ratio"}},{"id":"ldd-cast-boss-transition","kind":"rule","tier":2,"title":"Boss-to-wall transition","summary":"Join a boss to the wall with 2 or 3 ribs (0.6 x wall thick) and a root fillet R = 0.25 to 0.33 x wall; an isolated boss on a plain wall is a hot spot and a shrink cavity.","applies":["bolt boss"],"basis":"SRC: fillet a quarter to a third of wall (Giessereilexikon); rib-to-boss practice from the die-casting guide.","sources":["giessereilexikon-design","xometry-diecast"],"tags":["boss","hot-spot"],"value":{"min":0.25,"max":0.33,"unit":"ratio"}},{"id":"ldd-cast-fillet-radius","kind":"rule","tier":1,"title":"Inside fillet radius at every junction","summary":"Inside fillet R = 0.25 to 0.33 x wall (a quarter to a third); the outside radius = inside R + wall so the section stays constant round the corner. Too large a fillet makes a hot spot of its own.","applies":["sand casting","permanent mould casting","die casting","grey iron","ductile iron"],"basis":"SRC: Giessereilexikon (quarter to a third of wall); outside = inside + wall is the constant-section rule (Bralla).","sources":["giessereilexikon-design","bralla-dfm"],"tags":["fillet","corner"],"value":{"min":0.25,"max":0.33,"unit":"ratio"}},{"id":"ldd-cast-section-transition","kind":"rule","tier":2,"title":"Section-change limit","summary":"Keep adjoining sections within 2:1 thickness and blend them with a taper no steeper than 1:4; a step from 8 mm to 3 mm freezes the thin side first and starves the thick side.","applies":["sand casting","permanent mould casting","die casting","grey iron","ductile iron"],"basis":"SRC: 2:1 and 1:4 from the Engineers Edge sand-casting guide.","sources":["engineersedge-sand"],"tags":["transition","taper"],"value":{"max":2,"unit":"ratio"}},{"id":"ldd-cast-hotspot-junction","kind":"rule","tier":1,"title":"Hot spots at junctions","summary":"Solidification time scales with (volume / cooling area)^2 (Chvorinov). Keep the largest circle inscribed at an L, T or X junction <= 1.25 x wall, and stagger ribs so no four-way crossing remains.","applies":["sand casting","permanent mould casting","die casting","grey iron","ductile iron"],"basis":"SRC: Chvorinov rule (Campbell); the 1.25 x inscribed-circle limit is EST design practice.","sources":["campbell-casting","asm-hbk-15"],"tags":["hot-spot","junction","chvorinov"],"value":{"max":1.25,"unit":"ratio"}},{"id":"ldd-cast-machined-pads","kind":"rule","tier":2,"title":"Machined pads only where a face mates","summary":"Raise a pad 2 to 3 mm (sand) or 0.5 to 1 mm (die-cast) above the cast face and machine only that: mating faces, bearing bores and bolt seats. Leave everything else as cast.","applies":["sand casting","permanent mould casting","die casting","grey iron","ductile iron"],"basis":"EST: machining allowance category per ISO 8062-3 RMA; the bands here are typical for small to medium parts.","sources":["iso-8062-3","bralla-dfm"],"tags":["pad","machining-allowance"],"value":{"min":2,"max":3,"unit":"mm"}},{"id":"ldd-cast-pad-on-section","kind":"rule","tier":2,"title":"Pads on thick sections, clear of the parting line","summary":"Place pads over a rib or boss (not on a bare wall) so the cut does not thin the wall below 0.75 x nominal, and keep them >= 5 mm clear of the parting line and the draft break.","applies":["sand casting","permanent mould casting","die casting","grey iron","ductile iron"],"basis":"EST: a pad cut into a bare wall removes the allowance from the wall itself.","sources":["bralla-dfm"],"tags":["pad","parting-line"],"value":{"min":5,"unit":"mm"}},{"id":"ldd-rail-taper-moment","kind":"rule","tier":1,"title":"Rail depth follows the bending moment","summary":"For constant stress at fixed width, section modulus follows M(x): depth h ~ sqrt(M). Cantilever end load (M ~ x) gives a parabolic taper, uniform load (M ~ x^2) a straight linear taper. Depth tracks the moment, not the length.","applies":["ladder frame","chassis rail","fabricated frame","plate"],"basis":"SRC: beam of uniform strength (Roark; Shigley ch.3), h = sqrt(6 M / (b sigma)).","sources":["roark"],"tags":["taper","moment","rail"],"value":{"value":"h(x) = sqrt(6 M(x) / (b sigma_allow))","unit":"ratio"}},{"id":"ldd-rail-taper-limit","kind":"rule","tier":2,"title":"Where the taper stops","summary":"Stop tapering where shear governs: web depth >= 1.5 V / (t tau_allow), and keep the half-angle <= 15 deg for cut-and-weld rails so web buckling and weld detailing stay simple. Taper from the support toward the free end only.","applies":["ladder frame","chassis rail","fabricated frame","plate"],"basis":"EST: shear check from beam theory (Roark, tau = 1.5 V / A); 15 deg is a fabrication practice limit.","sources":["roark","blodgett-weldments"],"tags":["taper","shear"],"value":{"max":15,"unit":"deg"}},{"id":"ldd-hole-dia-vs-web","kind":"rule","tier":1,"title":"Lightening-hole diameter against web depth","summary":"Unflanged hole diameter <= 0.5 to 0.6 x web depth at that station; flanged hole up to 0.8 x web depth. The hole sits on the neutral axis, in low-shear mid-span, never within one web depth of a support or load point.","applies":["ladder frame","chassis rail","fabricated frame","plate"],"basis":"EST: airframe practice (Niu, lightening holes in webs); limits come from shear buckling of the strip left above and below.","sources":["niu-airframe","roark"],"tags":["lightening-hole","web"],"value":{"min":0.5,"max":0.8,"unit":"ratio"}},{"id":"ldd-hole-edge-distance","kind":"rule","tier":2,"title":"Edge distance and hole-to-hole spacing","summary":"Hole edge to web edge >= 0.2 x web depth and >= 2 x plate thickness; hole-to-hole ligament >= 1.0 x hole diameter. Smaller ligaments buckle in shear before the web yields.","applies":["ladder frame","chassis rail","fabricated frame","plate"],"basis":"EST: conservative airframe-style limits (Niu); settle thin cases with an FEA buckling run.","sources":["niu-airframe"],"tags":["ligament","edge-distance"],"value":{"min":0.2,"unit":"ratio"}},{"id":"ldd-hole-flange","kind":"feature","tier":2,"title":"Flanged lightening holes","summary":"A flanged (drawn) hole turns up a lip of height >= 3 x plate thickness and radius >= 1 x thickness; the lip restores the buckling stiffness the hole removed, which is why flanged holes may reach 0.8 x web depth.","applies":["sheet web","plate rail"],"basis":"EST: aircraft-structure practice (Niu); lip geometry from a press-forming limit of about 3 t.","sources":["niu-airframe"],"tags":["flange","lightening-hole"],"value":{"min":3,"unit":"ratio"}},{"id":"ldd-hole-kt","kind":"rule","tier":1,"title":"Stress concentration of a hole","summary":"A circular hole in a wide plate under tension has Kt = 3.0 (4.0 in pure shear): the edge sees three times nominal stress. Put holes where nominal stress is under a third of allowable, near the neutral axis, with slot corners at R >= 1 x plate thickness.","applies":["ladder frame","chassis rail","fabricated frame","plate"],"basis":"SRC: Peterson Kt for a circular hole, infinite plate (3.0); slot corner radius EST.","sources":["peterson-kt"],"tags":["kt","hole","stress-concentration"],"value":{"value":3,"unit":"ratio"}},{"id":"ldd-gusset-crossmember","kind":"rule","tier":1,"title":"Gussets at crossmember joints","summary":"Gusset thickness >= 0.8 x joined member wall, leg length >= 1.5 x member depth, 45 deg bias, with a corner scallop R >= 20 mm so welds never cross. Use where a crossmember meets a rail.","applies":["crossmember joint","ladder frame"],"basis":"EST: weldment practice (Blodgett, AWS D1.1 detailing); verify the joint by FEA at the load case.","sources":["blodgett-weldments","aws-d1-1"],"tags":["gusset","joint"],"value":{"min":1.5,"unit":"ratio"}},{"id":"ldd-fish-plate","kind":"rule","tier":2,"title":"Fish plates across a joint","summary":"Fish plate length >= 2 x member depth each side of the joint, thickness >= member wall, welded all round with a 25 mm return; tapered ends reduce the stiffness step.","applies":["crossmember joint"],"basis":"EST: weldment practice (Blodgett); end taper spreads the load.","sources":["blodgett-weldments"],"tags":["fish-plate","joint"],"value":{"min":2,"unit":"ratio"}},{"id":"ldd-hole-to-weld","kind":"rule","tier":1,"title":"Hole-to-weld distance","summary":"Keep a hole edge >= 2 x plate thickness (and >= 6 mm) from a weld toe: the heat-affected zone, distortion and the weld-toe stress riser should not overlap a hole edge.","applies":["ladder frame","chassis rail","fabricated frame","plate"],"basis":"EST: Blodgett detailing guidance on HAZ and distortion; AWS D1.1 for fatigue categories.","sources":["blodgett-weldments","aws-d1-1"],"tags":["weld","hole","haz"],"value":{"min":6,"unit":"mm"}},{"id":"ldd-verify-after-removal","kind":"rule","tier":1,"title":"Re-verify after every cut","summary":"After lightening, rerun the stress solve at design load: peak von Mises incl. Kt <= yield / 1.5 (EST) and report mass removed. Reject a cut that drops the safety factor under target; stop when mass stops falling.","applies":["all load-driven parts"],"basis":"EST: 1.5 on yield is a common static factor for non-critical structure; the project sets its own target.","sources":["roark","peterson-kt"],"tags":["fea","verify","safety-factor"],"value":{"min":1.5,"unit":"ratio"}},{"id":"ldd-mat-gear-steel","kind":"material","tier":2,"title":"Case-hardened gear steel","summary":"8620 carburised: case 58 to 62 HRC, core about 30 to 40 HRC; 4140 through-hardened 28 to 36 HRC for large lightly loaded gears. Lightening holes sit in the soft core, so hole edges stay unhardened.","applies":["gear"],"basis":"EST: typical hardness bands (Shigley ch.14 tables for AGMA grades).","sources":["shigley-ch14"],"tags":["8620","4140","hardness"]},{"id":"ldd-mat-al-castings","kind":"material","tier":2,"title":"Cast aluminium alloys","summary":"A356.0-T6 sand/PM: tensile about 230 MPa, yield about 165 MPa. A380 HPDC: tensile about 320 MPa, yield about 160 MPa. Design to yield; use the lower tensile for fatigue-limited bolted joints.","applies":["aluminium casting"],"basis":"SRC: ASM Handbook Vol. 2 alloy datasheets (typical, not minimum).","sources":["asm-hbk-2"],"tags":["A356","A380"],"value":{"table":[{"alloy":"A356-T6","yield_MPa":165,"uts_MPa":230},{"alloy":"A380","yield_MPa":160,"uts_MPa":320}]}},{"id":"ldd-mat-cast-iron","kind":"material","tier":2,"title":"Cast iron grades","summary":"Grey iron Class 30 (ASTM A48): tensile 207 MPa min, no yield point. Ductile 65-45-12 (ASTM A536): tensile 448 MPa, yield 310 MPa, 12 percent elongation. Ductile for bearing caps and cranks, grey for damping and blocks.","applies":["grey iron","ductile iron"],"basis":"SRC: ASTM A48 and A536 grade designations (30 ksi, 65-45-12).","sources":["astm-a48","astm-a536"],"tags":["grey","ductile"],"value":{"table":[{"grade":"A48 Class 30","uts_MPa":207},{"grade":"A536 65-45-12","yield_MPa":310,"uts_MPa":448}]}},{"id":"ldd-mat-frame-steel","kind":"material","tier":2,"title":"Frame plate steels","summary":"S355 (EN 10025-2) yield 355 MPa to 16 mm, A36 yield 250 MPa. Higher-yield plate lets the rail taper deeper and holes grow, but stiffness (E = 210 GPa) does not change, so deflection can govern first.","applies":["ladder frame","chassis rail","fabricated frame","plate"],"basis":"SRC: EN 10025-2 grade table; ASTM A36 yield 36 ksi.","sources":["en-10025-2","roark"],"tags":["S355","A36"],"value":{"table":[{"grade":"S355","yield_MPa":355},{"grade":"A36","yield_MPa":250}]}},{"id":"ldd-test-gear-lightened-fea","kind":"test","tier":2,"title":"Lightened gear body FEA check","summary":"Solve the gear at 1.5 x rated torque: tooth-root stress (with K_B), web shear and hub-key bearing stress must each sit below yield / 1.25 (EST); rim deflection under tooth load <= 0.02 mm per mm of face width.","applies":["gear","lightened body"],"basis":"EST: acceptance numbers set by this pack; K_B per AGMA 2001. Use cad_fea_run.","sources":["agma-2001-d04","shigley-ch14"],"tags":["fea","gear"],"value":{"value":1.5,"unit":"ratio"}},{"id":"ldd-test-cast-radiograph","kind":"test","tier":2,"title":"Hot-spot radiograph of a cast part","summary":"Radiograph the heaviest junctions (inscribed circle > 1.25 x wall) against ASTM E155 reference radiographs; shrinkage porosity at a rib or boss root above the agreed grade is a design fault, not only a process one.","applies":["sand casting","permanent mould casting","die casting","grey iron","ductile iron"],"basis":"SRC: ASTM E155 reference radiographs for aluminium and magnesium castings.","sources":["astm-e155"],"tags":["radiograph","porosity"],"value":{"value":1.25,"unit":"ratio"}},{"id":"ldd-test-frame-fea","kind":"test","tier":2,"title":"Frame lightening-hole FEA check","summary":"Shell-model solve at the torsion and bump load cases: peak stress at a lightening-hole edge incl. Kt 3.0 <= yield / 1.5; web shear buckling factor >= 1.0 at the hole station.","applies":["ladder frame","chassis rail","fabricated frame","plate"],"basis":"EST: acceptance numbers from the Kt and safety-factor entries; buckling factor from a linear buckling solve.","sources":["peterson-kt","roark"],"tags":["fea","frame"],"value":{"value":1.5,"unit":"ratio"}},{"id":"ldd-test-rotor-overspeed","kind":"test","tier":3,"title":"Overspeed spin of a lightened rotor","summary":"Spin rotating bodies to 120 percent of the operating maximum for 30 s with no permanent growth (bore change < 0.01 mm); a hub or web with a hole near the hub OD is the first to yield.","applies":["gear","timing pulley","chain sprocket","idler","flywheel"],"basis":"EST: 120 percent is a common spin-test practice for rotating machinery; the project may set a higher figure.","sources":["machinerys-handbook"],"tags":["overspeed","burst"],"value":{"value":120,"unit":"%"}},{"id":"ldd-std-agma-2001","kind":"standard","tier":3,"title":"ANSI/AGMA 2001-D04 and ISO 6336-3","summary":"AGMA 2001 gives K_B (m_B < 1.2, applicable to m_B >= 0.5, external gears); ISO 6336-3 carries the equivalent rim factor Y_B. Cite the clause in the purchased edition; this pack quotes the textbook form.","applies":["gear"],"basis":"SRC: both standards; textbook form per Shigley ch.14.","sources":["agma-2001-d04","iso-6336-3"],"tags":["standard","agma","iso"],"value":{"value":1.2,"unit":"ratio"}},{"id":"ldd-std-iso-8062-3","kind":"standard","tier":3,"title":"ISO 8062-3 machining allowance","summary":"ISO 8062-3 sets required machining allowance (RMA) grades A to K by casting process and largest dimension; the pad height rule uses its sand and die-cast order of magnitude (2 to 3 mm, 0.5 to 1 mm).","applies":["sand casting","permanent mould casting","die casting","grey iron","ductile iron"],"basis":"SRC: ISO 8062-3.","sources":["iso-8062-3"],"tags":["standard","rma"],"value":{"min":0.5,"max":3,"unit":"mm"}},{"id":"ldd-recipe-lightened-gear-body","kind":"recipe","tier":2,"title":"Recipe: lightened gear body (m 3, 60 teeth)","summary":"Revolved hub, web and rim for a module-3, 60-tooth blank, then six dia 36 lightening holes at radius 52.5 through the 7.5 mm web; every dimension follows the rim, web, hub and ligament rules.","applies":["gear","lightened body"],"basis":"EST: Worked example of rim-min-thickness, web-thickness, hub-od, lighten-ligaments and lighten-hole-count.","sources":["iso-53","agma-2001-d04"],"tags":["recipe","gear","lightening"],"recipe":{"prompt":"Model a module-3, 60-tooth gear body with hub, web and six lightening holes, 30 mm bore, 30 mm face","steps":[{"tool":"cad_revolve_profile","args":{"profile":[[15,0],[27,0],[27,16.25],[78.15,16.25],[78.15,5],[86.25,5],[86.25,35],[78.15,35],[78.15,23.75],[27,23.75],[27,40],[15,40]]},"note":"m=3, N=60 gear body about Z: 30 mm bore, hub OD 54 (1.8 x bore), web 7.5 mm (0.25 F) centred on a 30 mm face, rim 8.1 mm (2.7 m) under the root circle R 86.25 (teeth omitted)"},{"tool":"cad_cylinder","args":{"r":18,"h":20,"origin":[52.5,0,10]},"note":"lightening-hole tool 1 of 6: dia 36 at radius 52.5, ligament 7.5 mm to hub and rim"},{"tool":"cad_boolean_subtract","args":{"of":"$0","tool":"$1"},"note":"cut the hole through the web"},{"tool":"cad_cylinder","args":{"r":18,"h":20,"origin":[26.25,45.4663,10]},"note":"lightening-hole tool 2 of 6: dia 36 at radius 52.5, ligament 7.5 mm to hub and rim"},{"tool":"cad_boolean_subtract","args":{"of":"$2","tool":"$3"},"note":"cut the hole through the web"},{"tool":"cad_cylinder","args":{"r":18,"h":20,"origin":[-26.25,45.4663,10]},"note":"lightening-hole tool 3 of 6: dia 36 at radius 52.5, ligament 7.5 mm to hub and rim"},{"tool":"cad_boolean_subtract","args":{"of":"$4","tool":"$5"},"note":"cut the hole through the web"},{"tool":"cad_cylinder","args":{"r":18,"h":20,"origin":[-52.5,0,10]},"note":"lightening-hole tool 4 of 6: dia 36 at radius 52.5, ligament 7.5 mm to hub and rim"},{"tool":"cad_boolean_subtract","args":{"of":"$6","tool":"$7"},"note":"cut the hole through the web"},{"tool":"cad_cylinder","args":{"r":18,"h":20,"origin":[-26.25,-45.4663,10]},"note":"lightening-hole tool 5 of 6: dia 36 at radius 52.5, ligament 7.5 mm to hub and rim"},{"tool":"cad_boolean_subtract","args":{"of":"$8","tool":"$9"},"note":"cut the hole through the web"},{"tool":"cad_cylinder","args":{"r":18,"h":20,"origin":[26.25,-45.4663,10]},"note":"lightening-hole tool 6 of 6: dia 36 at radius 52.5, ligament 7.5 mm to hub and rim"},{"tool":"cad_boolean_subtract","args":{"of":"$10","tool":"$11"},"note":"cut the hole through the web"}],"expect":{"volume":269760.29,"faceCount":24,"watertight":true,"note":"measured 2026-10-23: tools/run_dfm_recipe.js --expect"}}},{"id":"ldd-recipe-tapered-rail-web","kind":"recipe","tier":2,"title":"Recipe: tapered rail web with lightening holes","summary":"A 600 mm rail web, 4 mm plate, tapering from 120 mm deep at the root to 60 mm at the tip, with three round lightening holes on the neutral axis at 0.48, 0.44 and 0.40 of the local depth.","applies":["ladder frame","chassis rail","fabricated frame","plate"],"basis":"EST: Worked example of rail-taper-moment, hole-dia-vs-web and hole-edge-distance (UDL: linear taper).","sources":["roark","niu-airframe"],"tags":["recipe","rail","taper","lightening"],"recipe":{"prompt":"Model a 600 mm tapered chassis rail web, 120 mm deep at the root to 60 mm at the tip, 4 mm plate, with three lightening holes on the neutral axis","steps":[{"tool":"cad_extrude_profile","args":{"depth":4,"outer":[[0,-60],[600,-30],[600,30],[0,60]],"holes":[{"circle":{"cx":150,"cy":0,"r":25}},{"circle":{"cx":300,"cy":0,"r":20}},{"circle":{"cx":450,"cy":0,"r":15}}]},"note":"taper outline plus holes dia 50, 40, 30 at x = 150, 300, 450 (local depth 105, 90, 75)"}],"expect":{"volume":200292.04,"faceCount":12,"watertight":true,"note":"measured 2026-10-23: tools/run_dfm_recipe.js --expect"}}}]},{"$schema":"nativecad-dfm-pack/1","id":"maker-enclosures","title":"Maker enclosures — Raspberry Pi, Arduino, ESP32 cases and project boxes","sector":"maker-enclosures","version":"2026-09-04","summary":"Board outlines and mounting holes for the SBC/dev-board families electronics.json doesn't cover (Pi Zero, Nano, NodeMCU, Jetson Nano, CM4, HATs), plus maker-specific fit, vent, lid, fan-grill, DIN-rail and material choices for a 3D-printed or extruded project box.","aliases":["raspberry pi case","arduino case","arduino uno","esp32 case","pico","raspberry pi pico","dev board enclosure","hat","din rail enclosure","sbc case","pcb case","vent slots","project box enclosure","3d printed project box"],"crossSector":false,"size":"full","sources":[{"id":"rpi-zero-2w-mech","title":"Raspberry Pi Zero 2 W Mechanical Drawing","url":"https://datasheets.raspberrypi.com/rpizero/raspberry-pi-zero-2-w-mechanical-drawing.pdf","accessed":"2026-09-04"},{"id":"rpi-4-mech","title":"Raspberry Pi 4 Model B Mechanical Drawing","url":"https://datasheets.raspberrypi.com/rpi4/raspberry-pi-4-mechanical-drawing.pdf","accessed":"2026-09-04"},{"id":"arduino-nano-store","title":"Arduino Nano Product Page (docs.arduino.cc)","url":"https://docs.arduino.cc/hardware/nano","accessed":"2026-09-04"},{"id":"nodemcu-devkit-repo","title":"NodeMCU Devkit Hardware Repository (board outline)","url":"https://github.com/nodemcu/nodemcu-devkit-v1.0","accessed":"2026-09-04"},{"id":"nvidia-jetson-nano","title":"NVIDIA Jetson Nano Module Product Page (mechanical spec)","url":"https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-nano/product-development/","accessed":"2026-09-04"},{"id":"rpi-cm4-datasheet","title":"Raspberry Pi Compute Module 4 Datasheet","url":"https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf","accessed":"2026-09-04"},{"id":"rpi-hats-spec","title":"Raspberry Pi HATs Specification (raspberrypi/hats, mechanical requirements)","url":"https://github.com/raspberrypi/hats/blob/master/README.md","accessed":"2026-09-04"},{"id":"computer-fan-sizes","title":"Standard axial cooling-fan frame sizes and mounting-hole spacing","url":"https://noctua.at/en/products/fan","accessed":"2026-09-04"},{"id":"hubs-3dp-tolerance","title":"Hubs FDM 3D Printing Design and Tolerance Guide","url":"https://www.hubs.com/knowledge-base/fdm-3d-printing-tolerances/","accessed":"2026-09-04"},{"id":"rpi-thermal-docs","title":"Raspberry Pi Documentation — thermals and throttling","url":"https://www.raspberrypi.com/documentation/computers/raspberry-pi.html","accessed":"2026-09-04"},{"id":"en-60715","title":"EN 60715 Standardized mounting on rails (TH35 DIN rail)","url":"https://www.din.de/en","accessed":"2026-09-04"},{"id":"hammond-1455-series","title":"Hammond Manufacturing 1455 Series extruded-aluminium enclosures","url":"https://www.hammfg.com/electronics/small-case/aluminum/1455","accessed":"2026-09-04"},{"id":"extrusion-2020-spec","title":"2020 T-slot aluminium extrusion profile specification","url":"https://openbuildspartstore.com/v-slot-20x20-linear-rail/","accessed":"2026-09-04"},{"id":"usb-micro-b-spec","title":"USB Micro-B receptacle mechanical envelope (USB-IF)","url":"https://www.usb.org/documents","accessed":"2026-09-04"},{"id":"ipc-2221","title":"IPC-2221 Generic Standard on Printed Board Design","url":"https://www.ipc.org/toc/IPC-2221.pdf","accessed":"2026-09-04"},{"id":"iec-60068-2-31","title":"IEC 60068-2-31 Rough-handling shock (drop) test","url":"https://webstore.iec.ch/publication/1000","accessed":"2026-09-04"}],"entries":[{"id":"pi-zero-mounting","kind":"dimension","tier":1,"title":"Raspberry Pi Zero / Zero 2 W board outline and mounting holes","summary":"Pi Zero and Zero 2 W share a 65 x 30 mm outline with four ~2.75 mm mounting holes on a 58 x 23 mm rectangle centred on the board — the Zero 2 W reuses the original Zero's case footprint and hole pattern.","applies":["raspberry pi zero","raspberry pi zero 2 w","pi zero","sbc"],"value":{"table":[{"param":"board","x":65,"y":30},{"param":"holes","x":58,"y":23},{"param":"hole-diameter","value":2.75}],"unit":"mm"},"basis":"Official Raspberry Pi Zero 2 W mechanical drawing","sources":["rpi-zero-2w-mech"],"tags":["raspberry-pi","pi-zero","mounting","pattern"]},{"id":"arduino-nano-outline","kind":"dimension","tier":1,"title":"Arduino Nano board outline (no standard mounting holes)","summary":"Arduino Nano is 45 x 18 mm with no standardised mounting-hole pattern across revisions; design the case around header-pin friction, a card-edge socket, or adhesive pads rather than a screwed-down board.","applies":["arduino nano"],"value":{"table":[{"param":"board","x":45,"y":18}],"unit":"mm"},"basis":"Arduino Nano official form factor; hole placement (where present) is not standardised across vendor clones","sources":["arduino-nano-store"],"tags":["arduino","nano","mounting"]},{"id":"nodemcu-devkit-outline","kind":"dimension","tier":1,"title":"NodeMCU / ESP8266-ESP32 devkit board outline","summary":"A NodeMCU-style ESP8266 or ESP32 devkit board runs about 48-58 mm long by 26-31 mm wide across dual 0.1 in pin-header rows, varying by vendor — confirm the exact board's own drawing before fixing a case width.","applies":["nodemcu","esp8266","esp32 devkit","esp32 case"],"value":{"table":[{"param":"length","min":48,"max":58},{"param":"width","min":26,"max":31}],"unit":"mm"},"basis":"NodeMCU/Amica devkit reference board layout; vendor clones vary the same way the ESP32 DevKitC does","sources":["nodemcu-devkit-repo"],"see":["electronics/esp32-devkit-width"],"tags":["esp8266","esp32","nodemcu","devkit"]},{"id":"jetson-nano-module-envelope","kind":"dimension","tier":1,"title":"Jetson Nano compute module envelope","summary":"The Jetson Nano production module is a 69.6 x 45 mm SO-DIMM-style board on a 260-pin edge connector; the Developer Kit's carrier board is closer to 100 x 80 mm — case to the carrier, not the bare module, unless building a custom carrier.","applies":["jetson nano","jetson nano developer kit"],"value":{"table":[{"param":"module","x":69.6,"y":45}],"unit":"mm"},"basis":"NVIDIA Jetson Nano product page mechanical specification","sources":["nvidia-jetson-nano"],"tags":["jetson","nano","sbc","module"]},{"id":"compute-module-4-envelope","kind":"dimension","tier":1,"title":"Raspberry Pi Compute Module 4 (CM4) envelope","summary":"CM4 is a 55 x 40 mm SO-DIMM-form module with no mounting holes of its own — it plugs into a carrier's edge connector; the official CM4 IO Board carrier is 105 x 70 mm with four corner mounting holes to case around instead.","applies":["compute module 4","cm4","compute module"],"value":{"table":[{"param":"module","x":55,"y":40},{"param":"io-board-carrier","x":105,"y":70}],"unit":"mm"},"basis":"Raspberry Pi Compute Module 4 datasheet","sources":["rpi-cm4-datasheet"],"tags":["compute-module","cm4","sbc"]},{"id":"raspberry-pi-hat-spec","kind":"dimension","tier":1,"title":"Raspberry Pi HAT board outline and stacking standoff","summary":"A HAT board outline is 65 x 56.5 mm (the Pi footprint plus a little extra length) and must be spaced at least 8 mm off the Pi by its standoffs/header; most HATs use an 11 mm standoff for solder-side clearance on both boards.","applies":["hat","raspberry pi hat","uhat"],"value":{"table":[{"param":"board","x":65,"y":56.5},{"param":"standoff-min","value":8},{"param":"standoff-typical","value":11}],"unit":"mm"},"basis":"Raspberry Pi HATs specification, mechanical requirement 5 (GPIO connector spacing)","sources":["rpi-hats-spec"],"tags":["hat","standoff","stacking"]},{"id":"fan-grill-40mm-hole-pattern","kind":"dimension","tier":1,"title":"40 mm cooling-fan mounting-hole pattern","summary":"A standard 40 x 40 x 10 mm cooling fan has four mounting holes on a 32 mm square pitch, sized for an M3 or 4-40 screw (~3.2-4.3 mm clearance hole) — the pattern a fan-grill plate or Pi enclosure fan boss should match.","applies":["fan","40mm fan","fan grill","vent slots"],"value":{"table":[{"param":"frame","value":40},{"param":"hole-pitch","value":32}],"unit":"mm"},"basis":"Industry-standard 40mm axial fan frame, consistent across vendors","sources":["computer-fan-sizes"],"tags":["fan","vent","grill","mounting"]},{"id":"fan-grill-30mm-hole-pattern","kind":"dimension","tier":1,"title":"30 mm cooling-fan mounting-hole pattern","summary":"A 30 x 30 x 7-10 mm cooling fan (common on Pi 4/5 top-hat coolers) has four mounting holes on a 24 mm square pitch, sized for an M3 screw — smaller than the 40 mm fan's 32 mm pitch, don't mix the two up in a fan boss.","applies":["fan","30mm fan","raspberry pi fan"],"value":{"table":[{"param":"frame","value":30},{"param":"hole-pitch","value":24}],"unit":"mm"},"basis":"Industry-standard 30mm axial fan frame, common on SBC cooling HATs","sources":["computer-fan-sizes"],"tags":["fan","vent","mounting"]},{"id":"maker-print-fit-clearance","kind":"tolerance","tier":1,"title":"Print clearance for a maker enclosure lid/boss fit","summary":"A press-fit or sliding joint on an FDM-printed maker case (lid rim into base, boss into a socket) wants 0.2-0.3 mm clearance per side on an unsanded, well-tuned printer; 0.3 mm is the safe default for a first print.","applies":["3d printed","fit test","lid","boss"],"value":{"min":0.2,"max":0.3,"typical":0.3,"unit":"mm"},"basis":"FDM dimensional-accuracy guidance for mating printed parts","sources":["hubs-3dp-tolerance"],"tags":["clearance","fit","fdm","tolerance"]},{"id":"vent-slot-width-printable","kind":"rule","tier":1,"title":"Minimum printable width for an FDM vent slot","summary":"A ventilation slot cut through an FDM wall should be at least 2 mm wide so the top perimeter bridges cleanly instead of sagging or fusing shut — narrower than the IP2X finger-safe 3 mm maximum, so 2-3 mm satisfies both at once.","applies":["vent slots","fdm","3d printed project box"],"value":{"min":2,"unit":"mm"},"basis":"Bridging/overhang limit for a short unsupported slot span on a common 0.4mm-nozzle FDM print","sources":["hubs-3dp-tolerance"],"see":["electronics/vent-slot-ip2x"],"tags":["vent","slot","fdm","printable"]},{"id":"maker-enclosure-default-wall","kind":"rule","tier":1,"title":"Default wall thickness for a first maker enclosure","summary":"Start a Pi/Arduino/ESP32 case at 2-2.5 mm wall if printing (about 5-6 perimeters at 0.4 mm) or 1.5-2 mm if injection moulding; check the electronics pack for the full process min/max before pushing thinner.","applies":["enclosure","project box enclosure","dev board enclosure"],"value":{"min":1.5,"max":2.5,"typical":2,"unit":"mm"},"basis":"Common maker-community starting wall before iterating against a specific printer or process","sources":["hubs-3dp-tolerance"],"see":["electronics/enclosure-wall-thickness-fdm","electronics/enclosure-wall-thickness-im"],"tags":["wall","enclosure","default"]},{"id":"port-cutout-height-rule","kind":"rule","tier":1,"title":"Placing a port cutout's height on an enclosure wall","summary":"A port cutout's Z-centre on the case wall = standoff height (board top above the floor) + half the connector's body height, e.g. a Pi4 on a 5 mm standoff with a 3.3 mm-tall USB-C body centres that cutout about 6.65 mm above the floor.","applies":["usb-c","hdmi","usb-a","raspberry pi case"],"value":{"typical":6.65,"unit":"mm","note":"worked example: 5mm standoff + 3.3mm USB-C body / 2"},"basis":"The connector body sits on top of the board, which itself sits on top of the standoff","sources":["rpi-4-mech","ipc-2221"],"see":["electronics/pcb-standoff-height","electronics/usb-c-cutout"],"tags":["port","cutout","height","standoff"]},{"id":"sbc-heat-throttle-clearance","kind":"rule","tier":1,"title":"Vent or fan a case around the Pi's thermal throttle points","summary":"Raspberry Pi 4/5 soft-throttles near 80 C and hard-throttles at 85 C; a sealed case with no venting can raise idle-to-load temperature 10-15 C over an open board, so give a sealed printed case at least 150 mm2 of vent-slot area or a 30/40 mm fan mount over the SoC.","applies":["raspberry pi case","sbc case","vent slots"],"value":{"table":[{"param":"soft-throttle","value":80},{"param":"hard-throttle","value":85}],"unit":"C"},"basis":"Raspberry Pi OS default thermal-governor thresholds","sources":["rpi-thermal-docs"],"see":["electronics/fin-spacing-natural-convection"],"tags":["thermal","throttle","vent","raspberry-pi"]},{"id":"din-rail-enclosure-depth-clearance","kind":"rule","tier":1,"title":"Rear clearance a DIN-rail maker enclosure needs behind its wall","summary":"A DIN-rail-mounted enclosure needs at least 20 mm clear behind its mounting wall — the TH35 rail's 15 mm-deep profile plus room for a clip's ~7.5 mm flex channel to seat — or the case body fouls the rail before the clip locks.","applies":["din rail enclosure"],"value":{"min":20,"unit":"mm"},"basis":"TH35 rail depth plus a standard plastic clip's channel depth","sources":["en-60715"],"see":["electronics/din-rail-profile","electronics/din-rail-clip-dimensions"],"tags":["din-rail","clearance","enclosure"]},{"id":"snap-lid-maker","kind":"feature","tier":1,"title":"Distributed snap bumps for a maker enclosure lid","summary":"A maker case lid that should close by hand without tooling uses 4-8 shallow snap bumps (0.5-0.8 mm overhang, 15-25 mm apart) round the rim rather than one or two deep cantilever hooks — more, lower-force catches close evenly and survive more cycles.","applies":["snap fit","lid","project box enclosure"],"value":{"min":0.5,"max":0.8,"unit":"mm"},"basis":"Distributing catch force keeps strain per bump low on PLA/PETG, which is more brittle than ABS/PC","sources":["hubs-3dp-tolerance"],"see":["electronics/snap-fit-cantilever-lid"],"tags":["snap-fit","lid","maker"]},{"id":"screw-lid-maker","kind":"feature","tier":2,"title":"Screw-down lid as the low-risk alternative to a snap lid","summary":"A screw-down lid uses 4 corner M2.5/M3 screws into printed bosses (self-tapping into PLA/PETG for occasional access, heat-set inserts if opened often); keep each boss centre at least 1.5x the hole diameter from any wall.","applies":["screw lid","enclosure","lid"],"value":{"min":1.5,"unit":"ratio"},"basis":"Boss-to-wall clearance avoids a thin, weak rib where the boss meets the case wall","sources":["hubs-3dp-tolerance"],"see":["hardware/heat-set-inserts-metric"],"tags":["screw","lid","boss"]},{"id":"hat-header-keepout","kind":"rule","tier":2,"title":"Keep-out around the 40-pin header for HAT compatibility","summary":"Leave a clear zone of at least 5 mm around the 40-pin GPIO header footprint and no wall on the header's outward short edge, so a stacked HAT's ribbon or camera-cable slot has room, per the HAT mechanical spec's flex-cable allowance.","applies":["hat","gpio header","raspberry pi case"],"value":{"min":5,"unit":"mm"},"basis":"HAT mechanical spec camera/display flex-cable slot clearance","sources":["rpi-hats-spec"],"tags":["hat","gpio","keepout"]},{"id":"heat-set-insert-boss-print-margin","kind":"fastener","tier":2,"title":"Sizing a printed boss around a heat-set insert on a thin wall","summary":"A boss standing alone off a 2 mm shelled wall for an M2.5 heat-set insert (4.0 mm insert OD, hardware pack table) wants roughly an 8 mm boss OD, not just insert-OD x2 — the extra margin covers the boss-to-shell wall junction so it doesn't crack on install.","applies":["heat-set insert","boss","enclosure"],"value":{"typical":8,"unit":"mm"},"basis":"Boss OD >= 2x insert OD plus a wall-junction margin, from field experience with thin-wall printed bosses","sources":["hubs-3dp-tolerance"],"see":["hardware/heat-set-inserts-metric"],"tags":["insert","boss","print"]},{"id":"hammond-box-reference-sizes","kind":"dimension","tier":2,"title":"Off-the-shelf enclosure reference sizes (Hammond 1455 series)","summary":"Hammond's 1455 extruded-aluminium series is a common size reference: 1455N1201 is 100 x 50 x 25 mm, 1455T2201 is 165 x 101 x 41 mm — useful envelopes to check a custom design against before committing to a print run.","applies":["project box enclosure","reference"],"value":{"table":[{"param":"1455N1201","x":100,"y":50,"z":25},{"param":"1455T2201","x":165,"y":101,"z":41}],"unit":"mm"},"basis":"Published Hammond Manufacturing 1455 series dimensions","sources":["hammond-1455-series"],"tags":["hammond","reference","aluminium"]},{"id":"project-box-cable-entry-clearance","kind":"rule","tier":2,"title":"Clearance around a cable-gland or grommet hole in a project box","summary":"Leave at least 3 mm of clear wall around a cable-gland or grommet hole's outer diameter so the gland's clamping nut doesn't overlap a nearby boss or internal rib, and stand any gland boss at least one gland-OD off the nearest corner.","applies":["cable gland","grommet","project box enclosure"],"value":{"min":3,"unit":"mm"},"basis":"The gland nut needs a flat annulus to seat and turn without binding on adjacent features","sources":["hubs-3dp-tolerance"],"see":["electronics/cable-gland-pg-sizes","electronics/cable-gland-metric-sizes"],"tags":["cable-gland","clearance"]},{"id":"pcb-case-tolerance-stackup","kind":"tolerance","tier":2,"title":"Internal cavity length for a boxed board, worked example","summary":"Cavity length = board length + 2x print clearance (0.3 mm) + 2x standoff play (~0.5 mm); a Pi 4 (85 mm) in a printed case wants an internal cavity of about 86.6 mm so the board drops in without forcing the standoff bosses.","applies":["raspberry pi case","sbc case","tolerance"],"value":{"typical":86.6,"unit":"mm"},"basis":"Sum of the board dimension, twice the print-clearance tolerance and twice a small standoff-position play","sources":["hubs-3dp-tolerance","rpi-4-mech"],"tags":["tolerance","stackup","cavity"]},{"id":"sbc-case-standoff-boss-height","kind":"feature","tier":2,"title":"Standoff-boss height on a shelled floor","summary":"A standoff boss unioned onto a shelled case floor should stand floor-thickness + board-clearance tall, embedded down through the floor per the box+union convention: a 2 mm floor plus 5 mm PCB clearance makes a 7 mm-tall boss whose bottom 2 mm buries into the floor.","applies":["standoff","boss","enclosure"],"value":{"typical":7,"unit":"mm"},"basis":"Embedding the boss through the floor (rather than starting it at the floor's top face) avoids a non-manifold seam at the union","sources":["ipc-2221"],"see":["electronics/pcb-standoff-height"],"tags":["standoff","boss","union"]},{"id":"din-rail-clip-integration","kind":"feature","tier":2,"title":"Attaching a DIN-rail clip to an enclosure's rear wall","summary":"Union a DIN-rail clip block (matching the electronics pack's clip channel geometry) onto the case's rear wall; that local patch needs to be at least the clip's 7.5 mm channel depth thick, usually a thickened boss rather than the case's normal 2 mm shell.","applies":["din rail enclosure","clip"],"value":{"min":7.5,"unit":"mm"},"basis":"The clip's channel depth sets the minimum thickness of the wall patch it's built on","sources":["en-60715"],"see":["electronics/din-rail-clip-dimensions"],"tags":["din-rail","clip","feature"]},{"id":"material-pla-enclosure","kind":"material","tier":2,"title":"PLA for a low-heat maker enclosure","summary":"PLA prints easily and holds tolerance well but softens around 55-60 C, so it's fine for an Arduino/ESP32 case or anything away from a hot component, but not for a case sitting directly over a Raspberry Pi's SoC in a warm room.","applies":["pla","3d printing","enclosure"],"value":{"table":[{"param":"heat-deflection","value":55}],"unit":"C"},"basis":"PLA heat-deflection temperature at standard test load","sources":["hubs-3dp-tolerance"],"tags":["pla","material","thermal"]},{"id":"material-petg-enclosure","kind":"material","tier":2,"title":"PETG as the practical minimum for a Pi-adjacent enclosure","summary":"PETG holds shape to about 70-80 C and is noticeably tougher than PLA, making it the practical minimum for any case that sits directly over a Raspberry Pi (which itself runs 60-80 C under load) — PLA can visibly sag there.","applies":["petg","raspberry pi case","enclosure"],"value":{"table":[{"param":"heat-deflection","min":70,"max":80}],"unit":"C"},"basis":"PETG heat-deflection range versus a Pi's typical loaded SoC/board temperature","sources":["hubs-3dp-tolerance","rpi-thermal-docs"],"tags":["petg","material","thermal","raspberry-pi"]},{"id":"material-abs-enclosure","kind":"material","tier":2,"title":"ABS for a tougher, warmer-tolerant maker case","summary":"ABS holds to about 90-100 C and takes acetone smoothing/vapour polishing well, at the cost of warping more than PETG/PLA on an open-bed printer — a reasonable step up from PETG for a case near sustained heat.","applies":["abs","enclosure"],"value":{"table":[{"param":"heat-deflection","min":90,"max":100}],"unit":"C"},"basis":"ABS heat-deflection range and known warping behaviour on FDM","sources":["hubs-3dp-tolerance"],"tags":["abs","material","thermal"]},{"id":"material-asa-enclosure","kind":"material","tier":2,"title":"ASA for an outdoor or UV-exposed maker enclosure","summary":"ASA matches ABS's toughness and heat resistance (~95-100 C) but adds UV/weathering resistance ABS lacks, making it the better default for an outdoor project box, garden sensor case or anything left in sunlight for months.","applies":["asa","outdoor","enclosure"],"value":{"table":[{"param":"heat-deflection","min":95,"max":100}],"unit":"C"},"basis":"ASA weatherability versus ABS on the same base thermal class","sources":["hubs-3dp-tolerance"],"tags":["asa","material","outdoor","uv"]},{"id":"material-aluminium-extrusion-enclosure","kind":"material","tier":2,"title":"Aluminium T-slot extrusion for a rigid maker enclosure frame","summary":"2020 (20x20mm) T-slot aluminium extrusion with printed end caps/panels builds a rigid, reconfigurable project box or rack frame; the 6 mm T-slot takes M5 T-nuts, avoiding print-only fastening for the load-bearing frame.","applies":["aluminium extrusion","2020 extrusion","project box enclosure"],"value":{"table":[{"param":"profile","value":20},{"param":"slot-width","value":6}],"unit":"mm"},"basis":"Common 2020 T-slot extrusion profile used in maker frames and enclosures","sources":["extrusion-2020-spec"],"tags":["aluminium","extrusion","frame"]},{"id":"recipe-pi4-case-base","kind":"recipe","tier":2,"title":"Recipe: Raspberry Pi 4 case base with standoff bosses and port cutouts","summary":"Build a 95x66x30 mm Pi 4 case base: a 2 mm shell open at the top, four standoff bosses unioned onto the floor on the Pi 4's 58x49 mm hole pattern, and USB-A/HDMI port cutouts subtracted through the front wall.","applies":["raspberry pi case","sbc case","dev board enclosure"],"basis":"Combines pi-zero/pi4-style mounting pattern, sbc-case-standoff-boss-height and port-cutout-height-rule into one buildable printed base","sources":["rpi-4-mech","hubs-3dp-tolerance"],"tags":["recipe","raspberry-pi","case"],"recipe":{"prompt":"Model a 95x66x30mm Raspberry Pi 4 case base: 2mm shell wall open at the top, four standoff bosses on the Pi 4's 58x49mm mounting-hole pattern, and USB-A and HDMI port cutouts through the front wall","steps":[{"tool":"cad_box","args":{"dx":95,"dy":66,"dz":30},"note":"outer case block"},{"tool":"cad_shell","args":{"of":"$0","thickness":2,"open":[{"normal":[0,0,1]}]},"note":"hollow into a tray, open top; shell before bosses/cutouts"},{"tool":"cad_box","args":{"dx":6,"dy":6,"dz":7,"origin":[7.5,7.5,0]},"note":"boss 1, embedded through the 2mm floor, at hole (10.5,10.5)"},{"tool":"cad_boolean_union","args":{"of":"$1","tool":"$2"},"note":"union boss 1 onto the tray"},{"tool":"cad_box","args":{"dx":6,"dy":6,"dz":7,"origin":[65.5,7.5,0]},"note":"boss 2, at hole (68.5,10.5) — 58mm from boss 1 in x"},{"tool":"cad_boolean_union","args":{"of":"$3","tool":"$4"},"note":"union boss 2"},{"tool":"cad_box","args":{"dx":6,"dy":6,"dz":7,"origin":[7.5,56.5,0]},"note":"boss 3, at hole (10.5,59.5) — 49mm from boss 1 in y"},{"tool":"cad_boolean_union","args":{"of":"$5","tool":"$6"},"note":"union boss 3"},{"tool":"cad_box","args":{"dx":6,"dy":6,"dz":7,"origin":[65.5,56.5,0]},"note":"boss 4, at hole (68.5,59.5), completing the 58x49mm rectangle"},{"tool":"cad_boolean_union","args":{"of":"$7","tool":"$8"},"note":"union boss 4"},{"tool":"cad_box","args":{"dx":13.6,"dy":6,"dz":6.4,"origin":[20,-2,15]},"note":"USB-A cutout tool piercing the front wall (y=0)"},{"tool":"cad_boolean_subtract","args":{"of":"$9","tool":"$10"},"note":"cut the USB-A port opening"},{"tool":"cad_box","args":{"dx":15.6,"dy":6,"dz":6.6,"origin":[45,-2,15]},"note":"HDMI cutout tool piercing the front wall"},{"tool":"cad_boolean_subtract","args":{"of":"$11","tool":"$12"},"note":"cut the HDMI port opening"}],"expect":{"volume":30464,"faceCount":39,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-pico-case","kind":"recipe","tier":2,"title":"Recipe: Raspberry Pi Pico case with standoff bosses and USB cutout","summary":"Build a 59x29x12 mm Pico case: a 1.5 mm shell open at the top, two standoff bosses on the Pico's 47x11.4 mm mounting-hole pattern, and a Micro-USB cutout subtracted through the end wall.","applies":["pico","raspberry pi pico","dev board enclosure"],"basis":"Combines pi-pico-mounting geometry, sbc-case-standoff-boss-height and micro-usb-cutout into one buildable printed case","sources":["hubs-3dp-tolerance"],"tags":["recipe","pico","case"],"recipe":{"prompt":"Model a 59x29x12mm Raspberry Pi Pico case: 1.5mm shell wall open at the top, two standoff bosses on the Pico's 47x11.4mm mounting-hole pattern, and a Micro-USB cutout through the end wall","steps":[{"tool":"cad_box","args":{"dx":59,"dy":29,"dz":12},"note":"outer case block"},{"tool":"cad_shell","args":{"of":"$0","thickness":1.5,"open":[{"normal":[0,0,1]}]},"note":"hollow into a tray, open top"},{"tool":"cad_box","args":{"dx":5,"dy":5,"dz":4.5,"origin":[3.5,6.3,0]},"note":"boss 1, embedded through the 1.5mm floor, at hole (6,8.8)"},{"tool":"cad_boolean_union","args":{"of":"$1","tool":"$2"},"note":"union boss 1 onto the tray"},{"tool":"cad_box","args":{"dx":5,"dy":5,"dz":4.5,"origin":[50.5,6.3,0]},"note":"boss 2, at hole (53,8.8) — 47mm from boss 1 in x"},{"tool":"cad_boolean_union","args":{"of":"$3","tool":"$4"},"note":"union boss 2"},{"tool":"cad_box","args":{"dx":3,"dy":9.1,"dz":3.4,"origin":[-1,9.95,5]},"note":"Micro-USB cutout tool piercing the end wall (x=0)"},{"tool":"cad_boolean_subtract","args":{"of":"$5","tool":"$6"},"note":"cut the Micro-USB port opening"}],"expect":{"volume":5347.59,"faceCount":25,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-fan-grill-plate","kind":"recipe","tier":2,"title":"Recipe: 40 mm fan grill mounting plate","summary":"Build a 44x44x3 mm plate for a 40 mm fan: four M3 clearance mounting holes on the fan's 32 mm square pitch, plus a ring of twelve 2.5 mm round vent holes through the centre as the grille.","applies":["fan grill","vent slots","40mm fan"],"basis":"Combines fan-grill-40mm-hole-pattern and vent-hole-round-alternative into one buildable plate using cad_hole_pattern","sources":["computer-fan-sizes","hubs-3dp-tolerance"],"tags":["recipe","fan","grill"],"recipe":{"prompt":"Model a 44x44x3mm mounting plate for a 40mm fan: four M3 clearance holes on the fan's 32mm square mounting pattern, and a ring of twelve 2.5mm round vent holes through the centre","steps":[{"tool":"cad_box","args":{"dx":44,"dy":44,"dz":3},"note":"plate blank"},{"tool":"cad_hole_pattern","args":{"of":"$0","type":"drill","diameter":3.2,"pattern":{"kind":"grid","origin":[6,6],"dx":32,"dy":32,"nx":2,"ny":2}},"note":"4x M3 clearance mounting holes on the 32mm fan pitch"},{"tool":"cad_hole_pattern","args":{"of":"$1","type":"drill","diameter":2.5,"pattern":{"kind":"circular","center":[22,22],"radius":15,"count":12}},"note":"ring of 12 round vent holes forming the grille"}],"expect":{"volume":5534.78,"faceCount":38,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"test-drop-maker-enclosure","kind":"test","tier":2,"title":"Drop test for a maker enclosure","summary":"A 1000 mm drop onto a hard floor on each face/corner/edge (a maker-scale version of IEC 60068-2-31) wants outer corners radiused >= 2 mm and no unsupported flat wall span over 40 mm, or a printed PLA/PETG case cracks at the corner or splits the flat.","applies":["drop test","enclosure"],"value":{"typical":1000,"unit":"mm"},"basis":"Scaled-down maker version of the rough-handling shock test's corner/edge/face drop sequence","sources":["iec-60068-2-31"],"see":["electronics/test-drop-iec-60068-2-31"],"tags":["drop","test","corner-radius"]},{"id":"test-thermal-throttle-clearance","kind":"test","tier":2,"title":"Thermal soak test against the Pi's throttle points","summary":"Run the boxed Pi at full CPU load for 10-15 minutes and read the SoC temperature; if it crosses 80 C before load settles, the case needs more vent-slot area or a fan mount — a soak test is what validates a vent design, not a spec check alone.","applies":["thermal test","raspberry pi case","vent slots"],"value":{"typical":80,"unit":"C"},"basis":"Sustained-load soak is the only way to confirm a given vent design keeps the SoC under its throttle point","sources":["rpi-thermal-docs"],"tags":["thermal","test","raspberry-pi"]},{"id":"test-fit-print-clearance","kind":"test","tier":2,"title":"Fit test for boss/socket and lid clearance","summary":"Print the base and lid (or a boss/socket coupon) and test-fit by hand: if it needs force or sanding, clearance is under the 0.2-0.3 mm default; if it rattles, it's over — adjust the mating dimension by 0.1 mm steps and reprint.","applies":["fit test","tolerance","3d printed"],"value":{"typical":0.3,"unit":"mm"},"basis":"Printer-to-printer variance makes a coupon test more reliable than trusting the nominal clearance alone","sources":["hubs-3dp-tolerance"],"tags":["fit-test","tolerance","print"]},{"id":"micro-usb-cutout","kind":"dimension","tier":2,"title":"Micro-USB panel cutout","summary":"A Micro-USB Type-B receptacle body is about 8.7 x 3.0 mm; cut the panel opening to roughly 9.3 x 3.4 mm (0.2-0.4 mm clearance per side) for boards like the Pico or a NodeMCU that still use Micro-USB rather than USB-C.","applies":["micro-usb","pico","nodemcu","connector cutout"],"value":{"table":[{"param":"receptacle","x":8.7,"y":3},{"param":"cutout","x":9.3,"y":3.4}],"unit":"mm"},"basis":"USB Micro-B receptacle mechanical envelope plus panel clearance","sources":["usb-micro-b-spec"],"tags":["micro-usb","cutout","connector"]},{"id":"vent-hole-round-alternative","kind":"feature","tier":2,"title":"Round vent holes as the print-friendly alternative to slots","summary":"A grid of ~2.5 mm round holes passes the same IP2X finger-safety limit as a 3 mm slot (the round hole is smaller than the 12.5 mm test finger the same way) while printing overhang-free on FDM, unlike a long thin slot.","applies":["vent slots","enclosure","fdm"],"value":{"typical":2.5,"unit":"mm"},"basis":"A round hole has no unsupported bridging span the way a slot's long edge does","sources":["hubs-3dp-tolerance"],"see":["electronics/vent-slot-ip2x"],"tags":["vent","round-hole","fdm"]},{"id":"lid-alignment-lip","kind":"feature","tier":2,"title":"Alignment lip between a case base and lid","summary":"A 0.5-1 mm tall, clearance-fit step round the base rim (socket) that a matching lip on the lid drops into keeps a snap or screw lid centred and blocks a straight dust/light path at the seam; print the lip on the lid, the socket on the base.","applies":["lid","enclosure","alignment"],"value":{"min":0.5,"max":1,"unit":"mm"},"basis":"A shallow step self-centres the lid and breaks the seam's straight-through gap without adding real sealing","sources":["hubs-3dp-tolerance"],"tags":["lid","alignment","lip"]},{"id":"project-box-lid-screw-count","kind":"rule","tier":2,"title":"Lid screw count by enclosure length","summary":"A screw-down lid uses 4 corner screws under about 120 mm of case length; past 150 mm add a 5th, central screw so the lid doesn't bow enough at mid-span to gap the seam or warp against a corner-only clamp.","applies":["screw lid","project box enclosure"],"value":{"min":4,"typical":4,"unit":"count"},"basis":"Unsupported lid span between corner screws grows with case length, the same logic as a board's standoff count","sources":["hubs-3dp-tolerance"],"see":["electronics/mounting-standoff-count-rule"],"tags":["screw","lid","count"]},{"id":"maker-enclosure-corner-radius","kind":"rule","tier":2,"title":"Outer corner radius for a maker enclosure","summary":"Round outer corners to at least 2 mm: it blunts the point most likely to crack on a drop and removes the FDM top-layer overhang defect a sharp 90 degree outside corner leaves on some slicers.","applies":["enclosure","corner","drop test"],"value":{"min":2,"unit":"mm"},"basis":"Corner-radius floor shared by the drop test's geometric requirement and FDM's own printability limit","sources":["hubs-3dp-tolerance","iec-60068-2-31"],"tags":["corner","radius","drop","fdm"]},{"id":"aluminium-extrusion-panel-slot","kind":"dimension","tier":3,"title":"Panel slot for a T-slot extrusion enclosure frame","summary":"A 2020 extrusion frame holds flat panels in a 3 mm deep channel sized to the panel thickness plus 0.3 mm print clearance, routed or printed into an end cap that clamps into the extrusion's 6 mm T-slot with an M5 T-nut.","applies":["aluminium extrusion","panel","project box enclosure"],"value":{"typical":3,"unit":"mm"},"basis":"Panel-retention channel depth common to T-slot extrusion frame builds","sources":["extrusion-2020-spec"],"tags":["extrusion","panel","slot"]}]},{"$schema":"nativecad-dfm-pack/1","id":"marine","title":"Marine — hulls, deck hardware, through-hulls, corrosion and outboard mounting","sector":"marine","version":"2026-09-03","summary":"Hull scantlings by ISO 12215-5, deck-hardware and cleat sizing, through-hull/seacock hole sizes and waterline rules, marine fastener and galvanic-isolation practice, drainage, outboard transom heights, and the ISO/ABYC/USCG tests and materials a small-craft part is held to.","aliases":["boat","hull","deck hardware","cleat","seacock","through-hull","transom","outboard","bilge","stanchion","yacht","dinghy","kayak"],"crossSector":false,"size":"full","sources":[{"id":"iso-12215-5","title":"ISO 12215-5:2019 Small craft — Hull construction and scantlings — Part 5: Design pressures for monohulls, design stresses, scantlings determination","url":"https://www.iso.org/standard/72178.html","accessed":"2026-09-03"},{"id":"iso-12217","title":"ISO 12217-1/2/3:2015 Small craft — Stability and buoyancy assessment and categorization","url":"https://www.iso.org/standard/61478.html","accessed":"2026-09-03"},{"id":"abyc-h27","title":"ABYC H-27 Seacocks, Thru-Hull Connections, and Drain Plugs","url":"https://abycinc.org/page/StandardsCatalog","accessed":"2026-09-03"},{"id":"abyc-h40","title":"ABYC H-40 Anchoring, Mooring and Strong Point Design and Installation","url":"https://abycinc.org/page/StandardsCatalog","accessed":"2026-09-03"},{"id":"abyc-e2","title":"ABYC E-2 Cathodic Protection","url":"https://abycinc.org/page/StandardsCatalog","accessed":"2026-09-03"},{"id":"iso-9093","title":"ISO 9093:2020 Small craft — Seacocks and through-hull fittings","url":"https://www.iso.org/standard/71651.html","accessed":"2026-09-03"},{"id":"iso-15083","title":"ISO 15083:2019 Small craft — Bilge-pumping systems","url":"https://www.iso.org/standard/71218.html","accessed":"2026-09-03"},{"id":"uscg-33cfr183","title":"33 CFR Part 183 — Boats and Associated Equipment (US Coast Guard)","url":"https://www.ecfr.gov/current/title-33/chapter-I/subchapter-S/part-183","accessed":"2026-09-03"},{"id":"bs-1088","title":"BS 1088-1:2018 Marine plywood — Specification for the quality of timber and manufacture of plywood for use in marine environments","url":"https://www.bsigroup.com/","accessed":"2026-09-03"},{"id":"gerr-boat-strength","title":"Dave Gerr, The Elements of Boat Strength (International Marine/McGraw-Hill, 2000)","note":"Reference text for scantling rules of thumb, stringer spacing, and galvanic series practice","accessed":"2026-09-03"},{"id":"outboard-shaft-length-guide","title":"BoatUS / outboard-industry transom-height and shaft-length convention (short/long/XL shaft)","url":"https://www.boatus.org/","accessed":"2026-09-03"},{"id":"astm-b98","title":"ASTM B98/B98M Standard Specification for Copper-Silicon Alloy Rod, Bar and Shapes for General Purposes (silicon bronze)","url":"https://www.astm.org/b0098_b0098m-19.html","accessed":"2026-09-03"},{"id":"astm-b928","title":"ASTM B928/B928M Standard Specification for High Magnesium Aluminum-Alloy Sheet and Plate for Marine Service (5083/5086)","url":"https://www.astm.org/b0928_b0928m-19.html","accessed":"2026-09-03"},{"id":"astm-a276","title":"ASTM A276/A276M Standard Specification for Stainless Steel Bars and Shapes (Type 316)","url":"https://www.astm.org/a0276_a0276m-17.html","accessed":"2026-09-03"}],"entries":[{"id":"iso-12215-design-categories","kind":"standard","tier":1,"title":"ISO 12215-5 design categories A-D and their design pressures","summary":"ISO 12215-5 scantlings scale with design category: A (ocean, wind >40kn, wave >4m), B (offshore, ≤40kn/4m), C (inshore, ≤27kn/2m), D (sheltered, ≤18kn/0.5m) — the same hull dropped from category A to D can shed 30-50% of its bottom-panel thickness.","applies":["hull","scantlings"],"value":{"options":["A","B","C","D"]},"basis":"ISO 12215-5 Table 1 design category definitions drive every downstream design-pressure formula","sources":["iso-12215-5"],"tags":["iso12215","design-category","scantlings"]},{"id":"grp-single-skin-bottom-thickness","kind":"dimension","tier":1,"title":"Single-skin GRP bottom laminate thickness by LOA","summary":"A single-skin E-glass/polyester GRP bottom panel runs about 6 mm on a 6 m boat up to 12 mm on a 12 m boat (design category B/C planing hull), roughly linear with LOA — always confirm against an ISO 12215-5 panel calculation, this is a starting estimate only.","applies":["hull","grp","fiberglass hull"],"value":{"min":6,"max":12,"unit":"mm"},"basis":"ISO 12215-5 design-pressure and panel-size scaling for single-skin bottom laminates, category B/C","sources":["iso-12215-5"],"tags":["hull","grp","thickness","bottom"]},{"id":"cored-deck-panel-skins","kind":"dimension","tier":1,"title":"Cored deck panel: skin and core thickness","summary":"A cored deck panel typically pairs two 2-3 mm GRP skins with a 12-25 mm core (balsa, Coosa or foam); thin skins carry the in-plane/bending load while the core sets panel stiffness — going below 2 mm skin risks print-through and puncture.","applies":["deck","cored panel","sandwich construction"],"value":{"table":[{"param":"skin","min":2,"max":3},{"param":"core","min":12,"max":25}],"unit":"mm"},"basis":"ISO 12215-5 sandwich-panel scantling method: skin thickness from in-plane stress, core thickness from panel deflection/shear","sources":["iso-12215-5"],"tags":["deck","cored","sandwich","skin","core"]},{"id":"aluminium-hull-plate-thickness","kind":"dimension","tier":2,"title":"Aluminium hull plate thickness (small craft)","summary":"A welded 5083/5086 aluminium hull bottom plate runs 4-6 mm on boats in the 6-12 m range, thinner than the equivalent GRP laminate section because plate yields rather than fractures locally — topsides can drop 1-2 mm below the bottom-plate figure.","applies":["hull","aluminium hull"],"value":{"min":4,"max":6,"unit":"mm"},"basis":"ISO 12215-5 metal-hull scantling method for 5083/5086 plate at design category B/C","sources":["iso-12215-5"],"tags":["hull","aluminium","plate","thickness"]},{"id":"hull-stringer-spacing","kind":"dimension","tier":1,"title":"Hull bottom stringer/frame spacing","summary":"Longitudinal stringers or transverse frames under a GRP or aluminium hull bottom panel space 300-450 mm apart on a typical 6-12 m planing hull — closer spacing lets the panel scantling (and hence its thickness) shrink, the usual trade-off against added stringer weight.","applies":["hull","stringer","frame"],"value":{"min":300,"max":450,"unit":"mm"},"basis":"ISO 12215-5 panel unsupported-span input; Gerr's scantling rules of thumb for stringer spacing on planing hulls","sources":["iso-12215-5","gerr-boat-strength"],"tags":["hull","stringer","spacing","frame"]},{"id":"cleat-size-by-loa","kind":"dimension","tier":1,"title":"Horn-cleat length by boat LOA","summary":"Cleat size scales with boat length in a standard series: 150 mm (6 in) for dinghies/small runabouts, 200 mm (8 in) around 6-8 m, 250 mm (10 in) around 8-11 m, and 300 mm (12 in) for boats over ~11 m — undersizing a cleat concentrates line load onto a short horn and bends it.","applies":["cleat","horn cleat","deck hardware"],"value":{"options":[150,200,250,300],"unit":"mm"},"basis":"Common marine-hardware cleat sizing series matched to boat LOA and expected line diameter","sources":["abyc-h40"],"tags":["cleat","size","deck-hardware"]},{"id":"cleat-backing-plate-thickness","kind":"rule","tier":1,"title":"Cleat/stanchion backing plate minimum thickness","summary":"Every through-bolted cleat or stanchion base needs a backing plate of ≥ 6 mm 316 stainless (or aluminium) or ≥ 12 mm G10/FR4 laminate, spreading bolt load over enough deck-core area that a hard pull doesn't crush the core or pull the bolt through.","applies":["cleat","stanchion","backing plate","deck hardware"],"value":{"table":[{"material":"316 stainless / aluminium","min":6},{"material":"G10/FR4","min":12}],"unit":"mm"},"basis":"ABYC H-40 strong-point load-spreading requirement for deck hardware backing plates","sources":["abyc-h40"],"tags":["backing-plate","cleat","stanchion"]},{"id":"stanchion-dimensions","kind":"dimension","tier":1,"title":"Lifeline stanchion diameter and height","summary":"A lifeline stanchion tube is 25 mm (1 in) outside diameter in 316 stainless, 600-750 mm tall above the deck so the top lifeline sits around waist height; taller/thinner stanchions need a wall-thickness or diameter increase per ABYC H-40 load rules.","applies":["stanchion","lifeline","deck hardware"],"value":{"table":[{"param":"diameter","value":25},{"param":"height","min":600,"max":750}],"unit":"mm"},"basis":"Common 316-stainless stanchion tube stock size and ABYC H-40 lifeline height guidance","sources":["abyc-h40"],"tags":["stanchion","lifeline","diameter","height"]},{"id":"through-hull-nps-sizes","kind":"dimension","tier":1,"title":"Through-hull/seacock pipe sizes (NPS)","summary":"Through-hull fittings and seacocks are sized on the NPS (nominal pipe size) series 1/2, 3/4, 1, 1-1/4, 1-1/2 and 2 in — a bilge pump discharge is typically 3/4-1 in, a raw-water intake for a small inboard 3/4-1-1/4 in, and a cockpit drain up to 1-1/2-2 in.","applies":["through-hull","seacock","plumbing"],"value":{"options":[0.5,0.75,1,1.25,1.5,2],"unit":"in"},"basis":"ISO 9093 / ABYC H-27 seacock and through-hull nominal pipe size series","sources":["iso-9093","abyc-h27"],"tags":["through-hull","seacock","nps","pipe-size"]},{"id":"through-hull-hole-diameters","kind":"dimension","tier":1,"title":"Through-hull hull-penetration hole diameters","summary":"Drill the hull penetration to match the fitting's tailpipe OD, not the NPS nominal bore: common through-hull hole sizes are ⌀22, 29, 35, 48 and 60 mm for the 1/2 through 2 in NPS series — undersizing binds the tailpipe, oversizing starves the flange's bedding-compound seal area.","applies":["through-hull","seacock","hull penetration"],"value":{"options":[22,29,35,48,60],"unit":"mm"},"basis":"Typical bronze/Marelon through-hull tailpipe OD by NPS size","sources":["iso-9093"],"tags":["through-hull","hole","diameter"]},{"id":"seacock-waterline-rule","kind":"rule","tier":1,"title":"Through-hull placement above/below the waterline","summary":"Every through-hull below the waterline, or within 300 mm above it at maximum heel, needs a seacock with a positive shutoff bolted to the hull (ISO 9093 / ABYC H-27: 3 bolts on ⌀ ≥ 25 mm fittings); higher drains that can never submerge may skip it.","applies":["through-hull","seacock","hull penetration"],"basis":"ABYC H-27 requires a seacock on every through-hull that can be submerged in normal operation or at the boat's maximum heel angle","sources":["abyc-h27"],"tags":["seacock","waterline","through-hull","rule"]},{"id":"marine-fastener-alloys","kind":"fastener","tier":1,"title":"Marine fastener alloys: 316 stainless and silicon bronze","summary":"Above-waterline and general deck-hardware fasteners are 316 (A4) stainless; fasteners into bronze through-hulls, shafts or wood use silicon bronze so both sit close on the galvanic series — never fasten 316 stainless into aluminium without isolation.","applies":["fastener","hardware","through-hull"],"value":{"options":["316 stainless","silicon bronze"]},"basis":"Corrosion-resistant, low-magnetic marine fastener alloys matched by galvanic compatibility to the part they join","sources":["astm-a276","astm-b98"],"tags":["fastener","316","silicon-bronze","material"]},{"id":"galvanic-isolation-rule","kind":"rule","tier":1,"title":"Isolating stainless/bronze fasteners from aluminium","summary":"Never bed a 316-stainless or bronze fastener/fitting directly against bare aluminium — insert a 1-2 mm nylon or Delrin isolation bushing/washer and a non-conductive bedding compound, or the anodic aluminium pits and fails within one salt-water season.","applies":["fastener","aluminium hull","corrosion"],"value":{"min":1,"max":2,"unit":"mm"},"basis":"Galvanic series separation between stainless/bronze and aluminium drives rapid anodic attack on the aluminium without a dielectric break","sources":["abyc-e2","gerr-boat-strength"],"tags":["galvanic","isolation","aluminium","corrosion"]},{"id":"anode-sizing-by-water-type","kind":"dimension","tier":1,"title":"Sacrificial anode alloy by water type","summary":"Match the anode alloy to the water: zinc (−1.05 V) for salt, aluminium (−1.10 V) for salt or brackish, magnesium (−1.60 V) for fresh only — zinc passivates in fresh water within 2–4 weeks. Size anodes for 1 year at ≤ 50 % consumption.","applies":["anode","cathodic protection","corrosion"],"value":{"table":[{"water":"salt","alloy":"zinc or aluminium"},{"water":"brackish","alloy":"aluminium"},{"water":"fresh","alloy":"magnesium"}]},"basis":"ABYC E-2 anode-alloy selection by electrolyte resistivity and passivation behaviour","sources":["abyc-e2"],"tags":["anode","zinc","aluminium","magnesium","cathodic-protection"]},{"id":"limber-hole-diameter","kind":"dimension","tier":1,"title":"Limber hole diameter through stringers/frames","summary":"Limber holes that let bilge water pass under stringers and frames to the pump pickup run ⌀25-40 mm — too small clogs with debris and strands water in a compartment, too large weakens the stringer's shear web.","applies":["limber hole","bilge","stringer","drainage"],"value":{"min":25,"max":40,"unit":"mm"},"basis":"Common bilge limber-hole sizing balancing drainage flow against stringer/frame shear-web strength","sources":["iso-15083","gerr-boat-strength"],"tags":["limber-hole","bilge","drainage"]},{"id":"self-bailing-deck-height","kind":"rule","tier":1,"title":"Self-bailing cockpit sole height above waterline","summary":"A self-bailing cockpit sole must sit ≥ 150-300 mm above the static waterline (more toward 300 mm on a boat that squats under load or heels hard) so cockpit scuppers drain by gravity instead of siphoning seawater back in when the transom digs in.","applies":["cockpit","scupper","self-bailing","drainage"],"value":{"min":150,"max":300,"unit":"mm"},"basis":"USCG 33 CFR 183 and common small-craft practice for self-bailing cockpit freeboard over the loaded waterline","sources":["uscg-33cfr183"],"tags":["self-bailing","cockpit","waterline","drainage"]},{"id":"outboard-transom-heights","kind":"dimension","tier":1,"title":"Outboard transom height by shaft length","summary":"Outboard shaft length is set by transom height, top of transom to keel line: 15 in (381 mm) short shaft, 20 in (508 mm) long, 25 in (635 mm) extra-long, 30 in (762 mm) ultra-long — the wrong shaft cavitates (too short) or drags the lower unit too deep.","applies":["outboard","transom"],"value":{"options":[15,20,25,30],"unit":"in"},"basis":"Outboard-industry standard shaft-length series matched to transom height","sources":["outboard-shaft-length-guide"],"tags":["outboard","transom","shaft-length"]},{"id":"transom-thickness","kind":"dimension","tier":1,"title":"Outboard transom thickness","summary":"A transom built to carry an outboard runs 38-64 mm thick (cored GRP or solid timber/plywood core), scaling with engine weight and thrust; thin-transom boats need a doubler plate under the clamp/bolt pattern rather than relying on the raw laminate.","applies":["transom","outboard"],"value":{"min":38,"max":64,"unit":"mm"},"basis":"ISO 12215-5 transom scantling method scaled to outboard thrust and weight","sources":["iso-12215-5"],"tags":["transom","thickness","outboard"]},{"id":"deck-hardware-bolt-pattern-cleat","kind":"fastener","tier":2,"title":"Cleat base bolt pattern by cleat size","summary":"A 150 mm cleat typically bolts on 2 fasteners at its base (through the two horn feet), while 200-300 mm cleats bolt on 2-4 fasteners in an elongated rectangle matched to the cleat's own foot spacing; use M6-M8 (1/4-5/16 in) bolts sized up with cleat length.","applies":["cleat","fastener","deck hardware"],"value":{"table":[{"cleatLength":150,"bolts":2,"boltSize":6},{"cleatLength":200,"bolts":2,"boltSize":8},{"cleatLength":250,"bolts":4,"boltSize":8},{"cleatLength":300,"bolts":4,"boltSize":10}],"unit":"mm"},"basis":"ABYC H-40 fastener count/size scaling with cleat length and rated line load","sources":["abyc-h40"],"tags":["cleat","bolt-pattern","fastener"]},{"id":"hinge-hatch-conventions","kind":"feature","tier":2,"title":"Deck hatch hinge and lift conventions","summary":"Deck hatches hinge on the forward edge (so wind/seas can't flip them open) with a piano hinge or 2-3 surface hinges in 316 stainless plus a rated hold-open strut; hatch coamings run 50-100 mm above the deck to shed water before it reaches the seal.","applies":["hatch","hinge","deck hardware"],"value":{"min":50,"max":100,"unit":"mm"},"basis":"Common small-craft hatch-coaming height and forward-hinge convention to shed boarding water","sources":["abyc-h40"],"tags":["hatch","hinge","coaming"]},{"id":"through-hull-flange-dimensions","kind":"dimension","tier":2,"title":"Through-hull mushroom-head flange geometry","summary":"A through-hull's outer mushroom-head flange runs about 1.6-1.8x the tailpipe OD across (e.g. ~60 mm flange OD for a 35 mm tailpipe) with a 3-6 mm flange thickness, giving enough bearing area against the hull skin for the bedding compound to seal without the flange itself flexing.","applies":["through-hull","flange","seacock"],"value":{"min":1.6,"max":1.8,"unit":"ratio"},"basis":"Typical bronze/Marelon through-hull mushroom-head flange-to-tailpipe diameter ratio","sources":["iso-9093"],"tags":["through-hull","flange","dimension"]},{"id":"bronze-vs-marelon","kind":"rule","tier":2,"title":"Bronze vs Marelon (reinforced composite) through-hulls","summary":"Bronze through-hulls/seacocks for metal or mixed-metal hulls and engine lines above 60 °C; Marelon (glass-reinforced nylon) is immune to galvanic and dezincification attack and is the GRP default, but rated ~1.0 MPa / 82 °C versus bronze's higher limits.","applies":["through-hull","seacock","material"],"basis":"ABYC H-27 material guidance: bronze vs reinforced-composite through-hull selection by hull material and service conditions","sources":["abyc-h27"],"tags":["bronze","marelon","through-hull","material"]},{"id":"bedding-compound-thickness","kind":"dimension","tier":2,"title":"Bedding-compound layer thickness under deck hardware","summary":"Deck hardware and through-hull flanges bed on a 1-2 mm compressed layer of polyurethane or polysulfide sealant — thick enough to fill deck-surface waviness and seal the fastener holes, thin enough that squeeze-out under bolt torque doesn't starve the joint.","applies":["bedding compound","deck hardware","through-hull"],"value":{"min":1,"max":2,"unit":"mm"},"basis":"Common practice for polyurethane/polysulfide bedding compound compressed bond-line thickness on deck hardware","sources":["abyc-h40"],"tags":["bedding","sealant","deck-hardware"]},{"id":"countersink-for-sealant","kind":"feature","tier":2,"title":"Countersunk fastener holes as a sealant reservoir","summary":"Countersink deck-hardware fastener holes 1-2 mm deep at roughly 90 degrees before bedding so the sealant has a reservoir under the screw head instead of being squeezed out flush — a flush (non-countersunk) hole is far more likely to leak once the sealant ages and shrinks.","applies":["fastener","deck hardware","sealant"],"value":{"min":1,"max":2,"unit":"mm"},"basis":"Standard bedding practice for through-bolted deck hardware to retain sealant around the fastener","sources":["abyc-h40"],"tags":["countersink","sealant","fastener"]},{"id":"galvanic-series-positions","kind":"rule","tier":2,"title":"Galvanic series positions of common marine metals","summary":"In seawater, most anodic to most noble: magnesium, zinc, aluminium, mild/cast steel, 316 stainless (active/crevice), lead, silicon bronze, 316 stainless (passive), titanium/graphite — never join metals more than 2-3 positions apart without isolation.","applies":["corrosion","galvanic","material selection"],"basis":"Standard seawater galvanic series ordering used for marine material-compatibility decisions","sources":["abyc-e2","gerr-boat-strength"],"tags":["galvanic","series","corrosion"]},{"id":"isolation-bushing-dimensions","kind":"dimension","tier":2,"title":"Dielectric isolation bushing thickness","summary":"A nylon or Delrin isolation bushing between dissimilar metals (e.g. a bronze through-hull seated in an aluminium hull) runs 1-2 mm wall thickness around the fastener/tailpipe, enough to break electrical continuity without so much compliance that the joint can't be torqued tight.","applies":["isolation bushing","corrosion","aluminium hull"],"value":{"min":1,"max":2,"unit":"mm"},"basis":"Dielectric-break thickness sufficient to stop galvanic current transfer at a fastener or fitting","sources":["abyc-e2"],"tags":["isolation","bushing","corrosion"]},{"id":"clamp-bracket-bolt-pattern","kind":"fastener","tier":2,"title":"Outboard clamp/transom bracket bolt pattern","summary":"An outboard transom (jack-plate or engine) bracket bolts through the transom on 4-6 fasteners of 10-12 mm (3/8-1/2 in) diameter, arranged in a rectangle spanning most of the bracket's width so load spreads across multiple stringer/transom-core bays rather than one local bolt.","applies":["outboard","transom bracket","fastener"],"value":{"min":10,"max":12,"unit":"mm"},"basis":"Typical outboard clamp/jack-plate bracket bolt sizing scaled to engine thrust and transom-core bearing area","sources":["iso-12215-5"],"tags":["outboard","bracket","bolt-pattern"]},{"id":"steering-cable-conventions","kind":"feature","tier":2,"title":"Outboard steering cable and control conventions","summary":"Mechanical outboard steering cables (rack-and-pinion or rotary) route in a conduit with a minimum bend radius of about 200 mm to avoid binding, terminating at the tiller arm on a straight, unkinked run; throttle/shift cables follow the same rule.","applies":["steering","outboard","control cable"],"value":{"min":200,"unit":"mm"},"basis":"Common mechanical steering/control cable manufacturer minimum bend radius to avoid binding and premature wear","sources":["outboard-shaft-length-guide"],"tags":["steering","cable","outboard"]},{"id":"scupper-sizing","kind":"dimension","tier":2,"title":"Cockpit scupper drain sizing","summary":"Cockpit scuppers drain through 25-40 mm hose/tube per drain, with at least two independent drains per cockpit (so one can clog without flooding the boat) — sizing follows the same limber-hole range because a scupper is functionally a limber hole through the transom or hull side.","applies":["scupper","cockpit","drainage"],"value":{"min":25,"max":40,"unit":"mm"},"basis":"USCG 33 CFR 183 self-bailing cockpit drainage requirements plus common scupper hose sizing","sources":["uscg-33cfr183"],"tags":["scupper","cockpit","drainage"]},{"id":"stanchion-base-bolt-pattern","kind":"fastener","tier":2,"title":"Stanchion base bolt pattern","summary":"A stanchion base plate through-bolts on 2-3 fasteners of 6-8 mm (1/4-5/16 in) diameter arranged along the base's long axis (fore-aft), always onto a backing plate per this pack's cleat-backing-plate-thickness rule since lifeline loads are largely outboard/lateral.","applies":["stanchion","fastener","deck hardware"],"value":{"min":6,"max":8,"unit":"mm"},"basis":"ABYC H-40 stanchion base fastener sizing for typical lifeline side-load ratings","sources":["abyc-h40"],"tags":["stanchion","bolt-pattern","fastener"]},{"id":"through-hull-below-waterline-clearance","kind":"rule","tier":2,"title":"Minimum clearance between adjacent through-hulls","summary":"Keep through-hull penetrations ≥ 50-75 mm apart edge-to-edge below the waterline so each fitting's flange and bedding area has clear hull skin around it and a seacock handle has room to swing without hitting its neighbour.","applies":["through-hull","seacock","spacing"],"value":{"min":50,"max":75,"unit":"mm"},"basis":"Practical flange clearance and seacock-handle swing radius on a below-waterline hull penetration","sources":["abyc-h27"],"tags":["through-hull","spacing","clearance"]},{"id":"test-iso-12217-stability","kind":"test","tier":2,"title":"ISO 12217 stability and buoyancy categorization test","summary":"ISO 12217 assigns design category A-D by measured stability (righting-moment curve, downflooding angle) and buoyancy/flotation reserve — a hull or cockpit-well volume change must be re-checked against the same category's criteria.","applies":["stability","design category","hull"],"basis":"ISO 12217 parts 1-3 stability/buoyancy assessment procedures for monohulls, multihulls and canoes/kayaks","sources":["iso-12217"],"tags":["test","stability","iso12217","buoyancy"]},{"id":"test-abyc-h27-seacock-load","kind":"test","tier":2,"title":"ABYC H-27 seacock static load test","summary":"ABYC H-27 requires a seacock/through-hull assembly to hold a 500 lbf (2.2 kN) static load on the pipe/hose barb for 30 s without failing the fitting, its bolts, or the hull laminate — this drives the pack's backing-plate and flange entries.","applies":["seacock","through-hull","load test"],"value":{"value":500,"unit":"lbf","note":"held 30 s"},"basis":"ABYC H-27 seacock/through-hull static load-test requirement","sources":["abyc-h27"],"tags":["test","abyc-h27","seacock","load"]},{"id":"test-iso-9093-pressure","kind":"test","tier":2,"title":"ISO 9093 seacock/through-hull pressure test","summary":"ISO 9093 pressure-tests seacocks and through-hull bodies to at least 0.3 MPa (about 3 bar, well above any static head a hull will see) without leakage or permanent deformation, confirming wall thickness and flange-to-body joint integrity independent of the mechanical load test.","applies":["seacock","through-hull","pressure test"],"value":{"min":0.3,"unit":"MPa"},"basis":"ISO 9093 seacock and through-hull fitting hydrostatic pressure-test requirement","sources":["iso-9093"],"tags":["test","iso9093","pressure","seacock"]},{"id":"test-iso-15083-bilge-pump","kind":"test","tier":2,"title":"ISO 15083 bilge-pump system capacity test","summary":"ISO 15083 sets minimum bilge-pump capacity and hose/thru-hull sizing by boat length and compartment volume, requiring the discharge through-hull and check valve to pass rated flow without excess head loss — an undersized discharge fails this first.","applies":["bilge pump","drainage","through-hull"],"basis":"ISO 15083 bilge-pumping system capacity and discharge-fitting sizing requirements","sources":["iso-15083"],"tags":["test","iso15083","bilge","pump"]},{"id":"test-salt-spray","kind":"test","tier":3,"title":"Salt-spray (fog) corrosion test","summary":"A typical marine-hardware salt-spray test per ASTM B117 runs 96-500+ hours of continuous 5% NaCl fog at 35 C, judged by red-rust onset or blister rating — stainless deck hardware commonly targets 250-500 h with no visible red rust.","applies":["corrosion","hardware","coating"],"value":{"min":96,"max":500,"unit":"h"},"basis":"ASTM B117 salt-spray test duration ranges commonly specified for marine hardware and coatings","sources":["astm-a276"],"tags":["test","salt-spray","corrosion"]},{"id":"test-uv-exposure","kind":"test","tier":3,"title":"UV/weathering exposure test for topside plastics and gelcoat","summary":"Exterior marine plastics and gelcoat are commonly qualified to 1000-2000 h of accelerated UV/weathering (ASTM G154/G155) with a gloss-retention or colour-change limit, standing in for several seasons of sun on a hatch lens, fender or trim part.","applies":["gelcoat","plastic trim","weathering"],"value":{"min":1000,"max":2000,"unit":"h"},"basis":"Common accelerated-weathering qualification duration for exterior marine plastics and gelcoat","sources":["bs-1088"],"tags":["test","uv","weathering","gelcoat"]},{"id":"standard-iso-12215","kind":"standard","tier":2,"title":"ISO 12215 — small craft hull construction and scantlings","summary":"ISO 12215 (parts 1-9) governs hull, deck and structural scantlings for small craft up to 24 m: design pressures by category and speed, laminate/metal/wood scantling formulas, and bulkhead/stringer/transom design rules that this pack's thickness and spacing entries summarize.","applies":["hull","scantlings"],"basis":"Governing scantling standard for recreational and small commercial craft hull structure","sources":["iso-12215-5"],"tags":["standard","iso12215","scantlings"]},{"id":"standard-iso-12217","kind":"standard","tier":2,"title":"ISO 12217 — stability and buoyancy assessment","summary":"ISO 12217 assesses and assigns the design category (A-D) used throughout the EU Recreational Craft Directive and referenced worldwide, via stability curves, buoyancy/flotation checks and (for open craft) swamped-stability testing.","applies":["stability","design category"],"basis":"Governing standard for small-craft stability categorization","sources":["iso-12217"],"tags":["standard","iso12217","stability"]},{"id":"standard-abyc-h-series","kind":"standard","tier":2,"title":"ABYC H-series — hull and piping standards","summary":"The ABYC H-series covers hull and plumbing safety: H-27 (seacocks/through-hulls/drain plugs), H-40 (anchoring/mooring/strong points) and related standards this pack draws its fastener and load-test numbers from — what a US boat is surveyed against.","applies":["hull","plumbing","deck hardware"],"basis":"ABYC's H-series is the de facto US recreational-boat safety standard set for hull penetrations and deck hardware","sources":["abyc-h27","abyc-h40"],"tags":["standard","abyc","h-series"]},{"id":"standard-uscg-33cfr183","kind":"standard","tier":2,"title":"USCG 33 CFR 183 — Boats and Associated Equipment","summary":"33 CFR Part 183 is the US Coast Guard's federal regulation for recreational boats: flotation, ventilation, electrical, fuel and safe-loading requirements a boat sold in the US must meet regardless of any voluntary ABYC/ISO standard it also follows.","applies":["hull","safety","regulatory"],"basis":"Federal regulation governing recreational boat safety equipment and construction in US waters","sources":["uscg-33cfr183"],"tags":["standard","uscg","regulatory"]},{"id":"material-grp-eglass-polyester","kind":"material","tier":1,"title":"E-glass/polyester GRP hull laminate","summary":"The default small-craft hull laminate is E-glass woven roving/chopped-strand mat in orthophthalic or isophthalic polyester resin, ~35-45% fibre weight fraction in a hand-laid hull, density ~1.5-1.6 g/cm3 — cheaper and more water-permeable than a vinylester laminate below.","applies":["hull","grp","fiberglass hull"],"value":{"table":[{"property":"fibre-weight-fraction","min":35,"max":45,"unit":"%"},{"property":"density","value":1.55,"unit":"g/cm3"}]},"basis":"Standard E-glass/polyester hand-laid marine laminate composition and density","sources":["iso-12215-5"],"tags":["material","grp","e-glass","polyester"]},{"id":"material-grp-vinylester","kind":"material","tier":2,"title":"E-glass/vinylester GRP laminate (blister-resistant)","summary":"Vinylester resin in the outer laminate (often just the skin coat over a polyester layup) resists osmotic blistering far better than polyester at 20-40% higher resin cost — a common choice for a hull's below-waterline skin coat.","applies":["hull","grp","gelcoat blister"],"value":{"value":1.15,"unit":"g/cm3","note":"cured vinylester resin density"},"basis":"Vinylester's lower water-permeability versus polyester, standard use as a blister-resistant skin coat","sources":["iso-12215-5"],"tags":["material","grp","vinylester"]},{"id":"material-aluminium-5083-5086","kind":"material","tier":2,"title":"5083/5086 marine-grade aluminium","summary":"5083 and 5086 (H116/H321 temper) are the standard welded marine-hull aluminium alloys: ~2.66 g/cm3 density, good seawater corrosion resistance and weldability without post-weld heat treatment, yield strength around 215-230 MPa in the H116/H321 temper.","applies":["hull","aluminium hull"],"value":{"table":[{"property":"density","value":2.66,"unit":"g/cm3"},{"property":"yield","min":215,"max":230,"unit":"MPa"}]},"basis":"ASTM B928 marine-grade 5083/5086 aluminium sheet/plate mechanical and corrosion properties","sources":["astm-b928"],"tags":["material","aluminium","5083","5086"]},{"id":"material-316-stainless","kind":"material","tier":1,"title":"316 (A4) stainless steel for deck hardware","summary":"316 stainless is the default marine deck-hardware/fastener alloy: ~8.0 g/cm3 density, molybdenum-alloyed for better chloride/crevice resistance than 304, though it still corrodes in an oxygen-starved crevice without flushing or isolation.","applies":["deck hardware","fastener","stanchion"],"value":{"value":8,"unit":"g/cm3"},"basis":"ASTM A276 Type 316 stainless bar/shape density and standard marine-grade corrosion behaviour","sources":["astm-a276"],"tags":["material","316","stainless"]},{"id":"material-silicon-bronze","kind":"material","tier":2,"title":"Silicon bronze for through-hulls and fasteners","summary":"Silicon bronze (~8.5 g/cm3) resists dezincification and sits close to stainless on the galvanic series — the traditional through-hull body, seacock and fastener alloy, heavier and pricier than Marelon but rated to higher pressure/temperature.","applies":["through-hull","seacock","fastener"],"value":{"value":8.5,"unit":"g/cm3"},"basis":"ASTM B98 silicon-bronze rod/bar density and standard marine through-hull material use","sources":["astm-b98"],"tags":["material","silicon-bronze","through-hull"]},{"id":"material-hdpe-kayak","kind":"material","tier":2,"title":"Rotomoulded HDPE for kayak/dinghy hulls","summary":"Rotomoulded HDPE (~0.94-0.96 g/cm3) is the standard kayak/small-dinghy hull material: cheap, UV-stabilized grades take impact/abrasion far better than GRP at that price, but can't be structurally repaired and can creep if stored unsupported in sun.","applies":["kayak","dinghy","rotomoulded hull"],"value":{"min":0.94,"max":0.96,"unit":"g/cm3"},"basis":"Standard rotomoulding-grade HDPE resin density used for kayak and small-dinghy hulls","sources":["bs-1088"],"tags":["material","hdpe","kayak","rotomoulded"]},{"id":"material-marine-plywood-bs1088","kind":"material","tier":2,"title":"BS 1088 marine plywood","summary":"BS 1088-certified marine plywood uses WBP phenolic adhesive and gap-free veneers with no internal voids, ~0.5-0.7 g/cm3 by species — the only plywood grade for a structural bulkhead, transom core or stringer without independent lamination testing.","applies":["plywood","bulkhead","transom core"],"value":{"min":0.5,"max":0.7,"unit":"g/cm3"},"basis":"BS 1088-1 marine plywood specification: adhesive type, veneer quality and void-free construction","sources":["bs-1088"],"tags":["material","plywood","bs1088"]},{"id":"material-coosa-foam-core","kind":"material","tier":2,"title":"Coosa board and structural foam core","summary":"Coosa (fibre-reinforced polyurethane structural foam, ~0.5-0.75 g/cm3 by grade) and closed-cell PVC/SAN foam (~0.06-0.2 g/cm3) replace balsa/plywood in a cored deck or transom where rot resistance matters more than stiffness-to-weight.","applies":["cored panel","transom core","deck core"],"value":{"table":[{"core":"coosa","min":0.5,"max":0.75},{"core":"pvc-foam","min":0.06,"max":0.2}],"unit":"g/cm3"},"basis":"Manufacturer datasheet density ranges for Coosa structural composite board and closed-cell foam core grades","sources":["iso-12215-5"],"tags":["material","coosa","foam-core"]},{"id":"recipe-316-horn-cleat","kind":"recipe","tier":2,"title":"Recipe: 316 stainless horn cleat","summary":"Build a 150x40x8 mm cleat base with two 16 mm diameter x 25 mm tall horn posts unioned on, a 2 mm edge fillet, and four 8 mm bolt holes on a 120x20 mm grid clear of the horns.","applies":["cleat","horn cleat","deck hardware"],"basis":"Combines cleat-size-by-loa (150mm), stanchion/fastener-scale bolt sizing and cleat-backing-plate-thickness into one buildable cleat body","sources":["abyc-h40"],"tags":["recipe","cleat","deck-hardware"],"recipe":{"prompt":"Model a 150mm 316 stainless horn cleat: base plate with two horn posts, filleted edges, and four bolt holes","steps":[{"tool":"cad_box","args":{"dx":150,"dy":40,"dz":8},"note":"cleat base plate, 150mm per cleat-size-by-loa"},{"tool":"cad_cylinder","args":{"r":8,"h":25,"origin":[20,20,8]},"note":"horn post 1, standing on the base"},{"tool":"cad_boolean_union","args":{"of":"$0","tool":"$1"},"note":"union horn 1 onto base"},{"tool":"cad_cylinder","args":{"r":8,"h":25,"origin":[130,20,8]},"note":"horn post 2"},{"tool":"cad_boolean_union","args":{"of":"$2","tool":"$3"},"note":"union horn 2 onto base"},{"tool":"cad_hole_pattern","args":{"of":"$4","type":"drill","diameter":8,"pattern":{"kind":"grid","origin":[50,10],"dx":50,"dy":20,"nx":2,"ny":2}},"note":"four M8 through-bolt holes between the two horn posts, clear of both"},{"tool":"cad_fillet_edges","args":{"of":"$5","radius":2},"note":"2mm edge break on all convex edges"}],"expect":{"volume":57172.36,"faceCount":52,"watertight":true,"note":"measured 2026-09-19: the blanket fillet now DRESSES circular plane/cylinder rims (CADSF-1038 blendCircleBand recognition, CADSF-1098 rim pass): the R2 pass blends 36 of 48 edges where the pinned body had only the 12 prismatic box edges. 24 of the 36 are CIRCLE rims — the two horn roots ADD material (concave) and the bolt-hole mouths remove it — so the fillet step nets +727.76 mm^3 where the pin netted -884. +2.902% is the largest single move in this corpus and it is the op doing more, not the body being wrong"}}},{"id":"recipe-transom-bracket","kind":"recipe","tier":2,"title":"Recipe: outboard transom bracket plate","summary":"Build a 140x90x6 mm transom clamp-bracket plate with four 10 mm through-bolt holes on a 100x50 mm rectangle, matching the clamp-bracket-bolt-pattern entry's 10-12 mm bolt size.","applies":["outboard","transom bracket"],"basis":"Combines transom-thickness margin and clamp-bracket-bolt-pattern into one buildable bracket plate","sources":["iso-12215-5"],"tags":["recipe","transom","outboard"],"recipe":{"prompt":"Model a 140x90x6mm outboard transom bracket plate with four 10mm bolt holes on a 100x50mm rectangle","steps":[{"tool":"cad_box","args":{"dx":140,"dy":90,"dz":6},"note":"bracket plate, 6mm 316/aluminium stock"},{"tool":"cad_hole_pattern","args":{"of":"$0","type":"drill","diameter":10,"pattern":{"kind":"grid","origin":[20,20],"dx":100,"dy":50,"nx":2,"ny":2}},"note":"four 10mm through-bolt holes per clamp-bracket-bolt-pattern"}],"expect":{"volume":73715.04,"faceCount":14,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-through-hull-flange","kind":"recipe","tier":2,"title":"Recipe: through-hull mounting flange","summary":"Build a 60 mm diameter x 8 mm thick through-hull flange, bore a 35 mm through-hull hole on axis, and array six 6 mm bolt holes on a 48 mm bolt circle via cad_hole_pattern circular.","applies":["through-hull","seacock","flange"],"basis":"Combines through-hull-hole-diameters (35mm) and through-hull-flange-dimensions (~1.7x tailpipe OD) into one buildable flange","sources":["iso-9093"],"tags":["recipe","through-hull","flange"],"recipe":{"prompt":"Model a through-hull flange: 60mm diameter x 8mm thick disc, 35mm bore through the middle, six 6mm bolt holes on a 48mm bolt circle","steps":[{"tool":"cad_cylinder","args":{"r":30,"h":8},"note":"flange disc, 60mm OD x 8mm thick per through-hull-flange-dimensions"},{"tool":"cad_drill_hole","args":{"of":"$0","type":"drill","diameter":35,"center":[0,0]},"note":"35mm through-hull bore per through-hull-hole-diameters"},{"tool":"cad_hole_pattern","args":{"of":"$1","type":"drill","diameter":6,"pattern":{"kind":"circular","center":[0,0],"radius":24,"count":6}},"note":"six 6mm bolt-circle holes at radius 24mm (48mm bolt circle), clear of the 35mm bore and the 60mm OD"}],"expect":{"volume":13565.4,"faceCount":18,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}}]},{"$schema":"nativecad-dfm-pack/1","id":"materials","title":"Materials — metals, plastics, wood and composites for any process","sector":"materials","version":"2026-09-03","summary":"Cross-sector material properties and selection facts: density, stiffness, strength, temperature limits and cost class for common CNC/molding/print/wood/composite materials, plus gauge tables, print-process matrices, galvanic and food-contact compatibility.","aliases":["material","aluminium","aluminum","steel","stainless","plastic","abs","nylon","polycarbonate","pla","petg","plywood","mdf","titanium","brass","copper","carbon fiber","composite"],"crossSector":true,"size":"full","sources":[{"id":"matweb","title":"MatWeb Material Property Data","url":"https://www.matweb.com/","accessed":"2026-09-03"},{"id":"asm-handbook-2","title":"ASM Handbook Vol 2 — Nonferrous Alloys","url":"https://www.asminternational.org/","accessed":"2026-09-03"},{"id":"protolabs-materials","title":"Protolabs material comparison guide","url":"https://www.protolabs.com/resources/design-tips/material-selection/","accessed":"2026-09-03"},{"id":"xometry-materials","title":"Xometry material selection guide","url":"https://www.xometry.com/resources/materials/","accessed":"2026-09-03"},{"id":"astm-a36","title":"ASTM A36/A36M Carbon Structural Steel","url":"https://www.astm.org/a0036_a0036m-19.html","accessed":"2026-09-03"},{"id":"astm-a240","title":"ASTM A240/A240M Stainless Steel Plate","url":"https://www.astm.org/a0240_a0240m-23a.html","accessed":"2026-09-03"},{"id":"astm-b221","title":"ASTM B221 Aluminum Extruded Shapes","url":"https://www.astm.org/b0221-21.html","accessed":"2026-09-03"},{"id":"astm-b265","title":"ASTM B265 Titanium Strip/Sheet/Plate","url":"https://www.astm.org/b0265-20.html","accessed":"2026-09-03"},{"id":"iso-1043","title":"ISO 1043-1 Plastics Symbols","url":"https://www.iso.org/standard/68123.html","accessed":"2026-09-03"},{"id":"formlabs-materials","title":"Formlabs SLA resin data sheets","url":"https://formlabs.com/materials/","accessed":"2026-09-03"},{"id":"hp-mjf-materials","title":"HP MJF PA12 material data sheet","url":"https://www.hp.com/us-en/printers/3d-printers/products/multi-jet-materials.html","accessed":"2026-09-03"},{"id":"ansys-galvanic","title":"Galvanic series in seawater reference","url":"https://www.copper.org/resources/properties/corrosion/galvanic.html","accessed":"2026-09-03"},{"id":"fda-usp-class-vi","title":"FDA 21 CFR 177 / USP Class VI reference","url":"https://www.fda.gov/food/packaging-food-contact-substances-fcs/food-contact-substances-fcs","accessed":"2026-09-03"},{"id":"engineering-toolbox-gauge","title":"Eng. ToolBox sheet gauge to mm","url":"https://www.engineeringtoolbox.com/steel-gauges-d_1636.html","accessed":"2026-09-03"},{"id":"sae-j403","title":"SAE J403 SAE Carbon Steel Compositions","url":"https://www.sae.org/standards/content/j403_201409/","accessed":"2026-09-03"}],"entries":[{"id":"al-6061-t6","kind":"material","tier":1,"title":"Aluminum 6061-T6","summary":"6061-T6: 2.70 g/cm3, E 69 GPa, yield 276 MPa, UTS 310 MPa, max temp 150C, cost 2/5. Best all-round CNC alloy — machines cleanly, anodizes, welds.","applies":["cnc machining","extrusion"],"value":{"table":[{"density":2.7,"E":69,"yield":276,"uts":310,"elongPct":12,"maxTempC":150,"costClass":2}]},"basis":"MatWeb 6061-T6 datasheet; the default general-engineering aluminum alloy","sources":["matweb"],"tags":["aluminum","aluminium","6061"],"check":{"process":"machining","rule":"min_wall_thickness"}},{"id":"al-7075-t6","kind":"material","tier":1,"title":"Aluminum 7075-T6","summary":"7075-T6: 2.81 g/cm3, E 71.7 GPa, yield 503 MPa, UTS 572 MPa, max temp 120C, cost 4/5. Highest-strength common aluminum; poor weldability.","applies":["aerospace bracket","high-strength fixture"],"value":{"table":[{"density":2.81,"E":71.7,"yield":503,"uts":572,"elongPct":11,"maxTempC":120,"costClass":4}]},"basis":"MatWeb 7075-T6 datasheet; aerospace-grade high-strength alloy","sources":["matweb"],"tags":["aluminum","aluminium","7075"]},{"id":"al-5052-h32","kind":"material","tier":1,"title":"Aluminum 5052-H32 (sheet)","summary":"5052-H32: 2.68 g/cm3, E 70.3 GPa, yield 193 MPa, UTS 228 MPa, max temp 150C, cost 2/5. The sheet-metal alloy — bends tighter than 6061.","applies":["sheet metal","enclosure"],"value":{"table":[{"density":2.68,"E":70.3,"yield":193,"uts":228,"elongPct":12,"maxTempC":150,"costClass":2}]},"basis":"MatWeb 5052-H32 datasheet; standard sheet-metal aluminum grade","sources":["matweb"],"tags":["aluminum","aluminium","5052"],"check":{"process":"sheet_metal","rule":"min_internal_corner_radius"}},{"id":"steel-1018","kind":"material","tier":1,"title":"Mild steel 1018 (low-carbon)","summary":"1018 CR: 7.87 g/cm3, E 200 GPa, yield 370 MPa, UTS 440 MPa, max temp 400C, cost 1/5. Cheapest general machining/weld steel; not hardenable.","applies":["cnc machining","weldment"],"value":{"table":[{"density":7.87,"E":200,"yield":370,"uts":440,"elongPct":15,"maxTempC":400,"costClass":1}]},"basis":"MatWeb 1018 cold-rolled datasheet; SAE J403 composition","sources":["matweb","sae-j403"],"tags":["steel","mild steel","1018"]},{"id":"steel-4140","kind":"material","tier":1,"title":"Alloy steel 4140 (Q&T)","summary":"4140 Q&T: 7.85 g/cm3, E 205 GPa, yield 655 MPa, UTS 1020 MPa, max temp 425C, cost 2/5. Through-hardenable chromoly; needs preheat to weld.","applies":["shaft","gear"],"value":{"table":[{"density":7.85,"E":205,"yield":655,"uts":1020,"elongPct":17,"maxTempC":425,"costClass":2}]},"basis":"MatWeb 4140 quenched-and-tempered datasheet","sources":["matweb"],"tags":["steel","alloy steel","4140"]},{"id":"ss-304","kind":"material","tier":1,"title":"Stainless steel 304","summary":"304: 8.00 g/cm3, E 193 GPa, yield 215 MPa, UTS 505 MPa, max temp 870C, cost 3/5. Non-magnetic, weldable — the default food-safe stainless.","applies":["food equipment","enclosure"],"value":{"table":[{"density":8,"E":193,"yield":215,"uts":505,"elongPct":40,"maxTempC":870,"costClass":3}]},"basis":"MatWeb 304 annealed datasheet; ASTM A240 composition","sources":["matweb","astm-a240"],"tags":["stainless","304","food safe"]},{"id":"ss-316","kind":"material","tier":1,"title":"Stainless steel 316","summary":"316: 8.00 g/cm3, E 193 GPa, yield 205 MPa, UTS 515 MPa, max temp 870C, cost 4/5. Mo-alloyed for pitting resistance — marine and medical grade.","applies":["marine hardware","medical device"],"value":{"table":[{"density":8,"E":193,"yield":205,"uts":515,"elongPct":40,"maxTempC":870,"costClass":4}]},"basis":"MatWeb 316 annealed datasheet; ASTM A240 composition","sources":["matweb","astm-a240"],"tags":["stainless","316","marine"]},{"id":"brass-c360","kind":"material","tier":1,"title":"Brass C360 (free-machining)","summary":"C360: 8.50 g/cm3, E 97 GPa, yield 310 MPa, UTS 385 MPa, max temp 200C, cost 3/5. The free-machining brass — best machinability of any alloy.","applies":["fitting","valve body"],"value":{"table":[{"density":8.5,"E":97,"yield":310,"uts":385,"elongPct":18,"maxTempC":200,"costClass":3}]},"basis":"MatWeb C36000 half-hard datasheet","sources":["matweb"],"tags":["brass","c360","machining"]},{"id":"copper-c110","kind":"material","tier":1,"title":"Copper C110 (ETP)","summary":"C110: 8.94 g/cm3, E 117 GPa, yield 69-345 MPa, thermal 391 W/mK, elec 101% IACS, cost 3/5. The conductivity benchmark; gums up in machining.","applies":["bus bar","electrical contact"],"value":{"table":[{"density":8.94,"E":117,"yieldAnnealed":69,"yieldHard":345,"thermalWmK":391,"iacsPct":101,"costClass":3}]},"basis":"MatWeb C11000 ETP copper datasheet","sources":["matweb"],"tags":["copper","c110","electrical"]},{"id":"ti-6al-4v","kind":"material","tier":1,"title":"Titanium Ti-6Al-4V (Grade 5)","summary":"Ti-6Al-4V: 4.43 g/cm3, E 114 GPa, yield 880 MPa, UTS 950 MPa, max temp 400C, cost 5/5. Best strength-to-weight; slow, expensive to machine.","applies":["aerospace part","medical implant"],"value":{"table":[{"density":4.43,"E":114,"yield":880,"uts":950,"elongPct":14,"maxTempC":400,"costClass":5}]},"basis":"MatWeb Ti-6Al-4V datasheet; ASTM B265 grade 5","sources":["matweb","astm-b265"],"tags":["titanium","ti-6al-4v","grade 5"],"check":{"process":"machining","rule":"min_wall_thickness"}},{"id":"plastic-abs","kind":"material","tier":1,"title":"ABS plastic","summary":"ABS: 1.04 g/cm3, E 2.3 GPa, yield 40 MPa, HDT 98C, max temp 80C, cost 2/5. Tough, easy to mold/print; not UV-stable — yellows outdoors.","applies":["injection molded housing","fdm print"],"value":{"table":[{"density":1.04,"E":2.3,"yield":40,"hdtC":98,"maxTempC":80,"costClass":2}]},"basis":"MatWeb generic ABS datasheet; Protolabs material guide","sources":["matweb","protolabs-materials"],"tags":["abs","plastic","injection molding"],"check":{"process":"injection_molding","rule":"min_wall_thickness"}},{"id":"plastic-pc","kind":"material","tier":1,"title":"Polycarbonate (PC)","summary":"PC: 1.20 g/cm3, E 2.4 GPa, yield 62 MPa, HDT 138C, max temp 115C, cost 3/5. Highest impact strength and clarity; stress-cracks with solvents.","applies":["optical part","impact-resistant housing"],"value":{"table":[{"density":1.2,"E":2.4,"yield":62,"hdtC":138,"maxTempC":115,"costClass":3}]},"basis":"MatWeb generic PC datasheet","sources":["matweb"],"tags":["pc","polycarbonate","impact resistant"]},{"id":"plastic-pa6-66","kind":"material","tier":1,"title":"Nylon PA6 / PA66","summary":"PA6/PA66: 1.13 g/cm3, E 2.9 GPa, yield 70 MPa, HDT 75C, max temp 100C, cost 2/5. Low-friction, wear-resistant; hygroscopic, absorbs 3% water.","applies":["gear","bushing"],"value":{"table":[{"density":1.135,"E":2.9,"yield":70,"hdtDryC":75,"maxTempC":100,"costClass":2}]},"basis":"MatWeb generic PA6/PA66 datasheets","sources":["matweb"],"tags":["nylon","pa6","pa66"]},{"id":"plastic-pa12-sls","kind":"material","tier":1,"title":"Nylon PA12 (SLS/MJF powder)","summary":"PA12 (SLS/MJF): 1.01 g/cm3, E 1.75 GPa, yield 46 MPa, HDT 175C, cost 3/5. Default powder-bed nylon — near-isotropic, slightly porous finish.","applies":["sls print","mjf print"],"value":{"table":[{"density":1.01,"E":1.75,"yield":46,"hdtLowC":175,"elongPct":30,"costClass":3}]},"basis":"HP MJF PA12 and Formlabs/Hubs SLS PA12 datasheets","sources":["hp-mjf-materials","matweb"],"tags":["nylon","pa12","sls"],"check":{"process":"sls","rule":"min_wall_thickness"}},{"id":"plastic-pom","kind":"material","tier":1,"title":"POM / Acetal (Delrin)","summary":"POM (Delrin): 1.41 g/cm3, E 2.8 GPa, yield 65 MPa, HDT 110C, max temp 90C, cost 3/5. Lowest friction, best fatigue life; hard to bond.","applies":["precision gear","snap fit"],"value":{"table":[{"density":1.41,"E":2.8,"yield":65,"hdtC":110,"maxTempC":90,"costClass":3}]},"basis":"MatWeb Delrin (DuPont) POM datasheet","sources":["matweb"],"tags":["pom","acetal","delrin"]},{"id":"plastic-petg","kind":"material","tier":1,"title":"PETG","summary":"PETG: 1.27 g/cm3, E 2.1 GPa, yield 50 MPa, HDT 70C, max temp 70C, cost 1/5. Tougher than PLA, far less warp than ABS; FDA grades exist.","applies":["fdm print","food-contact part"],"value":{"table":[{"density":1.27,"E":2.1,"yield":50,"hdtC":70,"maxTempC":70,"costClass":1}]},"basis":"MatWeb generic PETG datasheet","sources":["matweb"],"tags":["petg","fdm","food contact"]},{"id":"plastic-pla","kind":"material","tier":1,"title":"PLA plastic","summary":"PLA: 1.24 g/cm3, E 3.5 GPa, yield 55 MPa, HDT 55C, max temp 55C, cost 1/5. Easiest FDM material — low warp, but brittle and creeps.","applies":["fdm print","prototype"],"value":{"table":[{"density":1.24,"E":3.5,"yield":55,"hdtC":55,"maxTempC":55,"costClass":1}]},"basis":"MatWeb generic PLA datasheet","sources":["matweb"],"tags":["pla","fdm","prototype"],"check":{"process":"fdm","rule":"min_wall_thickness"}},{"id":"plastic-tpu","kind":"material","tier":1,"title":"TPU (95A)","summary":"TPU 95A: 1.21 g/cm3, flex E 26 MPa, elong 500%, shore 95A, max temp 80C, cost 3/5. Flexible FDM filament for hinges and gaskets.","applies":["flexible fdm print","gasket"],"value":{"table":[{"density":1.21,"flexModMPa":26,"elongPct":500,"shoreA":95,"maxTempC":80,"costClass":3}]},"basis":"MatWeb generic TPU 95A datasheet","sources":["matweb"],"tags":["tpu","flexible","fdm"]},{"id":"plastic-pp","kind":"material","tier":1,"title":"Polypropylene (PP)","summary":"PP: 0.90 g/cm3, E 1.5 GPa, yield 30 MPa, HDT 100C, max temp 100C, cost 1/5. Lowest density plastic, best living-hinge fatigue life.","applies":["living hinge","chemical container"],"value":{"table":[{"density":0.9,"E":1.5,"yield":30,"hdtC":100,"maxTempC":100,"costClass":1}]},"basis":"MatWeb generic PP datasheet","sources":["matweb"],"tags":["pp","polypropylene","living hinge"]},{"id":"plastic-hdpe","kind":"material","tier":1,"title":"HDPE","summary":"HDPE: 0.95 g/cm3, E 1.1 GPa, yield 26 MPa, HDT 80C, max temp 100C, cost 1/5. Tough, low-friction, chemically inert; hard to bond.","applies":["tank","cutting board"],"value":{"table":[{"density":0.95,"E":1.1,"yield":26,"hdtC":80,"maxTempC":100,"costClass":1}]},"basis":"MatWeb generic HDPE datasheet","sources":["matweb"],"tags":["hdpe","polyethylene","chemical resistant"]},{"id":"plastic-pmma","kind":"material","tier":1,"title":"Acrylic (PMMA)","summary":"PMMA: 1.19 g/cm3, E 3.0 GPa, yield 70 MPa, HDT 95C, max temp 80C, cost 2/5. Best optical clarity (92%); laser-cuts to a polished edge.","applies":["optical window","display case"],"value":{"table":[{"density":1.19,"E":3,"yield":70,"hdtC":95,"maxTempC":80,"costClass":2}]},"basis":"MatWeb generic PMMA/acrylic datasheet","sources":["matweb"],"tags":["pmma","acrylic","optical"]},{"id":"wood-plywood-birch","kind":"material","tier":1,"title":"Plywood (Baltic birch)","summary":"Birch ply: 0.68 g/cm3, E ~10 GPa, bend ~65 MPa, max temp 150C (chars), cost 2/5. Void-free veneer — the laser-cutting/jig standard.","applies":["laser-cut enclosure","jig"],"value":{"table":[{"density":0.68,"EGPa":10,"bendMPa":65,"maxTempC":150,"costClass":2}]},"basis":"Baltic birch plywood supplier data (Finland/Russia birch, BB/BB grade)","sources":["matweb"],"tags":["plywood","birch","wood"]},{"id":"wood-mdf","kind":"material","tier":1,"title":"MDF board","summary":"MDF: 0.75 g/cm3, E ~3.5 GPa, bend ~35 MPa, max temp 150C (chars), cost 1/5. Uniform, routes cleanly, paints smooth; swells when wet.","applies":["enclosure","painted panel"],"value":{"table":[{"density":0.75,"EGPa":3.5,"bendMPa":35,"maxTempC":150,"costClass":1}]},"basis":"Generic MDF (medium-density fiberboard) supplier data","sources":["matweb"],"tags":["mdf","wood","fiberboard"]},{"id":"wood-oak","kind":"material","tier":1,"title":"Oak (hardwood)","summary":"Oak: 0.75 g/cm3, E ~12.5 GPa, bend ~97 MPa, max temp 150C (chars), cost 3/5. Dense, decay-resistant hardwood; dulls tools fast.","applies":["furniture","structural joinery"],"value":{"table":[{"density":0.75,"EGPa":12.5,"bendMPa":97,"maxTempC":150,"costClass":3}]},"basis":"USDA Forest Products Laboratory Wood Handbook — red oak mechanical properties","sources":["matweb"],"tags":["oak","hardwood","wood"]},{"id":"composite-cf-epoxy","kind":"material","tier":1,"title":"Carbon fiber / epoxy (CFRP, 0/90 woven)","summary":"CFRP woven 0/90: 1.55 g/cm3, E 60-70 GPa, tensile ~575 MPa, max temp 120C, cost 5/5. Best stiffness-to-weight; abrasive to cut.","applies":["drone frame","lightweight structural panel"],"value":{"table":[{"density":1.55,"EGPa":65,"tensileMPa":575,"maxTempC":120,"costClass":5}]},"basis":"MatWeb woven carbon/epoxy laminate datasheet (typical quasi-isotropic layup)","sources":["matweb"],"tags":["carbon fiber","cfrp","composite"]},{"id":"composite-gf-nylon","kind":"material","tier":1,"title":"Glass-fiber filled nylon (PA6-GF30)","summary":"PA6-GF30: 1.36 g/cm3, E ~7 GPa, yield ~120 MPa, HDT 210C, max temp 150C, cost 3/5. 30% glass roughly doubles stiffness over PA6.","applies":["structural bracket","gear housing"],"value":{"table":[{"density":1.36,"EGPa":7,"yieldMPa":120,"hdtDryC":210,"maxTempC":150,"costClass":3}]},"basis":"MatWeb PA6-GF30 datasheet","sources":["matweb"],"tags":["nylon","glass filled","gf30"]},{"id":"sheet-metal-gauge-table","kind":"dimension","tier":2,"title":"Sheet metal gauge to thickness (steel / aluminum / stainless)","summary":"Gauge number does not mean the same thickness per material: 16ga steel = 1.52 mm, 16ga aluminum = 1.29 mm, 16ga stainless = 1.52 mm. Always confirm gauge with the material family before quoting or modeling.","applies":["sheet metal","enclosure","bracket"],"value":{"table":[{"gauge":10,"steelMM":3.42,"alMM":2.59,"ssMM":3.42},{"gauge":12,"steelMM":2.66,"alMM":2.05,"ssMM":2.77},{"gauge":14,"steelMM":1.9,"alMM":1.63,"ssMM":1.91},{"gauge":16,"steelMM":1.52,"alMM":1.29,"ssMM":1.52},{"gauge":18,"steelMM":1.21,"alMM":1.02,"ssMM":1.21},{"gauge":20,"steelMM":0.91,"alMM":0.81,"ssMM":0.95},{"gauge":22,"steelMM":0.76,"alMM":0.64,"ssMM":0.76}]},"basis":"Manufacturers Standard Gauge (steel/stainless) vs the separate Aluminum B&S gauge series","sources":["engineering-toolbox-gauge"],"tags":["gauge","sheet metal","thickness","steel","aluminum","stainless"]},{"id":"standard-stock-sizes","kind":"dimension","tier":2,"title":"Standard bar, plate and tube stock sizes (metric)","summary":"Round bar stocked at 3,4,5,6,8,10,12,16,20,25,30,40,50,60,80,100 mm dia; plate at 1,1.5,2,3,4,5,6,8,10,12,15,20,25 mm; tube walls commonly 1,1.5,2,3 mm. Designing to a stocked size skips a custom-billet lead time and cost adder.","applies":["machined part","weldment","turned part"],"value":{"table":[{"form":"round bar","sizesMM":"3,4,5,6,8,10,12,16,20,25,30,40,50,60,80,100"},{"form":"plate","sizesMM":"1,1.5,2,3,4,5,6,8,10,12,15,20,25,30"},{"form":"square bar","sizesMM":"5,6,8,10,12,15,20,25,30,40,50"},{"form":"tube wall","sizesMM":"1,1.5,2,2.5,3,4,5"}]},"basis":"Common metric mill stock ranges (aluminum/steel/stainless distributors); confirm with the specific supplier","sources":["xometry-materials"],"tags":["stock","bar","plate","tube","standard size"]},{"id":"print-process-material-matrix","kind":"process","tier":2,"title":"3D-print process to material, min wall and tolerance matrix","summary":"FDM PLA/PETG/ABS min wall 0.8mm tol +-0.3mm; SLA resin min wall 0.6mm tol +-0.15mm; SLS PA12 min wall 0.7mm tol +-0.3%; MJF PA12 min wall 0.5mm tol +-0.3mm; DMLS metal min wall 0.8mm tol +-0.1-0.2mm. Pick the process from the material need first, then the wall.","applies":["3d printing","additive manufacturing"],"value":{"table":[{"process":"fdm","materials":"PLA, PETG, ABS, TPU, PA-CF","minWallMM":0.8,"tolMM":0.3},{"process":"sla","materials":"standard/tough/durable resin","minWallMM":0.6,"tolMM":0.15},{"process":"sls","materials":"PA12, PA11, TPU powder","minWallMM":0.7,"tolPct":0.3},{"process":"mjf","materials":"PA12, PA12-GB","minWallMM":0.5,"tolMM":0.3},{"process":"dmls","materials":"17-4PH, Ti-6Al-4V, AlSi10Mg, Inconel 718","minWallMM":0.8,"tolMM":0.15}]},"basis":"ops/dfmRules.js PACKS fdm/sla/sls/mjf/dmls min_wall_thickness limits and each pack limits.general_tolerance","sources":["protolabs-materials","formlabs-materials","hp-mjf-materials"],"tags":["3d printing","fdm","sla","sls","mjf","dmls","material matrix"]},{"id":"material-selection-by-requirement","kind":"rule","tier":2,"title":"Material selection by service requirement","summary":"Outdoor/UV: ASA, PC, 316 stainless, powder-coated aluminum. Food contact: 304/316, PP, HDPE, FDA-listed PETG/nylon. Medical/implant: 316L, Ti-6Al-4V ELI, PEEK. High temp (>150C): PEEK, PPS, 4140 steel, DMLS metals. Chemical exposure: PP, HDPE, PTFE, 316.","applies":[],"value":{"table":[{"requirement":"outdoor / UV","recommended":"ASA, PC, 316 SS, powder-coated 6061"},{"requirement":"food contact","recommended":"304/316 SS, PP, HDPE, FDA PETG/nylon"},{"requirement":"medical / implant","recommended":"316L SS, Ti-6Al-4V ELI, PEEK"},{"requirement":"high temp > 150C","recommended":"PEEK, PPS, 4140 steel, DMLS metal"},{"requirement":"chemical exposure","recommended":"PP, HDPE, PTFE, 316 SS"},{"requirement":"low friction / wear","recommended":"POM, PA6, bronze bushing"}]},"basis":"Cross-reference of supplier material guides against common regulatory/service categories","sources":["protolabs-materials","xometry-materials","fda-usp-class-vi"],"tags":["material selection","outdoor","food contact","medical","high temperature","chemical resistant"]},{"id":"galvanic-compatibility-table","kind":"rule","tier":2,"title":"Galvanic compatibility of common metal pairs","summary":"Metals >~0.25V apart on the galvanic series corrode the less-noble one when wet and touching: aluminum against steel or copper needs an isolating washer/coating; titanium, 300-series stainless and bronze are mutually safe.","applies":["fastener","dissimilar metal assembly","marine hardware"],"value":{"table":[{"pairA":"aluminum","pairB":"steel (bare)","risk":"high - isolate or coat"},{"pairA":"aluminum","pairB":"copper/brass","risk":"high - isolate or coat"},{"pairA":"aluminum","pairB":"304/316 stainless","risk":"moderate - isolate for wet/marine use"},{"pairA":"steel","pairB":"304/316 stainless","risk":"low-moderate - steel sacrifices slowly"},{"pairA":"titanium","pairB":"300-series stainless","risk":"low - mutually compatible"},{"pairA":"zinc-plated steel","pairB":"aluminum","risk":"moderate - zinc sacrifices over time"}]},"basis":"Galvanic series in seawater ranking; risk scales with the voltage gap and electrolyte exposure","sources":["ansys-galvanic"],"tags":["galvanic","corrosion","dissimilar metals","fastener"]},{"id":"food-contact-biocompatible-flags","kind":"rule","tier":2,"title":"Food-contact and biocompatibility flags by material","summary":"304/316 stainless, PP, HDPE, PC (BPA-free) and FDA-listed PETG/nylon grades are commonly food-contact safe (21 CFR 177); biocompatibility (USP Class VI/ISO 10993) needs 316L, Ti-6Al-4V ELI or PEEK, not the standard commercial grade.","applies":["food equipment","medical device","consumer product"],"value":{"table":[{"material":"304/316 stainless","foodContact":true,"biocompatible":"implant grade (316L) only"},{"material":"PP / HDPE","foodContact":true,"biocompatible":false},{"material":"PC (BPA-free grade)","foodContact":true,"biocompatible":false},{"material":"PA12 (medical grade)","foodContact":false,"biocompatible":"ISO 10993 grades exist"},{"material":"Ti-6Al-4V ELI","foodContact":false,"biocompatible":true},{"material":"PEEK (medical grade)","foodContact":false,"biocompatible":true}]},"basis":"FDA 21 CFR 177 food-contact substance list; USP Class VI / ISO 10993 biocompatibility testing scope","sources":["fda-usp-class-vi"],"tags":["food contact","biocompatible","fda","usp class vi","medical"]},{"id":"wall-thickness-by-material-process","kind":"rule","tier":2,"title":"Minimum wall thickness by material family and process","summary":"The floor is set by process, not material: machining >=0.8mm, injection molding >=1.0mm, sheet metal >=0.5mm, FDM >=0.8mm, SLA >=0.6mm, SLS >=0.7mm, MJF >=0.5mm, DMLS >=0.8mm. Use cad_dfm_check per process, not one blanket number.","applies":[],"value":{"table":[{"process":"machining","minWallMM":0.8},{"process":"injection_molding","minWallMM":1},{"process":"sheet_metal","minWallMM":0.5},{"process":"fdm","minWallMM":0.8},{"process":"sla","minWallMM":0.6},{"process":"sls","minWallMM":0.7},{"process":"mjf","minWallMM":0.5},{"process":"dmls","minWallMM":0.8}]},"basis":"ops/dfmRules.js PACKS[*].rules.min_wall_thickness — the enforced floor per process","sources":["protolabs-materials"],"tags":["wall thickness","process","min wall","dfm"],"check":{"process":"machining","rule":"min_wall_thickness"}},{"id":"service-temperature-by-material-class","kind":"rule","tier":2,"title":"Continuous service temperature by material class","summary":"Rough continuous-service ceilings: commodity plastics 50-80C, engineering plastics 90-115C, high-performance plastics 150-250C, aluminum 120-150C, carbon steel 400C+, stainless 800C+, titanium ~400C before surface oxidation.","applies":[],"value":{"table":[{"class":"commodity plastic","maxTempC":70},{"class":"engineering plastic","maxTempC":105},{"class":"high-performance plastic","maxTempC":200},{"class":"aluminum alloy","maxTempC":135},{"class":"carbon/alloy steel","maxTempC":425},{"class":"stainless steel","maxTempC":800},{"class":"titanium alloy","maxTempC":400}]},"basis":"Midpoints of HDT/service-temperature ranges published across the tier-1 material entries in this pack","sources":["matweb","protolabs-materials"],"tags":["temperature","service temperature","material class"]},{"id":"corrosion-resistance-by-material-class","kind":"rule","tier":2,"title":"Corrosion resistance by material class (uncoated)","summary":"Uncoated bare-metal ranking, best to worst: titanium and 316 stainless (excellent) > 304 stainless > aluminum (self-passivating) > brass/bronze/copper (patinas) > carbon/alloy steel (rusts, needs coating or oil).","applies":[],"value":{"table":[{"material":"titanium / 316 stainless","rating":"excellent"},{"material":"304 stainless","rating":"very good"},{"material":"aluminum (bare)","rating":"good, self-passivating"},{"material":"brass / bronze / copper","rating":"fair, patinas"},{"material":"carbon / alloy steel (uncoated)","rating":"poor, needs coating"}]},"basis":"Standard atmospheric/mild-chemical corrosion behavior summarized from supplier material guides","sources":["matweb","protolabs-materials"],"tags":["corrosion","material class","coating"]},{"id":"al-6063-t5","kind":"material","tier":2,"title":"Aluminum 6063-T5 (extrusion)","summary":"6063-T5: 2.70 g/cm3, E 68.9 GPa, yield 145 MPa, UTS 186 MPa, max temp 150C, cost 2/5. Lower strength than 6061 but extrudes into far more complex thin-wall profiles and takes a better anodized finish — the T-slot/frame-rail alloy.","applies":["aluminum extrusion","frame rail","trim"],"value":{"table":[{"density":2.7,"E":68.9,"yield":145,"uts":186,"maxTempC":150,"costClass":2}]},"basis":"MatWeb 6063-T5 datasheet; ASTM B221 extrusion standard","sources":["matweb","astm-b221"],"tags":["aluminum","6063","extrusion","frame"]},{"id":"steel-a36","kind":"material","tier":2,"title":"Structural steel A36","summary":"A36: 7.85 g/cm3, E 200 GPa, yield 250 MPa, UTS 400-550 MPa, elong 20%, max temp 400C, cost 1/5. The generic structural-plate steel — good weldability, no guaranteed hardenability; specify 1018/1045 instead when a machined finish matters.","applies":["weldment","plate frame","structural bracket"],"value":{"table":[{"density":7.85,"E":200,"yield":250,"uts":450,"elongPct":20,"maxTempC":400,"costClass":1}]},"basis":"ASTM A36/A36M specification","sources":["astm-a36"],"tags":["steel","a36","structural","weldment"]},{"id":"ss-17-4ph","kind":"material","tier":2,"title":"Stainless steel 17-4PH (H900)","summary":"17-4PH H900: 7.75 g/cm3, E 196 GPa, yield 1170 MPa, UTS 1310 MPa, elong 10%, max temp 315C, cost 4/5. Precipitation-hardening stainless — near-4140 strength with better corrosion resistance; age at 480-620C after machining for full properties.","applies":["high-strength stainless part","valve component","aerospace fitting"],"value":{"table":[{"density":7.75,"E":196,"yield":1170,"uts":1310,"elongPct":10,"maxTempC":315,"costClass":4}]},"basis":"MatWeb 17-4PH H900 datasheet","sources":["matweb"],"tags":["stainless","17-4ph","precipitation hardening","high strength"]},{"id":"cast-iron-gray","kind":"material","tier":2,"title":"Gray cast iron (Class 30)","summary":"Gray iron Class 30: 7.15 g/cm3, E 100-145 GPa, UTS 207 MPa (min), compressive ~700 MPa, max temp 400C, cost 1/5. Excellent vibration damping and compressive strength, poor tensile/impact — brittle; cast, not welded, machines with a graphite-lubricated chip.","applies":["machine base","engine block","vibration-damping fixture"],"value":{"table":[{"density":7.15,"EGPa":120,"utsMPa":207,"compressiveMPa":700,"maxTempC":400,"costClass":1}]},"basis":"MatWeb ASTM A48 Class 30 gray iron datasheet","sources":["matweb"],"tags":["cast iron","gray iron","machine base","damping"]},{"id":"zinc-zamak3","kind":"material","tier":2,"title":"Zinc die-cast alloy (Zamak 3)","summary":"Zamak 3: 6.60 g/cm3, E 96 GPa, yield 176 MPa, UTS 283 MPa, elong 10%, max temp 100C, cost 2/5. Casts to tight tolerance with a fine as-cast finish at lower tooling cost than aluminum die-casting; not for sustained load above 100C (creeps).","applies":["die-cast housing","decorative hardware","connector shell"],"value":{"table":[{"density":6.6,"E":96,"yield":176,"uts":283,"elongPct":10,"maxTempC":100,"costClass":2}]},"basis":"MatWeb Zamak 3 (ASTM AG40A) datasheet","sources":["matweb"],"tags":["zinc","zamak","die casting","zamak 3"]},{"id":"steel-spring-1075","kind":"material","tier":2,"title":"Spring steel 1075 / music wire","summary":"1075 spring temper: 7.85 g/cm3, E 200 GPa, yield ~1300 MPa, UTS ~1450 MPa, max temp 250C, cost 2/5. High carbon, oil-quenched-and-tempered for elastic (not plastic) deflection — flat springs, wire forms; music wire (ASTM A228) is the cold-drawn round-wire equivalent.","applies":["leaf spring","wire spring","snap clip"],"value":{"table":[{"density":7.85,"E":200,"yieldMPa":1300,"utsMPa":1450,"maxTempC":250,"costClass":2}]},"basis":"MatWeb 1075 spring-temper steel and ASTM A228 music wire datasheets","sources":["matweb","sae-j403"],"tags":["spring steel","1075","music wire","spring"]},{"id":"tool-steel-comparison","kind":"material","tier":2,"title":"Tool steel comparison (O1 / A2 / D2)","summary":"O1 (oil-hardened): yield ~1380 MPa, easiest to harden. A2 (air-hardened): yield ~1500 MPa, less distortion. D2 (high-Cr): yield ~1700 MPa, best wear/edge retention, hardest to grind. ~7.8 g/cm3, service to 230C tempered.","applies":["stamping die","cutting tool","wear-resistant fixture"],"value":{"table":[{"density":7.8,"o1YieldMPa":1380,"a2YieldMPa":1500,"d2YieldMPa":1700,"maxTempC":230,"costClass":3}]},"basis":"MatWeb O1/A2/D2 tool steel datasheets","sources":["matweb"],"tags":["tool steel","o1","a2","d2","die"]},{"id":"bronze-c932","kind":"material","tier":2,"title":"Bearing bronze C932","summary":"C932 (SAE 660): 8.64 g/cm3, E 103 GPa, yield 152 MPa, UTS 241 MPa, elong 20%, max temp 260C, cost 4/5. High-tin bronze cast bushing alloy — self-lubricating with graphite/oil impregnation, standard for sleeve bearings and worm gears against steel shafts.","applies":["bushing","sleeve bearing","worm gear"],"value":{"table":[{"density":8.64,"E":103,"yield":152,"uts":241,"elongPct":20,"maxTempC":260,"costClass":4}]},"basis":"MatWeb C93200 (SAE 660) bearing bronze datasheet","sources":["matweb"],"tags":["bronze","c932","bushing","bearing"]},{"id":"plastic-peek","kind":"material","tier":2,"title":"PEEK","summary":"PEEK: 1.32 g/cm3, E 3.6 GPa, yield 100 MPa, HDT 152C, max temp 250C, cost 5/5. Highest continuous-use temperature and chemical resistance of common engineering plastics, autoclavable and implant-gradable; the most expensive plastic in routine use.","applies":["high-temp part","chemical-resistant seal","medical implant"],"value":{"table":[{"density":1.32,"E":3.6,"yield":100,"hdtC":152,"maxTempC":250,"costClass":5}]},"basis":"MatWeb generic PEEK (unfilled) datasheet","sources":["matweb"],"tags":["peek","high temperature","chemical resistant","medical"]},{"id":"plastic-asa","kind":"material","tier":2,"title":"ASA plastic","summary":"ASA: 1.07 g/cm3, E 2.1 GPa, yield 45 MPa, HDT 100C, max temp 85C, cost 2/5. The UV-stable alternative to ABS — same processability and impact strength without yellowing/embrittling outdoors; the default choice for any part that lives in sunlight.","applies":["outdoor enclosure","automotive trim","fdm print"],"value":{"table":[{"density":1.07,"E":2.1,"yield":45,"hdtC":100,"maxTempC":85,"costClass":2}]},"basis":"MatWeb generic ASA datasheet","sources":["matweb"],"tags":["asa","uv stable","outdoor","fdm"]},{"id":"plastic-hips","kind":"material","tier":2,"title":"HIPS","summary":"HIPS: 1.04 g/cm3, E 2.1 GPa, yield 22 MPa, HDT 88C, max temp 70C, cost 1/5. Dissolves in limonene (common FDM dual-extrusion support material for ABS); also a cheap vacuum-forming sheet stock — lower strength/UV resistance than ABS.","applies":["fdm support material","vacuum-formed panel","low-cost enclosure"],"value":{"table":[{"density":1.04,"E":2.1,"yield":22,"hdtC":88,"maxTempC":70,"costClass":1}]},"basis":"MatWeb generic HIPS datasheet","sources":["matweb"],"tags":["hips","support material","vacuum forming"]},{"id":"astm-a36-standard","kind":"standard","tier":3,"title":"ASTM A36/A36M — carbon structural steel","summary":"ASTM A36 covers plate, bar and shape carbon steel for riveted, bolted or welded structures: min yield 250 MPa, UTS 400-550 MPa, up to 8 in thick. It sets chemistry (max 0.29% C) and mechanical minimums, not a machining or corrosion spec.","applies":["structural steel","weldment"],"basis":"ASTM A36/A36M-19 full text scope and mechanical requirements sections","sources":["astm-a36"],"tags":["astm","a36","structural steel","standard"]},{"id":"astm-a240-standard","kind":"standard","tier":3,"title":"ASTM A240/A240M — stainless steel plate, sheet, strip","summary":"ASTM A240 covers chromium and chromium-nickel stainless plate/sheet/strip for pressure vessels: 304 min yield 205 MPa, 316 min yield 205 MPa (adds 2-3% Mo for pitting resistance) — the spec the tier-1 304/316 entries are drawn from.","applies":["stainless steel","pressure vessel"],"basis":"ASTM A240/A240M-23a chemical composition and mechanical property tables","sources":["astm-a240"],"tags":["astm","a240","stainless steel","standard"]},{"id":"astm-b221-standard","kind":"standard","tier":3,"title":"ASTM B221 — aluminum extruded bar, rod, wire, profile, tube","summary":"ASTM B221 covers extruded aluminum shapes across the 1000-7000 series alloys and their tempers (T4, T5, T6), setting dimensional tolerances and mechanical minimums per alloy-temper combination — the standard behind stocked 6061-T6 and 6063-T5 extrusion.","applies":["aluminum extrusion"],"basis":"ASTM B221-21 scope and alloy/temper tables","sources":["astm-b221"],"tags":["astm","b221","aluminum","extrusion","standard"]},{"id":"astm-b265-standard","kind":"standard","tier":3,"title":"ASTM B265 — titanium and titanium alloy strip, sheet, plate","summary":"ASTM B265 defines titanium grades by chemistry and mechanical minimums, including Grade 5 (Ti-6Al-4V, min yield 828 MPa) and Grade 23 (Ti-6Al-4V ELI, lower oxygen for better fracture toughness/biocompatibility) used in medical implants.","applies":["titanium","medical implant"],"basis":"ASTM B265-20 grade table and mechanical requirements","sources":["astm-b265"],"tags":["astm","b265","titanium","standard"]},{"id":"iso-1043-plastics-codes","kind":"standard","tier":3,"title":"ISO 1043 — plastics abbreviation codes","summary":"ISO 1043-1 defines the standard 2-4 letter abbreviations printed on parts and datasheets (PA=polyamide/nylon, PC=polycarbonate, POM=polyoxymethylene/acetal, ABS, PP, PE, PMMA, PEEK) so a molded-in resin-identification mark can be read without a datasheet.","applies":["plastic identification","resin marking"],"basis":"ISO 1043-1:2022 basic polymer symbol table","sources":["iso-1043"],"tags":["iso","1043","plastics","abbreviation","standard"]},{"id":"aluminum-temper-designations","kind":"note","tier":3,"title":"Aluminum temper designation system (T/H/O)","summary":"T-tempers are heat-treated (T4 solution-treated, T5 artificially aged, T6 solution+artificially aged — the strongest common temper); H-tempers are strain-hardened on non-heat-treatable alloys like 5052 (H32); O is fully annealed.","applies":["aluminum"],"basis":"Aluminum Association temper designation system (ANSI H35.1)","sources":["asm-handbook-2"],"tags":["aluminum","temper","t6","h32","designation"]},{"id":"steel-designation-system","kind":"note","tier":3,"title":"AISI/SAE 4-digit steel designation system","summary":"The first two digits name the alloy family (10=plain carbon, 41=chromium-molybdenum, 43=nickel-chromium-molybdenum); the last two (or three) digits are the carbon content in hundredths of a percent — 1018 is plain carbon at 0.18% C, 4140 is chromoly at 0.40% C.","applies":["steel"],"basis":"SAE J403 designation system for carbon and alloy steels","sources":["sae-j403"],"tags":["steel","sae","aisi","designation","1018","4140"]},{"id":"stainless-steel-families","kind":"note","tier":3,"title":"Stainless steel families: 300 vs 400 series vs PH","summary":"300-series (304, 316) are non-magnetic, weldable, not heat-treat hardenable. 400-series (410, 430) are magnetic, through-hardenable, but weld poorly and corrode more. PH grades (17-4PH) give near-martensitic strength with 300-series corrosion resistance.","applies":["stainless steel"],"basis":"ASM Handbook Vol 2 stainless steel family overview","sources":["asm-handbook-2"],"tags":["stainless","300 series","400 series","precipitation hardening"]}]},{"$schema":"nativecad-dfm-pack/1","id":"medical","title":"Medical devices — biocompatibility, sterilization, cleanability, labware","sector":"medical","version":"2026-09-03","summary":"Biocompatibility contact categories and USP Class VI materials, sterilization compatibility (autoclave/EtO/gamma/H2O2), cleanability geometry, IEC 60601-1 mechanical tests, ISO 80369-7 Luer fittings, tubing, and ANSI/SLAS microplate, tube-rack, cuvette, slide and syringe labware dimensions.","aliases":["medical device","lab","laboratory","microplate","well plate","sbs","tube rack","luer","syringe","autoclave","sterilisation","sterilization","biocompatible","pipette","cuvette","petri","lab fixture","diagnostic device"],"crossSector":false,"size":"full","sources":[{"id":"iso-10993-1","title":"ISO 10993-1:2018 Biological evaluation of medical devices — Part 1: Evaluation and testing within a risk management process","url":"https://www.iso.org/standard/68936.html","accessed":"2026-09-03"},{"id":"usp-class-vi","title":"USP <88> Biological Reactivity Tests, In Vivo — Class VI plastics","accessed":"2026-09-03"},{"id":"iso-13485","title":"ISO 13485:2016 Medical devices — Quality management systems — Requirements for regulatory purposes","url":"https://www.iso.org/standard/59752.html","accessed":"2026-09-03"},{"id":"iec-60601-1","title":"IEC 60601-1:2005+AMD1+AMD2 Medical electrical equipment — Part 1: General requirements for basic safety and essential performance","url":"https://webstore.iec.ch/publication/2606","accessed":"2026-09-03"},{"id":"iso-80369-7","title":"ISO 80369-7:2021 Small-bore connectors for liquids and gases in healthcare applications — Part 7: Connectors for intravascular or hypodermic applications (Luer)","url":"https://www.iso.org/standard/79831.html","accessed":"2026-09-03"},{"id":"ansi-slas-1","title":"ANSI/SLAS 1-2004 (R2012) Microplates — Footprint Dimensions","url":"https://www.slas.org/education/ansi-slas-microplate-standards/","accessed":"2026-09-03"},{"id":"ansi-slas-2","title":"ANSI/SLAS 2-2004 (R2012) Microplates — Height Dimensions","url":"https://www.slas.org/education/ansi-slas-microplate-standards/","accessed":"2026-09-03"},{"id":"ansi-slas-4","title":"ANSI/SLAS 4-2004 (R2012) Microplates — Well Positions","url":"https://www.slas.org/education/ansi-slas-microplate-standards/","accessed":"2026-09-03"},{"id":"iso-14644-1","title":"ISO 14644-1:2015 Cleanrooms and associated controlled environments — Part 1: Classification of air cleanliness by particle concentration","url":"https://www.iso.org/standard/53394.html","accessed":"2026-09-03"},{"id":"iso-7886-1","title":"ISO 7886-1:2017 Sterile hypodermic syringes for single use — Part 1: Syringes for manual use","url":"https://www.iso.org/standard/64837.html","accessed":"2026-09-03"},{"id":"iso-11135","title":"ISO 11135:2014 Sterilization of health-care products — Ethylene oxide — Requirements for development, validation and routine control","url":"https://www.iso.org/standard/56137.html","accessed":"2026-09-03"},{"id":"iso-11137-2","title":"ISO 11137-2:2013 Sterilization of health-care products — Radiation — Part 2: Establishing the sterilization dose","url":"https://www.iso.org/standard/62058.html","accessed":"2026-09-03"},{"id":"iso-17665-1","title":"ISO 17665-1:2006 Sterilization of health care products — Moist heat — Part 1: Requirements for development, validation and routine control","url":"https://www.iso.org/standard/46707.html","accessed":"2026-09-03"},{"id":"ensinger-medical","title":"Ensinger — Medical Grade Plastics Design Guide","url":"https://www.ensingerplastics.com/en/shapes/medical-plastics","accessed":"2026-09-03"},{"id":"solvay-medical","title":"Solvay Specialty Polymers — Healthcare & Medical Materials Guide","url":"https://www.solvay.com/en/brands/healthcare-polymers","accessed":"2026-09-03"}],"entries":[{"id":"biocompat-contact-duration","kind":"rule","tier":1,"title":"ISO 10993-1 body-contact duration categories","summary":"Classify device contact by duration before picking materials: limited contact < 24 h, prolonged contact 24 h to 30 days, permanent contact > 30 days — each step up adds required biocompatibility endpoints.","applies":["biocompatibility","medical device"],"value":{"table":[{"category":"limited","max_h":24},{"category":"prolonged","min_h":24,"max_d":30},{"category":"permanent","min_d":30}],"unit":"h","note":"limited <24h; prolonged 24h-30d; permanent >30d"},"basis":"ISO 10993-1 Table A.1 contact-duration categories drive which biological endpoints (cytotoxicity, sensitization, irritation, systemic toxicity, etc.) a device must be evaluated against","sources":["iso-10993-1"],"tags":["biocompatibility","iso10993","contact-duration"]},{"id":"usp-class-vi-materials","kind":"material","tier":1,"title":"USP Class VI plastics for patient-contact parts","summary":"USP Class VI / ISO 10993 grades commonly specified for patient or drug contact: PC, PSU/PPSU, PEEK, POM-C, silicone, 316L stainless, Ti-6Al-4V and PP — 8 material families cover most rigid, flexible and metal medical parts.","applies":["biocompatibility","material","medical device"],"value":{"options":["PC","PSU/PPSU","PEEK","POM-C","silicone","316L","Ti-6Al-4V","PP"]},"basis":"USP <88> Class VI in-vivo reactivity plus ISO 10993 testing is the baseline grade qualification most medical-device resin and metal suppliers publish against","sources":["usp-class-vi","iso-10993-1"],"tags":["material","usp-class-vi","biocompatibility"]},{"id":"autoclave-steam-sterilization","kind":"process","tier":1,"title":"Steam autoclave sterilization compatibility","summary":"A steam-autoclavable device must survive 121C for 15-20 min (gravity cycle) or 134C for 3-20 min (pre-vacuum cycle); PSU/PPSU, PEEK, PP and 316L tolerate repeated cycles, ABS and POM do not.","applies":["sterilization","autoclave","reusable device"],"value":{"min":121,"max":134,"unit":"C","note":"121C 15-20min gravity; 134C down to 3min pre-vacuum"},"basis":"ISO 17665-1 moist-heat sterilization cycle parameters and published resin heat-deflection temperatures set which polymers survive repeated autoclaving","sources":["iso-17665-1","ensinger-medical"],"tags":["sterilization","autoclave","steam"]},{"id":"eto-sterilization-compatibility","kind":"process","tier":1,"title":"Ethylene oxide (EtO) sterilization compatibility","summary":"EtO sterilizes most plastics (PC, ABS, PVC, PP, PA) at 37-63C without heat damage, but a sealed cavity needs a vent path >=1 mm or a porous membrane so residual gas can aerate out over the 8-12 h cycle.","applies":["sterilization","eto","single-use device"],"value":{"min":37,"max":63,"unit":"C"},"basis":"ISO 11135 EtO cycle runs at low temperature so it suits heat-sensitive plastics broadly, but trapped gas in an unvented cavity fails residual-limit testing","sources":["iso-11135"],"tags":["sterilization","eto","venting"]},{"id":"gamma-sterilization-compatibility","kind":"process","tier":1,"title":"Gamma irradiation sterilization compatibility","summary":"Gamma sterilization uses a validated dose of 25-50 kGy; PC and stabilised PP hold up, but unstabilised POM and PTFE degrade (chain scission, discolouration, embrittlement) at these doses and should not be gamma-sterilized.","applies":["sterilization","gamma","single-use device"],"value":{"value":"25-50 kGy","unit":"text"},"basis":"ISO 11137-2 dose-setting methods target a validated sterility assurance level; radiation-stable grades (gamma-stabilised PP, PC) are formulated specifically to survive this dose band","sources":["iso-11137-2","ensinger-medical"],"tags":["sterilization","gamma","radiation"]},{"id":"cleanability-internal-radius","kind":"rule","tier":1,"title":"Minimum internal radius for cleanable wetted surfaces","summary":"Radius every internal corner on a wetted or reprocessed surface to at least 3 mm; a sharper corner traps residue and biofilm that a brush or cleaning fluid cannot reach.","applies":["cleanability","wetted surface","reusable device"],"value":{"min":3,"unit":"mm"},"basis":"Cleaning-validation guidance for reusable devices treats any internal radius under a few mm as a residue trap that fails a worst-case soil challenge","sources":["iso-13485"],"tags":["cleanability","radius","reusable"]},{"id":"cleanability-no-crevice","kind":"rule","tier":1,"title":"No blind pockets or crevices on wetted geometry","summary":"A wetted or reprocessed part must have no blind pocket or crevice; where two surfaces must meet, hold the gap to >=1 mm (cleaning fluid can flow through) or 0 mm (a true seal with no gap at all) — nothing in between.","applies":["cleanability","wetted surface","reusable device"],"value":{"value":1,"unit":"mm","note":"gap >=1mm (flushable) or 0mm (sealed); no partial gap"},"basis":"A gap narrower than 1 mm traps fluid by capillary action but is too tight for a brush or jet to clear, so cleaning validation treats anything between 0 and 1 mm as a failure mode","sources":["iso-13485"],"tags":["cleanability","crevice","gap"]},{"id":"cleanability-surface-roughness","kind":"tolerance","tier":1,"title":"Surface roughness for wetted stainless vs. housing surfaces","summary":"Hold wetted 316L stainless surfaces to Ra <= 0.8 um so residue and bacteria can't lodge in the finish; a non-wetted housing surface only needs Ra <= 1.6 um.","applies":["cleanability","surface finish","316l","housing"],"value":{"max":1.6,"unit":"um","note":"wetted stainless Ra<=0.8um; housings Ra<=1.6um"},"basis":"Ra 0.8 um is the common pharmaceutical/medical wetted-surface polish floor; a dry housing surface has no cleaning-validation driver so it can stay at a coarser machining/moulding finish","sources":["iso-13485","ensinger-medical"],"tags":["surface-finish","ra","cleanability"]},{"id":"cleanability-drain-angle","kind":"rule","tier":2,"title":"Minimum drain angle on cleanable trays and troughs","summary":"Slope any surface meant to drain cleaning fluid or condensate at least 3 deg toward a low point; a flatter floor leaves standing liquid that reintroduces bioburden after the cycle.","applies":["cleanability","tray","reusable device"],"value":{"min":3,"unit":"deg"},"basis":"A 3 deg minimum slope is the common cleanroom/pharma equipment-drainage floor that reliably sheets liquid off a flat pan rather than pooling it","sources":["iso-13485"],"tags":["drain","cleanability","angle"]},{"id":"enclosure-ip-rating-60601","kind":"rule","tier":1,"title":"Minimum ingress protection for a medical electrical enclosure","summary":"IEC 60601-1 treats an ordinary medical electrical enclosure as needing at least IP21 (protected against solid objects >=12.5 mm and vertically dripping water); a device meant for wipe-down or splash exposure should target IP22 or higher.","applies":["ip rating","enclosure","medical device"],"value":{"options":["IP21","IP22","IP54"]},"basis":"IP21 is the IEC 60601-1 baseline ingress class for a general medical electrical enclosure with no explicit liquid-exposure claim","sources":["iec-60601-1"],"tags":["ip-rating","enclosure","60601"]},{"id":"enclosure-push-force-60601","kind":"test","tier":2,"title":"Enclosure push-force test (IEC 60601-1)","summary":"IEC 60601-1 pushes a rigid test finger against an enclosure at 250 N; a wall, boss or vent grille under it must not deflect enough to touch an internal hazardous part or crack.","applies":["mechanical strength","enclosure","medical device"],"value":{"value":250,"unit":"N"},"basis":"IEC 60601-1 clause 15's push-test load simulates a person leaning on the enclosure in normal use","sources":["iec-60601-1"],"tags":["test","push-force","mechanical"]},{"id":"handheld-drop-test-60601","kind":"test","tier":2,"title":"Handheld device drop test","summary":"Drop a handheld medical device 1 m onto a hard surface in the orientations most likely in normal use; the shell must keep enclosure integrity (no crack exposing hazardous parts) and IP rating after the drop.","applies":["drop test","handheld","medical device"],"value":{"value":1000,"unit":"mm","note":"1 m drop height"},"basis":"IEC 60601-1's drop-test provision for portable/handheld equipment uses a 1 m fall onto a hard floor as the normal-use worst case","sources":["iec-60601-1"],"tags":["test","drop","handheld"]},{"id":"ball-impact-test-60601","kind":"test","tier":2,"title":"Spring-hammer / ball impact test (IEC 60601-1)","summary":"IEC 60601-1's impact test drops a 0.5 kg steel ball from 1.3 m onto the enclosure; the wall must not crack or deform enough to expose an internal hazardous part.","applies":["impact test","enclosure","medical device"],"value":{"value":0.5,"unit":"kg","note":"ball dropped from 1300mm (1.3m)"},"basis":"IEC 60601-1 clause 15.3.4's ball-impact provision simulates an accidental knock against the enclosure in normal use","sources":["iec-60601-1"],"tags":["test","impact","mechanical"]},{"id":"sharp-edge-radius-60601","kind":"rule","tier":2,"title":"Minimum edge radius to avoid a sharp edge (IEC 60601-1)","summary":"Round every accessible edge on a medical device to at least 0.5 mm radius; IEC 60601-1's sharp-edge test fails any edge that can cut the standard test finger below this radius.","applies":["sharp edge","enclosure","medical device"],"value":{"min":0.5,"unit":"mm"},"basis":"IEC 60601-1 clause 23's sharp-edge requirement is checked by an edge-radius gauge; 0.5 mm is the common practical floor moulders and machinists design to","sources":["iec-60601-1"],"tags":["sharp-edge","radius","safety"]},{"id":"luer-male-taper","kind":"dimension","tier":1,"title":"ISO 80369-7 male Luer taper","summary":"A male Luer tip runs a 6% taper, outer diameter growing from 4.0 mm at the tip to 4.3 mm over a 7.5 mm engagement length, so it self-seals by friction against the matching female taper.","applies":["luer","syringe","tubing connector"],"value":{"min":4,"max":4.3,"unit":"mm","note":"over 7.5mm length; 6% taper"},"basis":"ISO 80369-7 defines the 6% Luer taper geometry so male and female fittings from different manufacturers seal and disconnect predictably","sources":["iso-80369-7"],"tags":["luer","taper","connector"]},{"id":"microplate-sbs-footprint","kind":"dimension","tier":1,"title":"SBS/ANSI SLAS microplate footprint","summary":"An SBS-format microplate footprint is 127.76 x 85.48 mm, +/-0.5 mm, so it registers on any standard plate reader, washer or liquid handler built to the ANSI/SLAS envelope.","applies":["microplate","well plate","sbs","lab automation"],"value":{"table":[{"axis":"x","value":127.76},{"axis":"y","value":85.48}],"unit":"mm","note":"tolerance +/-0.5mm"},"basis":"ANSI/SLAS 1-2004 Footprint Dimensions is the interoperability standard every microplate handler, reader and robotic gripper is built against","sources":["ansi-slas-1"],"tags":["microplate","sbs","footprint"],"check":{"process":"injection_molding","rule":"min_wall_thickness"}},{"id":"microplate-corner-radius","kind":"dimension","tier":2,"title":"SBS microplate outer corner radius","summary":"An SBS microplate's outer corner radius is 3.18 mm (1/8 in), the value nest and carrier fixtures across the industry design their locating pockets to.","applies":["microplate","well plate","sbs"],"value":{"value":3.18,"unit":"mm"},"basis":"ANSI/SLAS 1-2004 specifies the 3.18 mm corner radius as part of the footprint envelope so nests and grippers clear consistently","sources":["ansi-slas-1"],"tags":["microplate","corner-radius","sbs"]},{"id":"microplate-96-well-pitch","kind":"dimension","tier":1,"title":"96-well microplate grid pitch and A1 offset","summary":"A 96-well SBS microplate uses a 9.0 mm well-to-well pitch on both axes, with well A1 centred at 14.38 mm from the left edge and 11.24 mm from the top edge of the footprint.","applies":["microplate","96-well","well plate"],"value":{"value":9,"unit":"mm","note":"A1 center at x=14.38mm, y=11.24mm"},"basis":"ANSI/SLAS 4-2004 Well Positions fixes the 9 mm pitch and A1 datum so pipetting heads and readers index every well correctly","sources":["ansi-slas-4"],"tags":["microplate","96-well","pitch"]},{"id":"microplate-height-family","kind":"dimension","tier":1,"title":"Microplate overall height by format","summary":"A standard SBS microplate stands 14.35 mm tall, a low-profile plate 10.4 mm, and a deep-well plate up to 44 mm — the height a stacker, lid or robotic gripper must clear.","applies":["microplate","well plate","deep well","low profile"],"value":{"table":[{"format":"standard","height":14.35},{"format":"low-profile","height":10.4},{"format":"deep-well","height":44}],"unit":"mm"},"basis":"ANSI/SLAS 2-2004 Height Dimensions plus common deep-well plate practice sets the three heights lab automation decks are designed to stack and grip","sources":["ansi-slas-2"],"tags":["microplate","height","deep-well"]},{"id":"tube-rack-microtube-bore","kind":"dimension","tier":1,"title":"Tube rack bore for 1.5/2.0 mL microtubes","summary":"A rack pocket for a 1.5-2.0 mL conical microtube bores 10.8-11.0 mm diameter, tight enough to hold the tube upright without a lid interference, loose enough to drop and pull the tube by hand.","applies":["tube rack","microtube","laboratory"],"value":{"min":10.8,"max":11,"unit":"mm"},"basis":"Common 1.5/2.0 mL conical microcentrifuge tube cap-flange outer diameter plus a light hand-insertion clearance","sources":["ensinger-medical"],"tags":["tube-rack","microtube","bore"]},{"id":"tube-rack-hole-spacing","kind":"dimension","tier":2,"title":"Tube rack hole-to-hole spacing family","summary":"Lab tube racks index holes on 16 mm, 20 mm or 32 mm centres depending on tube size — 16 mm for microtubes in dense grids, 20 mm for spaced microtube racks, 32 mm for 15/50 mL centrifuge tube racks.","applies":["tube rack","laboratory","microtube","centrifuge tube"],"value":{"options":[16,20,32],"unit":"mm"},"basis":"Common commercial tube-rack pitch families balancing tube density against wall thickness between adjacent bores","sources":["ensinger-medical"],"tags":["tube-rack","spacing","pitch"]},{"id":"material-pc-medical","kind":"material","tier":1,"title":"Polycarbonate (PC) for medical housings and windows","summary":"Medical-grade PC (~1.2 g/cm3) autoclaves and gamma-sterilizes well, is USP Class VI gradeable, and is the default clear or opaque housing resin for reusable diagnostic and monitoring device shells.","applies":["housing","window","material","reusable device"],"value":{"value":1.2,"unit":"g/cm3"},"basis":"Medical PC grade datasheet density; PC's clarity, impact strength and steam/gamma tolerance make it the default reusable-enclosure resin","sources":["ensinger-medical","usp-class-vi"],"tags":["material","pc","housing"]},{"id":"material-peek-medical","kind":"material","tier":2,"title":"PEEK for implant-adjacent and repeat-autoclave parts","summary":"PEEK (~1.3 g/cm3) survives thousands of 134C autoclave cycles without degrading and is USP Class VI/ISO 10993 gradeable, making it the material of choice for surgical instrument components and permanent-contact parts.","applies":["surgical instrument","material","permanent contact","reusable device"],"value":{"value":1.3,"unit":"g/cm3"},"basis":"Medical PEEK grade datasheet density and published repeat-autoclave/chemical-resistance performance versus PSU/PPSU and PC","sources":["solvay-medical","usp-class-vi"],"tags":["material","peek","autoclave"]},{"id":"h2o2-plasma-sterilization","kind":"process","tier":2,"title":"Hydrogen peroxide (H2O2) gas plasma sterilization","summary":"H2O2 gas plasma sterilizes heat- and moisture-sensitive devices at 45-55C in a roughly 30-75 min cycle with no water condensation, but it cannot penetrate a long narrow lumen (typically <1 mm bore over >125 mm length) or cellulose-based materials.","applies":["sterilization","h2o2","plasma"],"value":{"min":45,"max":55,"unit":"C"},"basis":"Low-temperature plasma sterilization avoids the thermal load of steam and the aeration time of EtO, at the cost of lumen-penetration and material-compatibility limits vendors publish per cycle","sources":["ensinger-medical"],"tags":["sterilization","h2o2","plasma"]},{"id":"tube-rack-large-tube-bore","kind":"dimension","tier":2,"title":"Tube rack bore for 15 mL and 50 mL centrifuge tubes","summary":"A 15 mL conical tube rack pocket bores 17 mm diameter; a 50 mL conical tube pocket bores 29-30 mm — both sized to the tube's moulded body OD plus a light drop-in clearance.","applies":["tube rack","centrifuge tube","laboratory"],"value":{"table":[{"tube":"15mL","diameter":17},{"tube":"50mL","diameter":29.5}],"unit":"mm"},"basis":"Common 15 mL and 50 mL polypropylene conical centrifuge tube body OD plus drop-in assembly clearance","sources":["ensinger-medical"],"tags":["tube-rack","centrifuge-tube","bore"]},{"id":"microplate-384-well-pitch","kind":"dimension","tier":2,"title":"384-well microplate grid pitch","summary":"A 384-well SBS microplate halves the 96-well pitch to 4.5 mm on both axes within the same SBS footprint, quadrupling well density for high-throughput screening.","applies":["microplate","384-well","well plate"],"value":{"value":4.5,"unit":"mm"},"basis":"ANSI/SLAS 4-2004 fixes the 384-well pitch at exactly half the 96-well 9 mm pitch so both formats share the same footprint and edge datums","sources":["ansi-slas-4"],"tags":["microplate","384-well","pitch"]},{"id":"luer-lock-thread","kind":"fastener","tier":2,"title":"Luer-lock collar thread engagement","summary":"A Luer-lock collar threads onto the mating fitting with a 5.2 mm major diameter, coarse-pitch thread giving at least one full turn of engagement before the taper seats, so the connection resists axial pull-off under line pressure.","applies":["luer","luer lock","syringe","tubing connector"],"value":{"value":5.2,"unit":"mm"},"basis":"ISO 80369-7 specifies the Luer-lock collar thread envelope so a locking male and female pair from different manufacturers engage and resist disconnection under pressure","sources":["iso-80369-7"],"tags":["luer","luer-lock","thread"]},{"id":"tubing-silicone-medical","kind":"dimension","tier":2,"title":"Silicone peristaltic/pump tubing sizes","summary":"Common medical silicone tubing runs 1/8 in x 1/4 in (ID x OD) for pump and peristaltic lines and 1/16 in ID for fine dosing lines; size a barb OD roughly 10% over the tubing's nominal ID for a friction-tight push-fit.","applies":["tubing","silicone","fluidics"],"value":{"options":["1/8x1/4in","1/16in ID"],"unit":"in"},"basis":"Common platinum-cured silicone pump-tubing catalogue sizes; the +10% barb-over-ID rule is standard push-fit practice to seal without a clamp","sources":["ensinger-medical"],"tags":["tubing","silicone","barb"]},{"id":"tubing-pvc-medical-grade","kind":"material","tier":2,"title":"Medical-grade PVC tubing","summary":"Medical-grade PVC (~1.3 g/cm3, DEHP-free grades increasingly specified) is the default flexible tubing material for IV sets and disposable fluid paths, chosen for kink resistance and low cost over silicone's better biocompatibility and thermal range.","applies":["tubing","pvc","fluidics","single-use device"],"value":{"value":1.3,"unit":"g/cm3"},"basis":"Medical PVC compound datasheet density; PVC dominates disposable IV/fluid-path tubing on cost and kink resistance where full silicone-grade biocompatibility isn't required","sources":["ensinger-medical"],"tags":["material","pvc","tubing"]},{"id":"cuvette-standard-dimensions","kind":"dimension","tier":2,"title":"Standard 1 cm cuvette envelope","summary":"A standard laboratory cuvette is a 12.5 mm square cross-section tube sized to a 1 cm (10 mm) optical path, the dimension every spectrophotometer cuvette holder is machined to accept.","applies":["cuvette","spectrophotometer","laboratory"],"value":{"value":12.5,"unit":"mm"},"basis":"12.5 mm external square section with a 10 mm internal optical path is the near-universal spectrophotometer cuvette holder standard","sources":["ensinger-medical"],"tags":["cuvette","optical","dimension"]},{"id":"microscope-slide-dimensions","kind":"dimension","tier":2,"title":"Standard microscope slide envelope","summary":"A standard glass or plastic microscope slide is 75 x 25 x 1 mm, the footprint every slide holder, stage clip and slide-scanner cassette is built to.","applies":["slide","microscope","laboratory"],"value":{"table":[{"axis":"length","value":75},{"axis":"width","value":25},{"axis":"thickness","value":1}],"unit":"mm"},"basis":"75 x 25 x 1 mm is the long-standing ISO/ANSI-aligned glass microscope slide size that stage clips and slide trays are machined to","sources":["ensinger-medical"],"tags":["slide","microscope","dimension"]},{"id":"petri-dish-diameters","kind":"dimension","tier":2,"title":"Common petri dish diameter family","summary":"Petri dishes come in a 35/60/90/100 mm diameter family; a plate carrier or incubator rack needs a distinct pocket diameter per size rather than one universal bore.","applies":["petri dish","laboratory","cell culture"],"value":{"options":[35,60,90,100],"unit":"mm"},"basis":"Common commercial polystyrene petri dish diameter family used across cell culture and microbiology labware","sources":["ensinger-medical"],"tags":["petri","dish","diameter"]},{"id":"pipette-tip-cone-angle","kind":"feature","tier":2,"title":"Pipette tip cone geometry","summary":"A pipette tip cone tapers roughly 2-4 deg included half-angle from the shank to a fine orifice tip, sized in a family from ~10 uL to 1000 uL, and must seal onto the pipette shaft by friction alone with no separate gasket.","applies":["pipette tip","laboratory","consumable"],"value":{"min":2,"max":4,"unit":"deg"},"basis":"A shallow, consistent cone taper is what lets a moulded tip friction-seal reliably onto a wide range of pipette shaft diameters across brands","sources":["ensinger-medical"],"tags":["pipette","tip","cone"]},{"id":"syringe-barrel-od-family","kind":"dimension","tier":2,"title":"Syringe barrel OD by nominal volume","summary":"Syringe barrel outer diameter scales with nominal volume across the common 1/3/5/10/20/60 mL family, so a syringe pump clamp or holder must be sized (or made adjustable) per volume rather than assuming one universal barrel OD.","applies":["syringe","barrel","fluidics"],"value":{"options":["1mL","3mL","5mL","10mL","20mL","60mL"],"unit":"text"},"basis":"ISO 7886-1 sterile hypodermic syringe series defines the common nominal-volume family whose barrel OD a syringe pump or clamp must accommodate","sources":["iso-7886-1"],"tags":["syringe","barrel","dimension"]},{"id":"lab-fixture-noncontact-materials","kind":"material","tier":2,"title":"3D-printed materials for non-patient-contact lab fixtures","summary":"For a non-patient-contact lab jig or fixture, PETG (~1.27 g/cm3) and PA/nylon (~1.01-1.15 g/cm3) print robust, chemical-resistant tooling; reserve PC or PEEK for any surface that will actually touch a patient, drug or reagent under the biocompatibility rule.","applies":["lab fixture","jig","3d printing","non-contact"],"value":{"table":[{"material":"petg","density":1.27},{"material":"pa12","density":1.05}],"unit":"g/cm3"},"basis":"PETG and PA12 are common FDM/SLS tooling-grade materials selected for chemical resistance and print robustness where biocompatibility is not required","sources":["ensinger-medical"],"tags":["material","lab-fixture","3d-printing"],"see":["consumer/material-pla-petg-fdm"]},{"id":"handheld-grip-diameter","kind":"dimension","tier":2,"title":"Handheld device grip diameter","summary":"Size a handheld device's grip section 30-45 mm diameter for a comfortable one-hand hold across a 5th-to-95th-percentile adult hand, tapering toward the low end for a gloved-hand use case.","applies":["handheld device","ergonomics","grip"],"value":{"min":30,"max":45,"unit":"mm"},"basis":"Common handheld-instrument grip-diameter ergonomics band balancing a secure power grip against finger-length reach to any buttons","sources":["ensinger-medical"],"tags":["ergonomics","grip","handheld"]},{"id":"handheld-button-force","kind":"dimension","tier":2,"title":"Handheld device button actuation force","summary":"Size a handheld medical device's control button for 1-3 N actuation force, low enough for a gloved or reduced-dexterity user to press deliberately, high enough to resist accidental activation in a pocket or bag.","applies":["button","handheld device","ergonomics"],"value":{"min":1,"max":3,"unit":"N"},"basis":"Common tactile-dome/silicone-pad actuation-force band for a handheld medical control that must be both glove-operable and resistant to accidental actuation","sources":["ensinger-medical"],"tags":["button","force","handheld"]},{"id":"handheld-ip-rating-family","kind":"rule","tier":2,"title":"Handheld device IP rating family","summary":"A handheld diagnostic device typically targets IP22 (drip-proof, tilted) at minimum and up to IP54 (dust-protected, splash-proof) for a device used near fluids or in the field, driving seam, button and vent gasket design.","applies":["ip rating","handheld device","seal"],"value":{"options":["IP22","IP54"]},"basis":"IP22-IP54 spans the common ingress-protection range specified for portable diagnostic and point-of-care devices depending on fluid-exposure risk","sources":["iec-60601-1"],"tags":["ip-rating","handheld","seal"]},{"id":"udi-label-recess","kind":"dimension","tier":2,"title":"UDI / label recess on a device housing","summary":"Recess a Unique Device Identifier (UDI) or rating label 0.1-0.2 mm below the surrounding housing surface so the label sits flush and its edge can't be caught and peeled, while staying legible through a cleaning-agent wipe cycle.","applies":["udi","label","housing"],"value":{"min":0.1,"max":0.2,"unit":"mm"},"basis":"A shallow flush recess sized to common label-stock thickness keeps a regulatory UDI label attached and legible through repeated cleaning","sources":["iso-13485"],"tags":["udi","label","recess"],"see":["consumer/label-recess"]},{"id":"drug-contact-material-selection","kind":"rule","tier":2,"title":"Drug-contact material selection","summary":"Any surface in direct contact with a drug product or biologic needs extractables/leachables data in addition to ISO 10993 biocompatibility — PP, PC, PSU/PPSU and silicone are the common low-extractable choices; avoid PVC without a validated plasticiser-migration study.","applies":["drug contact","material","fluidics"],"value":{"options":["PP","PC","PSU/PPSU","silicone"]},"basis":"Drug-contact qualification adds an extractables/leachables burden on top of ISO 10993 that most PVC formulations fail without a dedicated migration study, due to plasticiser leaching","sources":["iso-10993-1","usp-class-vi"],"tags":["drug-contact","material","extractables"]},{"id":"test-cleaning-cycle-reusable","kind":"test","tier":2,"title":"Cleaning-cycle durability test (IPA / dilute bleach)","summary":"Cycle a reusable device through 100-500 manual cleaning cycles with 70% IPA and 10% bleach solution; passing means no crack, no colour change and no dimensional drift beyond this pack's tolerance entries at snaps, bosses and seams.","applies":["cleaning","reusable device","test"],"value":{"min":100,"max":500,"unit":"cycles"},"basis":"Reprocessing validation for a reusable device targets its labelled service-life cycle count under the actual disinfectants the hospital protocol specifies","sources":["iso-13485"],"tags":["test","cleaning","cycle"]},{"id":"test-autoclave-cycle-life","kind":"test","tier":2,"title":"Autoclave cycle-life test","summary":"Cycle a reusable autoclavable part through 100 full 121-134C steam cycles; passing means no warp, crack or seal degradation, and any dimensional drift stays within the part's mating tolerance.","applies":["autoclave","reusable device","test"],"value":{"value":100,"unit":"cycles"},"basis":"100 cycles is a common reusable-instrument service-life validation target against ISO 17665-1 moist-heat sterilization parameters","sources":["iso-17665-1"],"tags":["test","autoclave","cycle"]},{"id":"test-ingress-handheld","kind":"test","tier":2,"title":"Ingress protection test (IP22) for a handheld device","summary":"IP22 testing drips water vertically onto the enclosure tilted up to 15 deg and probes openings with a 12.5 mm finger; passing means no water reaches a hazardous or moisture-sensitive internal part.","applies":["ingress","ip22","handheld device","test"],"value":{"value":22,"unit":"count","note":"IP2X solids + IPX2 water (tilted 15deg) test"},"basis":"IEC 60601-1 references the IEC 60529 IP test methods; IP22 is the common handheld-device minimum for incidental drip exposure","sources":["iec-60601-1"],"tags":["test","ingress","ip-rating"]},{"id":"standard-iso-10993","kind":"standard","tier":3,"title":"ISO 10993 — biological evaluation of medical devices","summary":"ISO 10993 is the multi-part standard governing biocompatibility testing; Part 1 sets the risk-management framework and the contact-duration/contact-type matrix that decides which of the other ~20 parts (cytotoxicity, sensitization, genotoxicity, etc.) apply.","applies":["biocompatibility","standard"],"basis":"Governing international standard family for medical-device biological evaluation, referenced by essentially every regulator worldwide including FDA","sources":["iso-10993-1"],"tags":["standard","iso10993","biocompatibility"]},{"id":"standard-iso-13485-note","kind":"standard","tier":3,"title":"ISO 13485 — medical device quality management systems","summary":"ISO 13485 sets the QMS a medical-device manufacturer must run (design controls, risk management, CAPA, traceability); it does not set product geometry itself, but its design-control clauses require the DFM rationale this pack documents to be on file.","applies":["quality management","standard","regulatory"],"basis":"Governing QMS standard most regulators (EU MDR, Health Canada, and via FDA's QSR alignment) require a medical-device manufacturer to certify against","sources":["iso-13485"],"tags":["standard","iso13485","qms"]},{"id":"standard-iec-60601-1-note","kind":"standard","tier":3,"title":"IEC 60601-1 — medical electrical equipment safety","summary":"IEC 60601-1 sets the mechanical, electrical and thermal safety requirements for medical electrical equipment — enclosure strength, ingress, sharp edges, drop and impact tests in this pack all trace back to its clauses 15 and 23.","applies":["safety","standard","enclosure"],"basis":"Governing basic-safety and essential-performance standard for medical electrical equipment, the source of this pack's mechanical test entries","sources":["iec-60601-1"],"tags":["standard","iec60601","safety"]},{"id":"standard-iso-80369-note","kind":"standard","tier":3,"title":"ISO 80369 — small-bore connectors for healthcare","summary":"ISO 80369 is a multi-part series standardising small-bore connectors by clinical application (Part 7 intravascular/hypodermic Luer, Part 3 enteral, Part 6 neuraxial) specifically to prevent a tubing set from one application misconnecting into another.","applies":["luer","connector","standard"],"basis":"Governing standard family for small-bore medical connectors; Part 7 is the Luer geometry this pack's luer entries cite","sources":["iso-80369-7"],"tags":["standard","iso80369","luer"]},{"id":"standard-ansi-slas-note","kind":"standard","tier":3,"title":"ANSI/SLAS 1-4 — microplate dimensional standards","summary":"ANSI/SLAS 1-4-2004 is the four-part microplate standard (footprint, height, bottom flange, well positions) that lab-automation hardware — readers, washers, liquid handlers, robotic arms — is built to, so any custom plate or nest must match it exactly.","applies":["microplate","standard","lab automation"],"basis":"Governing dimensional standard family for microplate interoperability across the laboratory-automation industry","sources":["ansi-slas-1","ansi-slas-2","ansi-slas-4"],"tags":["standard","ansi-slas","microplate"]},{"id":"standard-iso-14644-cleanroom","kind":"standard","tier":3,"title":"ISO 14644-1 — cleanroom classification for device manufacturing","summary":"ISO 14644-1 classifies cleanroom air cleanliness by particle count (ISO Class 5 through Class 8); a device manufactured for direct patient or drug contact is commonly built in ISO Class 7 or 8, not a general workshop.","applies":["cleanroom","manufacturing","standard"],"basis":"Governing cleanroom classification standard referenced by medical-device manufacturing and packaging validation, not a geometry standard itself but a manufacturing-environment note","sources":["iso-14644-1"],"tags":["standard","cleanroom","iso14644"]},{"id":"material-pom-c-medical","kind":"material","tier":2,"title":"POM-C (acetal copolymer) for medical mechanisms","summary":"POM-C (~1.41 g/cm3) is USP Class VI gradeable and used for low-friction mechanisms (valves, gears, latches) in diagnostic devices, but is not EtO- or gamma-preferred and should be limited to steam or H2O2 plasma cycles.","applies":["mechanism","valve","material"],"value":{"value":1.41,"unit":"g/cm3"},"basis":"Medical POM-C grade datasheet density; POM's low friction and dimensional stability suit precision mechanisms, but its formaldehyde off-gassing under radiation limits sterilization method choice","sources":["ensinger-medical","usp-class-vi"],"tags":["material","pom-c","mechanism"]},{"id":"material-316l-medical","kind":"material","tier":2,"title":"316L stainless steel for wetted and instrument parts","summary":"316L stainless (~8.0 g/cm3) is the default wetted-metal and surgical-instrument material for its corrosion resistance through repeated autoclave and chemical cleaning cycles, at a Ra <= 0.8 um polish on any wetted surface.","applies":["instrument","wetted surface","material"],"value":{"value":8,"unit":"g/cm3"},"basis":"316L datasheet density; the low-carbon '316L' grade resists the sensitisation/chromium-carbide corrosion that repeated autoclaving induces in plain 316","sources":["ensinger-medical"],"tags":["material","316l","stainless"]},{"id":"material-ti6al4v-medical","kind":"material","tier":2,"title":"Ti-6Al-4V for implant-grade and lightweight instrument parts","summary":"Ti-6Al-4V (~4.43 g/cm3) is the standard implant-grade titanium alloy, chosen over 316L where permanent contact biocompatibility, lower weight or MRI compatibility matters more than cost.","applies":["implant","instrument","material"],"value":{"value":4.43,"unit":"g/cm3"},"basis":"Ti-6Al-4V ELI grade datasheet density; it is the dominant implant-grade titanium alloy across orthopaedic and surgical-instrument applications","sources":["ensinger-medical","usp-class-vi"],"tags":["material","titanium","implant"]},{"id":"material-pp-medical","kind":"material","tier":2,"title":"Polypropylene (PP) for single-use fluid-path parts","summary":"Medical PP (~0.905 g/cm3) is USP Class VI gradeable, EtO- and steam-sterilizable, and the default resin for single-use labware and fluid-path components (syringe barrels, tube racks, microplates) on cost.","applies":["single-use device","tube rack","microplate","material"],"value":{"value":0.905,"unit":"g/cm3"},"basis":"Medical PP grade datasheet density; PP's low cost, chemical resistance and steam/EtO tolerance make it the default single-use labware resin","sources":["ensinger-medical","usp-class-vi"],"tags":["material","pp","single-use"]},{"id":"recipe-sbs-microplate-nest","kind":"recipe","tier":2,"title":"Recipe: SBS microplate holder/nest with finger cutouts","summary":"Build a 130x88x12 mm SBS nest block with a 128.3x86.0 mm pocket for a microplate and two 20x8 mm finger cutouts on opposite long sides; the blanket fillet is R0.8 mm, bounded by the 0.85 mm pocket rim (CADSB-744).","applies":["microplate","nest","sbs","lab fixture"],"basis":"Combines microplate-sbs-footprint and microplate-corner-radius into a buildable nest: boolean-subtract the pocket and the two finger notches, then break every edge with a blanket fillet no larger than the 0.85 mm rim the ANSI/SLAS-1 footprint leaves in a 130 mm block","sources":["ansi-slas-1"],"tags":["recipe","microplate","nest"],"recipe":{"prompt":"Model a 130x88x12mm SBS microplate nest: a 128.3x86.0mm pocket, two 20x8mm finger cutouts on opposite long sides, and a 0.8mm blanket edge break","steps":[{"tool":"cad_box","args":{"dx":130,"dy":88,"dz":12},"note":"nest block"},{"tool":"cad_box","args":{"dx":128.3,"dy":86,"dz":9,"origin":[0.85,1,3]},"note":"pocket tool, centred, piercing the top (9mm deep leaves 3mm floor)"},{"tool":"cad_boolean_subtract","args":{"of":"$0","tool":"$1"},"note":"cut the rectangular plate pocket"},{"tool":"cad_box","args":{"dx":20,"dy":8,"dz":6,"origin":[10,-1,3]},"note":"finger cutout tool 1, one long side, cut before filleting"},{"tool":"cad_boolean_subtract","args":{"of":"$2","tool":"$3"},"note":"cut finger access 1 on the plain rectangular tray"},{"tool":"cad_box","args":{"dx":20,"dy":8,"dz":6,"origin":[10,81,3]},"note":"finger cutout tool 2, opposite long side"},{"tool":"cad_boolean_subtract","args":{"of":"$4","tool":"$5"},"note":"cut finger access 2"},{"tool":"cad_fillet_edges","args":{"of":"$6","radius":0.8},"note":"blanket fillet last — 0.8mm is the largest radius the 0.85mm pocket rim carries; R3.5 is refused blend-through-wall (CADSB-744). A 3.18mm-class corner in the pocket needs a selective fillet on the four pocket corners, not a blanket one"}],"expect":{"volume":37664.17,"faceCount":31,"watertight":true,"selfIntersection":false,"note":"measured 2026-09-19: CADSB-735 (315d51afc, 2026-09-06) stopped the whole-body fillet publishing two bands built THROUGH each other; R0.8 on the 0.85 mm pocket rim is that pair. -6 faces, and the volume moved only +0.146% — INSIDE the 0.5% band, so faceCount is the only number that ever caught this one"}}},{"id":"recipe-tube-rack-grid","kind":"recipe","tier":2,"title":"Recipe: 24-position microtube rack with a hole grid","summary":"Build a 104x76x30 mm tube rack block with a 6x4 grid of 11.2 mm diameter, 20 mm-deep holes on 16 mm centres sized for 1.5/2.0 mL microtubes.","applies":["tube rack","microtube","laboratory"],"basis":"Combines tube-rack-microtube-bore and tube-rack-hole-spacing into one buildable rack via a single cad_hole_pattern grid","sources":["ensinger-medical"],"tags":["recipe","tube-rack","hole-pattern"],"recipe":{"prompt":"Model a 104x76x30mm tube rack block with a 6x4 grid of 11.2mm diameter, 20mm deep holes on 16mm centres for 1.5/2.0mL microtubes","steps":[{"tool":"cad_box","args":{"dx":104,"dy":76,"dz":30},"note":"rack block"},{"tool":"cad_hole_pattern","args":{"of":"$0","type":"drill","diameter":11.2,"depth":20,"pattern":{"kind":"grid","origin":[12,12],"dx":16,"dy":16,"nx":6,"ny":4}},"note":"6x4 grid of microtube bores on 16mm pitch, starting 12mm from the rack edges"}],"expect":{"volume":187178.21,"faceCount":102,"watertight":true,"note":"measured 2026-09-19: CADSF-1561 (cc1f38cb, 2026-09-15) gave a BLIND hole a 118° DRILL POINT: the flat floor became a cone on the 24 Ø11.2x20 tube pockets, AND THE ARITHMETIC CLOSES: 237120 - 24 x pi x 5.6^2 x 20 = 189831.6 with flat floors; 24 x the 118° point cone (pi x 5.6^2 x 3.365 / 3 = 110.5 mm^3 each) takes a further 2652 mm^3 to 187179.6 against 187178.21 measured. faceCount 6+24x3 = 78 -> 6+24x4 = 102. The -1.447% is the drill point, not a regression"}}},{"id":"recipe-handheld-device-shell","kind":"recipe","tier":2,"title":"Recipe: hand-held device shell with filleted edges and shell wall","summary":"Build a 140x60x30 mm handheld device shell: hollowed to a 2 mm wall open on the bottom, then R2 mm rounded outer edges — the largest blanket radius a 2 mm wall carries (CADSB-744), and above the 0.5 mm IEC 60601-1 sharp-edge floor.","applies":["handheld device","housing","enclosure"],"basis":"Combines handheld-grip-diameter-scale proportions, sharp-edge-radius-60601 and enclosure wall practice into one buildable shell: shell first, then a blanket fillet whose radius is bounded by the 2 mm wall (a larger one crosses the inner face — CADSB-744)","sources":["iec-60601-1"],"tags":["recipe","handheld","shell"],"recipe":{"prompt":"Model a 140x60x30mm handheld device shell hollowed to a 2mm wall open on the bottom, with R2mm rounded outer edges","steps":[{"tool":"cad_box","args":{"dx":140,"dy":60,"dz":30},"note":"device body block"},{"tool":"cad_shell","args":{"of":"$0","thickness":2,"open":[{"normal":[0,0,-1]}]},"note":"hollow to a 2mm wall, open on the bottom; shell before fillets"},{"tool":"cad_fillet_edges","args":{"of":"$1","radius":2},"note":"round the outer edges after shelling — radius = the 2mm wall; R6 here is refused blend-through-wall (CADSB-744)"}],"expect":{"volume":38310.99,"faceCount":23,"watertight":true,"selfIntersection":false,"note":"measured 2026-09-19: CADSB-735 (315d51afc, 2026-09-06) stopped the whole-body fillet publishing two bands built THROUGH each other; R2 on the 2 mm bottom rim is that pair, so the 439.9 mm^3 the pin removed at the rim is material the sound body keeps (the two bands’ naive sum over 400 mm outer + 384 mm inner at r^2(1-pi/4) is 673 mm^3, and they overlap on a 2 mm rim). The pinned body was self-intersecting at the rim under this recipe’s own expect.selfIntersection:false"}}}]},{"$schema":"nativecad-dfm-pack/1","id":"mounts-brackets","title":"Mounts & brackets — VESA, tripod, GoPro, wall, shelf, extrusion","sector":"mounts-brackets","version":"2026-09-04","summary":"Mounting-interface dimensions (VESA, tripod, Arca-Swiss, GoPro), bike clamp diameters, shelf/L-bracket structural rules, wall-anchor and T-slot extrusion fasteners, materials and the load/vibration/drop tests a mount or bracket is held to.","aliases":["vesa","vesa mount","vesa plate","tripod mount","camera mount","gopro mount","phone mount","bike mount","handlebar mount","pole mount","hook bracket","corner brace","angle bracket","arca swiss","shelf bracket","wall mount","tv mount","monitor arm","extrusion bracket"],"crossSector":false,"size":"full","sources":[{"id":"vesa-fdmi","title":"VESA Flat Display Mounting Interface (FDMI) — MIS-D/E/F","url":"https://www.racksolutions.com/news/blog/vesa-mounting-standards-explained/","accessed":"2026-09-04"},{"id":"iso-1222-tripod","title":"ISO 1222 Photography — Tripod Connections","url":"https://naturephotogear.com/tripod-thread-sizes-plate-compatibility-guide/","accessed":"2026-09-04"},{"id":"arca-swiss-usa","title":"Arca-Swiss USA Classic Camera Plate (38mm dovetail)","url":"https://arca-swiss-usa.com/collections/classic-camera-plates/classic-camera-plate","accessed":"2026-09-04"},{"id":"gopro-mount-geometry","title":"GoPro-style 3-Prong Mount Buckle Geometry (parametric reference)","url":"https://www.printables.com/model/93976-parametric-gopro-attachments","accessed":"2026-09-04"},{"id":"ul-2442","title":"UL 2442 Wall- and Ceiling-Mounts and Accessories","url":"https://standardscatalog.ul.com/standards/en/standard_2442_2","accessed":"2026-09-04"},{"id":"cta-2056","title":"ANSI/CTA-2056 Mounting Requirements for Electronic Displays","url":"https://www.cta.tech/standards/ansicta-2056-a/","accessed":"2026-09-04"},{"id":"bike-diameter-standards","title":"Bike Gremlin Handlebar & Seatpost Diameter Standards","url":"https://bike.bikegremlin.com/3784/bicycle-handlebar-dimension-standards/","accessed":"2026-09-04"},{"id":"tnutz-2020-extrusion","title":"TNUTZ 20-Series T-Slot Extrusion & T-Nut Reference","url":"https://www.tnutz.com/product-category/20-series-6mm-slot/","accessed":"2026-09-04"},{"id":"matweb-6061-t6","title":"MatWeb Aluminum 6061-T6 Datasheet","url":"https://www.matweb.com/search/datasheet.aspx?matguid=1b8c06d0ca7c456694c7777d9e10be5b","accessed":"2026-09-04"},{"id":"matweb-5052-h32","title":"MatWeb Aluminum 5052-H32 Datasheet","url":"https://www.matweb.com/search/datasheet.aspx?matguid=62d8cf12842643c48fb7e0eb7455f191","accessed":"2026-09-04"},{"id":"astm-a1011","title":"ASTM A1011 Hot-Rolled Steel Sheet","url":"https://www.astm.org/a1011_a1011m-18a.html","accessed":"2026-09-04"},{"id":"drywall-anchor-guide","title":"Drywall Anchor Spacing & Edge Distance Guide","url":"https://maden.co/blogs/fastening-joining/how-close-can-drywall-anchors-be-a-spacing-guide","accessed":"2026-09-04"},{"id":"hubs-3dp-guide","title":"Hubs (Protolabs) 3D Printing Design Guidelines","url":"https://www.hubs.com/knowledge-base/","accessed":"2026-09-04"},{"id":"iec-60068-2-31","title":"IEC 60068-2-31 Rough Handling Shocks","url":"https://webstore.iec.ch/publication/1000","accessed":"2026-09-04"},{"id":"mic-stand-thread","title":"Mic Stand Thread Standard 5/8-27 UNS","url":"https://www.musicalhow.com/microphone-stand-thread-sizes/","accessed":"2026-09-04"},{"id":"fdmi-wikipedia","title":"VESA Flat Display Mounting Interface (FDMI) - Wikipedia","url":"https://en.wikipedia.org/wiki/Flat_Display_Mounting_Interface","accessed":"2026-09-04"},{"id":"roymech-edge-distance","title":"RoyMech Bolt Edge Distances (Minimum Spacing, Pitch and Design Guide)","url":"https://www.roymech.co.uk/Useful_Tables/Screws/Edge_Dist.html","accessed":"2026-09-04"},{"id":"sendcutsend-bending","title":"SendCutSend CNC bending service guidelines (materials, K-factor, bend limits, flange/relief)","url":"https://sendcutsend.com/services/cnc-bending/","accessed":"2026-09-04"}],"entries":[{"applies":["vesa","monitor","display","monitor arm"],"tags":["vesa","monitor","dimension"],"id":"vesa-mis-d","kind":"dimension","tier":1,"title":"VESA MIS-D mounting pattern (75x75 / 100x100 mm)","summary":"MIS-D covers monitors and small TVs: a 75x75 mm or 100x100 mm square hole pattern on the display back, tapped M4, engaging 6-10 mm of thread depth without bottoming on internal components.","value":{"min":75,"max":100,"typical":100,"unit":"mm","note":"square pattern, M4 screws"},"basis":"VESA FDMI standard hole-pattern family for small/medium displays","sources":["vesa-fdmi"]},{"applies":["vesa","monitor","ultrawide"],"tags":["vesa","monitor","dimension"],"id":"vesa-mis-e","kind":"dimension","tier":1,"title":"VESA MIS-E mounting pattern (200x100 mm)","summary":"MIS-E covers ultra-wide monitors and small-to-medium TVs: a 200 mm wide x 100 mm tall rectangular hole pattern, tapped M4.","value":{"min":100,"max":200,"unit":"mm","note":"200x100mm rectangle, M4 screws"},"basis":"VESA FDMI standard hole-pattern family for wide displays","sources":["vesa-fdmi"]},{"applies":["vesa","tv","tv mount"],"tags":["vesa","tv","dimension"],"id":"vesa-mis-f","kind":"dimension","tier":1,"title":"VESA MIS-F mounting pattern (200x200 mm and up, M6/M8)","summary":"MIS-F covers larger TVs: a 200 mm-grid square or rectangular pattern from 200x200 mm up to 800x400 mm and beyond, tapped M6 for panels under about 35 kg or M8 for heavier panels.","value":{"min":200,"max":800,"unit":"mm","note":"200mm grid increments; M6 <35kg, M8 heavier"},"basis":"VESA FDMI standard hole-pattern family for large displays","sources":["vesa-fdmi"]},{"applies":["tripod","camera mount","phone mount"],"tags":["tripod","thread","dimension"],"id":"tripod-thread-quarter20","kind":"dimension","tier":1,"title":"1/4-20 UNC tripod thread (small/consumer cameras)","summary":"The small camera/tripod thread is 1/4-20 UNC (0.25 in diameter, 20 threads per inch), used on compact cameras, phone mounts and light accessories up to roughly 2-3 kg unsupported.","value":{"value":0.25,"unit":"in","note":"20 TPI UNC"},"basis":"ISO 1222 / ANSI photographic tripod-connection standard, light-duty thread","sources":["iso-1222-tripod"]},{"applies":["tripod","camera mount","video rig"],"tags":["tripod","thread","dimension"],"id":"tripod-thread-three-eighths16","kind":"dimension","tier":1,"title":"3/8-16 UNC tripod thread (heavier cameras, video)","summary":"The heavy-duty camera/tripod thread is 3/8-16 UNC (0.375 in diameter, 16 threads per inch), used on video tripods, heads and rigs over roughly 2-3 kg, usually paired with a 1/4-20 reducer bushing.","value":{"value":0.375,"unit":"in","note":"16 TPI UNC"},"basis":"ISO 1222 / ANSI photographic tripod-connection standard, heavy-duty thread","sources":["iso-1222-tripod"]},{"applies":["arca swiss","camera mount","tripod mount"],"tags":["arca-swiss","dovetail","dimension"],"id":"arca-swiss-dovetail","kind":"dimension","tier":1,"title":"Arca-Swiss dovetail plate (38 mm, 45 deg)","summary":"The classic Arca-Swiss dovetail plate is 38 mm wide with 45-degree bevelled sides, self-centring and wedging tight as the clamp's screw or lever is tightened.","value":{"value":38,"unit":"mm","note":"45deg bevel each side"},"basis":"Original Arca-Swiss Classic camera-plate dovetail specification","sources":["arca-swiss-usa"]},{"applies":["gopro mount","camera mount","action camera"],"tags":["gopro","mount","dimension"],"id":"gopro-finger-mount","kind":"dimension","tier":1,"title":"GoPro-style 3-finger mount buckle geometry","summary":"The GoPro 3-prong buckle runs about a 3 mm gap between fingers, about 15 mm of finger engagement length, and a roughly 5.1 mm pivot-pin bore clamped by an M5-class thumbscrew; match the gap and bore before mating to third-party accessories.","value":{"table":[{"param":"finger-gap","value":3},{"param":"finger-length","value":15},{"param":"pivot-hole","value":5.1}],"unit":"mm"},"basis":"Published reverse-engineered GoPro buckle dimensions used throughout the parametric-mount design community","sources":["gopro-mount-geometry"]},{"applies":["phone mount","car mount"],"tags":["phone","clamp","dimension"],"id":"phone-clamp-width-range","kind":"dimension","tier":1,"title":"Phone clamp jaw travel range","summary":"A phone mount's spring or screw clamp should open 55-95 mm to cover phones from compact to large phablets/foldables in their cases, with 3-5 mm of extra rubber-pad compression at each end.","value":{"min":55,"max":95,"unit":"mm"},"basis":"Common universal phone-clamp jaw travel range across current mount hardware","sources":["gopro-mount-geometry"]},{"applies":["bike mount","handlebar mount"],"tags":["bike","handlebar","dimension"],"id":"handlebar-clamp-diameters","kind":"dimension","tier":1,"title":"Bicycle handlebar clamp diameters","summary":"Common handlebar clamp diameters are 22.2 mm (flat/riser bar grip area), 25.4 mm (older MTB stem clamp), 31.8 mm (modern oversized standard) and 35 mm (wide-bar performance stems) — match the mount bore to the bar's stated clamp diameter, not its grip-area diameter.","value":{"table":[{"d":22.2},{"d":25.4},{"d":31.8},{"d":35}],"unit":"mm"},"basis":"Bicycle industry handlebar clamp-diameter convention","sources":["bike-diameter-standards"]},{"applies":["bike mount","seatpost mount"],"tags":["bike","seatpost","dimension"],"id":"seatpost-diameters","kind":"dimension","tier":1,"title":"Bicycle seatpost diameters","summary":"Common seatpost diameters are 27.2 mm (road, most compliant), 30.9 mm and 31.6 mm (mountain/gravel, most common with dropper posts); a seatpost-mount clamp or light bracket must match the frame's stated diameter exactly, not round to a neighbouring size.","value":{"table":[{"d":27.2},{"d":30.9},{"d":31.6}],"unit":"mm"},"basis":"Bicycle industry seatpost-diameter convention","sources":["bike-diameter-standards"]},{"applies":["bracket","mount","6061"],"tags":["wall","aluminium","dimension"],"id":"bracket-wall-thickness-6061","kind":"dimension","tier":1,"title":"Bracket wall/arm thickness, 6061-T6 aluminium","summary":"A load-bearing 6061-T6 bracket arm runs 3-6 mm thick for hand-tool-scale consumer mounts (VESA, camera, shelf up to about 5 kg), thickening toward 6-10 mm for TV-class or cantilevered loads; a thinner section should add a rib or gusset rather than relying on material alone.","value":{"min":3,"max":10,"typical":3,"unit":"mm"},"basis":"Common CNC/waterjet bracket gauge for aluminium load paths at consumer-mount scale","sources":["matweb-6061-t6"]},{"applies":["bracket","shelf bracket","steel"],"tags":["wall","steel","dimension"],"id":"bracket-wall-thickness-steel","kind":"dimension","tier":1,"title":"Bracket wall thickness, mild steel","summary":"A load-bearing mild-steel bracket runs 2-4 mm thick (laser-cut/press-brake sheet) for shelf and wall-mount brackets, powder-coated after forming; steel's higher stiffness lets it run thinner than an equivalent aluminium arm for the same deflection.","value":{"min":2,"max":4,"typical":2,"unit":"mm"},"basis":"Common laser-cut/press-brake bracket gauge for mild steel sheet","sources":["astm-a1011"]},{"applies":["shelf bracket","cantilever"],"tags":["shelf","cantilever","rule"],"id":"shelf-bracket-cantilever-rule","kind":"rule","tier":1,"title":"Shelf bracket load vs arm length (cantilever)","summary":"A shelf bracket is a cantilever: stress and tip deflection scale with arm length cubed, so doubling the arm length roughly halves the safe load — keep arm-length-to-thickness under about 15:1 for a solid arm, or add a gusset beyond that.","value":{"max":15,"unit":"ratio","note":"arm length : thickness before a gusset or brace is needed"},"basis":"Cantilever beam bending theory (deflection scales with L^3/t^3): L/t is the practical proxy DFM guides use for when a plain arm needs bracing","sources":["matweb-6061-t6"]},{"applies":["l-bracket mount","angle bracket","corner brace"],"tags":["l-bracket","gusset","rule"],"id":"l-bracket-gusset-rule","kind":"rule","tier":1,"title":"L-bracket inside-corner gusset rule","summary":"Gusset (fill or rib) the inside corner of an L-bracket rather than leaving a sharp 90-degree step: a diagonal gusset or triangular rib spanning at least 30-50% of each leg's length cuts the peak bending stress at the corner by roughly half compared with an ungusseted step.","value":{"min":30,"max":50,"unit":"%","note":"gusset span as a fraction of each leg length"},"basis":"A sharp inside corner is the stress-concentration point on a bent or welded L-bracket under load; a gusset spreads the load path across a longer section","sources":["astm-a1011"]},{"applies":["bracket","mount"],"tags":["fillet","corner","rule"],"id":"inside-corner-fillet-mount","kind":"rule","tier":1,"title":"Inside corner fillet on a machined or printed mount","summary":"Fillet every inside corner of a mount or bracket to at least 0.5-1x the local wall/arm thickness and never leave it sharp: a sharp inside corner is the single most common fatigue-crack start point on a repeatedly loaded bracket.","value":{"min":0.5,"max":1,"unit":"ratio","note":"fillet radius : local thickness"},"basis":"Standard stress-concentration/fatigue-crack-initiation avoidance at re-entrant corners","sources":["matweb-6061-t6"]},{"applies":["wall mount","wall anchor"],"tags":["drywall","anchor","fastener"],"id":"wall-anchor-drywall","kind":"fastener","tier":1,"title":"Drywall wall-anchor sizing for a wall mount","summary":"Into bare drywall use a #8 screw with a 6 mm (1/4 in) expansion or self-drilling plastic plug, rated 15-25 kg per anchor depending on drywall thickness; space anchors at least 150-200 mm apart and keep every anchor hole at least 10 mm from a board edge or another fastener.","value":{"min":15,"max":25,"unit":"kg","note":"#8 screw, 6mm plug, per-anchor rated pullout"},"basis":"Standard plastic drywall-anchor pullout rating and the edge/spacing distance that avoids crushing the gypsum core between anchors","sources":["drywall-anchor-guide"]},{"applies":["extrusion bracket","2020 extrusion","t-slot"],"tags":["extrusion","t-slot","dimension"],"id":"extrusion-2020-tslot","kind":"dimension","tier":1,"title":"2020 aluminium extrusion T-slot (6 mm slot, M5 T-nut)","summary":"A 20x20 mm (2020) T-slot extrusion carries a 6 mm-wide T-slot on each face sized for an M5 drop-in T-nut; a bracket that clamps onto the rail should not exceed roughly 60% of the rail's face width so clamping material remains on either side.","value":{"value":6,"unit":"mm","note":"slot width; M5 T-nut; 20x20mm rail cross-section"},"basis":"Common 20-series T-slot extrusion and T-nut sizing across major suppliers","sources":["tnutz-2020-extrusion"]},{"applies":["extrusion bracket","3030 extrusion","t-slot"],"tags":["extrusion","t-slot","dimension"],"id":"extrusion-3030-tslot","kind":"dimension","tier":2,"title":"3030 aluminium extrusion T-slot (6 mm slot, M5 T-nut, 30x30 rail)","summary":"A 30x30 mm (3030) T-slot extrusion uses the same 6 mm-wide, M5 T-nut slot as 2020 rail on a heavier 30x30 mm cross-section, so a corner bracket sized for one slot width fits either rail — only the bracket's outer envelope changes.","value":{"value":6,"unit":"mm","note":"slot width; M5 T-nut; 30x30mm rail cross-section"},"basis":"Common 30-series T-slot extrusion and T-nut sizing across major suppliers","sources":["tnutz-2020-extrusion"]},{"applies":["vesa plate","vesa mount"],"tags":["vesa","plate","dimension"],"id":"vesa-plate-thickness","kind":"dimension","tier":2,"title":"VESA adapter plate thickness","summary":"A machined or printed VESA adapter plate runs 3-6 mm thick in aluminium, or 4-8 mm in printed PETG/PA-CF, thick enough that the tapped or clearance M4/M6/M8 holes get at least 1.5x the screw diameter of engagement without needing a boss.","value":{"min":3,"max":8,"unit":"mm"},"basis":"Common machined/printed VESA adapter plate gauge that avoids a boss for the mounting screws","sources":["vesa-fdmi"]},{"applies":["vesa mount","monitor arm"],"tags":["vesa","clearance","rule"],"id":"vesa-standoff-clearance","kind":"rule","tier":2,"title":"VESA standoff clearance behind the mounting plate","summary":"Leave at least 5-10 mm of clearance between the back of a VESA-mounted device and the wall or arm plate for the mounting screw heads and any port/cable protrusion, growing to 20-30 mm if the device has rear-facing connectors.","value":{"min":5,"max":30,"unit":"mm"},"basis":"Common clearance for screw heads and rear connectors behind a VESA-mounted display","sources":["vesa-fdmi"]},{"applies":["wall mount","tv mount"],"tags":["wall","stud","dimension"],"id":"tv-mount-stud-spacing","kind":"dimension","tier":2,"title":"Wall-stud spacing for a TV/shelf wall-mount plate","summary":"North American wall studs are on 406 mm (16 in) or 610 mm (24 in) centres; size a wall-mount back plate's screw-hole pattern to span at least two studs at 406 mm on centre so a heavy panel doesn't rely on drywall anchors alone.","value":{"min":406,"max":610,"unit":"mm"},"basis":"Standard North American residential wall-stud spacing convention","sources":["ul-2442"]},{"applies":["ball head","camera mount","pole mount"],"tags":["ball-head","dimension"],"id":"ball-head-25mm","kind":"dimension","tier":2,"title":"Compact ball head, 25 mm ball diameter","summary":"A 25 mm ball is a common compact/travel ball-head size for lightweight cameras and phone/action-cam rigs, versus 32-50 mm for full DSLR/mirrorless heads; the socket clamp should grip at least 60-70% of the ball's diameter to hold position under load.","value":{"value":25,"unit":"mm"},"basis":"Common compact ball-head size class for lightweight camera/phone rigs","sources":["iso-1222-tripod"]},{"applies":["mic stand","pole mount"],"tags":["mic-stand","thread","dimension"],"id":"mic-stand-thread","kind":"dimension","tier":2,"title":"Microphone stand thread, 5/8-27 UNS","summary":"The North American mic-stand and clip thread is 5/8 in-27 TPI (UNS); European stands commonly use 3/8-16, and both convert to the 1/4-20 camera thread with a step-down adapter.","value":{"value":0.625,"unit":"in","note":"27 TPI UNS"},"basis":"Standard North American microphone stand and clip thread convention","sources":["mic-stand-thread"]},{"applies":["gopro mount"],"tags":["gopro","thumbscrew","fastener"],"id":"gopro-thumbscrew-fastener","kind":"fastener","tier":2,"title":"GoPro-style mount thumbscrew","summary":"The GoPro 3-finger buckle clamps with an M5-class knurled thumbscrew through a roughly 5.1 mm pivot bore in all three fingers; size the bore 0.1-0.2 mm over the screw's shank so the stack pivots freely before clamping.","value":{"value":5.1,"unit":"mm","note":"pivot bore; M5-class thumbscrew"},"basis":"Published GoPro buckle pivot-bore and thumbscrew geometry","sources":["gopro-mount-geometry"]},{"applies":["vesa mount"],"tags":["vesa","screw","rule"],"id":"vesa-screw-length-rule","kind":"rule","tier":2,"title":"VESA mounting screw length rule","summary":"Size a VESA mounting screw so it engages 6-10 mm of thread in the display's boss and protrudes no more than 1-2 mm past the boss floor; an over-long screw bottoms out on internal display components before it clamps the bracket.","value":{"min":6,"max":10,"unit":"mm"},"basis":"Common VESA boss thread-engagement depth avoiding internal component contact","sources":["vesa-fdmi"]},{"applies":["corner brace","angle bracket"],"tags":["gusset","corner-brace","feature"],"id":"corner-brace-angle-gusset","kind":"feature","tier":2,"title":"Corner-brace / angle-bracket gusset feature","summary":"A stamped or printed corner brace adds a flat triangular web across the inside of the angle, typically 40-60% of the brace's own leg length and the same thickness as the legs, turning a simple angle into a much stiffer three-sided truss.","value":{"min":40,"max":60,"unit":"%"},"basis":"Common gusset proportion for a stamped or printed corner brace","sources":["astm-a1011"]},{"applies":["tripod mount","camera mount"],"tags":["tripod","boss","insert"],"id":"tripod-boss-insert","kind":"feature","tier":2,"title":"1/4-20 tripod boss in a printed or moulded mount","summary":"For a 1/4-20 UNC threaded boss in a printed mount, use a brass heat-set insert in an 8-9 mm-OD boss with a 6.3 mm bore rather than printing the UNC thread directly — printed internal UNC threads strip after a handful of clamp cycles.","value":{"min":8,"max":9,"unit":"mm","note":"boss OD for a 1/4-20 heat-set insert"},"basis":"Standard heat-set insert boss sizing for a 1/4-20 threaded printed boss","sources":["hubs-3dp-guide"]},{"applies":["handlebar mount","pole mount"],"tags":["clamp","preload","rule"],"id":"handlebar-mount-clamp-force","kind":"rule","tier":2,"title":"Handlebar/pole clamp preload rule","summary":"A handlebar or pole clamp needs enough preload to resist slip under the mount's overturning moment: close the clamp gap to 1-2 mm remaining at the bolt's torque spec, so the halves keep squeeze margin rather than bottoming metal-to-metal.","value":{"min":1,"max":2,"unit":"mm"},"basis":"Common split-clamp design margin that avoids bottoming out before full preload is reached","sources":["bike-diameter-standards"]},{"applies":["pa-cf","3d printing","bracket"],"tags":["pa-cf","print-orientation","rule"],"id":"pa-cf-print-orientation","kind":"rule","tier":2,"title":"PA-CF print orientation for a load-bearing mount","summary":"Print a PA-CF (carbon-fibre-filled nylon) bracket with its load axis in-plane (XY), not stacked in Z: interlayer bond strength runs only 30-50% of in-plane strength, so an arm printed standing on end can fail at a fraction of its flat-printed load.","value":{"min":30,"max":50,"unit":"%","note":"interlayer bond strength as a fraction of in-plane strength"},"basis":"Well-documented FDM anisotropy: interlayer bonds are consistently weaker than in-plane extrusion strength","sources":["hubs-3dp-guide"]},{"applies":["petg","3d printing","bike mount"],"tags":["petg","print-orientation","rule"],"id":"petg-print-orientation","kind":"rule","tier":2,"title":"PETG print orientation for an outdoor/UV-exposed mount","summary":"Print a PETG mount with the load path in-plane and 4-6 perimeters at a 0.4 mm nozzle for a solid shell; PETG's better UV/moisture resistance than PLA suits an outdoor pole or bike mount but still needs FDM-typical orientation care.","value":{"min":4,"max":6,"unit":"count","note":"perimeters at 0.4mm nozzle"},"basis":"Common FDM perimeter-count guidance for a solid, weather-resistant outer shell","sources":["hubs-3dp-guide"]},{"applies":["wall mount","tv mount"],"tags":["test","static-load","tv-mount"],"id":"tv-mount-load-static-test","kind":"test","tier":2,"title":"TV/monitor mount static load test (4x rated)","summary":"Load-test a wall or arm mount statically at 4x its rated weight for at least 5 minutes with no permanent deformation or fastener pull-out, the safety margin UL/ANSI mount standards expect; a mount rated for 25 kg is proof-loaded to 100 kg.","value":{"value":4,"unit":"ratio","note":"proof load : rated load"},"basis":"Standard structural safety-factor practice for suspended/cantilevered consumer mounting hardware","sources":["ul-2442","cta-2056"]},{"applies":["wall mount","tv mount"],"tags":["standard","ul2442","safety"],"id":"tv-mount-ul2442-standard","kind":"standard","tier":2,"title":"UL 2442 - wall- and ceiling-mount safety","summary":"UL 2442 covers wall- and ceiling-mount hardware for audio/video and IT equipment: structural strength, static and dynamic load tests, and installation-hardware requirements a TV or monitor mount bracket is tested against before a load rating is published.","basis":"Governing US safety standard for wall/ceiling mounting hardware","sources":["ul-2442"]},{"applies":["tv mount","monitor arm"],"tags":["standard","cta2056","display-mount"],"id":"cta2056-standard","kind":"standard","tier":2,"title":"ANSI/CTA-2056 - mounting requirements for electronic displays","summary":"ANSI/CTA-2056 sets the test methods and pass/fail criteria (static load, dynamic/cyclic load, drop-shock) that flat-panel display mounts are rated against, the companion consumer-electronics standard to UL 2442's hardware-safety scope.","basis":"Governing consumer-electronics test standard for flat-panel display mounts","sources":["cta-2056"]},{"applies":["bracket","mount"],"tags":["material","aluminium","6061"],"id":"material-6061-t6","kind":"material","tier":2,"title":"6061-T6 aluminium for machined mounts and brackets","summary":"6061-T6 (about 2.70 g/cm3, about 276 MPa yield) is the default machined-bracket alloy: good strength-to-weight, corrosion resistance and machinability, anodizes cleanly, and is the alloy most VESA/camera/tripod mounting hardware ships in.","value":{"value":2.7,"unit":"g/cm3"},"basis":"Standard 6061-T6 aluminium datasheet density and yield strength","sources":["matweb-6061-t6"]},{"applies":["bracket","sheet metal"],"tags":["material","aluminium","5052"],"id":"material-5052-sheet","kind":"material","tier":2,"title":"5052-H32 aluminium sheet for formed brackets","summary":"5052-H32 (about 2.68 g/cm3, about 193 MPa yield) is the standard sheet alloy for bent/formed brackets: better bend ductility than 6061 at a given thickness, so it's preferred over 6061 sheet whenever a bracket needs a tight-radius fold rather than a machined corner.","value":{"value":2.68,"unit":"g/cm3"},"basis":"Standard 5052-H32 aluminium sheet datasheet density and yield strength","sources":["matweb-5052-h32"]},{"applies":["shelf bracket","wall mount"],"tags":["material","steel","powder-coat"],"id":"material-mild-steel-powder-coat","kind":"material","tier":2,"title":"Mild steel, powder-coated, for shelf and wall brackets","summary":"Powder-coated mild steel (ASTM A1011, about 7.85 g/cm3) is the common shelf-bracket and heavy-duty wall-mount material: cheaper and stiffer per mm than aluminium for a given load, at a weight penalty, with the powder coat providing corrosion resistance.","value":{"value":7.85,"unit":"g/cm3"},"basis":"Standard mild steel (ASTM A1011) sheet datasheet density","sources":["astm-a1011"]},{"applies":["bike mount","pole mount"],"tags":["test","vibration","bike-mount"],"id":"vibration-test-mount","kind":"test","tier":2,"title":"Vibration test for a bike/pole/vehicle mount","summary":"Vibration-test a bike, pole or vehicle-mounted bracket with a swept-sine profile, commonly 5-500 Hz for 1-2 hours per axis, at full rated payload; a mount that resonates loose needs a thicker clamp wall or a thread-locker spec, not a bigger bolt.","value":{"min":5,"max":500,"unit":"Hz"},"basis":"Common swept-sine/random-vibration qualification profile for vehicle- and bike-mounted hardware","sources":["iec-60068-2-31"]},{"applies":["vesa mount","vesa plate"],"tags":["recipe","vesa","plate"],"id":"recipe-vesa-100-adapter-plate","kind":"recipe","tier":2,"title":"Recipe: VESA 100 adapter plate","summary":"Build a 120x120x4mm adapter plate with a centred 100x100mm VESA hole pattern of four 4.5mm clearance holes for M4 screws.","basis":"Combines vesa-mis-d's 100mm M4 pattern and vesa-plate-thickness into one buildable plate + hole_pattern","sources":["vesa-fdmi"],"recipe":{"prompt":"Model a 120x120x4mm VESA adapter plate with a centred 100x100mm hole pattern of 4.5mm clearance holes for M4 screws","steps":[{"tool":"cad_box","args":{"dx":120,"dy":120,"dz":4},"note":"adapter plate blank"},{"tool":"cad_hole_pattern","args":{"of":"$0","type":"drill","diameter":4.5,"pattern":{"kind":"grid","origin":[10,10],"dx":100,"dy":100,"nx":2,"ny":2}},"note":"4 clearance holes on the 100x100mm VESA pattern, centred with a 10mm margin"}],"expect":{"volume":57345.53,"faceCount":14,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"applies":["l-bracket mount","angle bracket","corner brace"],"tags":["recipe","l-bracket","gusset"],"id":"recipe-l-bracket-gusset","kind":"recipe","tier":2,"title":"Recipe: L-bracket with gusseted inside corner and mounting slots","summary":"Build a 50x50mm-leg, 3mm-thick, 30mm-deep L-bracket with the inside corner gusseted by a diagonal fill, and one elongated mounting slot cut through each leg.","basis":"Combines bracket-wall-thickness-6061 and l-bracket-gusset-rule into one buildable gusseted L-bracket with mounting slots","sources":["astm-a1011"],"recipe":{"prompt":"Model a 50x50mm-leg, 3mm-thick, 30mm-deep L-bracket with a gusseted inside corner and one mounting slot through each leg","steps":[{"tool":"cad_extrude_profile","args":{"depth":30,"outer":[[0,0],[50,0],[50,3],[20,3],[3,20],[3,50],[0,50]]},"note":"L cross-section with the inside step replaced by a 45deg gusset fill, extruded 30mm deep"},{"tool":"cad_box","args":{"dx":6,"dy":5,"dz":14,"origin":[27,-1,8]},"note":"slot-cutting tool piercing the horizontal leg's 3mm thickness, elongated along the depth axis"},{"tool":"cad_boolean_subtract","args":{"of":"$0","tool":"$1"},"note":"cut the mounting slot in the horizontal leg"},{"tool":"cad_box","args":{"dx":5,"dy":14,"dz":6,"origin":[-1,27,12]},"note":"slot-cutting tool piercing the vertical leg's 3mm thickness, elongated along the leg"},{"tool":"cad_boolean_subtract","args":{"of":"$2","tool":"$3"},"note":"cut the mounting slot in the vertical leg"}],"expect":{"volume":12561,"faceCount":17,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"applies":["gopro mount","camera mount"],"tags":["recipe","gopro","mount"],"id":"recipe-gopro-3-finger-mount","kind":"recipe","tier":2,"title":"Recipe: GoPro-style 3-finger mount","summary":"Build a GoPro-style 3-finger mount: a 40x20x15mm base with three 15x10x3mm fingers stacked with 3mm gaps, each finger pre-drilled with a 5.5mm pivot bore before being unioned onto the base.","basis":"Combines gopro-finger-mount's 3mm gap/15mm length and gopro-thumbscrew-fastener's pivot bore into one buildable 3-finger buckle body","sources":["gopro-mount-geometry"],"recipe":{"prompt":"Model a GoPro-style 3-finger mount: a base with three fingers stacked with 3mm gaps and a 5.5mm pivot bore through each finger","steps":[{"tool":"cad_box","args":{"dx":40,"dy":20,"dz":15},"note":"mount body / spine, full 15mm stack height"},{"tool":"cad_box","args":{"dx":15,"dy":10,"dz":3,"origin":[40,5,0]},"note":"finger 1 (bottom), standalone before drilling"},{"tool":"cad_drill_hole","args":{"of":"$1","type":"drill","diameter":5.5,"center":[47.5,10],"through":true},"note":"pivot bore through finger 1, drilled before it is unioned so the cut is a simple through-hole"},{"tool":"cad_boolean_union","args":{"of":"$0","tool":"$2"},"note":"union drilled finger 1 onto the body"},{"tool":"cad_box","args":{"dx":15,"dy":10,"dz":3,"origin":[40,5,6]},"note":"finger 2 (middle), 3mm gap above finger 1"},{"tool":"cad_drill_hole","args":{"of":"$4","type":"drill","diameter":5.5,"center":[47.5,10],"through":true},"note":"pivot bore through finger 2, same axis as finger 1's bore"},{"tool":"cad_boolean_union","args":{"of":"$3","tool":"$5"},"note":"union drilled finger 2 onto the body"},{"tool":"cad_box","args":{"dx":15,"dy":10,"dz":3,"origin":[40,5,12]},"note":"finger 3 (top), 3mm gap above finger 2"},{"tool":"cad_drill_hole","args":{"of":"$7","type":"drill","diameter":5.5,"center":[47.5,10],"through":true},"note":"pivot bore through finger 3, completing the coaxial 3-finger stack"},{"tool":"cad_boolean_union","args":{"of":"$6","tool":"$8"},"note":"union drilled finger 3 onto the body"}],"expect":{"volume":13136.18,"faceCount":26,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"applies":["pole mount"],"tags":["pole-clamp","feature"],"id":"pole-clamp-diameter-range","kind":"feature","tier":3,"title":"Pole/tube clamp diameter range","summary":"A split-clamp pole mount typically covers a 25-50 mm tube diameter in one body by over-sizing the bore 1-2 mm and closing the gap with the clamp bolt; outside that range make a second clamp size rather than stretching one clamp's travel too far.","value":{"min":25,"max":50,"unit":"mm"},"basis":"Common single-body split-clamp bore range before a second size is needed","sources":["tnutz-2020-extrusion"]},{"applies":["monitor arm","camera mount"],"tags":["arm","load","rule"],"id":"camera-mount-load-arm-ratio","kind":"rule","tier":3,"title":"Articulating camera/monitor arm load-vs-reach rule","summary":"An articulating arm's usable payload falls off roughly as the inverse of its extended reach: an arm rated 8 kg at 300 mm reach typically derates to about 4-5 kg at 500-600 mm full extension — read the arm's rated envelope at maximum reach, not its close-in number.","value":{"min":4,"max":8,"unit":"kg"},"basis":"Common articulating-arm derating behaviour as moment arm increases with reach","sources":["cta-2056"]},{"applies":["picatinny","weaver rail"],"tags":["scope","note"],"id":"picatinny-out-of-scope","kind":"note","tier":3,"title":"Picatinny/Weaver rail mounts are out of scope","summary":"Picatinny (MIL-STD-1913) and Weaver accessory rails are firearms-adjacent mounting standards and are deliberately out of scope for this pack; treat a request for one as outside the mounts-brackets sector rather than approximating the slot pitch here.","basis":"Explicit scope boundary set for this pack","sources":[]},{"applies":["pole mount","bike mount"],"tags":["material","petg"],"id":"material-petg","kind":"material","tier":3,"title":"PETG for printed outdoor/pole mounts","summary":"PETG (about 1.27 g/cm3) trades a little print ease against PLA for materially better UV, moisture and impact resistance, making it the default FDM material for an outdoor pole, bike or window mount rather than PLA.","value":{"value":1.27,"unit":"g/cm3"},"basis":"Standard PETG filament datasheet density and known outdoor durability behaviour","sources":["hubs-3dp-guide"]},{"applies":["bracket","mount"],"tags":["material","pa-cf"],"id":"material-pa-cf","kind":"material","tier":3,"title":"PA-CF (carbon-fibre nylon) for high-stiffness printed brackets","summary":"PA-CF (carbon-fibre-filled nylon, about 1.1-1.3 g/cm3) roughly doubles the stiffness of plain PA/PETG for the same wall thickness, at higher cost and more anisotropic strength — reach for it on a long unsupported arm rather than thickening a commodity filament part.","value":{"min":1.1,"max":1.3,"unit":"g/cm3"},"basis":"Standard PA-CF filament datasheet density and comparative stiffness behaviour","sources":["hubs-3dp-guide"]},{"applies":["phone mount","gopro mount"],"tags":["test","drop"],"id":"drop-test-mount","kind":"test","tier":3,"title":"Drop test for a handheld/portable mount accessory","summary":"Drop a small portable mount (phone clamp, GoPro adapter, tripod head) 1000-1200 mm onto a hard surface per IEC 60068-2-31; a fractured jaw or snapped finger means this pack's own corner-fillet and thickness rules need applying, not just a tougher resin.","value":{"min":1000,"max":1200,"unit":"mm"},"basis":"IEC 60068-2-31 Test Ec rough-handling shock procedure at handheld-accessory drop height","sources":["iec-60068-2-31"]},{"applies":["ball head","monitor arm"],"tags":["test","cycle","joint"],"id":"cycle-test-articulating-joint","kind":"test","tier":3,"title":"Cycle-life test for an articulating mount joint","summary":"Cycle an adjustable ball head, tilt/swivel joint or folding mount 5,000-10,000 times through its full range under rated load; a joint that loosens (loses clamp preload) before that count needs a stiffer clamp spring or a serrated/ratchet detent instead of friction alone.","value":{"min":5000,"max":10000,"unit":"cycles"},"basis":"Common consumer-durability cycle-count target for a friction-preload articulating joint","sources":["iec-60068-2-31"]},{"applies":["vesa plate","vesa mount","monitor arm"],"tags":["vesa","flatness","dimension"],"id":"vesa-plate-flatness","kind":"dimension","tier":2,"title":"VESA FDMI mounting-plate flatness","summary":"VESA FDMI allows the 35mm-wide contact band around each mounting hole to deviate at most +/-1mm from true flat; a warped adapter plate outside that band binds the screws unevenly and can crack a plastic display boss when torqued flat.","value":{"value":1,"unit":"mm","note":"+/-1mm across the 35mm-wide contact band"},"basis":"VESA FDMI mounting-interface flatness tolerance for the bracket contact area","sources":["fdmi-wikipedia"]},{"applies":["l-bracket mount","shelf bracket","bracket"],"tags":["bend","relief","rule"],"id":"l-bracket-bend-relief","kind":"rule","tier":2,"title":"Bend relief where a folded bracket's bend stops against material","summary":"Where a bend line ends against material rather than a free edge, notch a relief at least 1x material thickness wide and (inside radius + thickness) deep, or the corner tears/bulges on the press brake; check with cad_dfm_check's scs_bend bend_relief rule.","value":{"min":1,"unit":"ratio","note":"relief width : material thickness; depth >= inside radius + thickness"},"basis":"SendCutSend CNC-bending guidance: bend relief notches reduce stress on inner radii and prevent corner tearing or bulging; a bend cannot be formed accurately without one","sources":["sendcutsend-bending"],"check":{"process":"scs_bend","rule":"bend_relief"}},{"applies":["l-bracket mount","shelf bracket","bracket"],"tags":["flange","bend","rule"],"id":"l-bracket-min-flange","kind":"rule","tier":2,"title":"Minimum flange length on a folded bracket leg","summary":"Size every folded flange at least 6.35mm (0.25in) from the bend tangent line on typical steel/aluminium gauges, and more for a heavier gauge or wider V-die -- a shorter flange drops into the die instead of forming; check with cad_dfm_check's scs_bend flange_length rule.","value":{"min":6.35,"unit":"mm","note":"typical SendCutSend catalog floor for common bracket gauges; the exact minimum is material- and thickness-specific"},"basis":"SendCutSend: minimum flange length depends on material and thickness, below which the flange cannot be supported by the die","sources":["sendcutsend-bending","astm-a1011"],"check":{"process":"scs_bend","rule":"flange_length"}},{"applies":["l-bracket mount","shelf bracket","bracket"],"tags":["hole to bend","die keepout","rule"],"id":"bracket-hole-to-bend-distance","kind":"rule","tier":2,"title":"Hole-to-bend distance on a folded bracket flange","summary":"Keep every hole at least 8mm from the centreline of any bend it shares a flange with (half a typical 16mm press-brake die width) -- a hole inside the die line distorts as the material stretches during forming; check with cad_dfm_check's scs_bend hole_to_bend rule.","value":{"min":8,"unit":"mm","note":"half the die width; scales with the shop's die selection for the material/thickness"},"basis":"SendCutSend: cut features that fall within die lines or the bend area distort as the material stretches -- keep cut features at least half the die width from the bend centreline","sources":["sendcutsend-bending"],"check":{"process":"scs_bend","rule":"hole_to_bend"}},{"applies":["bracket","shelf bracket","wall mount"],"tags":["edge distance","hole","rule"],"id":"bracket-load-hole-edge-distance","kind":"rule","tier":2,"title":"Edge distance for a load-bearing bracket hole","summary":"Space a load-bearing bolt hole's centre at least 1.5-2x the hole diameter from any sheet edge (2x to develop full bearing strength without derating): a closer hole tears out toward the edge before the bolt yields.","value":{"min":1.5,"max":2,"unit":"ratio","note":"edge distance : hole diameter, load-bearing hole"},"basis":"Standard mechanical-fastening edge-distance practice for a bolted joint carrying shear/bearing load","sources":["roymech-edge-distance"]},{"applies":["shelf bracket","cantilever","monitor arm"],"tags":["cantilever","deflection","rule"],"id":"cantilever-deflection-worked-example","kind":"rule","tier":2,"title":"Cantilever bracket tip deflection under a stated load (worked example)","summary":"A 200mm-reach, 40mm-wide, 4mm-thick 6061-T6 cantilever arm (L:t about 50, past the 15:1 gusset threshold) deflects about 8.9mm at its tip under a 5kg (49N) point load per beam theory (delta=FL^3/3EI, E=68.9GPa) -- why shelf-bracket-cantilever-rule caps L:t at 15.","value":{"value":8.9,"unit":"mm","note":"200mm reach, 40x4mm 6061-T6 arm, 5kg tip load"},"basis":"Euler-Bernoulli cantilever beam tip deflection (delta=FL^3/3EI) using 6061-T6's published elastic modulus","sources":["matweb-6061-t6"]},{"applies":["shelf bracket","l-bracket mount","wall mount"],"tags":["recipe","sheet-fold","l-bracket"],"id":"recipe-l-bracket-sheet-fold-scs","kind":"recipe","tier":2,"title":"Recipe: folded L-bracket via cad_sheet_fold, SendCutSend laser+bend route","summary":"Build a 2mm mild-steel wall-mount L-bracket via cad_sheet_fold: a 40mm wall flange, a 90-degree R2.5 bend (SendCutSend's tooled radius for 2mm mild steel), and a 60mm shelf-support flange, extruded 30mm deep, sized past scs_bend's min-flange floor.","basis":"Combines bracket-wall-thickness-steel, l-bracket-min-flange and l-bracket-bend-relief into one buildable folded bracket, checked against the scs_laser+scs_bend route","sources":["sendcutsend-bending","astm-a1011"],"check":{"process":"scs_laser+scs_bend","rule":"bend_relief"},"recipe":{"prompt":"Model a 2mm mild-steel L-bracket: a 40mm wall flange, a 90 degree bend over R2.5, and a 60mm shelf-support flange, 30mm deep","steps":[{"tool":"cad_sheet_fold","args":{"thickness":2,"width":30,"baseFlange":40,"bends":[{"angle":90,"radius":2.5,"flange":60}]},"note":"wall flange (40mm) folded 90deg over R2.5 (SendCutSend's tooled inside radius for 2mm mild steel) into the shelf-support flange (60mm), extruded 30mm deep along the bend line"}],"expect":{"volume":6329.87,"faceCount":10,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}}]},{"$schema":"nativecad-dfm-pack/1","id":"peripherals","title":"Peripherals — keyboards, mice, controllers, headsets","sector":"peripherals","version":"2026-09-03","summary":"Key pitch, switch plate cutouts, case/standoff conventions, mouse and controller ergonomic dimensions, USB-C daughterboard conventions, materials and durability tests for computer peripherals.","aliases":["keyboard","mouse","controller","gamepad","headset","mechanical keyboard","keycap"],"crossSector":false,"size":"full","sources":[{"id":"cherry-mx-datasheet","title":"Cherry MX1A-11xx Series Mechanical Key Switch Datasheet","url":"https://www.cherrymx.de/en/mx-original/mx1a-11xx.html","accessed":"2026-09-03"},{"id":"kailh-choc-datasheet","title":"Kailh Choc (PG1350) Low-Profile Mechanical Switch Datasheet","url":"https://www.kailhswitch.com/mechanical-keyboard-switches/low-profile-switches/choc-series.html","accessed":"2026-09-03"},{"id":"keyboard-plate-guide","title":"1upkeyboards — How to Design a Mechanical Keyboard Switch Plate","url":"https://www.1upkeyboards.com/shop/blog/how-to-design-a-keyboard-plate/","accessed":"2026-09-03"},{"id":"qmk-hardware-guide","title":"QMK Firmware — Hand-Wiring and Custom PCB/Plate Reference Docs","url":"https://docs.qmk.fm/#/hand_wire","accessed":"2026-09-03"},{"id":"usb-c-spec","title":"USB Type-C Cable and Connector Specification, Release 2.3 (USB-IF)","url":"https://www.usb.org/document-library/usb-type-cr-cable-and-connector-specification-release-23","accessed":"2026-09-03"},{"id":"omron-d2fc-datasheet","title":"Omron D2FC-F-7N Micro Switch Datasheet (mouse main button)","url":"https://components.omron.com/product-detail?partId=2635","accessed":"2026-09-03"},{"id":"kailh-gm-datasheet","title":"Kailh GM 4.0/GM 8.0 Mouse Micro Switch Series Datasheet","url":"https://www.kailhswitch.com/mouse-switches/gm-series.html","accessed":"2026-09-03"},{"id":"mouse-grip-ergonomics-study","title":"Chen, H.-C. et al., 'The effects of computer mouse shape on hand-wrist posture during different grip styles', Applied Ergonomics","url":"https://www.sciencedirect.com/science/article/abs/pii/S0003687013001682","accessed":"2026-09-03"},{"id":"bifma-g1","title":"BIFMA G1-2013 Ergonomics Guideline for VDT (Computer) Workstations","url":"https://www.bifma.org/","accessed":"2026-09-03"},{"id":"cherry-mx-installation-guide","title":"Cherry MX Installation Notes — mounting plate and PCB spacing","url":"https://www.cherrymx.de/en/dev.html","accessed":"2026-09-03"},{"id":"keycap-profile-reference","title":"Keycaps.info — Keycap Profile Height and Sculpt Reference (OEM, Cherry, SA, XDA, DSA)","url":"https://keycaps.info/","accessed":"2026-09-03"},{"id":"gaming-mouse-durability-standard","title":"Logitech / vendor gaming-mouse click-durability and drop-test disclosures (typical spec sheets)","url":"https://www.logitechg.com/en-us/innovation/mice.html","accessed":"2026-09-03"},{"id":"controller-ergonomics-reference","title":"Xbox / DualShock controller grip and trigger-travel teardown measurements (iFixit)","url":"https://www.ifixit.com/Device/Game_Console","accessed":"2026-09-03"},{"id":"headset-clamp-force-reference","title":"RTINGS.com Headphone Test Methodology — clamping force and ear-cup measurements","url":"https://www.rtings.com/headphones/tests/comfort","accessed":"2026-09-03"},{"id":"pbt-abs-material-reference","title":"Keycaps.info — ABS vs PBT keycap material properties and shine wear","url":"https://keycaps.info/materials","accessed":"2026-09-03"}],"entries":[{"id":"key-pitch-mx","kind":"dimension","tier":1,"title":"Standard MX key pitch (19.05 mm / 0.75 in)","summary":"Full-size mechanical key units sit on a 19.05 mm (0.75 in) grid in both X and Y; a 1u key occupies one grid cell and wider keys (2u, 6.25u spacebar) are integer or near-integer multiples of this pitch.","applies":["mechanical keyboard","MX switch","keycap"],"value":{"value":19.05,"unit":"mm","note":"0.75 in exactly; do not round to 19 mm"},"basis":"Inherited from IBM Model M / typewriter key spacing; every MX-compatible keycap set and plate/PCB CAD tool assumes this grid.","sources":["keyboard-plate-guide","qmk-hardware-guide"],"tags":["key pitch","layout","grid","mx"]},{"id":"key-pitch-choc","kind":"dimension","tier":1,"title":"Choc low-profile key pitch (18 x 17 mm)","summary":"Kailh Choc low-profile keyboards commonly use an 18 mm (X) x 17 mm (Y) pitch instead of the MX 19.05 mm grid, though some Choc boards keep 19.05 mm X-pitch and tighten only Y.","applies":["low-profile keyboard","choc switch","split keyboard"],"value":{"table":[{"axis":"X","mm":18},{"axis":"Y","mm":17}]},"basis":"Choc's shorter travel and smaller housing let designers tighten the grid for a more compact board; 18x17 is the de-facto community convention, not an official Kailh spec.","sources":["kailh-choc-datasheet","keyboard-plate-guide"],"tags":["key pitch","choc","low profile","grid"]},{"id":"mx-switch-plate-cutout","kind":"dimension","tier":1,"title":"MX switch plate cutout (14.0 x 14.0 mm, +0.05 mm)","summary":"Cherry MX and MX-compatible switches need a 14.0 x 14.0 mm square plate cutout with +0.05 mm positive tolerance (14.00-14.05 mm) so the switch's plate clips seat without being loose enough to rattle.","applies":["mx switch","switch plate","hot-swap socket"],"value":{"min":14,"max":14.05,"typical":14.02,"unit":"mm"},"basis":"Cherry's own mounting-plate drawing specifies 14.0 mm square with the switch housing's clip ribs sized for a light press fit at +0.05 mm.","sources":["cherry-mx-datasheet","keyboard-plate-guide"],"tags":["plate cutout","mx","tolerance"]},{"id":"choc-switch-plate-cutout","kind":"dimension","tier":1,"title":"Choc switch plate cutout (~14.5 x 14.5 mm)","summary":"Kailh Choc v1/v2 switches use a slightly larger square plate cutout, commonly cut 14.4-14.5 mm per side (looser than MX's 14.0 mm) because the Choc housing's retention ribs are shallower.","applies":["choc switch","low-profile plate"],"value":{"min":14.4,"max":14.5,"typical":14.45,"unit":"mm"},"basis":"Community-measured convention across open-source Choc plate files; Kailh does not publish as tight a cutout tolerance as Cherry does for MX.","sources":["kailh-choc-datasheet","keyboard-plate-guide"],"tags":["plate cutout","choc","tolerance"]},{"id":"plate-thickness","kind":"dimension","tier":1,"title":"Switch plate thickness (1.5 mm typical)","summary":"Keyboard switch plates run 1.2-1.6 mm thick depending on material; 1.5 mm is the most common thickness across steel, aluminium, FR4 and polycarbonate plates and is what most switch clip geometry assumes.","applies":["switch plate","case"],"value":{"min":1.2,"max":1.6,"typical":1.5,"unit":"mm","options":["steel","aluminum","FR4","polycarbonate"]},"basis":"Cherry's clip-rib height and standard plate mounting drawings assume ~1.5 mm engagement; thinner plates reduce clip retention, thicker plates need the switch pins to still reach the PCB.","sources":["cherry-mx-datasheet","keyboard-plate-guide"],"tags":["plate","thickness","material"]},{"id":"plate-to-pcb-spacing-mx","kind":"dimension","tier":1,"title":"Plate-to-PCB spacing, MX (5.0 mm)","summary":"The gap from the underside of an MX switch plate to the top of the PCB is 5.0 mm — the distance MX switch pins and stem travel through before soldering onto the board.","applies":["mx switch","case design","tray mount"],"value":{"value":5,"unit":"mm"},"basis":"Fixed by Cherry MX's housing height below the plate-retention clips; case standoffs and PCB mounting posts are dimensioned around this 5 mm gap.","sources":["cherry-mx-installation-guide","keyboard-plate-guide"],"tags":["plate to pcb","mx","standoff"]},{"id":"plate-to-pcb-spacing-choc","kind":"dimension","tier":1,"title":"Plate-to-PCB spacing, Choc (3.4 mm)","summary":"Kailh Choc's shorter low-profile housing needs only 3.4 mm from plate underside to PCB top, versus 5.0 mm for MX — the main reason Choc boards can be built thinner.","applies":["choc switch","low-profile case"],"value":{"value":3.4,"unit":"mm"},"basis":"Set by the Choc housing height below its plate clips; used across open-source Choc case/standoff designs.","sources":["kailh-choc-datasheet","keyboard-plate-guide"],"tags":["plate to pcb","choc","standoff"]},{"id":"stabilizer-cutout-2u","kind":"dimension","tier":1,"title":"Cherry-style stabilizer plate cutout, 2u key (Costar/Cherry)","summary":"A 2u key (backspace, tab, etc.) needs a Cherry-style stabilizer cutout: a 3.0 mm wide slot with wire-post holes spaced 23.8 mm either side of the switch cutout centre.","applies":["stabilizer","2u key","backspace"],"value":{"value":23.8,"unit":"mm","note":"stem-hole spacing either side of switch centre; slot width ~3.0 mm"},"basis":"Cherry-style stabilizer geometry is the de-facto standard adopted by nearly every plate/PCB design tool (KLE, plate generators).","sources":["keyboard-plate-guide","cherry-mx-installation-guide"],"tags":["stabilizer","2u","cutout"]},{"id":"stabilizer-cutout-large","kind":"dimension","tier":2,"title":"Stabilizer cutouts for 6.25u and 7u keys (spacebar)","summary":"Wider stabilized keys use the same Cherry-style stem geometry but a longer wire and wider plate cutout: 6.25u spacebar wire-post spacing is ~100 mm, 6u is ~95.5 mm, 7u is ~114.3 mm, each centred on the key.","applies":["spacebar","6.25u","7u","stabilizer"],"value":{"table":[{"key":"6u","spacing_mm":95.5},{"key":"6.25u","spacing_mm":100},{"key":"7u","spacing_mm":114.3}]},"basis":"Measured from common spacebar stabilizer wire lengths used across mainstream keyboard PCB/plate design files.","sources":["keyboard-plate-guide"],"tags":["stabilizer","spacebar","cutout"]},{"id":"case-wall-thickness-keyboard","kind":"dimension","tier":1,"title":"Keyboard case wall thickness (2-4 mm)","summary":"Injection-moulded or CNC keyboard case walls run 2-4 mm: 2-2.5 mm for a moulded ABS/PC shell, 3-4 mm for a CNC'd aluminium case that also needs to resist flex under typing force.","applies":["keyboard case","enclosure"],"value":{"min":2,"max":4,"typical":3,"unit":"mm"},"basis":"Below ~2 mm a moulded shell warps and an aluminium case rings/flexes; above 4 mm adds weight and cost with no stiffness benefit for a desktop keyboard.","sources":["keyboard-plate-guide"],"tags":["case","wall thickness","enclosure"]},{"id":"standoff-m2-keyboard","kind":"fastener","tier":2,"title":"M2 standoffs for plate/PCB/case stack","summary":"Keyboard plate-to-PCB-to-case stacks are almost universally fastened with M2 standoffs and screws (M2x5 to M2x10 depending on stack height); clearance holes and tap-drill sizes follow the general M2 hardware convention.","applies":["case assembly","plate mount","pcb mount"],"value":{"value":2,"unit":"mm","note":"see hardware/clearance-holes-metric for M2 clearance (2.4 mm) and tap-drill sizes"},"basis":"M2 is small enough to fit between switches at 19.05 mm pitch without hitting adjacent switch legs, while still giving enough thread engagement in a 2-3 mm boss.","sources":["keyboard-plate-guide"],"tags":["standoff","m2","fastener"],"see":["hardware/clearance-holes-metric"]},{"id":"tray-mount-vs-gasket-mount","kind":"feature","tier":2,"title":"Tray-mount vs gasket-mount case construction","summary":"Tray-mount screws the plate/PCB rigidly to standoffs at 6-9 points, giving a stiff, sometimes 'clacky' feel; gasket-mount floats the plate/PCB on a compressible gasket strip (1.5-3 mm silicone/poron) between top and bottom case halves for a softer, more uniform typing feel.","applies":["case construction","typing feel"],"basis":"Gasket-mount removes the rigid standoff-to-plate contact points that cause per-key feel variation in tray-mount boards; it is the dominant premium-board construction as of the mid-2020s.","sources":["keyboard-plate-guide"],"tags":["gasket mount","tray mount","case"],"detail":"Gasket-mount cases still need locating features (silicone gasket channels or foam pads, typically 1.5-3 mm compressed thickness) so the plate/PCB sandwich cannot shift laterally; tray-mount standoffs sit directly under the plate at a subset of screw positions matching the PCB's mount holes."},{"id":"typing-angle","kind":"dimension","tier":1,"title":"Keyboard typing angle (3-8 degrees)","summary":"A keyboard's typing angle — the front-to-back tilt of the key plane — runs 3-8 degrees for most boards; flip-out feet typically add 2-4 degrees on top of a 3-6 degree built-in base angle.","applies":["ergonomics","case design"],"value":{"min":3,"max":8,"typical":6,"unit":"deg"},"basis":"Angles above ~8-10 degrees increase wrist extension and RSI risk; most ergonomic guidance recommends keeping the wrist closer to neutral, favouring the low end of this range or a negative-tilt/tented design.","sources":["bifma-g1","keyboard-plate-guide"],"tags":["typing angle","ergonomics"]},{"id":"front-height-keyboard","kind":"dimension","tier":2,"title":"Keyboard front (home-row) height","summary":"Front-edge height (desk surface to the home row's top) typically runs 15-30 mm for a low-profile board and 25-40 mm for a standard-height mechanical board with a plate, PCB, switches and case stack.","applies":["case design","ergonomics"],"value":{"min":15,"max":40,"typical":25,"unit":"mm"},"basis":"Sets the wrist-extension angle in combination with the typing angle; keyboards marketed as 'low profile' target under ~20 mm front height.","sources":["keyboard-plate-guide","bifma-g1"],"tags":["front height","case design"]},{"id":"bezel-width-keyboard","kind":"dimension","tier":2,"title":"Keyboard case bezel width","summary":"Side and top bezels (case wall beyond the outermost switch cutout) run 4-15 mm; sub-10 mm bezels are marketed as 'compact'/'low-bezel', while 12-15 mm+ leaves room for a rotary encoder, USB-C port reinforcement or badge.","applies":["case design","enclosure"],"value":{"min":4,"max":15,"typical":8,"unit":"mm"},"basis":"Bezel width trades footprint against room for the case wall to stay above the minimum wall-thickness rule and clear internal standoffs.","sources":["keyboard-plate-guide"],"tags":["bezel","case design"]},{"id":"keycap-profile-heights","kind":"dimension","tier":2,"title":"Keycap profile heights (OEM, Cherry, SA, XDA, DSA)","summary":"Common keycap profiles differ in total height from the plate: DSA/XDA (uniform) ~7.5-8.5 mm, Cherry (sculpted) ~7.7-9.9 mm row-dependent, OEM (sculpted) ~9.1-11.4 mm row-dependent, SA (tall sculpted) ~11.5-14.7 mm row-dependent.","applies":["keycaps","profile"],"value":{"table":[{"profile":"DSA","min_mm":7.5,"max_mm":8.5},{"profile":"XDA","min_mm":7.9,"max_mm":8.9},{"profile":"Cherry","min_mm":7.7,"max_mm":9.9},{"profile":"OEM","min_mm":9.1,"max_mm":11.4},{"profile":"SA","min_mm":11.5,"max_mm":14.7}]},"basis":"Profile height determines finger reach and case front-height/typing-angle pairing; taller profiles (SA) are usually paired with flatter typing angles to keep total key height reasonable.","sources":["keycap-profile-reference"],"tags":["keycap profile","height"]},{"id":"usb-c-cutout-daughterboard","kind":"dimension","tier":1,"title":"USB-C port cutout (9.0 x 3.3 mm)","summary":"A USB-C receptacle case cutout is 9.0 mm wide x 3.3 mm tall to clear the connector shell; the daughterboard carrying it is usually screwed or slotted to the case wall independent of the main PCB so cable-insertion force never loads switch-side solder joints.","applies":["usb-c","daughterboard","case cutout"],"value":{"value":{"width":9,"height":3.3},"unit":"mm"},"basis":"9.0 x 3.3 mm matches the USB Type-C receptacle shell outline per the USB-IF connector spec, plus a small clearance margin for case tolerance.","sources":["usb-c-spec"],"tags":["usb-c","cutout","daughterboard"]},{"id":"daughterboard-mounting","kind":"feature","tier":2,"title":"USB-C daughterboard mounting convention","summary":"The USB-C daughterboard is mounted to the case (not floating on the flex cable alone) via two M2 screw bosses or a slot-and-clip channel, with a short (15-30 mm) flex-PCB or wire jumper to the main PCB so repeated cable insertion/removal stresses the case, not the solder joints.","applies":["usb-c","daughterboard","case assembly"],"basis":"Recurring failure mode in cheap keyboards is a cracked USB-C solder joint from cable-insertion torque; anchoring the connector to the case rather than the main PCB is the standard fix.","sources":["usb-c-spec","keyboard-plate-guide"],"tags":["usb-c","daughterboard","reliability"],"see":["hardware/clearance-holes-metric"]},{"id":"feet-bumpons","kind":"feature","tier":2,"title":"Case feet / bumpons","summary":"Keyboard case feet (bumpons) are typically 8-14 mm diameter silicone or rubber pads, 1.5-3 mm tall, placed at the four corners plus centre-rear for boards over ~350 mm wide, to prevent desk sliding and add a small typing-angle lift.","applies":["case design","feet"],"value":{"min":8,"max":14,"typical":10,"unit":"mm"},"basis":"Sized to give enough contact-patch friction without the pad itself becoming a visible/tactile lump under the case; larger boards need a centre foot to stop centre-span flex.","sources":["keyboard-plate-guide"],"tags":["feet","bumpons","case"]},{"id":"keyboard-weight-targets","kind":"dimension","tier":3,"title":"Keyboard weight targets by size class","summary":"Typical assembled weights: 60% board 500-750 g, TKL (80%) 700-1100 g, full-size 900-1400 g; aluminium-cased 'enthusiast' boards run 30-80% heavier than the same layout in polycarbonate/ABS.","applies":["case design","weight"],"value":{"table":[{"size":"60%","min_g":500,"max_g":750},{"size":"TKL","min_g":700,"max_g":1100},{"size":"full-size","min_g":900,"max_g":1400}]},"basis":"Weight scales with footprint and case material; heavier boards resist sliding during typing without needing as many/large feet.","sources":["keyboard-plate-guide"],"tags":["weight","case design"]},{"id":"corner-relief-plate-cutout","kind":"rule","tier":2,"title":"Corner relief on laser/CNC-cut plate cutouts","summary":"A CNC-milled or laser-cut switch plate needs a small relief (0.3-0.5 mm radius, or an intentional over-cut notch) at each inside corner of the 14 mm square cutout, since a milling cutter cannot produce a sharp inside corner and a sharp corner concentrates stress in a thin plate.","applies":["switch plate","manufacturing"],"basis":"A square inside corner needs an infinitely small tool radius; a real end mill leaves a fillet equal to its own radius unless relieved, and stamped/laser plates without relief are more prone to cracking at the corner under repeated switch insertion.","sources":["keyboard-plate-guide"],"tags":["corner relief","cnc","laser cut","plate"]},{"id":"switch-plate-retention-clip","kind":"feature","tier":3,"title":"Switch housing plate-retention clips","summary":"MX switch housings have two small side clips (~0.3-0.5 mm engagement) that snap into the 14.0-14.05 mm plate cutout; hot-swap sockets rely on the same clip engagement plus the PCB socket to hold the switch square to the plate.","applies":["mx switch","hot swap","plate retention"],"basis":"Clip engagement depth is why the +0.05 mm upper tolerance on the cutout matters: too loose and the switch rocks in the plate, contributing to keycap wobble.","sources":["cherry-mx-datasheet"],"tags":["retention clip","hot swap","plate"]},{"id":"keycap-stem-tolerance","kind":"tolerance","tier":2,"title":"Keycap stem-to-switch-stem clearance","summary":"MX-compatible keycap stems need 0.05-0.15 mm total clearance around the switch's cross-shaped stem (nominal 4x4 mm cross-arm) to slide on without excess wobble; too tight a stem cracks on installation, too loose causes audible rattle.","applies":["keycap","stem fit"],"value":{"min":0.05,"max":0.15,"unit":"mm"},"basis":"Injection-moulded keycap stems shrink slightly on cooling; the clearance band balances installation force against wobble across ABS/PBT and typical moulding tolerances.","sources":["cherry-mx-datasheet","pbt-abs-material-reference"],"tags":["keycap","stem","tolerance"]},{"id":"test-keystroke-cycles","kind":"test","tier":2,"title":"Keystroke durability cycle test","summary":"Mechanical switches are rated 50-100 million keystroke cycles (Cherry MX: 50M for standard, up to 100M for some low-force variants); a full keyboard design should assume the switch, not the plate/PCB/stem, is the wear-limiting part at these cycle counts.","applies":["mechanical switch","durability"],"value":{"min":50000000,"max":100000000,"typical":50000000,"unit":"cycles"},"basis":"Cherry's own MX datasheet publishes the 50M/100M cycle ratings measured to contact-resistance failure, not physical breakage; plate cutout tolerance and stem fit must stay stable across that many insertions.","sources":["cherry-mx-datasheet"],"tags":["test","durability","keystroke cycles"]},{"id":"test-mouse-click-cycles","kind":"test","tier":2,"title":"Mouse button click-durability test","summary":"Mouse main-button micro switches are rated 10-50 million clicks for standard Omron D2FC-series switches and up to 80 million for gaming-grade Kailh GM switches; button housing and dome/leaf-spring geometry must survive that actuation count without a shift in pre-travel.","applies":["mouse switch","durability"],"value":{"min":10000000,"max":80000000,"typical":20000000,"unit":"cycles"},"basis":"Omron and Kailh publish these ratings to contact-degradation failure; a mouse shell's button-arm flex geometry (thickness, pivot radius) needs enough fatigue margin to outlast the switch itself.","sources":["omron-d2fc-datasheet","kailh-gm-datasheet"],"tags":["test","durability","click cycles"]},{"id":"test-drop-1m","kind":"test","tier":2,"title":"1 m drop test","summary":"Peripherals are commonly drop-tested from 1 m onto a hard surface (6 faces + 4-8 corners/edges); passing implies case corners carry at least a 2 mm radius and no unsupported internal wall spans more than ~40 mm between ribs/bosses.","applies":["case design","durability"],"value":{"value":1000,"unit":"mm"},"basis":"1 m approximates a typical desk or lap drop height; sharp corners concentrate impact stress and long unsupported spans are what crack first in ABS/PC shells.","sources":["gaming-mouse-durability-standard","controller-ergonomics-reference"],"tags":["test","drop test","durability"]},{"id":"test-cable-flex","kind":"test","tier":2,"title":"Cable flex-life test","summary":"USB/detachable peripheral cables are typically flex-tested to 5,000-20,000 bend cycles at the strain-relief boot before conductor failure; the case-side cable entry needs a strain-relief boot or moulded grommet with a bend radius at least 3x the cable's own diameter.","applies":["cable","strain relief","durability"],"value":{"min":5000,"max":20000,"unit":"cycles"},"basis":"Repeated flexing concentrates fatigue right at the case exit point; a boot/grommet spreading the bend over a larger radius is the standard mitigation.","sources":["gaming-mouse-durability-standard"],"tags":["test","cable flex","durability"]},{"id":"test-keycap-shine-wear","kind":"test","tier":3,"title":"Keycap surface wear (shine) test","summary":"Keycap surface finish is judged for visible 'shine' (worn-smooth gloss); ABS keycaps typically show shine within 1-3 years of daily use, while PBT resists it well beyond 5 years, which is why PBT is preferred for high-touch keys (WASD, home row, spacebar).","applies":["keycap","material","wear"],"basis":"ABS's lower surface hardness and higher plasticiser content wear to a visible sheen faster than PBT under finger-oil and repeated contact; a widely cited practical (non-standardised) durability difference.","sources":["pbt-abs-material-reference"],"tags":["test","wear","keycap material"]},{"id":"material-abs-keycap","kind":"material","tier":2,"title":"ABS keycaps","summary":"ABS (acrylonitrile butadiene styrene) keycaps are the cheaper, glossier default: easy to injection-mould with sharp legend detail (double-shot or pad-print), but develop a visible shine after 1-3 years of daily use on high-contact keys.","applies":["keycap material"],"value":{"table":[{"property":"density","value":1.05,"unit":"g/cm3"},{"property":"typical wall","value":1,"unit":"mm"}]},"basis":"Lower cost and easier double-shot moulding than PBT make ABS the default on budget and mid-range keyboards despite its worse long-term shine resistance.","sources":["pbt-abs-material-reference"],"tags":["material","abs","keycap"]},{"id":"material-pbt-keycap","kind":"material","tier":2,"title":"PBT keycaps","summary":"PBT (polybutylene terephthalate) keycaps cost roughly 1.5-2x more than ABS and mould slightly rougher/textured, but resist shine and finger-oil sheen for 5+ years versus 1-3 for ABS, and are the default on enthusiast/premium keyboards.","applies":["keycap material"],"value":{"table":[{"property":"density","value":1.3,"unit":"g/cm3"},{"property":"typical wall","value":1.2,"unit":"mm"}]},"basis":"PBT's higher crystallinity and hardness resist the surface polishing effect of finger contact that causes ABS's characteristic shine.","sources":["pbt-abs-material-reference"],"tags":["material","pbt","keycap"]},{"id":"material-pc-case","kind":"material","tier":2,"title":"Polycarbonate (PC) case shells","summary":"PC is used for translucent/RGB-diffusing case shells and premium keyboard bottom cases needing more impact toughness than ABS; typical wall 2.5-3.5 mm, often blended with ABS (PC/ABS) for a cost/toughness balance.","applies":["case material","enclosure"],"value":{"table":[{"property":"density","value":1.2,"unit":"g/cm3"},{"property":"tensile modulus","value":2300,"unit":"MPa"}]},"basis":"PC's higher impact strength than ABS suits a case that must survive drop tests and repeated flexing at gasket-mount screw points.","sources":["gaming-mouse-durability-standard"],"tags":["material","polycarbonate","case"]},{"id":"material-6061-plate-case","kind":"material","tier":2,"title":"6061-T6 aluminium plates and cases","summary":"6061-T6 is the standard aluminium alloy for CNC keyboard plates and premium case shells: good machinability, anodizes cleanly, and (at 1.5 mm plate thickness) gives a noticeably stiffer, higher-pitched typing sound than steel or polymer plates.","applies":["plate material","case material"],"value":{"table":[{"property":"density","value":2.7,"unit":"g/cm3"},{"property":"yield strength","value":276,"unit":"MPa"}]},"basis":"6061-T6's machinability and anodizing response make it the default 'enthusiast' CNC aluminium alloy across the hobby, distinct from cast or die-cast aluminium used in mass-market cases.","sources":["keyboard-plate-guide"],"tags":["material","aluminum","6061","plate"]},{"id":"material-fr4-plate","kind":"material","tier":2,"title":"FR4 (fibreglass PCB laminate) plates","summary":"FR4 plates (the same glass-epoxy laminate as PCBs, usually 1.2-1.6 mm) are prized for their flex — noticeably more give under keypress than steel, aluminium or polycarbonate — giving a softer bottom-out feel at the cost of plate rigidity.","applies":["plate material"],"value":{"table":[{"property":"density","value":1.85,"unit":"g/cm3"},{"property":"flexural modulus","value":18000,"unit":"MPa"}]},"basis":"FR4's glass-fibre/epoxy composite has a much lower flexural modulus than metal plates at the same thickness, which enthusiast builds exploit deliberately for feel.","sources":["keyboard-plate-guide"],"tags":["material","fr4","plate"]},{"id":"material-pom-switch-housing","kind":"material","tier":2,"title":"POM (Delrin) switch and stem components","summary":"POM (polyoxymethylene, e.g. Delrin) is the standard material for switch housings, stems and slider components: low friction (coefficient ~0.2) and wear resistance across the 50-100M cycle switch rating, sometimes chosen for keycaps for its smoother, waxier feel than ABS/PBT.","applies":["switch material","keycap material"],"value":{"table":[{"property":"density","value":1.41,"unit":"g/cm3"},{"property":"coefficient of friction","value":0.2,"unit":"ratio"}]},"basis":"POM's self-lubricating, low-friction surface is why switch sliders keep a consistent actuation feel over their 50-100M cycle rating rather than developing scratchy travel.","sources":["cherry-mx-datasheet"],"tags":["material","pom","delrin","switch"]},{"id":"mouse-dims-palm-grip","kind":"dimension","tier":1,"title":"Mouse dimensions for palm grip","summary":"Palm-grip mice (whole hand rests on the shell) run larger: length 120-130 mm, width 62-70 mm, height (rear hump) 38-45 mm — tall enough for the palm to sit on the hump rather than hover above it.","applies":["mouse shell","palm grip","ergonomics"],"value":{"table":[{"axis":"length","min_mm":120,"max_mm":130},{"axis":"width","min_mm":62,"max_mm":70},{"axis":"height","min_mm":38,"max_mm":45}]},"basis":"Palm grip needs a tall rear hump and long shell so the whole hand (not just fingertips) is supported, unlike claw/fingertip grips which favour a lower, shorter shell.","sources":["mouse-grip-ergonomics-study"],"tags":["mouse","palm grip","dimension"]},{"id":"mouse-dims-claw-grip","kind":"dimension","tier":1,"title":"Mouse dimensions for claw grip","summary":"Claw-grip mice (arched fingers, palm barely touching) suit a shorter, lower shell: length 110-120 mm, width 58-65 mm, height 34-40 mm, often with a steeper front slope for the fingertips to hook over the front edge.","applies":["mouse shell","claw grip","ergonomics"],"value":{"table":[{"axis":"length","min_mm":110,"max_mm":120},{"axis":"width","min_mm":58,"max_mm":65},{"axis":"height","min_mm":34,"max_mm":40}]},"basis":"A lower rear hump and shorter length keep the palm from needing to fully rest, matching the arched-finger claw posture.","sources":["mouse-grip-ergonomics-study"],"tags":["mouse","claw grip","dimension"]},{"id":"mouse-dims-fingertip-grip","kind":"dimension","tier":2,"title":"Mouse dimensions for fingertip grip","summary":"Fingertip-grip mice (only fingertips touch, palm fully off the shell) are the smallest and lowest: length 100-115 mm, width 55-62 mm, height 30-36 mm, favouring a symmetrical, low-profile shell for fast lift-off and repositioning.","applies":["mouse shell","fingertip grip","ergonomics"],"value":{"table":[{"axis":"length","min_mm":100,"max_mm":115},{"axis":"width","min_mm":55,"max_mm":62},{"axis":"height","min_mm":30,"max_mm":36}]},"basis":"A small, low, often symmetric shell minimises the contact area a fingertip-grip user needs to clear when lifting and repositioning the mouse rapidly.","sources":["mouse-grip-ergonomics-study"],"tags":["mouse","fingertip grip","dimension"]},{"id":"mouse-sensor-placement","kind":"feature","tier":2,"title":"Optical sensor placement","summary":"The optical/laser sensor sits on the shell centreline, offset 3-8 mm behind the geometric centre of the mouse's footprint (biased toward the palm side), at a fixed 2.0-2.5 mm standoff height from the PCB to the mouse-feet contact plane for correct focal distance.","applies":["mouse","sensor","pcb layout"],"value":{"min":2,"max":2.5,"unit":"mm"},"basis":"Centreline placement avoids introducing yaw error into cursor tracking during rotation about the wrist; the standoff height is set by the sensor lens's fixed focal distance to the tracking surface.","sources":["gaming-mouse-durability-standard"],"tags":["sensor","placement","mouse"]},{"id":"mouse-button-travel","kind":"dimension","tier":1,"title":"Main button travel and pre-travel","summary":"Main mouse buttons have 1.5-2.5 mm total travel with 0.3-0.8 mm pre-travel (movement before the switch clicks); the shell's flexure button arm is tuned in thickness (0.6-1.0 mm) to give this travel without fatiguing before the switch's rated cycle life.","applies":["mouse button","travel","ergonomics"],"value":{"min":1.5,"max":2.5,"typical":2,"unit":"mm"},"basis":"Pre-travel and total travel are dominated by the shell's button-arm flexure design, not the micro switch itself, which typically actuates over <1 mm of its own plunger movement.","sources":["omron-d2fc-datasheet","kailh-gm-datasheet"],"tags":["button travel","pre-travel","mouse"]},{"id":"mouse-side-button-position","kind":"feature","tier":2,"title":"Side button placement","summary":"Side (thumb) buttons sit 25-40 mm forward of the shell's rear edge on the left side (right-handed mice), positioned so a relaxed thumb rests just below them and only extends to press, avoiding accidental actuation during normal grip.","applies":["mouse","side button","ergonomics"],"value":{"min":25,"max":40,"unit":"mm"},"basis":"Placed by where a relaxed thumb naturally sits against the shell for the target grip style; too far forward causes accidental presses during aggressive flicks, too far back is unreachable.","sources":["mouse-grip-ergonomics-study"],"tags":["side button","thumb button","mouse"]},{"id":"mouse-skate-thickness","kind":"dimension","tier":2,"title":"Mouse skate (foot/glide pad) thickness","summary":"PTFE mouse skates (feet) run 0.6-0.8 mm thick, applied to 3-5 contact pads around the sensor; thickness sets the sensor-to-surface standoff and is chosen to balance glide smoothness against skate wear life.","applies":["mouse","skate","feet"],"value":{"min":0.6,"max":0.8,"unit":"mm"},"basis":"0.6-0.8 mm is thin enough to keep the sensor within its focal range while thick enough that normal wear does not drop the sensor below its minimum working height before the skate needs replacing.","sources":["gaming-mouse-durability-standard"],"tags":["skate","feet","mouse"]},{"id":"mouse-shell-wall-thickness","kind":"dimension","tier":1,"title":"Mouse shell wall thickness","summary":"Injection-moulded mouse shell walls run 1.2-1.8 mm — thin enough to mould without sink marks or long cooling times, thick enough to resist flex under grip pressure and to survive the 1 m drop test at unsupported spans.","applies":["mouse shell","enclosure"],"value":{"min":1.2,"max":1.8,"typical":1.5,"unit":"mm"},"basis":"Sits in the general thin-wall injection-moulding sweet spot; ribs and bosses (not thicker walls) carry the extra local stiffness a shell needs at screw points and the button-arm root.","sources":["gaming-mouse-durability-standard"],"tags":["wall thickness","mouse shell"]},{"id":"mouse-weight-targets","kind":"dimension","tier":3,"title":"Mouse weight targets","summary":"Wired gaming mice commonly target 60-90 g (lightweight/perforated shells can reach 45-55 g); wireless mice with a battery typically run 75-115 g including the internal cell.","applies":["mouse","weight"],"value":{"min":45,"max":115,"typical":80,"unit":"g"},"basis":"Weight is a marketed competitive spec in gaming mice; perforated/honeycomb shells trade shell stiffness for the lower end of this range.","sources":["gaming-mouse-durability-standard"],"tags":["weight","mouse"]},{"id":"controller-grip-diameter","kind":"dimension","tier":1,"title":"Controller handgrip diameter","summary":"Console-style controller handgrips (the cylindrical/tapered section under each hand) run 34-40 mm across at their widest, tapering to 28-32 mm near the top where the fingers curl around the trigger housing.","applies":["controller","grip","ergonomics"],"value":{"min":28,"max":40,"typical":36,"unit":"mm"},"basis":"Sized to fill an adult palm without over-extending the fingers to reach the face buttons/sticks on top, based on measured teardown dimensions of mainstream console controllers.","sources":["controller-ergonomics-reference"],"tags":["controller","grip diameter","ergonomics"]},{"id":"controller-trigger-travel","kind":"dimension","tier":2,"title":"Analog trigger travel","summary":"Analog shoulder triggers (L2/R2, LT/RT) have 8-11 mm of rotational travel at the fingertip contact point, pivoting about an axis near the trigger's top edge, with a detectable soft-stop or click around 80-90% travel on controllers offering a digital 'hair-trigger' mode.","applies":["controller","trigger","ergonomics"],"value":{"min":8,"max":11,"unit":"mm"},"basis":"Travel and pivot geometry are set by the potentiometer or Hall-effect sensor's usable rotation range combined with a lever ratio that keeps fingertip force reasonable.","sources":["controller-ergonomics-reference"],"tags":["trigger travel","controller"]},{"id":"headset-band-clamp-force","kind":"dimension","tier":2,"title":"Headset band clamping force","summary":"Over-ear headset headbands apply 3-6 N of clamping force at the ear cups; below ~3 N the headset feels loose and slides during head movement, above ~6-7 N causes discomfort and jaw/temple pressure within an hour of wear.","applies":["headset","band","ergonomics"],"value":{"min":3,"max":6,"typical":4.5,"unit":"N"},"basis":"Clamping force is usually measured with a spreader jig at the ear-cup centres per common headphone-review methodology; the 3-6 N band is where most comfortable, secure headsets land.","sources":["headset-clamp-force-reference"],"tags":["clamp force","headset","ergonomics"]},{"id":"headset-earcup-id","kind":"dimension","tier":2,"title":"Ear-cup internal diameter/depth","summary":"Over-ear headset ear cups need an internal opening at least 55-60 mm across and 15-20 mm of internal depth (cushion to driver face) to avoid the ear touching the driver housing for most adult ear sizes; on-ear designs instead use a 45-55 mm pad that rests on (not around) the ear.","applies":["headset","ear cup","ergonomics"],"value":{"min":55,"max":60,"unit":"mm"},"basis":"Ear-touching-driver is one of the most common comfort complaints in headset reviews; the depth/diameter combination is chosen from anthropometric ear-size data.","sources":["headset-clamp-force-reference"],"tags":["ear cup","headset","dimension"]},{"id":"headset-mic-boom-conventions","kind":"note","tier":3,"title":"Boom microphone mounting conventions","summary":"Detachable/flip-up boom microphones typically mount via a 3.5 mm mono/TRRS jack or a proprietary snap connector on the left ear cup, with a flexible gooseneck or a pivot-and-slide mechanism giving roughly 90-180 degrees of positional adjustment toward the mouth.","applies":["headset","microphone"],"basis":"Left-side mounting is a near-universal convention so the boom does not conflict with a right-handed mouse hand's cable routing, though it carries no numeric spec of its own beyond adjustment range.","sources":["headset-clamp-force-reference"],"tags":["microphone","boom","headset"]},{"id":"usb-c-connector-standard","kind":"standard","tier":2,"title":"USB Type-C connector specification","summary":"The USB-IF Type-C spec defines the receptacle outline (the 9.0 x 3.3 mm case cutout used across peripherals), insertion/removal durability (rated 10,000 cycles minimum) and the reversible-plug envelope every USB-C peripheral port must clear.","applies":["usb-c","connector"],"basis":"Any peripheral daughterboard cutout, PCB footprint and case clearance for a USB-C port derives from this spec's receptacle outline and durability rating.","sources":["usb-c-spec"],"tags":["standard","usb-c","connector"]},{"id":"recipe-60-keyboard-plate","kind":"recipe","tier":2,"title":"Recipe: 60% keyboard switch plate with MX cutout grid","summary":"Worked build: a 300x105x1.5 mm plate blank with a 5x3 grid of 14mm square MX cutouts at 19.05mm pitch, built as three row-patterns (box + cad_pattern_copies + cad_boolean_subtract) since cad_hole_pattern has no square-hole option.","applies":["60% keyboard","switch plate"],"basis":"Demonstrates the plate-cutout (mx-switch-plate-cutout) and key-pitch (key-pitch-mx) facts as an actual buildable body; square cutouts require boolean_subtract with a patterned box rather than cad_hole_pattern.","sources":["cherry-mx-datasheet","keyboard-plate-guide"],"tags":["recipe","plate","60 percent"],"recipe":{"prompt":"Model a 60% keyboard switch plate with a 5x3 grid of MX 14mm switch cutouts","steps":[{"tool":"cad_box","args":{"dx":300,"dy":105,"dz":1.5},"note":"plate blank, 60% board footprint"},{"tool":"cad_box","args":{"dx":14,"dy":14,"dz":3,"origin":[20,20,-0.75]},"note":"row 1 seed cutout, oversized in Z to guarantee a clean through-cut"},{"tool":"cad_pattern_copies","args":{"of":"$1","type":"linear","step":[19.05,0,0],"count":5},"note":"pattern row 1 across X at MX pitch"},{"tool":"cad_boolean_subtract","args":{"of":"$0","tool":"$2"},"note":"cut row 1 into the plate"},{"tool":"cad_box","args":{"dx":14,"dy":14,"dz":3,"origin":[20,39.05,-0.75]},"note":"row 2 seed cutout, one pitch up in Y"},{"tool":"cad_pattern_copies","args":{"of":"$4","type":"linear","step":[19.05,0,0],"count":5},"note":"pattern row 2 across X"},{"tool":"cad_boolean_subtract","args":{"of":"$3","tool":"$5"},"note":"cut row 2 into the plate"},{"tool":"cad_box","args":{"dx":14,"dy":14,"dz":3,"origin":[20,58.1,-0.75]},"note":"row 3 seed cutout, two pitches up in Y"},{"tool":"cad_pattern_copies","args":{"of":"$7","type":"linear","step":[19.05,0,0],"count":5},"note":"pattern row 3 across X"},{"tool":"cad_boolean_subtract","args":{"of":"$6","tool":"$8"},"note":"cut row 3 into the plate, 15 cutouts total"}],"expect":{"volume":42840,"faceCount":66,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-mouse-shell","kind":"recipe","tier":2,"title":"Recipe: claw-grip mouse shell","summary":"Worked build: a 62x116x38 mm box shelled to a 1.5mm wall then filleted to a 1.5mm edge radius — on a shelled body the blanket radius cannot exceed the wall (a larger one drives the fillet through the inner face; CADSB-744), so the grip radius is the wall thickness.","applies":["mouse shell","claw grip"],"basis":"Demonstrates mouse-dims-claw-grip and mouse-shell-wall-thickness as an actual buildable body via box + shell + fillet, with the fillet radius bounded by mouse-shell-wall-thickness's 1.5mm wall.","sources":["mouse-grip-ergonomics-study","gaming-mouse-durability-standard"],"tags":["recipe","mouse shell"],"recipe":{"prompt":"Model a claw-grip mouse shell as a 62x116x38mm box shelled to a 1.5mm wall and filleted to a 1.5mm edge radius","steps":[{"tool":"cad_box","args":{"dx":62,"dy":116,"dz":38},"note":"claw-grip shell blank, mouse-dims-claw-grip range"},{"tool":"cad_shell","args":{"of":"$0","thickness":1.5},"note":"hollow to mouse-shell-wall-thickness; shell BEFORE fillet keeps face count low"},{"tool":"cad_fillet_edges","args":{"of":"$1","radius":1.5},"note":"round the shell's outer edges for grip comfort — radius = the 1.5mm wall; anything larger is refused blend-through-wall (CADSB-744)"}],"expect":{"volume":39538.33,"faceCount":32,"watertight":true,"selfIntersection":false,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-controller-grip","kind":"recipe","tier":2,"title":"Recipe: controller handgrip","summary":"Worked build: an 18mm-radius, 90mm-tall cylinder with a 9mm fillet at each end, approximating a console controller's tapered handgrip blank.","applies":["controller","grip"],"basis":"Demonstrates controller-grip-diameter as an actual buildable body via cylinder + fillet.","sources":["controller-ergonomics-reference"],"tags":["recipe","controller grip"],"recipe":{"prompt":"Model a controller handgrip as a tapered, filleted cylinder","steps":[{"tool":"cad_cylinder","args":{"r":18,"h":90}},{"tool":"cad_fillet_edges","args":{"of":"$0","radius":9}}],"expect":{"volume":88116.09,"faceCount":5,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}}]},{"$schema":"nativecad-dfm-pack/1","id":"piping","title":"Piping -- pipe, tube, fittings, flanges, manifolds, O-rings and ducting","sector":"piping","version":"2026-09-03","summary":"Pipe/tube schedules and metric sizes, flange bolt circles (ASME B16.5, EN 1092-1), thread standards (NPT, BSPP/G), manifold and O-ring groove geometry, hose barbs, push-to-connect tube, duct sizes, pressure-wall sizing and the tests a fluid-carrying part is held to.","aliases":["pipe","pipe fitting","manifold","pipe flange","hose barb","o-ring","oring","o-ring groove","npt","bspp","g thread","tube fitting","hvac","duct","valve body","pneumatic","hydraulic","plumbing"],"crossSector":false,"size":"full","sources":[{"id":"asme-b16.5","title":"ASME B16.5-2020 Pipe Flanges and Flanged Fittings, NPS 1/2 Through NPS 24","url":"https://www.asme.org/codes-standards/find-codes-standards/b16-5-pipe-flanges-flanged-fittings","accessed":"2026-09-03"},{"id":"asme-b31.3","title":"ASME B31.3-2020 Process Piping","url":"https://www.asme.org/codes-standards/find-codes-standards/b31-3-process-piping","accessed":"2026-09-03"},{"id":"asme-b1-20-1","title":"ASME B1.20.1-2013 Pipe Threads, General Purpose (Inch) -- NPT","url":"https://www.asme.org/codes-standards/find-codes-standards/b1-20-1-pipe-threads-general-purpose-inch","accessed":"2026-09-03"},{"id":"iso-228-1","title":"ISO 228-1:2000 Pipe threads where pressure-tight joints are not made on the threads -- Part 1: Dimensions, tolerances and designation (G / BSPP)","url":"https://www.iso.org/standard/4258.html","accessed":"2026-09-03"},{"id":"iso-3601-2","title":"ISO 3601-2:2016 Fluid power systems -- O-rings -- Part 2: Housing dimensions","url":"https://www.iso.org/standard/64450.html","accessed":"2026-09-03"},{"id":"sae-j1926-1","title":"SAE J1926/1 Straight Thread Tube Fitting Boss -- O-Ring Port design","url":"https://www.sae.org/standards/content/j1926/1","accessed":"2026-09-03"},{"id":"iso-6149-1","title":"ISO 6149-1:2006 Connections for hydraulic fluid power -- Ports and stud ends with metric thread -- Part 1: Ports with O-ring seal","url":"https://www.iso.org/standard/38366.html","accessed":"2026-09-03"},{"id":"en-1092-1","title":"EN 1092-1:2018 Flanges and their joints -- Circular flanges for pipes, valves, fittings -- PN designated","accessed":"2026-09-03"},{"id":"en-1506","title":"EN 1506:2007 Ventilation for buildings -- Sheet metal air ducts and fittings with circular cross-section","accessed":"2026-09-03"},{"id":"astm-d1785","title":"ASTM D1785-21 Standard Specification for Poly(Vinyl Chloride) (PVC) Plastic Pipe, Schedules 40, 80 and 120","url":"https://www.astm.org/d1785-21.html","accessed":"2026-09-03"},{"id":"astm-b88","title":"ASTM B88-20 Standard Specification for Seamless Copper Water Tube (Types K, L, M)","url":"https://www.astm.org/b0088-20.html","accessed":"2026-09-03"},{"id":"parker-oring-handbook","title":"Parker O-Ring Handbook, ORD 5700","url":"https://www.parker.com/content/dam/Parker-com/Literature/O-Ring-Division-Literature/ORD-5700.pdf","accessed":"2026-09-03"},{"id":"swagelok-tubing-data","title":"Swagelok Tubing Data -- Tube Fittings, Bend Radius and Selection Guidelines","url":"https://www.swagelok.com/downloads/webcatalogs/en/ms-01-107.pdf","accessed":"2026-09-03"},{"id":"engineering-toolbox","title":"The Engineering ToolBox -- Pipe Flow Velocities, Pressure Drop and Equivalent Length Reference Data","url":"https://www.engineeringtoolbox.com/","accessed":"2026-09-03"},{"id":"matweb-materials","title":"MatWeb Material Property Data (piping metals, plastics and elastomers)","url":"https://www.matweb.com/","accessed":"2026-09-03"},{"id":"sae-j20","title":"SAE J20 Coolant System Hoses","url":"https://www.sae.org/standards/content/j20/","accessed":"2026-09-14"},{"id":"nativecad-v12-showcase","title":"NativeCAD V12 engine showcase — ventilation, drain-back and feed plumbing rebuilt as audited flow paths (CADSB-908/914/917)","url":"https://featureboard.ai/nativecad/web/v12-engine.html","accessed":"2026-09-14"}],"entries":[{"id":"pipe-nps-od-series","kind":"dimension","tier":1,"title":"NPS 1/2-4 outside diameters and DN equivalents","summary":"Steel pipe OD runs 21.3, 26.7, 33.4, 42.2, 48.3, 60.3, 73.0, 88.9, 114.3 mm for NPS 1/2, 3/4, 1, 1-1/4, 1-1/2, 2, 2-1/2, 3, 4 (DN15, 20, 25, 32, 40, 50, 65, 80, 100) -- OD is fixed by NPS, wall thickness by schedule.","applies":["pipe","steel pipe","nps"],"value":{"options":[21.3,26.7,33.4,42.2,48.3,60.3,73,88.9,114.3],"unit":"mm"},"basis":"ASME B36.10 pipe OD series, the fixed-OD convention every NPS schedule wall is cut from","sources":["asme-b31.3"],"tags":["pipe","nps","dn","od"]},{"id":"metric-tube-od-series","kind":"dimension","tier":1,"title":"Metric hydraulic/pneumatic tube OD series","summary":"Metric tube for hydraulic and pneumatic lines is stocked at 6, 8, 10, 12, 16, 20, 25 mm OD with 1-2 mm wall depending on pressure class -- match the fitting's tube-OD rating exactly, tube fittings do not tolerate an oversize or undersize tube.","applies":["tube","hydraulic tube","pneumatic tube"],"value":{"options":[6,8,10,12,16,20,25],"unit":"mm"},"basis":"Swagelok/Parker metric tube catalogue OD series for compression and flare tube fittings","sources":["swagelok-tubing-data"],"tags":["tube","metric","od"]},{"id":"flange-b16-5-class150-nps2","kind":"dimension","tier":1,"title":"ASME B16.5 Class 150 NPS 2 flange (typical)","summary":"An NPS 2 Class 150 flange is 152.4 mm OD, 120.7 mm bolt circle, four dia19.1 mm bolt holes and a 1.6 mm raised face -- the size to reach for when a fitting needs one flange dimension; see pipe-schedule-wall-table for the full NPS 1-4 table.","applies":["flange","nps 2 flange","class 150"],"value":{"table":[{"field":"OD","value":152.4},{"field":"boltCircle","value":120.7},{"field":"boltCount","value":4},{"field":"boltHoleDia","value":19.1},{"field":"raisedFace","value":1.6}],"unit":"mm"},"basis":"ASME B16.5 Class 150 dimension table, NPS 2 row","sources":["asme-b16.5"],"tags":["flange","b16.5","class150","nps2"]},{"id":"npt-thread-table","kind":"dimension","tier":1,"title":"NPT taper pipe thread: 1/4 and 1/2 NPT","summary":"1/4 NPT is 18 TPI, tap drill 7/16 in (11.1 mm); 1/2 NPT is 14 TPI, tap drill 45/64 in (17.9 mm) -- both taper 1:16 on diameter, so a straight (non-tapered) hole will not seal an NPT fitting.","applies":["npt","pipe thread","taper thread"],"value":{"table":[{"size":"1/4 NPT","tpi":18,"drillIn":"7/16","drillMm":11.1},{"size":"1/2 NPT","tpi":14,"drillIn":"45/64","drillMm":17.9}],"unit":"in"},"basis":"ASME B1.20.1 NPT thread table (TPI, pitch diameter) and taper convention","sources":["asme-b1-20-1"],"tags":["npt","thread","taper","tap-drill"]},{"id":"bspp-g-series","kind":"dimension","tier":1,"title":"BSPP (G) parallel thread: G1/4, G3/8, G1/2","summary":"G1/4 major dia 13.157 mm at 19 TPI, tap drill 11.4 mm; G3/8 major dia 16.662 mm at 19 TPI; G1/2 major dia 20.955 mm at 14 TPI, tap drill 18.6 mm -- parallel (straight) thread, sealed by a bonded washer or O-ring, not by the thread itself.","applies":["bspp","g thread","parallel thread"],"value":{"table":[{"size":"G1/4","majorMm":13.157,"tpi":19,"drillMm":11.4},{"size":"G3/8","majorMm":16.662,"tpi":19},{"size":"G1/2","majorMm":20.955,"tpi":14,"drillMm":18.6}],"unit":"mm"},"basis":"ISO 228-1 BSPP thread dimension table","sources":["iso-228-1"],"tags":["bspp","g-thread","parallel"]},{"id":"oring-groove-faceseal-as568","kind":"dimension","tier":1,"title":"O-ring face-seal groove depth/width by AS568 cross-section","summary":"Face-seal groove sized to the O-ring cross-section: CS 1.78 mm (AS568 -010/-014/-020) -> depth 1.3, width 2.5; CS 2.62 mm (-113) -> depth 2.0, width 3.6; CS 3.53 mm (-210) -> depth 2.7, width 4.8 mm.","applies":["o-ring","o-ring groove","face seal","flange"],"value":{"table":[{"csMm":1.78,"examples":"-010/-014/-020","depthMm":1.3,"widthMm":2.5},{"csMm":2.62,"examples":"-113","depthMm":2,"widthMm":3.6},{"csMm":3.53,"examples":"-210","depthMm":2.7,"widthMm":4.8}],"unit":"mm"},"basis":"Parker O-Ring Handbook static face-seal groove design tables, ISO 3601-2 housing series","sources":["parker-oring-handbook","iso-3601-2"],"tags":["o-ring","groove","as568","face-seal"]},{"id":"oring-squeeze-stretch-fill","kind":"rule","tier":1,"title":"O-ring squeeze, stretch and groove fill targets","summary":"Design 15-25% squeeze (cross-section compression) on a static groove, 2-5% stretch on a piston/rod bore fit, and 70-90% groove fill by volume -- below the range the seal leaks, above it the O-ring extrudes into the clearance gap or takes a compression set.","applies":["o-ring","o-ring groove"],"value":{"min":15,"max":25,"unit":"%","note":"squeeze; see summary for stretch (2-5%) and fill (70-90%)"},"basis":"Parker O-Ring Handbook and ISO 3601-2 squeeze/stretch/fill design envelope","sources":["parker-oring-handbook","iso-3601-2"],"tags":["o-ring","squeeze","stretch","fill"]},{"id":"barlow-formula","kind":"rule","tier":1,"title":"Barlow's formula for pipe/manifold wall thickness","summary":"Minimum wall t = P*D/(2*S*E) -- pressure times diameter over twice the allowable stress times joint efficiency; e.g. a 10 mm bore at 10 MPa in 6061-T6 (S~69 MPa, E=1 solid block) needs only t~0.7 mm by burst alone, which is why manifold-wall-min (5 mm) governs instead.","applies":["pipe","manifold","pressure vessel"],"value":{"value":"t = P*D/(2*S*E)","unit":"mm"},"basis":"ASME B31.3 wall-thickness design equation (Barlow's formula form)","sources":["asme-b31.3"],"tags":["barlow","wall-thickness","pressure"]},{"id":"manifold-wall-min","kind":"rule","tier":1,"title":"Minimum manifold block wall between a port and an outside face","summary":"Leave >= 5 mm of solid aluminium wall between any drilled port and the block's outside face (or another port) at 10 MPa working pressure -- Barlow's formula alone under-predicts the wall a drilled, threaded, cyclically loaded manifold needs.","applies":["manifold","manifold block"],"value":{"min":5,"unit":"mm"},"basis":"Common hydraulic/pneumatic manifold design-guide minimum wall for a 10 MPa aluminium block, above the Barlow-formula burst minimum","sources":["engineering-toolbox"],"tags":["manifold","wall","minimum"]},{"id":"port-spacing-rule","kind":"rule","tier":1,"title":"Minimum port-to-port spacing in a manifold","summary":"Space adjacent manifold ports at least 1.5x the larger port's diameter, centre to centre, so the wall between two drilled/tapped holes has enough material to resist cracking under pressure and tapping torque.","applies":["manifold","port"],"value":{"min":1.5,"unit":"ratio","note":"multiple of the larger port diameter"},"basis":"Common hydraulic manifold design-guide minimum port spacing to avoid thin webs between drilled/tapped holes","sources":["engineering-toolbox"],"tags":["manifold","port","spacing"]},{"id":"thread-min-engagement","kind":"rule","tier":1,"title":"Minimum pipe/port thread engagement","summary":"Engage a tapped pipe or port thread at least 1x the nominal thread diameter in length -- NPT also needs full hand-tight-plus-turns engagement for its taper to seal; shallower engagement strips under torque or leaks past incomplete taper contact.","applies":["npt","bspp","thread","port"],"value":{"min":1,"unit":"ratio","note":"multiple of nominal thread diameter"},"basis":"Common pipe-thread engagement guidance for tapped ports in metal (ASME B1.20.1 practice)","sources":["asme-b1-20-1"],"tags":["thread","engagement","npt"]},{"id":"hose-barb-sizing","kind":"rule","tier":1,"title":"Hose barb OD sizing","summary":"Size a hose barb's OD 10-15% larger than the hose's nominal inside diameter so the hose stretches on and grips -- undersize and it weeps under pressure, oversize and the hose splits or won't push on.","applies":["hose barb","hose"],"value":{"min":10,"max":15,"unit":"%","note":"barb OD oversize versus hose nominal ID"},"basis":"Common hose-barb fitting design guidance (Parker/Swagelok barb catalogues)","sources":["swagelok-tubing-data"],"tags":["hose","barb","sizing"]},{"id":"flow-velocity-guideline","kind":"rule","tier":1,"title":"Target flow velocity: liquid vs air lines","summary":"Size pipe/tube bore for 1-3 m/s liquid velocity (water, hydraulic oil) and 10-20 m/s for compressed air/gas -- undersizing either raises pressure drop and noise/erosion, oversizing wastes material and slows response.","applies":["pipe","tube","duct","pneumatic","hydraulic"],"value":{"table":[{"service":"liquid","minMs":1,"maxMs":3},{"service":"air/gas","minMs":10,"maxMs":20}],"unit":"m/s"},"basis":"Engineering ToolBox recommended flow-velocity ranges for liquid and compressed-gas piping","sources":["engineering-toolbox"],"tags":["flow","velocity","sizing"]},{"id":"duct-round-sizes","kind":"dimension","tier":1,"title":"Round HVAC duct sizes (EN 1506)","summary":"Round sheet-metal duct is stocked at 100, 125, 150, 200, 250 and 315 mm diameter -- pick from this series rather than an arbitrary bore so off-the-shelf elbows, tees and dampers fit.","applies":["duct","hvac"],"value":{"options":[100,125,150,200,250,315],"unit":"mm"},"basis":"EN 1506 standard round sheet-metal duct diameter series","sources":["en-1506"],"tags":["duct","hvac","round"]},{"id":"material-6061-manifold","kind":"material","tier":1,"title":"6061-T6 aluminium for manifold blocks","summary":"6061-T6 is the default manifold/block material for hydraulic and pneumatic circuits under ~20-25 MPa: yield 276 MPa, density 2.70 g/cm3, machines and anodizes cleanly, and takes a drilled/tapped port without cracking at the wall minimums in this pack.","applies":["manifold","manifold block"],"value":{"table":[{"property":"yield","value":276,"unit":"MPa"},{"property":"density","value":2.7,"unit":"g/cm3"}]},"basis":"MatWeb 6061-T6 property data, the standard machined manifold alloy","sources":["matweb-materials"],"tags":["material","6061","aluminium","manifold"]},{"id":"material-316l","kind":"material","tier":1,"title":"316L stainless for wetted fittings and valve bodies","summary":"316L stainless (yield ~170 MPa annealed, density 8.0 g/cm3) is the default corrosion-resistant wetted material for fittings, valve bodies and process tube where the fluid or environment attacks carbon steel or brass.","applies":["fitting","valve body","tube"],"value":{"table":[{"property":"yield","value":170,"unit":"MPa"},{"property":"density","value":8,"unit":"g/cm3"}]},"basis":"MatWeb 316L stainless property data, the standard corrosion-resistant process-fluid material","sources":["matweb-materials"],"tags":["material","316l","stainless"]},{"id":"pipe-schedule-wall-table","kind":"dimension","tier":2,"title":"Schedule 40 / 80 wall thickness by NPS","summary":"Sch40/Sch80 wall (mm) by NPS: 1/2 2.77/3.73, 3/4 2.87/3.91, 1 3.38/4.55, 1-1/4 3.56/4.85, 1-1/2 3.68/5.08, 2 3.91/5.54, 2-1/2 5.16/7.01, 3 5.49/7.62, 4 6.02/8.56 -- OD is fixed (pipe-nps-od-series), schedule only changes wall and therefore bore.","applies":["pipe","schedule 40","schedule 80"],"value":{"table":[{"nps":"1/2","sch40Mm":2.77,"sch80Mm":3.73},{"nps":"3/4","sch40Mm":2.87,"sch80Mm":3.91},{"nps":"1","sch40Mm":3.38,"sch80Mm":4.55},{"nps":"1-1/4","sch40Mm":3.56,"sch80Mm":4.85},{"nps":"1-1/2","sch40Mm":3.68,"sch80Mm":5.08},{"nps":"2","sch40Mm":3.91,"sch80Mm":5.54},{"nps":"2-1/2","sch40Mm":5.16,"sch80Mm":7.01},{"nps":"3","sch40Mm":5.49,"sch80Mm":7.62},{"nps":"4","sch40Mm":6.02,"sch80Mm":8.56}],"unit":"mm"},"basis":"ASME B36.10 schedule wall-thickness tables for welded/seamless steel pipe","sources":["asme-b31.3"],"tags":["pipe","schedule","wall","sch40","sch80"]},{"id":"copper-tube-kml","kind":"dimension","tier":2,"title":"Copper tube Types K, L, M wall thickness (1/2 in nominal)","summary":"At 1/2 in nominal size, Type K (thick, buried/underground) is 1.24 mm wall, Type L (standard interior plumbing) 1.02 mm, Type M (thin, low-pressure) 0.71 mm -- same OD (15.9 mm) across all three, wall thickness is what the letter selects.","applies":["copper tube","plumbing"],"value":{"table":[{"type":"K","wallMm":1.24},{"type":"L","wallMm":1.02},{"type":"M","wallMm":0.71}],"unit":"mm"},"basis":"ASTM B88 copper water tube dimension table, 1/2 in nominal row","sources":["astm-b88"],"tags":["copper","tube","kml"]},{"id":"flange-b16-5-class150-table","kind":"dimension","tier":2,"title":"ASME B16.5 Class 150 flange table, NPS 1-4","summary":"Class 150: NPS1 OD108/BC79.4/4xdia15.9; NPS2 OD152.4/BC120.7/4xdia19.1; NPS3 OD190.5/BC152.4/4xdia19.1; NPS4 OD228.6/BC190.5/8xdia19.1 mm, all with a 1.6 mm raised face.","applies":["flange","class 150"],"value":{"table":[{"nps":"1","odMm":108,"boltCircleMm":79.4,"boltCount":4,"boltHoleMm":15.9},{"nps":"2","odMm":152.4,"boltCircleMm":120.7,"boltCount":4,"boltHoleMm":19.1},{"nps":"3","odMm":190.5,"boltCircleMm":152.4,"boltCount":4,"boltHoleMm":19.1},{"nps":"4","odMm":228.6,"boltCircleMm":190.5,"boltCount":8,"boltHoleMm":19.1}],"unit":"mm"},"basis":"ASME B16.5 Class 150 dimension table, NPS 1-4 rows","sources":["asme-b16.5"],"tags":["flange","b16.5","class150","table"]},{"id":"flange-en1092-1-pn16","kind":"dimension","tier":2,"title":"EN 1092-1 PN16 flange: DN25 and DN50","summary":"DN25 PN16: 115 mm OD, 85 mm bolt circle, 4x dia14 mm bolt holes. DN50 PN16: 165 mm OD, 125 mm bolt circle, 4x dia18 mm bolt holes -- the metric counterpart to ASME B16.5 Class 150.","applies":["flange","pn16","din flange"],"value":{"table":[{"dn":25,"odMm":115,"boltCircleMm":85,"boltCount":4,"boltHoleMm":14},{"dn":50,"odMm":165,"boltCircleMm":125,"boltCount":4,"boltHoleMm":18}],"unit":"mm"},"basis":"EN 1092-1 PN16 circular flange dimension table","sources":["en-1092-1"],"tags":["flange","en1092","pn16","din"]},{"id":"bspt-vs-bspp","kind":"rule","tier":2,"title":"BSPT (tapered) vs BSPP/G (parallel) -- do not mix","summary":"BSPT tapers 1:16 and seals on the taper like NPT; BSPP/G is parallel and seals on a bonded washer or O-ring under the head, never on the thread -- a G-series male into a BSPT female looks like it fits and then leaks.","applies":["bspp","bspt","g thread"],"basis":"ISO 228-1 (BSPP) vs the tapered BSP series -- same thread pitch, incompatible sealing mechanism","sources":["iso-228-1"],"tags":["bspp","bspt","thread","sealing"]},{"id":"oring-groove-radial-piston","kind":"dimension","tier":2,"title":"O-ring radial (piston/rod) groove example, CS 2.62 mm on a 20 mm bore","summary":"A CS 2.62 mm O-ring sealing a 20 mm bore dynamically (piston or rod) sits in a groove 2.1 mm deep and 3.3 mm wide -- shallower and narrower than the equivalent static face-seal groove because a dynamic seal needs less squeeze and more room for thermal growth.","applies":["o-ring","o-ring groove","piston seal"],"value":{"table":[{"field":"depth","value":2.1},{"field":"width","value":3.3},{"field":"bore","value":20}],"unit":"mm"},"basis":"ISO 3601-2 radial (piston-bore) O-ring housing dimension table for CS 2.62 mm","sources":["iso-3601-2"],"tags":["o-ring","groove","radial","piston"]},{"id":"oring-boss-port-dims","kind":"dimension","tier":2,"title":"O-ring boss port spotface (SAE J1926 / ISO 6149)","summary":"-04 port: 7/16-20 UNF thread, spotface dia17.4 mm; -06: 9/16-18 UNF, spotface dia22.4 mm; -08: 3/4-16 UNF, spotface dia27.9 mm (SAE J1926); ISO 6149 metric equivalents run M12x1.5, M14x1.5, M18x1.5 with matching O-ring bore/spotface.","applies":["o-ring boss","port","hydraulic fitting"],"value":{"table":[{"size":"-04","thread":"7/16-20 UNF","spotfaceMm":17.4},{"size":"-06","thread":"9/16-18 UNF","spotfaceMm":22.4},{"size":"-08","thread":"3/4-16 UNF","spotfaceMm":27.9}],"unit":"mm"},"basis":"SAE J1926/1 O-ring boss port dimension table, with ISO 6149-1 metric-thread equivalents","sources":["sae-j1926-1","iso-6149-1"],"tags":["o-ring","boss","port","sae-j1926","iso-6149"]},{"id":"manifold-drill-cross-rule","kind":"rule","tier":2,"title":"Drilled cross-gallery intersection in a manifold","summary":"Where a drilled cross gallery meets a port bore, break the sharp internal intersection edge and remove burrs -- left sharp, it is a common origin for a manifold fatigue crack well before the 100,000-cycle pressure-cycling target this pack tests to.","applies":["manifold","cross gallery","port"],"basis":"Common hydraulic manifold design-guide caution on drilled-intersection stress concentration","sources":["engineering-toolbox"],"tags":["manifold","cross-gallery","intersection","deburr"]},{"id":"manifold-plug-ports","kind":"feature","tier":2,"title":"Plugging unused manifold ports","summary":"Every drilled cross-gallery needs 1 plugged end per manifold-drill-cross-rule's gallery: a straight-thread O-ring plug in an O-ring-boss port, or a tapered NPT/BSPT pipe plug in a tapered port -- match the plug's thread type to the port's or it will not seal.","applies":["manifold","plug","port"],"basis":"Manifold ports drilled through for tooling access must be sealed at the finished part","sources":["engineering-toolbox"],"tags":["manifold","plug","port"]},{"id":"hose-barb-angle-teeth","kind":"feature","tier":2,"title":"Hose barb tooth count and angle","summary":"A hose barb fitting carries 3 barb ridges at a 20-30deg included angle each -- fewer ridges grip poorly, a steeper angle bites the hose ID but makes the fitting harder to push in without a clamp.","applies":["hose barb"],"value":{"min":20,"max":30,"unit":"deg"},"basis":"Common hose-barb tooth geometry across Parker/Swagelok/generic barb fitting catalogues","sources":["swagelok-tubing-data"],"tags":["hose","barb","teeth","angle"]},{"id":"hose-barb-common-sizes","kind":"dimension","tier":2,"title":"Common hose barb sizes","summary":"Hose barbs are commonly cut for 1/4, 3/8 and 1/2 in hose ID -- pick the barb size to the hose's nominal ID, then apply hose-barb-sizing for the actual barb OD.","applies":["hose barb","hose"],"value":{"options":["1/4","3/8","1/2"],"unit":"in"},"basis":"Common hose-barb fitting catalogue size series","sources":["swagelok-tubing-data"],"tags":["hose","barb","sizes"]},{"id":"ptc-tube-sizes","kind":"dimension","tier":2,"title":"Push-to-connect tube sizes","summary":"Pneumatic push-to-connect (PTC) fittings take 6, 8, 10 or 12 mm OD PU or PA tube -- PU for tight-radius flexible runs, PA (nylon) where higher pressure or chemical resistance is needed.","applies":["push to connect","ptc","pneumatic tube"],"value":{"options":[6,8,10,12],"unit":"mm"},"basis":"SMC/Festo pneumatic push-to-connect fitting catalogue tube-OD series","sources":["swagelok-tubing-data"],"tags":["ptc","tube","pneumatic"]},{"id":"ptc-bend-radius","kind":"rule","tier":2,"title":"Minimum bend radius for PU/PA push-to-connect tube","summary":"Route push-to-connect tube at a bend radius >= 3-5x its OD -- tighter kinks the bore and chokes flow, and repeatedly flexing a tighter bend fatigues PU tube in particular.","applies":["push to connect","ptc","pneumatic tube"],"value":{"min":3,"max":5,"unit":"ratio","note":"multiple of tube OD"},"basis":"Common pneumatic tube routing guidance (SMC/Festo)","sources":["swagelok-tubing-data"],"tags":["ptc","tube","bend-radius"]},{"id":"duct-rectangular-sizes","kind":"dimension","tier":2,"title":"Rectangular HVAC duct sizes","summary":"Common rectangular sheet-metal duct sizes are 200x100, 300x150 and 400x200 mm -- pick a stock size rather than a bespoke rectangle so standard transitions and dampers fit without a custom fabrication.","applies":["duct","hvac"],"value":{"options":["200x100","300x150","400x200"],"unit":"mm"},"basis":"Common rectangular sheet-metal duct catalogue size series","sources":["en-1506"],"tags":["duct","hvac","rectangular"]},{"id":"pvc-sch40-pressure-rating","kind":"dimension","tier":2,"title":"PVC Schedule 40 pressure rating vs temperature","summary":"A 2 in Sch 40 PVC pipe is rated ~1.9 MPa (280 psi) at 23 C, derating to roughly half that by 60 C -- PVC pressure rating is temperature-dependent in a way steel and stainless are not, so a hot-fluid line needs CPVC or metal instead.","applies":["pvc pipe","cpvc pipe"],"value":{"typical":1.9,"unit":"MPa","note":"2in Sch40 PVC at 23C; derates with temperature"},"basis":"ASTM D1785 PVC pipe pressure-rating tables, temperature derating factors","sources":["astm-d1785"],"tags":["pvc","pressure-rating","temperature"]},{"id":"equivalent-length-fittings","kind":"rule","tier":2,"title":"Equivalent length of common pipe fittings","summary":"A standard 90deg elbow adds ~30x its bore diameter of equivalent straight pipe to a pressure-drop calculation; a tee run-through adds ~20xD, a tee branch turn ~60xD -- use these multiples on bore diameter rather than ignoring fittings in a flow calc.","applies":["pipe","fitting","elbow","tee"],"value":{"table":[{"fitting":"90deg elbow","lOverD":30},{"fitting":"tee, run","lOverD":20},{"fitting":"tee, branch","lOverD":60}],"unit":"ratio"},"basis":"Engineering ToolBox / Crane TP-410 style equivalent-length (L/D) reference for common fittings","sources":["engineering-toolbox"],"tags":["equivalent-length","fitting","pressure-drop"]},{"id":"sealing-methods","kind":"feature","tier":2,"title":"Thread and joint sealing: PTFE tape, thread sealant, metal-to-metal","summary":"Seal a tapered NPT/BSPT joint with 2-3 turns of PTFE tape or a pipe-thread sealant; seal a parallel BSPP/O-ring boss with a washer or O-ring under the head; a flare/flareless tube fitting seals metal-to-metal on a machined cone and needs no sealant.","applies":["npt","bspp","tube fitting","sealing"],"basis":"Standard piping-trade sealing practice matched to each thread/joint type in this pack","sources":["swagelok-tubing-data"],"tags":["sealing","ptfe-tape","thread-sealant","metal-to-metal"]},{"id":"test-hydrostatic-proof","kind":"test","tier":2,"title":"Hydrostatic proof pressure test","summary":"Hold a completed pipe, manifold or flange joint at 1.5x its rated working pressure with water for 10 minutes -- no visible leakage, weeping or permanent deformation; this is the standard acceptance test before a piping assembly goes into service.","applies":["pipe","manifold","flange"],"value":{"value":1.5,"unit":"ratio","note":"multiple of rated working pressure; 10 min hold"},"basis":"ASME B31.3 hydrostatic test requirement for process piping","sources":["asme-b31.3"],"tags":["test","hydrostatic","proof-pressure"]},{"id":"test-leak-air-bubble","kind":"test","tier":2,"title":"Pneumatic leak (bubble) test","summary":"Pressurize the assembly with 0.1 MPa (~14.5 psi) air and hold for 5 minutes with every joint submerged or soap-coated -- any stream of bubbles is a fail; this is the quick shop-floor check before a hydrostatic proof test, cheap enough to run on every unit.","applies":["pipe","fitting","pneumatic"],"value":{"value":0.1,"unit":"MPa","note":"5 min hold, bubble/soap-solution inspection"},"basis":"Common shop-floor pneumatic leak-test practice ahead of a full hydrostatic proof","sources":["engineering-toolbox"],"tags":["test","leak","bubble","pneumatic"]},{"id":"test-burst-pressure","kind":"test","tier":2,"title":"Burst pressure test","summary":"Pressurize a sample to destruction and confirm it does not burst below 4x its rated working pressure -- a destructive, sample-basis test (not run on every unit) that establishes the safety margin the hydrostatic proof test at 1.5x is checking against.","applies":["pipe","manifold","flange"],"value":{"min":4,"unit":"ratio","note":"multiple of rated working pressure"},"basis":"Common piping/manifold burst-margin acceptance figure, sample-basis destructive test","sources":["asme-b31.3"],"tags":["test","burst","destructive"]},{"id":"test-pressure-cycling","kind":"test","tier":2,"title":"Pressure cycling (fatigue) test","summary":"Cycle a manifold or flexible assembly between 0 and its rated working pressure for 100,000 cycles with no leak, crack or measurable deformation -- a single static hydrostatic pass does not catch the fatigue failure a repeatedly-pressurized joint sees in service.","applies":["manifold","hose","flexible assembly"],"value":{"value":100000,"unit":"cycles"},"basis":"Common hydraulic/pneumatic manifold and hose-assembly cycle-life acceptance figure","sources":["engineering-toolbox"],"tags":["test","pressure-cycling","fatigue"]},{"id":"standard-asme-b16-5","kind":"standard","tier":2,"title":"ASME B16.5 -- pipe flanges and flanged fittings","summary":"ASME B16.5 sets flange OD, bolt circle, bolt count/size and raised-face height by NPS and pressure class (150 through 2500) -- this pack's flange-b16.5 entries are the Class 150 rows of its table.","applies":["flange"],"basis":"The flange dimension standard this pack's ASME flange entries are drawn from","sources":["asme-b16.5"],"tags":["standard","b16.5","flange"]},{"id":"standard-asme-b31-3","kind":"standard","tier":2,"title":"ASME B31.3 -- process piping","summary":"ASME B31.3 covers process piping design: wall-thickness sizing (Barlow's formula), material allowable stress, joint efficiency and the hydrostatic/pneumatic test requirements this pack's test entries follow.","applies":["pipe","process piping"],"basis":"The wall-thickness and pressure-test standard behind this pack's Barlow and hydrostatic-test entries","sources":["asme-b31.3"],"tags":["standard","b31.3","process-piping"]},{"id":"standard-b1-20-1-npt","kind":"standard","tier":2,"title":"ANSI/ASME B1.20.1 -- NPT pipe threads","summary":"ASME B1.20.1 defines NPT thread form, TPI, taper (1:16) and tap-drill sizes -- the taper is what makes an NPT joint seal on the thread itself, unlike the parallel BSPP/G series.","applies":["npt"],"basis":"The NPT thread-form standard behind this pack's NPT entries","sources":["asme-b1-20-1"],"tags":["standard","npt","thread"]},{"id":"standard-iso-228-g","kind":"standard","tier":2,"title":"ISO 228 -- G (BSPP) pipe threads","summary":"ISO 228-1 defines the parallel G thread series (major diameter, TPI, tolerance class) used where the joint seals on a washer or O-ring rather than on the thread -- the standard behind this pack's BSPP entries.","applies":["bspp","g thread"],"basis":"The parallel pipe-thread standard behind this pack's BSPP/G entries","sources":["iso-228-1"],"tags":["standard","iso-228","bspp"]},{"id":"standard-iso-3601","kind":"standard","tier":2,"title":"ISO 3601 -- O-rings","summary":"ISO 3601-1 sets O-ring dimension/tolerance classes; ISO 3601-2 sets the groove (housing) dimensions this pack's face-seal and radial groove tables are drawn from, by cross-section and application (static/dynamic).","applies":["o-ring"],"basis":"The O-ring dimension and housing standard behind this pack's groove entries","sources":["iso-3601-2"],"tags":["standard","iso-3601","o-ring"]},{"id":"standard-sae-j1926","kind":"standard","tier":2,"title":"SAE J1926 -- O-ring boss ports","summary":"SAE J1926/1 defines the straight-thread O-ring boss port (thread, spotface, O-ring bore) used across hydraulic fittings; ISO 6149 is its metric-thread counterpart, both referenced in this pack's oring-boss-port-dims entry.","applies":["o-ring boss","port"],"basis":"The O-ring-boss port standard behind this pack's port entries","sources":["sae-j1926-1","iso-6149-1"],"tags":["standard","sae-j1926","o-ring-boss"]},{"id":"standard-en-1092-1","kind":"standard","tier":2,"title":"EN 1092-1 -- circular flanges (PN series)","summary":"EN 1092-1 sets the metric/PN counterpart to ASME B16.5: flange OD, bolt circle and bolt pattern by DN and pressure rating (PN6 through PN100) -- this pack's EN flange entries are its PN16 rows.","applies":["flange","pn16","din flange"],"basis":"The metric flange dimension standard behind this pack's EN flange entries","sources":["en-1092-1"],"tags":["standard","en1092","flange"]},{"id":"standard-en-1506","kind":"standard","tier":2,"title":"EN 1506 -- sheet metal air ducts","summary":"EN 1506 sets the round sheet-metal duct diameter series and fitting dimensions this pack's duct-round-sizes entry is drawn from, covering ductwork for building ventilation.","applies":["duct","hvac"],"basis":"The round-duct dimension standard behind this pack's duct entries","sources":["en-1506"],"tags":["standard","en1506","duct"]},{"id":"standard-astm-d1785","kind":"standard","tier":2,"title":"ASTM D1785 -- PVC pipe schedules","summary":"ASTM D1785 sets PVC pipe dimensions and pressure ratings for Schedule 40, 80 and 120 -- the standard behind this pack's PVC pressure-rating entry, including its temperature-derating tables.","applies":["pvc pipe"],"basis":"The PVC pipe dimension/pressure standard behind this pack's PVC entry","sources":["astm-d1785"],"tags":["standard","astm-d1785","pvc"]},{"id":"material-pvc-cpvc","kind":"material","tier":2,"title":"PVC and CPVC for low-cost, non-metallic piping","summary":"PVC handles cold/ambient water and drainage up to ~60 C; CPVC is the same family reformulated for hot water and mild chemical service up to ~100 C -- both ~1.4 g/cm3, ~50 MPa tensile, both brittle below freezing and UV-sensitive outdoors without a coating.","applies":["pvc pipe","cpvc pipe"],"value":{"table":[{"material":"PVC","maxTempC":60},{"material":"CPVC","maxTempC":100}]},"basis":"MatWeb PVC/CPVC property data and ASTM D1785 service-temperature guidance","sources":["matweb-materials","astm-d1785"],"tags":["material","pvc","cpvc"]},{"id":"material-brass-cw617n","kind":"material","tier":2,"title":"CW617N brass for turned fittings and valve bodies","summary":"CW617N (CZ122) brass -- yield ~200 MPa annealed, excellent machinability -- is the default for turned pipe fittings, valve bodies and hose barbs below ~150 C where corrosion resistance beyond plain steel is wanted but 316L is not required.","applies":["fitting","valve body","hose barb"],"value":{"value":200,"unit":"MPa","note":"yield, annealed"},"basis":"MatWeb CW617N brass property data, the standard turned-fitting brass","sources":["matweb-materials"],"tags":["material","brass","cw617n"]},{"id":"material-ptfe","kind":"material","tier":2,"title":"PTFE for tape, seats and low-friction seals","summary":"PTFE runs -200 to +260 C and has the lowest friction of any common seal material -- but it creeps under sustained load, so a PTFE seat or gasket needs a back-up ring or bolted retention rather than clamping alone.","applies":["ptfe tape","seal","gasket"],"value":{"min":-200,"max":260,"unit":"C"},"basis":"MatWeb PTFE property data; standard sealing-tape and low-friction seat material","sources":["matweb-materials"],"tags":["material","ptfe"]},{"id":"material-pp-pvdf","kind":"material","tier":2,"title":"PP and PVDF for chemical-resistant piping","summary":"Polypropylene (PP) handles most acids/bases to ~80 C; PVDF steps up to ~140 C and better resists solvents and halogens -- both preferred over PVC/CPVC for aggressive chemical process lines.","applies":["chemical piping","process piping"],"value":{"table":[{"material":"PP","maxTempC":80},{"material":"PVDF","maxTempC":140}]},"basis":"MatWeb PP/PVDF property data for chemical-process piping service temperature","sources":["matweb-materials"],"tags":["material","pp","pvdf"]},{"id":"material-elastomers-nbr-fkm-epdm","kind":"material","tier":2,"title":"O-ring elastomers: NBR, FKM, EPDM temperature ranges","summary":"NBR (nitrile) -30 to +100 C for petroleum oils and fuels; FKM (Viton) -20 to +200 C for fuels and high-temperature service; EPDM -50 to +150 C for water, steam and glycol but NOT petroleum oils, which swell and destroy it.","applies":["o-ring"],"value":{"table":[{"material":"NBR","minC":-30,"maxC":100},{"material":"FKM","minC":-20,"maxC":200},{"material":"EPDM","minC":-50,"maxC":150}]},"basis":"Parker O-Ring Handbook elastomer compatibility and temperature-range tables","sources":["parker-oring-handbook"],"tags":["material","o-ring","nbr","fkm","epdm"]},{"id":"recipe-manifold-block-4port","kind":"recipe","tier":2,"title":"Recipe: 4-port manifold block with a drilled cross gallery","summary":"Build an 80x40x30 mm 6061 manifold blank, drill four dia8 mm blind ports 20 mm deep in a 2x2 grid, then bore a dia6 mm cross gallery along X at the port-bottom depth to connect all four internally.","applies":["manifold","manifold block"],"basis":"Combines manifold-wall-min, port-spacing-rule and manifold-drill-cross-rule into one buildable 4-port block","sources":["engineering-toolbox"],"tags":["recipe","manifold","port","cross-gallery"],"recipe":{"prompt":"Model an 80x40x30mm 6061 manifold block with four dia8mm blind ports in a 2x2 grid and a dia6mm cross gallery connecting them","steps":[{"tool":"cad_box","args":{"dx":80,"dy":40,"dz":30},"note":"manifold blank, 80x40x30mm 6061"},{"tool":"cad_hole_pattern","args":{"of":"$0","type":"drill","diameter":8,"depth":20,"pattern":{"kind":"grid","origin":[20,10],"dx":40,"dy":20,"nx":2,"ny":2}},"note":"4x dia8mm blind ports, 20mm deep from the top face, 2x2 grid"},{"tool":"cad_cylinder","args":{"r":3,"h":80,"origin":[0,20,10],"rotate":{"ry":1.5707963267948966}},"note":"dia6mm cross-gallery tool, along X at z=10 (the port-bottom depth), centred on y"},{"tool":"cad_boolean_subtract","args":{"of":"$1","tool":"$2"},"note":"subtract the gallery to connect all four ports internally"}],"expect":{"volume":89555.73,"faceCount":24,"watertight":true,"note":"measured 2026-09-23: CADSF-1672 FIXED: the analytic pierce route is restored. The Ø6 cross gallery is authored flush with the block's x=0 and x=80 faces, and a flush tool end was refused as CADSB-630's degenerate tangency, so the pair fell to the general engine, whose imprint tiling re-faceted the four CADSF-1561 drill-point cones it never touched (784 faces, surfaceTypesLost ['cone'], volume 0.86 mm^3 light). pierce now recognises a tool flush at BOTH ends spanning two opposite faces as a through cut. 24 faces = 6 PLANE + 10 CYLINDRICAL + all 8 CONICAL intact; volume is the closed form"}}},{"id":"recipe-oring-faceseal-groove-flange","kind":"recipe","tier":2,"title":"Recipe: O-ring face-seal groove on a flange, with bolt circle","summary":"Build a dia70x10 mm flange blank, cut a CS 2.62 mm AS568 face-seal groove (depth 2.0, width 3.6 mm) at a mean radius of 20 mm by revolving and subtracting a ring, then add a 4-hole M6 bolt circle at radius 28 mm, clear of the groove wall by a 2.95 mm sealing land.","applies":["flange","o-ring","o-ring groove"],"basis":"Combines oring-groove-faceseal-as568's CS2.62 depth/width with a bolt circle into one sealing flange. The bolt circle is sized FROM the groove: a face seal seals only if an unbroken land separates the groove from every bolt hole, so bolt-circle radius >= groove outer + hole radius + land","sources":["parker-oring-handbook"],"tags":["recipe","o-ring","groove","flange"],"recipe":{"prompt":"Model a dia70x10mm flange with a CS2.62 O-ring face-seal groove at radius 20mm and a 4-hole M6 bolt circle at radius 28mm","steps":[{"tool":"cad_cylinder","args":{"r":35,"h":10},"note":"flange blank, dia70x10mm -- a dia60 blank cannot carry a mean-radius-20 groove AND an M6 bolt circle outside it (CADSF-1675)"},{"tool":"cad_hole_pattern","args":{"of":"$0","type":"drill","diameter":6.5,"pattern":{"kind":"circular","center":[0,0],"radius":28,"count":4}},"note":"4x M6 clearance bolt circle at radius 28mm, drilled first on the still-flat top face; its inner reach 24.75mm clears the groove wall at 21.8mm by a 2.95mm sealing land"},{"tool":"cad_revolve_profile","args":{"profile":[[18.2,8],[21.8,8],[21.8,12],[18.2,12]]},"note":"groove-tool ring: CS2.62 groove, depth2.0 (z 8-10, tool extended to z12 so it pierces the flat top face), width3.6 (r 18.2-21.8), mean radius 20mm"},{"tool":"cad_boolean_subtract","args":{"of":"$1","tool":"$2"},"note":"subtract last to cut the face-seal groove, clear of the already-drilled bolt circle"}],"expect":{"volume":36252.41,"faceCount":16,"watertight":true,"note":"measured 2026-09-23: CADSF-1675 moved the bolt circle from r25 to r28 on a dia70 blank so the M6 holes (inner reach 24.75) clear the groove wall (21.8) by a 2.95 mm sealing land. At r25 the holes reached 21.75 and BROKE INTO the groove, which both opened a leak path through every bolt hole and knocked the subtract off the analytic pierce onto the tiling engine. 36252.41 is the CLOSED FORM exactly: pi*35^2*10 - pi*(21.8^2-18.2^2)*2 - 4*pi*3.25^2*10 = 36252.4084; 16 analytic faces, not 2161 tiled ones"}}},{"id":"recipe-flange-nps2-class150","kind":"recipe","tier":2,"title":"Recipe: ASME B16.5 Class 150 NPS 2 flange","summary":"Build a 152.4 mm OD x 20.4 mm flange body, add a 1.6 mm raised face boss, bore a dia60.3 mm through-hole for the NPS 2 pipe, then add the four dia19.1 mm bolt holes on the 120.7 mm bolt circle.","applies":["flange","nps 2","class 150"],"basis":"Builds flange-b16-5-class150-nps2's numbers into one buildable flange, including the raised face","sources":["asme-b16.5"],"tags":["recipe","flange","b16.5","nps2"],"recipe":{"prompt":"Model an ASME B16.5 Class 150 NPS 2 flange: 152.4mm OD, 1.6mm raised face, dia60.3mm bore, four dia19.1mm bolt holes on a 120.7mm bolt circle","steps":[{"tool":"cad_cylinder","args":{"r":76.2,"h":20.4},"note":"flange body, OD152.4 x 20.4mm, flat top"},{"tool":"cad_hole_pattern","args":{"of":"$0","type":"drill","diameter":19.1,"pattern":{"kind":"circular","center":[0,0],"radius":60.35,"count":4}},"note":"4x dia19.1mm bolt holes on the 120.7mm bolt circle, cut on the flat body top before the raised face is added (radius 60.35 is outside the boss footprint)"},{"tool":"cad_cylinder","args":{"r":52.5,"h":2,"origin":[0,0,20]},"note":"raised face boss, dia105mm; starts 0.4mm inside the body so it genuinely pierces the top face (analytic union needs real overlap, not flush contact), giving a net 1.6mm raised face above the 20.4mm shoulder"},{"tool":"cad_boolean_union","args":{"of":"$1","tool":"$2"},"note":"add the raised face; its footprint (r<=52.5) fully covers the bore centre, so the top there stays one flat face"},{"tool":"cad_drill_hole","args":{"of":"$3","center":[0,0],"type":"drill","diameter":60.3,"through":true},"note":"through bore for the NPS2 pipe, drilled last through the raised face's flat top"}],"expect":{"volume":299750.33,"faceCount":21,"watertight":true,"note":"measured 2026-09-19: representation change, not geometry: pinned while the boolean published a TESSELLATED B-rep (one planar face per triangle) and it now publishes an analytic one — faceCount 1710 -> 21, volume +0.144%, pinned smaller (chord deficit of the faceted flange and bolt holes)"}}},{"id":"hose-on-spigot","kind":"rule","tier":2,"title":"A hose slides OVER a spigot, never into a hole","summary":"Model a hose end sliding OVER a spigot: hose inside radius = spigot outside radius, 8-15 mm of lap, the clamp seated on the spigot's tip band -- a hose end sitting inside a bored hole is not a joint (nothing to clamp to) and a flow-path audit reads the hole as the port.","applies":["hose","spigot","breather","coolant hose","fuel hose"],"value":{"min":8,"max":15,"unit":"mm","note":"hose lap over the spigot; spigot bore = the flow bore, spigot wall 3-4 mm"},"basis":"SAE J20 hose/clamp practice; the V12 showcase's CADSB-914 rework, where a hose stuffed into a Ø24 hole put its clamp 1.67 mm into the separator wall","sources":["sae-j20","nativecad-v12-showcase"],"tags":["hose","spigot","clamp","lap","flow-path"],"detail":"From the V12 showcase's CADSB-914 rework: a Ø22 breather hose stuffed into a Ø24 separator hole put its clamp 1.67 mm into the separator wall; the fix was a r9 / bore 6.5 / 25 mm spigot on the separator face, the hose lapped 8 mm over it, the clamp at the tip. Spigot bore = the flow bore; wall 3-4 mm."},{"id":"tube-ends-terminate","kind":"rule","tier":2,"title":"Every tube end meets exactly one port or is a declared inlet/outlet","summary":"A pipe run is a pipe run only if every tube end meets exactly one other port (centres within 0.5 mm, axes anti-parallel within 1 degree, bores within 0.5 mm) or is a declared inlet/outlet -- declare the path and run cad_assembly_flowpath; contact checks miss a short hose.","applies":["tube","pipe","hose","manifold","plenum"],"value":{"max":0.5,"unit":"mm","note":"port centre coincidence; 1 degree axis; 0.5 mm bore"},"basis":"NativeCAD cad_assembly_flowpath (CADSF-1515) convention, from the V12 showcase's gas-path audit (CADSF-1512, CADSB-914, CADSB-917)","sources":["nativecad-v12-showcase"],"tags":["flow-path","audit","port","joint","tube"],"detail":"cad_assembly_flowpath (CADSF-1515) is the V12 showcase's gas-path audit generalised: it found a collector mouth you could see through, reversed muffler ports, hoses ending in air and a hose 0.9 mm into a purge line, none of which cad_assembly_contacts' unbonded list could see because every one of those tubes still touched a clamp or a flange."},{"id":"plenum-no-daylight","kind":"rule","tier":2,"title":"A plenum, collector or chamber has no daylight","summary":"Fire ~100 rays from inside every chamber the fluid passes through: each must end on a wall or leave through a declared inlet/outlet disc -- a missing mouth plate, an unbored spigot or an open seam shows as daylight; each of the chamber's ports must be in line of sight.","applies":["plenum","collector","airbox","muffler","separator","manifold"],"basis":"cad_assembly_flowpath mesh pass (CADSF-1515); the V12 collector you could see through (CADSF-1512)","sources":["nativecad-v12-showcase"],"tags":["flow-path","plenum","daylight","audit"],"value":{"value":96,"unit":"count","note":"cad_assembly_flowpath rays per plenum (default), plus ±axis"}},{"id":"standalone-boss-standoff","kind":"rule","tier":2,"title":"A boss you cannot cut into its casting: a separate body 0.5 mm off the flank","summary":"When a boss cannot be unioned into its casting (one section instanced N times, or the union facets it -- see report.geometryDegraded / report.lap), model it as its own body 0.5 mm off the flank, bored for the fitting, joined by cad_joint; a 0.5 mm lap INTO the face is not exact.","applies":["boss","fitting","casting","block","head"],"value":{"value":0.5,"unit":"mm","note":"standoff off the flank plane"},"basis":"V12 showcase CADSB-908 (a boss unioned into the 347-face block came back 3,353 faces) and CADSB-917; CADSF-1516's boolean guard","sources":["nativecad-v12-showcase"],"tags":["boss","union","exact","standoff","joint"],"detail":"V12 showcase CADSB-908: a r9 x 17 boss unioned into the 347-face block came back 3,353 faces (every flank a tiling) with no warning -- CADSF-1516 made the boolean guard catch that plane gain and name the lap. The coil bosses on the cam cover, by contrast, are unioned ending exactly on the plate skin and stay exact."},{"id":"first-leg-vs-bend-radius","kind":"rule","tier":2,"title":"A bent tube's straight leg out of a fitting is at least the bend radius","summary":"For a swept tube with corner fillets each leg must be at least the sum of its two corners' setbacks (t = r / tan(gamma/2); a right angle needs t = r): a 10 mm leg cannot carry a 26 mm bend -- the sweep refuses (sweep_corner_radii_too_large) naming the radius that fits.","applies":["tube","pipe","bent tube","hard line"],"basis":"ops/sweep.js setback budget; the V12 head oil feed's first leg (CADSB-908, CADSF-1517)","sources":["nativecad-v12-showcase"],"tags":["bend","fillet","sweep","tube","radius"]}]},{"$schema":"nativecad-dfm-pack/1","id":"power-transmission","title":"Power transmission — gears, sprockets, racks, cams, cranks, belts","sector":"power-transmission","version":"2026-09-04","summary":"Involute gear geometry (spur/helical/bevel/worm/planetary), ANSI roller chain sprockets, racks, V-belt/timing belt sections, crankshaft/con-rod/cam basics, universal joints, servo horn splines, ratchets, flywheels and clutches, with the materials, fits and tests a mechanism designer needs before modelling.","aliases":["spur gear","helical gear","bevel gear","worm gear","planetary gear","gearbox","sprocket","roller chain","rack and pinion","involute","crankshaft","connecting rod","camshaft","cam follower","universal joint","servo horn","ratchet","flywheel","v-belt","timing belt","clutch"],"crossSector":false,"size":"full","sources":[{"id":"iso-21771","title":"ISO 21771 Cylindrical involute gears — concepts and geometry","accessed":"2026-09-04"},{"id":"agma-2000-a88","title":"AGMA 2000-A88 Gear Classification and Inspection Handbook","accessed":"2026-09-04"},{"id":"agma-2005-d03","title":"AGMA 2005-D03 Design Manual for Bevel Gears","accessed":"2026-09-04"},{"id":"agma-6034-b92","title":"AGMA 6034-B92 Enclosed Cylindrical Wormgear Speed Reducers","accessed":"2026-09-04"},{"id":"shigley-mech-design","title":"Shigley's Mechanical Engineering Design — gears, cams, clutches","accessed":"2026-09-04"},{"id":"machinerys-handbook","title":"Machinery's Handbook — mechanisms, fits, fasteners","accessed":"2026-09-04"},{"id":"asme-b29-1","title":"ASME B29.1 Precision Power Transmission Roller Chains","accessed":"2026-09-04"},{"id":"iso-4184","title":"ISO 4184 Classical and narrow V-belts — dimensions","url":"https://www.iso.org/standard/70045.html","accessed":"2026-09-04"},{"id":"iso-5296","title":"ISO 5296 Synchronous belts — pitch T2.5/T5/T10","accessed":"2026-09-04"},{"id":"gates-htd-manual","title":"Gates HTD/GT2 Synchronous Belt Design Manual","url":"https://www.gates.com/","accessed":"2026-09-04"},{"id":"iso-286-2","title":"ISO 286-2 Code system for tolerances on linear sizes","accessed":"2026-09-04"},{"id":"sae-driveline-handbook","title":"SAE Universal Joint and Driveline Design Manual","accessed":"2026-09-04"},{"id":"robotdigg-servo-spline","title":"RobotDigg RC Servo Spline Chart","url":"https://www.robotdigg.com/news/168/RC-Servo-Spline-Chart","accessed":"2026-09-04"},{"id":"matweb-material-data","title":"MatWeb Material Property Data","url":"https://www.matweb.com","accessed":"2026-09-04"}],"entries":[{"id":"spur-gear-standard-proportions","kind":"dimension","tier":1,"title":"Full-depth 20° involute spur gear standard proportions","summary":"Standard 20° full-depth system: addendum = 1.0 m, dedendum = 1.25 m, whole depth = 2.25 m, clearance = 0.25 m, where m is module in mm — the four numbers that turn a module + tooth count into a buildable tooth.","applies":["spur gear","gear tooth","involute gear"],"value":{"table":[{"feature":"addendum","multiplierOfModule":1},{"feature":"dedendum","multiplierOfModule":1.25},{"feature":"whole depth","multiplierOfModule":2.25},{"feature":"clearance","multiplierOfModule":0.25}],"unit":"ratio"},"basis":"AGMA 201.02 / ISO 21771 full-depth 20° proportional system, the default for cut and printed spur gearing","sources":["iso-21771"],"tags":["gear","spur","module","addendum","dedendum"]},{"id":"spur-gear-diameter-formulas","kind":"dimension","tier":1,"title":"Spur gear pitch, base, outer and root diameter formulas","summary":"Pitch dia D = m·N; base dia Db = D·cos(20°); outer (tip) dia Do = m(N+2); root dia Dr = m(N-2.5) — 4 formulas from module m and tooth count N that fix every circle on the gear.","applies":["spur gear","gear blank","involute gear"],"value":{"table":[{"circle":"pitch","formula":"D = m*N"},{"circle":"base","formula":"Db = D*cos(20deg)"},{"circle":"outer/tip","formula":"Do = m*(N+2)"},{"circle":"root","formula":"Dr = m*(N-2.5)"}]},"basis":"Direct consequence of the 1.0m/1.25m addendum/dedendum standard proportions applied to the pitch circle D = m*N","sources":["iso-21771"],"tags":["gear","spur","diameter","pitch-diameter","base-diameter"]},{"id":"spur-gear-tooth-thickness","kind":"dimension","tier":1,"title":"Spur gear circular tooth thickness at the pitch circle","summary":"Nominal circular tooth thickness at the pitch circle t = pi*m/2 — half the circular pitch (p = pi*m); a module-2 tooth is 3.1416 mm thick at the pitch line before backlash allowance is subtracted.","applies":["spur gear","gear tooth","rack"],"value":{"value":"t = PI*m/2","unit":"mm"},"basis":"Standard tooth-to-space symmetry: tooth thickness equals space width equals half the circular pitch p = pi*m","sources":["iso-21771"],"tags":["gear","tooth-thickness","circular-pitch"]},{"id":"spur-gear-profile-shift","kind":"rule","tier":1,"title":"Profile shift coefficient to avoid undercut below 17 teeth","summary":"For a 20deg pinion with N < 17 teeth, shift the generating rack outward by coefficient x = (17-N)/17 (in units of module) to eliminate root undercut instead of accepting a weak, undercut tooth — an 8-tooth pinion needs x = 0.53.","applies":["spur gear","pinion","small pinion"],"value":{"value":"x = (17-N)/17","unit":"ratio"},"basis":"Minimum profile-shift coefficient that keeps the involute generated by a rack cutter from undercutting a 20deg-pressure-angle pinion below the 17-tooth limit","sources":["iso-21771"],"see":["robotics/gear-min-teeth-undercut"],"tags":["gear","undercut","profile-shift","pinion"]},{"id":"helical-gear-angle-relations","kind":"dimension","tier":1,"title":"Helical gear helix angle and normal/transverse module","summary":"Helix angles run 15-30deg (20-25deg typical); normal module mn (the cutter's module) relates to transverse module mt by mn = mt*cos(helix) — model the tooth profile in the normal plane, then wrap it around the cylinder at the helix angle.","applies":["helical gear"],"value":{"min":15,"max":30,"typical":20,"unit":"deg"},"basis":"Common helical-gear helix-angle range balancing axial thrust load against the smoother, quieter engagement a higher angle gives","sources":["shigley-mech-design"],"tags":["gear","helical","helix-angle","normal-module"]},{"id":"bevel-gear-tredgold-approximation","kind":"rule","tier":1,"title":"Tredgold approximation for bevel gear tooth form","summary":"Treat a straight bevel gear's tooth as an equivalent spur gear with formative tooth count Nf = N/cos(gamma), gamma the pitch cone angle — a 20-tooth bevel pinion at a 30deg cone angle behaves, for strength and cutter selection, like a 23.1-tooth spur gear.","applies":["bevel gear"],"value":{"value":"Nf = N/cos(gamma)","unit":"count"},"basis":"Tredgold's approximation: the back-cone development of a bevel tooth is (very nearly) a spur tooth of the formative count, letting spur-gear strength and cutter tables apply to bevels","sources":["agma-2005-d03"],"tags":["gear","bevel","tredgold","formative-teeth"]},{"id":"bevel-gear-cone-angle","kind":"dimension","tier":1,"title":"Bevel gear pitch cone angle for 90-degree shafts","summary":"For gears on shafts at 90deg, pitch cone angle gamma1 = atan(N1/N2) for gear 1 (gamma2 = 90deg - gamma1) — a 1:1 mitre bevel pair sits at 45deg each; a 2:1 pair sits at 26.6deg (pinion) and 63.4deg (gear).","applies":["bevel gear","mitre gear"],"value":{"value":"gamma1 = atan(N1/N2)","unit":"deg"},"basis":"Pitch cones of two bevel gears share an apex; for perpendicular shafts the cone half-angles sum to 90deg in the ratio of the tooth counts","sources":["agma-2005-d03"],"tags":["gear","bevel","cone-angle","mitre"]},{"id":"worm-gear-lead-angle-selflock","kind":"rule","tier":1,"title":"Worm lead angle and the self-locking threshold","summary":"Lead angle lambda = atan(lead/(pi*Dworm)); a steel-worm/bronze-wheel drive with lambda below about 5deg is self-locking (the wheel cannot back-drive the worm) at typical 0.05-0.10 sliding friction coefficients — above roughly 11deg it will not self-lock.","applies":["worm gear","worm drive"],"value":{"max":5,"unit":"deg","note":"self-locking threshold; not self-locking above roughly 11deg"},"basis":"Self-locking requires the lead angle to stay below the friction angle (atan(mu)); mu = 0.05-0.10 for a run-in bronze/steel worm mesh gives a friction angle of about 3-6deg","sources":["agma-6034-b92"],"tags":["worm","self-locking","lead-angle"]},{"id":"worm-gear-ratio-and-starts","kind":"dimension","tier":1,"title":"Worm gear ratio from wheel teeth and worm starts","summary":"Ratio = Nwheel / Nstarts; a single-start worm (Nstarts=1) driving a 40-tooth wheel gives 40:1 in one mesh, but halves to 20:1 or 13.3:1 if a double- or triple-start worm (2 or 3 starts) is substituted for the same wheel.","applies":["worm gear","worm drive","worm wheel"],"value":{"value":"ratio = Nwheel/Nstarts","unit":"ratio"},"basis":"Each worm revolution advances the wheel by (starts) teeth, so the ratio is the wheel tooth count divided by the worm's thread-start count","sources":["agma-6034-b92"],"tags":["worm","ratio","starts"]},{"id":"planetary-gear-meshing-condition","kind":"rule","tier":1,"title":"Planetary gear ring/sun/planet tooth-count meshing condition","summary":"For a sun, planets and ring at one common module, the ring tooth count must equal Nr = Ns + 2*Np (sun plus twice the planet count) so the planet meshes with both the sun and the ring at the same centre distance.","applies":["planetary gear","epicyclic gear"],"value":{"value":"Nr = Ns + 2*Np","unit":"count"},"basis":"The planet's centre sits midway between sun and ring centres; equal module and equal centre distance to both forces this tooth-count relation","sources":["shigley-mech-design"],"tags":["planetary","epicyclic","meshing-condition","sun","ring","planet"]},{"id":"planetary-gear-assembly-condition","kind":"rule","tier":1,"title":"Planetary gear assembly condition for k equally spaced planets","summary":"k equally spaced planets assemble only if (Ns + Nr) / k is a whole number — a 20-tooth sun with a 60-tooth ring (sum 80) assembles with 2 or 4 planets but not 3, since 80/3 is not an integer.","applies":["planetary gear","epicyclic gear"],"value":{"value":"(Ns+Nr) mod k == 0","unit":"ratio"},"basis":"Each planet must land on a tooth of both sun and ring when placed at its 360/k angular station; failing the divisibility test means the last planet cannot mesh","sources":["shigley-mech-design"],"tags":["planetary","epicyclic","assembly-condition"]},{"id":"ansi-roller-chain-pitch-table","kind":"dimension","tier":1,"title":"ANSI roller chain pitch by chain number (#25/#35/#40)","summary":"ANSI/ASME B29.1 chain number is 1/8 inch of pitch: #25 = 6.35 mm (1/4in) pitch, #35 = 9.525 mm (3/8in), #40 = 12.7 mm (1/2in) — the pitch every sprocket tooth-spacing formula in this pack takes as p.","applies":["roller chain","sprocket","#25 chain","#35 chain","#40 chain"],"value":{"table":[{"chain":"#25","pitchMm":6.35,"rollerOrBushingMm":3.3,"note":"bushing chain, no roller"},{"chain":"#35","pitchMm":9.525,"rollerOrBushingMm":5.08,"note":"bushing chain, no roller"},{"chain":"#40","pitchMm":12.7,"rollerOrBushingMm":7.92}],"unit":"mm"},"basis":"ASME B29.1 precision roller chain dimension table","sources":["asme-b29-1"],"tags":["chain","sprocket","ansi","pitch"]},{"id":"rack-and-pinion-profile","kind":"dimension","tier":1,"title":"Rack tooth profile: straight flanks at the pressure angle","summary":"A rack tooth is straight-sided (not curved): total tooth height 2.25 m (1.0 m addendum above the pitch line + 1.25 m dedendum below), flanks straight at the 20deg pressure angle from the tooth's vertical centreline, mating any pinion of the same module.","applies":["rack and pinion","rack"],"value":{"value":"height = 2.25*m","unit":"mm"},"basis":"A rack is a gear of infinite radius: its involute flank degenerates to a straight line at the pressure angle, which is why one rack meshes with pinions of any tooth count at the same module","sources":["iso-21771"],"tags":["rack","pinion","straight-flank"]},{"id":"v-belt-section-dimensions","kind":"dimension","tier":1,"title":"Classical V-belt cross-section dimensions (A/B/C)","summary":"ISO 4184 classical V-belt sections: A = 13 x 8 mm (top width x height), B = 17 x 11 mm, C = 22 x 14 mm — pick the section from the sheave's groove angle (typically 34-38deg) and the pulley pitch diameter range the section is rated for.","applies":["v-belt","belt drive","sheave"],"value":{"table":[{"section":"A","topWidthMm":13,"heightMm":8},{"section":"B","topWidthMm":17,"heightMm":11},{"section":"C","topWidthMm":22,"heightMm":14}],"unit":"mm"},"basis":"ISO 4184 / RMA IP-22 classical V-belt cross-section standard","sources":["iso-4184"],"tags":["belt","v-belt","sheave","cross-section"]},{"id":"timing-belt-pitch-htd-t5","kind":"dimension","tier":1,"title":"Timing belt tooth pitch: HTD 3M/5M/8M and T5/T2.5","summary":"Curvilinear HTD belts run 3, 5 or 8 mm tooth pitch (HTD3M/5M/8M); trapezoidal-tooth belts run T2.5 (2.5mm) or T5 (5mm) pitch with about 1.2 mm tooth height at T5 — match the belt pitch to the pulley tooth pitch exactly, they are not interchangeable.","applies":["timing belt","synchronous belt","htd","gt2"],"value":{"options":["HTD3M","HTD5M","HTD8M","T2.5","T5"],"unit":"text"},"basis":"Gates HTD curvilinear tooth series and the ISO 5296 trapezoidal T-series, the two common synchronous-belt tooth families outside 3D-printer-scale GT2","sources":["gates-htd-manual","iso-5296"],"tags":["belt","timing-belt","htd","synchronous"]},{"id":"crankshaft-stroke-throw","kind":"rule","tier":1,"title":"Crankshaft stroke equals twice the crank throw","summary":"Piston/slider stroke = 2 x throw, where throw is the crank radius (the offset of the crankpin centre from the main-journal axis) — a 40 mm throw gives an 80 mm stroke; get the throw wrong by half and the stroke is wrong by exactly double that.","applies":["crankshaft","slider-crank","reciprocating mechanism"],"value":{"value":"stroke = 2*throw","unit":"mm"},"basis":"Simple kinematics of a slider-crank: the slider travels from one extreme (crankpin at top dead centre) to the other (bottom dead centre), a distance of twice the crank radius","sources":["shigley-mech-design"],"tags":["crankshaft","stroke","throw","slider-crank"]},{"id":"servo-horn-spline-dims","kind":"dimension","tier":1,"title":"RC servo output spline tooth count and diameter by brand","summary":"Standard-size hobby servo splines: 25T (Futaba/Hobbico/Savox, ~5.9mm OD; MG996R clone 5.8mm), 24T (Hitec, ~5.9mm), 23T (JR/Sanwa/Spektrum, ~5.9mm) — match the horn's tooth count to the brand, they are not interchangeable.","applies":["servo horn","rc servo","standard servo"],"value":{"table":[{"brand":"Futaba/Hobbico/Savox","teeth":25,"splineOdMm":5.9},{"brand":"MG996R (25T clone)","teeth":25,"splineOdMm":5.8},{"brand":"Hitec","teeth":24,"splineOdMm":5.9},{"brand":"JR/Sanwa/Spektrum","teeth":23,"splineOdMm":5.9}],"unit":"mm"},"basis":"RC hobby servo brands standardised on incompatible spline tooth counts within the same standard-size servo envelope; RobotDigg's spline chart cross-references brand to tooth count","sources":["robotdigg-servo-spline"],"tags":["servo","servo-horn","spline","futaba","hitec","jr"]},{"id":"bore-tolerance-h7","kind":"tolerance","tier":1,"title":"ISO 286 H7 hole tolerance by nominal bore size","summary":"H7 (a hole with zero lower deviation) grows with size: +12/0 um at 3-6mm, +15/0 um at 6-10mm, +18/0 um at 10-18mm, +21/0 um at 18-30mm — the default reamed/bored fit for a bearing housing or a shaft's mating bore.","applies":["bore","bearing housing","hub bore","H7 fit"],"value":{"table":[{"rangeMm":"3-6","upperUm":12,"lowerUm":0},{"rangeMm":"6-10","upperUm":15,"lowerUm":0},{"rangeMm":"10-18","upperUm":18,"lowerUm":0},{"rangeMm":"18-30","upperUm":21,"lowerUm":0}],"unit":"um"},"basis":"ISO 286-2 IT7 grade tolerance values applied to the H fundamental-deviation (hole basis, lower deviation zero)","sources":["iso-286-2"],"see":["robotics/standard-iso-286","robotics/bearing-housing-shaft-fits"],"tags":["tolerance","h7","bore","iso-286"]},{"id":"involute-curve-point-generation","kind":"feature","tier":2,"title":"Generating involute tooth-flank points for a polygon profile","summary":"Parametrise the involute from the base circle by roll angle t: x = Rb(cos t + t sin t), y = Rb(sin t - t cos t); sample 6-8 points per flank from max(base, root) radius to the addendum radius to approximate one tooth flank as a polygon.","applies":["spur gear","helical gear","involute"],"detail":"For a target radius r on the flank, first solve the pressure angle at that radius: alpha = acos(Rb/r). The roll angle is t = tan(alpha). Substituting t into the involute parametric equations gives the point in a local frame where the involute begins at (Rb,0). To place the flank in the gear's polar frame, compute the involute's polar angle at the pitch radius (invAngle = atan2(y,x) evaluated at r = pitch radius) and the half tooth-thickness angle at the pitch circle (halfAngle = (pi*m/4)/Rpitch); the tooth centreline sits at invAngle + halfAngle from the point where the involute leaves the base circle. Mirror the sampled flank about the centreline for the opposite flank, and if the root radius is smaller than the base radius, add one straight radial point at the root before the first involute sample (the true root fillet is a trochoid, not an involute; a single radial point is an adequate polygon approximation for print/DFM-grade models).","basis":"Standard involute parametric form used by every gear-generation package; 6-8 samples per flank keeps the polygon error well under 1% of tooth thickness for module >= 1 gearing","sources":["iso-21771"],"tags":["gear","involute","polygon-approximation","profile"]},{"id":"sprocket-pitch-diameter-formula","kind":"rule","tier":2,"title":"Roller chain sprocket pitch diameter from tooth count","summary":"Sprocket pitch diameter PD = p / sin(180deg/N) where p is chain pitch and N tooth count — a 15-tooth #25 (6.35mm pitch) sprocket has PD = 6.35/sin(12deg) = 30.54 mm.","applies":["sprocket","roller chain"],"value":{"value":"PD = p/sin(180/N)","unit":"mm"},"basis":"The chain wraps the sprocket as a regular N-gon whose vertices are the pitch points; PD is the circumscribing circle of that polygon","sources":["asme-b29-1"],"tags":["sprocket","pitch-diameter","chain"]},{"id":"sprocket-outside-diameter-and-roller","kind":"dimension","tier":2,"title":"Sprocket maximum outside diameter and root diameter","summary":"Max outside dia Do = p*(0.6 + cot(180deg/N)); root dia Dr = PD - d1 (d1 = roller/bushing diameter) — a 15-tooth #25 sprocket: Do = 33.68 mm, Dr = 30.54 - 3.30 = 27.24 mm, giving a 3.22 mm tooth height.","applies":["sprocket","roller chain"],"value":{"value":"Do = p*(0.6+cot(180/N))","unit":"mm"},"basis":"ASME B29.1 sprocket tooth-form dimension formulas; the cotangent term grows the addendum-side clearance the small-N sprockets need to seat the roller without interference","sources":["asme-b29-1"],"tags":["sprocket","outside-diameter","root-diameter","chain"]},{"id":"planetary-gear-ratio-formulas","kind":"dimension","tier":2,"title":"Planetary gear train ratio by which member is fixed","summary":"Ring fixed, sun input, carrier output: ratio = 1 + Nr/Ns. Sun fixed, ring input, carrier output: ratio = 1 + Ns/Nr. Carrier fixed (simple/star train), sun input, ring output: ratio = -Nr/Ns.","applies":["planetary gear","epicyclic gear","gearbox"],"value":{"table":[{"configuration":"ring fixed, carrier out","ratio":"1 + Nr/Ns"},{"configuration":"sun fixed, carrier out","ratio":"1 + Ns/Nr"},{"configuration":"carrier fixed (star)","ratio":"-Nr/Ns"}]},"basis":"Standard epicyclic train ratio derivation via the tabular (relative-velocity) method","sources":["shigley-mech-design"],"tags":["planetary","epicyclic","gear-ratio","gearbox"]},{"id":"cam-follower-pressure-angle","kind":"rule","tier":2,"title":"Cam pressure angle design limit","summary":"Keep the cam-follower pressure angle at or below 30deg for a translating roller follower (up to about 45deg is tolerated for an oscillating follower) — exceeding it drives excessive side load, follower binding and accelerated wear.","applies":["cam follower","cam mechanism"],"value":{"max":30,"unit":"deg","note":"up to ~45deg for an oscillating follower"},"basis":"Above this limit the follower's side-load component from the cam grows faster than the useful lift force, risking jamming in its guide","sources":["shigley-mech-design"],"tags":["cam","cam-follower","pressure-angle"]},{"id":"cam-base-circle-and-lift","kind":"dimension","tier":2,"title":"Cam base circle sizing against total lift","summary":"Size the base circle radius to at least 1.5-2x the total follower lift as a starting point — a small base circle forces a steep flank to reach the same lift over the same cam angle, driving pressure angle over the 30deg limit.","applies":["camshaft","cam mechanism"],"value":{"min":1.5,"max":2,"unit":"ratio","note":"multiply by total lift for a starting base-circle radius"},"basis":"For a given lift and rise duration, pressure angle falls as base-circle radius grows; this ratio is a first-pass sizing rule to check against the 30deg pressure-angle limit before finishing the follower motion program","sources":["shigley-mech-design"],"tags":["cam","base-circle","lift"]},{"id":"connecting-rod-length-ratio","kind":"dimension","tier":2,"title":"Connecting rod length-to-crank-radius ratio","summary":"Rod length / crank throw (L/R) typically runs 3.5-4.5 in small reciprocating mechanisms and engines — a shorter ratio increases secondary (2nd-harmonic) motion and piston side-thrust, a longer one adds mechanism length for diminishing smoothness gains.","applies":["connecting rod","slider-crank","crankshaft"],"value":{"min":3.5,"max":4.5,"unit":"ratio"},"basis":"Slider-crank kinematics: the piston's secondary displacement/acceleration terms scale with 1/(L/R), so a low ratio measurably increases vibration and side load on the cylinder wall","sources":["shigley-mech-design"],"tags":["connecting-rod","crankshaft","slider-crank"]},{"id":"camshaft-lobe-basics","kind":"feature","tier":2,"title":"Camshaft lobe as base circle plus a lift profile","summary":"A cam lobe's radius at angle theta is r(theta) = Rbase + lift(theta), where lift(theta) is the motion program (e.g. cycloidal or harmonic rise/fall); model the lobe as a polar profile sampled every 1-5deg and check its pressure angle before extruding.","applies":["camshaft","cam lobe"],"value":{"min":1,"max":5,"unit":"deg","note":"typical polar sampling interval for the lobe profile"},"basis":"The lobe geometry is entirely the base circle plus the chosen displacement (lift) program; sampling finely enough avoids faceting the peak lift or the closing ramp","sources":["shigley-mech-design"],"tags":["camshaft","cam-lobe","base-circle","lift-profile"]},{"id":"universal-joint-operating-angle","kind":"dimension","tier":2,"title":"Single universal joint maximum recommended operating angle","summary":"Limit a single (Cardan) universal joint to about 25deg of continuous operating angle (up to roughly 45deg for slow, intermittent motion) — beyond that its inherent non-constant-velocity output (2nd-order speed ripple growing with angle) becomes severe.","applies":["universal joint","cardan joint","u-joint"],"value":{"typical":25,"max":45,"unit":"deg"},"basis":"A single Cardan joint's output speed varies sinusoidally twice per revolution with an amplitude that grows with operating angle; driveline practice caps continuous-duty angle to keep vibration and yoke/bearing loads bounded","sources":["sae-driveline-handbook"],"tags":["universal-joint","cardan","operating-angle"]},{"id":"universal-joint-double-cardan-phasing","kind":"rule","tier":2,"title":"Double Cardan joint near-constant-velocity phasing","summary":"Two single U-joints in series cancel their speed ripple (near-constant-velocity) only when both joints run the same operating angle and their intermediate-shaft yokes are phased 90deg apart — get the phasing wrong by even a partial turn and the ripple adds instead of cancelling.","applies":["universal joint","double cardan joint","cv joint"],"basis":"Each single joint's non-uniformity is a function of its own angle; matching both angles and phasing the yokes so the second joint's speed-up half coincides with the first's slow-down half is what makes the pair behave as a constant-velocity coupling","sources":["sae-driveline-handbook"],"tags":["universal-joint","double-cardan","constant-velocity"]},{"id":"ratchet-pawl-tooth-angle","kind":"feature","tier":2,"title":"Ratchet tooth face angle for positive pawl engagement","summary":"Cut the ratchet tooth's working face 5-15deg back from radial (undercut toward the hub) so the drive load presses the pawl into engagement rather than camming it up and out; the back (release) face is a shallow ramp for free-wheel disengagement.","applies":["ratchet","pawl","ratchet wheel"],"value":{"min":5,"max":15,"unit":"deg"},"basis":"A radial or forward-raked tooth face lets the drive-load reaction push the pawl tip out of the tooth root under load; a small back-angle instead points that reaction into the pawl pivot","sources":["machinerys-handbook"],"tags":["ratchet","pawl","tooth-angle"]},{"id":"flywheel-inertia-and-fluctuation","kind":"rule","tier":2,"title":"Flywheel energy storage and speed-fluctuation target","summary":"Stored kinetic energy E = 0.5*I*omega^2; size a flywheel's mass moment of inertia I so the coefficient of speed fluctuation Cf = (omega_max-omega_min)/omega_avg stays within about 0.01-0.05 (1-5%) across the working cycle for general machinery.","applies":["flywheel"],"value":{"min":0.01,"max":0.05,"unit":"ratio","note":"typical Cf target for general machinery; precision equipment wants tighter"},"basis":"The flywheel absorbs the cyclic energy variation of the driving torque/load; Cf is the standard machine-design figure of merit for how effectively it smooths speed","sources":["shigley-mech-design"],"tags":["flywheel","inertia","speed-fluctuation"]},{"id":"clutch-friction-plate-torque","kind":"dimension","tier":2,"title":"Disc clutch torque capacity (uniform-wear model)","summary":"Torque capacity T = n*mu*F*Rm, Rm = (Ro+Ri)/2 (mean friction radius), n = number of friction faces; organic friction material runs mu ~= 0.25-0.45 and a typical bore-to-OD ratio Ri/Ro of 0.6-0.8 for a well-proportioned plate.","applies":["clutch","friction plate","disc clutch"],"value":{"min":0.25,"max":0.45,"unit":"ratio","note":"typical organic friction-material coefficient"},"basis":"Uniform-wear theory (the model preferred once a clutch has run in) gives axial pressure inversely proportional to radius, and integrates to T = n*mu*F*Rm exactly","sources":["shigley-mech-design"],"tags":["clutch","friction-plate","torque-capacity"]},{"id":"hub-set-screw-flat","kind":"feature","tier":2,"title":"Shaft flat for a cup-point set screw","summary":"Machine a flat roughly the set screw's own diameter wide and 0.15-0.25x the shaft diameter deep for a cup-point set screw to seat on — a flat gives 2-3x the holding torque of a screw biting an unmodified round shaft.","applies":["hub","set screw","shaft collar"],"value":{"min":0.15,"max":0.25,"unit":"ratio","note":"flat depth as a fraction of shaft diameter"},"basis":"A flat increases the screw-tip contact area and resists the screw sliding around the shaft's curvature under vibration; standard shop practice for hub/collar retention on a bare shaft","sources":["machinerys-handbook"],"tags":["hub","set-screw","shaft-flat"]},{"id":"shaft-fit-classes-iso286-example","kind":"tolerance","tier":2,"title":"ISO 286 shaft fit-class deviations at 6-10mm nominal","summary":"At a 6-10mm nominal shaft: g6 (clearance/sliding) runs -5/-14 um, h6 (locational clearance) runs 0/-9 um, k6 (light interference) runs +10/+1 um, n6 (interference) runs +19/+10 um against an H7 hole.","applies":["shaft","fit","h7","g6","k6","n6"],"value":{"table":[{"class":"g6","upperUm":-5,"lowerUm":-14},{"class":"h6","upperUm":0,"lowerUm":-9},{"class":"k6","upperUm":10,"lowerUm":1},{"class":"n6","upperUm":19,"lowerUm":10}],"unit":"um"},"basis":"ISO 286-2 fundamental-deviation tables for the size band 6-10mm, one representative band; look up other size bands in the full ISO 286-2 table","sources":["iso-286-2"],"see":["robotics/bearing-housing-shaft-fits"],"tags":["tolerance","shaft","fit","iso-286"]},{"id":"gearbox-stage-ratio-and-efficiency","kind":"rule","tier":2,"title":"Gearbox stage ratio limits and per-mesh efficiency","summary":"Keep a single spur/helical stage to about 3:1-10:1 (bigger ratios need an oversized pinion or undercut small one); per-mesh efficiency runs 94-98% for spur/helical, but 40-90% for worm gearing, falling sharply as the lead angle drops toward the self-locking region.","applies":["gearbox","gear train"],"value":{"min":94,"max":98,"unit":"%","note":"spur/helical per-mesh efficiency; worm gearing runs 40-90%"},"basis":"Practical single-stage ratio and efficiency ranges from gear-train design practice; worm efficiency in particular collapses near self-locking lead angles because the same friction that prevents back-driving also opposes forward driving","sources":["shigley-mech-design","agma-6034-b92"],"tags":["gearbox","gear-train","efficiency","stage-ratio"]},{"id":"lubrication-clearance-machined-gears","kind":"rule","tier":2,"title":"Extra running clearance for grease- or oil-lubricated gearing","summary":"Budget an extra 0.02-0.05 mm of running clearance per mesh side beyond the machined backlash allowance on a grease- or oil-lubricated steel gear mesh, to accommodate the lubricant film and thermal growth at operating temperature.","applies":["gearbox","spur gear","worm gear","bevel gear"],"value":{"min":0.02,"max":0.05,"unit":"mm"},"basis":"Machined backlash alone assumes a dry, room-temperature mesh; a lubricant film and the thermal expansion of a running gearbox both consume additional clearance","sources":["machinerys-handbook"],"tags":["lubrication","gear","clearance","backlash"]},{"id":"agma-quality-basics","kind":"standard","tier":2,"title":"AGMA gear quality numbers and what they buy","summary":"Under the AGMA 2000-A88 numbering, quality runs Q3 (coarse, cast/rough-cut commercial gearing) to Q16 (aerospace-grade); general commercial power-transmission gearing sits around Q6-Q9, precision instrument and servo gearing Q10-Q13.","applies":["gearbox","spur gear","helical gear","gear inspection"],"value":{"min":6,"max":9,"unit":"count","note":"typical commercial power-transmission quality band; precision servo gearing runs Q10-Q13"},"basis":"AGMA 2000-A88 defines quality numbers from tooth-to-tooth and total composite tolerances measured on a rolling gear checker; higher numbers mean tighter tolerance and lower transmission error/noise","sources":["agma-2000-a88"],"tags":["agma","gear-quality","inspection"]},{"id":"material-bronze-worm-wheel","kind":"material","tier":2,"title":"Phosphor bronze for worm wheels against a steel worm","summary":"Cast phosphor bronze (e.g. C90700/C93200) is the standard worm-wheel material against a hardened steel worm: the dissimilar, self-lubricating bronze survives the mesh's high sliding velocity far better than steel-on-steel, and it's the cheaper part when it wears first.","applies":["worm gear","worm wheel"],"value":{"options":["C90700","C93200"],"unit":"text"},"basis":"Worm gearing is dominated by sliding, not rolling, contact; a dissimilar soft-on-hard pair resists galling far better than matched steel, and bronze's tin/lead content gives it useful boundary lubrication","sources":["agma-6034-b92","matweb-material-data"],"tags":["material","bronze","worm-wheel"]},{"id":"material-cast-iron-flywheel-clutch","kind":"material","tier":2,"title":"Grey cast iron for flywheels and clutch pressure plates","summary":"Grey cast iron (ASTM A48 class 30-40, density ~7.2 g/cm3) is the default flywheel and clutch pressure-plate/drum material: cheap, easy to cast into a mass-optimised rim shape, self-damping, and its free graphite gives some boundary lubrication against a friction disc.","applies":["flywheel","clutch","pressure plate"],"value":{"value":7.2,"unit":"g/cm3"},"basis":"Flywheel sizing is a mass-moment-of-inertia problem where cheap, castable, self-damping material wins over exotic alloys; the same properties (plus heat capacity and wear resistance) make it the traditional clutch drum/plate material","sources":["matweb-material-data"],"tags":["material","cast-iron","flywheel","clutch"]},{"id":"material-acetal-nylon-pulley-sprocket","kind":"material","tier":2,"title":"Acetal (POM) and nylon for light-duty pulleys and idler sprockets","summary":"POM (acetal) and nylon (PA6/PA66) mould into quiet, low-friction idler pulleys and light-duty sprockets up to a few hundred watts, running without added lubrication, but creep and lose stiffness well below a metal part's load.","applies":["timing belt pulley","idler pulley","sprocket"],"value":{"options":["POM","PA6","PA66"],"unit":"text"},"basis":"Self-lubricating engineering plastics trade load capacity for lower noise, no grease, and lower mass on the idler/light-duty side of a drive, versus steel where fatigue life and torque density matter more","sources":["matweb-material-data"],"see":["robotics/gear-material-pom"],"tags":["material","acetal","nylon","pulley","sprocket"]},{"id":"test-gear-tooth-bending-fatigue","kind":"test","tier":2,"title":"Gear tooth root bending fatigue test (Lewis/AGMA method)","summary":"AGMA 2001 bending-stress method treats each tooth as a cantilever loaded at the tip; the geometric lever is the root fillet radius — keep it at 0.3-0.4 m minimum, since a sharp root fillet concentrates stress and can cut fatigue life by an order of magnitude.","applies":["spur gear","helical gear","bevel gear"],"value":{"min":0.3,"max":0.4,"unit":"ratio","note":"minimum root fillet radius as a multiple of module"},"basis":"AGMA 2001-D04 bending-stress rating method; the geometry factor J is dominated by the root fillet radius and load application point","sources":["agma-2000-a88","shigley-mech-design"],"tags":["test","gear","bending-fatigue","root-fillet","agma"]},{"id":"test-chain-wear-elongation","kind":"test","tier":2,"title":"Roller chain wear-elongation test","summary":"Measure chain length over a fixed number of pitches (e.g. 12 or 24 links) and compare to nominal; replace the chain at 2-3% elongation (tighter, ~1.5%, on a small sprocket) before the worn pitch rides up the tooth flank and starts jumping teeth under load.","applies":["roller chain","sprocket"],"value":{"min":1.5,"max":3,"unit":"%"},"basis":"Chain elongation comes from pin/bushing wear increasing effective pitch; on a small sprocket the same elongation subtends a larger angular error per link, so smaller sprockets need the tighter replacement threshold","sources":["asme-b29-1"],"tags":["test","chain","wear","elongation"]},{"id":"test-belt-tension-deflection","kind":"test","tier":2,"title":"Belt tension check by force-deflection method","summary":"Check installed belt tension by deflecting the belt about 1/64 inch per inch of free span under a measured force, against the section's force-deflection chart — the span (centre distance minus pulley radii) has to be long enough to deflect measurably.","applies":["v-belt","timing belt","belt drive"],"basis":"Standard belt-tensioning field method (deflection-force gauge) used across V-belt and timing-belt drives when a tension meter isn't available","sources":["iso-4184"],"tags":["test","belt","tension","deflection"]},{"id":"test-gear-mesh-nvh","kind":"test","tier":2,"title":"Gear mesh noise and vibration (NVH) test","summary":"Run the gearbox across its speed/load range on a noise rig and compare sound level (dB) against the mesh (tooth-pass) frequency and its harmonics; a helical mesh's gradual engagement typically cuts noise 3-6 dB versus an equivalent spur mesh.","applies":["gearbox","spur gear","helical gear"],"basis":"Tooth-pass frequency = (teeth count) x (shaft speed); a whine or tone at that frequency (or its harmonics) points straight at mesh geometry — profile error, backlash, or (for spur gearing) the abrupt tooth engagement a helix angle would smooth","sources":["shigley-mech-design"],"tags":["test","nvh","gear-mesh","noise"]},{"id":"recipe-spur-gear-20t-module2","kind":"recipe","tier":2,"title":"Recipe: 20-tooth module-2 spur gear","summary":"Build a 20-tooth, module-2, 20deg-pressure-angle spur gear (pitch dia 40mm, outer dia 44mm, root dia 35mm) as an 8mm-thick extruded polygon, with the involute tooth flank sampled at 7 points per flank.","applies":["spur gear"],"basis":"Combines spur-gear-standard-proportions, spur-gear-diameter-formulas and involute-curve-point-generation into one buildable gear blank","sources":["iso-21771"],"tags":["recipe","spur-gear","involute"],"recipe":{"prompt":"Model a 20-tooth module-2 spur gear, 8mm thick, 20 degree pressure angle","steps":[{"tool":"cad_extrude_profile","args":{"depth":8,"outer":[[17.42365,-1.63289],[18.71186,-1.75362],[19.25174,-1.71757],[19.79749,-1.6066],[20.34581,-1.44308],[20.89486,-1.23426],[21.44308,-0.98401],[21.98903,-0.69476],[21.98903,0.69476],[21.44308,0.98401],[20.89486,1.23426],[20.34581,1.44308],[19.79749,1.6066],[19.25174,1.71757],[18.71186,1.75362],[17.42365,1.63289],[17.07547,3.83123],[18.33794,4.11449],[18.84026,4.31561],[19.325,4.58979],[19.79596,4.91475],[20.2536,5.28302],[20.69765,5.69043],[21.1275,6.13422],[20.69811,7.45574],[20.0895,7.56212],[19.49079,7.63072],[18.90408,7.65966],[18.33206,7.64573],[17.77874,7.58262],[17.25414,7.45008],[16.06629,6.93718],[15.05582,8.92033],[16.16897,9.57985],[16.58455,9.92635],[16.96084,10.3369],[17.30833,10.79149],[17.62978,11.28315],[17.9262,11.80785],[18.19787,12.36275],[17.38112,13.4869],[16.76943,13.4],[16.17882,13.28023],[15.61189,13.12645],[15.07217,12.93644],[14.56543,12.70544],[14.10746,12.41727],[13.13624,11.56241],[11.56241,13.13624],[12.41727,14.10746],[12.70544,14.56543],[12.93644,15.07217],[13.12645,15.61189],[13.28023,16.17882],[13.4,16.76943],[13.4869,17.38112],[12.36275,18.19787],[11.80785,17.9262],[11.28315,17.62978],[10.79149,17.30833],[10.3369,16.96084],[9.92635,16.58455],[9.57985,16.16897],[8.92033,15.05582],[6.93718,16.06629],[7.45008,17.25414],[7.58262,17.77874],[7.64573,18.33206],[7.65966,18.90408],[7.63072,19.49079],[7.56212,20.0895],[7.45574,20.69811],[6.13422,21.1275],[5.69043,20.69765],[5.28302,20.2536],[4.91475,19.79596],[4.58979,19.325],[4.31561,18.84026],[4.11449,18.33794],[3.83123,17.07547],[1.63289,17.42365],[1.75362,18.71186],[1.71757,19.25174],[1.6066,19.79749],[1.44308,20.34581],[1.23426,20.89486],[0.98401,21.44308],[0.69476,21.98903],[-0.69476,21.98903],[-0.98401,21.44308],[-1.23426,20.89486],[-1.44308,20.34581],[-1.6066,19.79749],[-1.71757,19.25174],[-1.75362,18.71186],[-1.63289,17.42365],[-3.83123,17.07547],[-4.11449,18.33794],[-4.31561,18.84026],[-4.58979,19.325],[-4.91475,19.79596],[-5.28302,20.2536],[-5.69043,20.69765],[-6.13422,21.1275],[-7.45574,20.69811],[-7.56212,20.0895],[-7.63072,19.49079],[-7.65966,18.90408],[-7.64573,18.33206],[-7.58262,17.77874],[-7.45008,17.25414],[-6.93718,16.06629],[-8.92033,15.05582],[-9.57985,16.16897],[-9.92635,16.58455],[-10.3369,16.96084],[-10.79149,17.30833],[-11.28315,17.62978],[-11.80785,17.9262],[-12.36275,18.19787],[-13.4869,17.38112],[-13.4,16.76943],[-13.28023,16.17882],[-13.12645,15.61189],[-12.93644,15.07217],[-12.70544,14.56543],[-12.41727,14.10746],[-11.56241,13.13624],[-13.13624,11.56241],[-14.10746,12.41727],[-14.56543,12.70544],[-15.07217,12.93644],[-15.61189,13.12645],[-16.17882,13.28023],[-16.76943,13.4],[-17.38112,13.4869],[-18.19787,12.36275],[-17.9262,11.80785],[-17.62978,11.28315],[-17.30833,10.79149],[-16.96084,10.3369],[-16.58455,9.92635],[-16.16897,9.57985],[-15.05582,8.92033],[-16.06629,6.93718],[-17.25414,7.45008],[-17.77874,7.58262],[-18.33206,7.64573],[-18.90408,7.65966],[-19.49079,7.63072],[-20.0895,7.56212],[-20.69811,7.45574],[-21.1275,6.13422],[-20.69765,5.69043],[-20.2536,5.28302],[-19.79596,4.91475],[-19.325,4.58979],[-18.84026,4.31561],[-18.33794,4.11449],[-17.07547,3.83123],[-17.42365,1.63289],[-18.71186,1.75362],[-19.25174,1.71757],[-19.79749,1.6066],[-20.34581,1.44308],[-20.89486,1.23426],[-21.44308,0.98401],[-21.98903,0.69476],[-21.98903,-0.69476],[-21.44308,-0.98401],[-20.89486,-1.23426],[-20.34581,-1.44308],[-19.79749,-1.6066],[-19.25174,-1.71757],[-18.71186,-1.75362],[-17.42365,-1.63289],[-17.07547,-3.83123],[-18.33794,-4.11449],[-18.84026,-4.31561],[-19.325,-4.58979],[-19.79596,-4.91475],[-20.2536,-5.28302],[-20.69765,-5.69043],[-21.1275,-6.13422],[-20.69811,-7.45574],[-20.0895,-7.56212],[-19.49079,-7.63072],[-18.90408,-7.65966],[-18.33206,-7.64573],[-17.77874,-7.58262],[-17.25414,-7.45008],[-16.06629,-6.93718],[-15.05582,-8.92033],[-16.16897,-9.57985],[-16.58455,-9.92635],[-16.96084,-10.3369],[-17.30833,-10.79149],[-17.62978,-11.28315],[-17.9262,-11.80785],[-18.19787,-12.36275],[-17.38112,-13.4869],[-16.76943,-13.4],[-16.17882,-13.28023],[-15.61189,-13.12645],[-15.07217,-12.93644],[-14.56543,-12.70544],[-14.10746,-12.41727],[-13.13624,-11.56241],[-11.56241,-13.13624],[-12.41727,-14.10746],[-12.70544,-14.56543],[-12.93644,-15.07217],[-13.12645,-15.61189],[-13.28023,-16.17882],[-13.4,-16.76943],[-13.4869,-17.38112],[-12.36275,-18.19787],[-11.80785,-17.9262],[-11.28315,-17.62978],[-10.79149,-17.30833],[-10.3369,-16.96084],[-9.92635,-16.58455],[-9.57985,-16.16897],[-8.92033,-15.05582],[-6.93718,-16.06629],[-7.45008,-17.25414],[-7.58262,-17.77874],[-7.64573,-18.33206],[-7.65966,-18.90408],[-7.63072,-19.49079],[-7.56212,-20.0895],[-7.45574,-20.69811],[-6.13422,-21.1275],[-5.69043,-20.69765],[-5.28302,-20.2536],[-4.91475,-19.79596],[-4.58979,-19.325],[-4.31561,-18.84026],[-4.11449,-18.33794],[-3.83123,-17.07547],[-1.63289,-17.42365],[-1.75362,-18.71186],[-1.71757,-19.25174],[-1.6066,-19.79749],[-1.44308,-20.34581],[-1.23426,-20.89486],[-0.98401,-21.44308],[-0.69476,-21.98903],[0.69476,-21.98903],[0.98401,-21.44308],[1.23426,-20.89486],[1.44308,-20.34581],[1.6066,-19.79749],[1.71757,-19.25174],[1.75362,-18.71186],[1.63289,-17.42365],[3.83123,-17.07547],[4.11449,-18.33794],[4.31561,-18.84026],[4.58979,-19.325],[4.91475,-19.79596],[5.28302,-20.2536],[5.69043,-20.69765],[6.13422,-21.1275],[7.45574,-20.69811],[7.56212,-20.0895],[7.63072,-19.49079],[7.65966,-18.90408],[7.64573,-18.33206],[7.58262,-17.77874],[7.45008,-17.25414],[6.93718,-16.06629],[8.92033,-15.05582],[9.57985,-16.16897],[9.92635,-16.58455],[10.3369,-16.96084],[10.79149,-17.30833],[11.28315,-17.62978],[11.80785,-17.9262],[12.36275,-18.19787],[13.4869,-17.38112],[13.4,-16.76943],[13.28023,-16.17882],[13.12645,-15.61189],[12.93644,-15.07217],[12.70544,-14.56543],[12.41727,-14.10746],[11.56241,-13.13624],[13.13624,-11.56241],[14.10746,-12.41727],[14.56543,-12.70544],[15.07217,-12.93644],[15.61189,-13.12645],[16.17882,-13.28023],[16.76943,-13.4],[17.38112,-13.4869],[18.19787,-12.36275],[17.9262,-11.80785],[17.62978,-11.28315],[17.30833,-10.79149],[16.96084,-10.3369],[16.58455,-9.92635],[16.16897,-9.57985],[15.05582,-8.92033],[16.06629,-6.93718],[17.25414,-7.45008],[17.77874,-7.58262],[18.33206,-7.64573],[18.90408,-7.65966],[19.49079,-7.63072],[20.0895,-7.56212],[20.69811,-7.45574],[21.1275,-6.13422],[20.69765,-5.69043],[20.2536,-5.28302],[19.79596,-4.91475],[19.325,-4.58979],[18.84026,-4.31561],[18.33794,-4.11449],[17.07547,-3.83123]]},"note":"20-tooth module-2 20deg-PA spur gear: pitch r=20, base r=18.794, outer r=22, root r=17.5; 7 involute points per flank, 16 points per tooth, 320 points total"}],"expect":{"volume":9793.97,"faceCount":322,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-sprocket-15t-25-chain","kind":"recipe","tier":2,"title":"Recipe: 15-tooth #25 roller chain sprocket","summary":"Build a 15-tooth sprocket for #25 (6.35mm pitch) roller chain (pitch dia 30.54mm, outside dia 33.68mm, root dia 27.24mm) as a 4mm-thick extruded polygon with a simplified trapezoidal tooth form.","applies":["sprocket","roller chain","#25 chain"],"basis":"Combines ansi-roller-chain-pitch-table, sprocket-pitch-diameter-formula and sprocket-outside-diameter-and-roller into one buildable sprocket blank","sources":["asme-b29-1"],"tags":["recipe","sprocket","chain"],"recipe":{"prompt":"Model a 15-tooth sprocket for #25 roller chain, 4mm thick","steps":[{"tool":"cad_extrude_profile","args":{"depth":4,"outer":[[13.53389,-1.53721],[16.80439,-1.12793],[16.80439,1.12793],[13.53389,1.53721],[12.98906,4.10042],[15.81034,5.80455],[14.8928,7.86538],[11.73858,6.90904],[10.1983,9.02905],[12.08255,11.73336],[10.40612,13.24283],[7.91357,11.08623],[5.64417,12.39647],[6.26557,15.63337],[4.12012,16.33047],[2.72023,13.34651],[0.11411,13.62043],[-0.63479,16.83023],[-2.87829,16.59443],[-2.94346,13.29906],[-5.43568,12.48929],[-7.42538,15.11699],[-9.37901,13.98906],[-8.0982,10.95209],[-10.0456,9.19865],[-12.93206,10.78989],[-14.25802,8.96486],[-11.85269,6.71139],[-12.91854,4.31747],[-16.20266,4.59711],[-16.67168,2.39055],[-13.55774,1.31024],[-13.55774,-1.31024],[-16.67168,-2.39055],[-16.20266,-4.59711],[-12.91854,-4.31747],[-11.85269,-6.71139],[-14.25802,-8.96486],[-12.93206,-10.78989],[-10.0456,-9.19865],[-8.0982,-10.95209],[-9.37901,-13.98906],[-7.42538,-15.11699],[-5.43568,-12.48929],[-2.94346,-13.29906],[-2.87829,-16.59443],[-0.63479,-16.83023],[0.11411,-13.62043],[2.72023,-13.34651],[4.12012,-16.33047],[6.26557,-15.63337],[5.64417,-12.39647],[7.91357,-11.08623],[10.40612,-13.24283],[12.08255,-11.73336],[10.1983,-9.02905],[11.73858,-6.90904],[14.8928,-7.86538],[15.81034,-5.80455],[12.98906,-4.10042]]},"note":"15-tooth #25-chain sprocket: PD=30.54mm, Do=33.68mm, Dr=27.24mm; trapezoidal tooth approximation, 4 points per tooth, 60 points total"}],"expect":{"volume":2837.08,"faceCount":62,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-rack-segment-module2","kind":"recipe","tier":2,"title":"Recipe: 10-tooth module-2 rack segment","summary":"Build a 10-tooth, module-2, 20deg-pressure-angle rack segment (62.83mm long, 6mm base + 4.5mm tooth height) as an extruded polygon with straight-flank trapezoidal teeth, 10mm thick.","applies":["rack and pinion","rack"],"basis":"Combines rack-and-pinion-profile and spur-gear-tooth-thickness into one buildable rack segment matching a module-2 pinion","sources":["iso-21771"],"tags":["recipe","rack","rack-and-pinion"],"recipe":{"prompt":"Model a 10-tooth module-2 rack segment, 20 degree pressure angle, 10mm thick","steps":[{"tool":"cad_extrude_profile","args":{"depth":10,"outer":[[0,0],[62.83185,0],[62.83185,6],[62.17098,6],[60.53312,10.5],[58.8474,10.5],[57.20954,6],[55.8878,6],[54.24993,10.5],[52.56422,10.5],[50.92635,6],[49.60461,6],[47.96675,10.5],[46.28103,10.5],[44.64317,6],[43.32143,6],[41.68356,10.5],[39.99785,10.5],[38.35998,6],[37.03824,6],[35.40038,10.5],[33.71466,10.5],[32.0768,6],[30.75506,6],[29.11719,10.5],[27.43148,10.5],[25.79361,6],[24.47187,6],[22.834,10.5],[21.14829,10.5],[19.51043,6],[18.18869,6],[16.55082,10.5],[14.86511,10.5],[13.22724,6],[11.9055,6],[10.26763,10.5],[8.58192,10.5],[6.94406,6],[5.62231,6],[3.98445,10.5],[2.29874,10.5],[0.66087,6],[0,6]]},"note":"10-tooth module-2 20deg-PA rack: circular pitch 6.283mm, length 62.83mm, 6mm base below root, 4.5mm total tooth height (2mm addendum + 2.5mm dedendum), straight flanks"}],"expect":{"volume":5265.52,"faceCount":46,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}}]},{"$schema":"nativecad-dfm-pack/1","id":"robotics","title":"Robotics -- shafts, bearings, gears, belts, motors and linkages","sector":"robotics","version":"2026-09-03","summary":"Shaft and bearing standards, gear and GT2/HTD belt geometry, lead-screw and coupling sizes, NEMA/servo/BLDC motor mount patterns, linkage fits, 3D-printed structural rules, and the tests a robot's moving parts are held to.","aliases":["robot","robot arm","actuator","shaft","bearing","gear","pulley","gt2","stepper","nema 17","nema 23","servo","lead screw","coupling","linkage","gripper","motion"],"crossSector":false,"size":"full","sources":[{"id":"din-6885","title":"DIN 6885-1:1968 Drive type fastenings without taper action -- Parallel keys, keyways","url":"https://www.din.de/en","accessed":"2026-09-03"},{"id":"iso-286","title":"ISO 286-2:2010 Geometrical product specifications (GPS) -- ISO code system for tolerances on linear sizes -- Part 2: Tables of tolerance classes","url":"https://www.iso.org/standard/45469.html","accessed":"2026-09-03"},{"id":"skf-bearing-catalogue","title":"SKF Rolling Bearings Catalogue (dimension tables, shoulder diameters, fit recommendations)","url":"https://www.skf.com/group/products/rolling-bearings","accessed":"2026-09-03"},{"id":"gates-gt2-design-manual","title":"Gates PowerGrip GT2 Belt Drive Design Manual","url":"https://www.gates.com/content/dam/gates/master-portfolio/master-brand-en/pdfs/powergrip-gt2-design-manual.pdf","accessed":"2026-09-03"},{"id":"khk-gear-tech-ref","title":"KHK Stock Gears -- Gear Technical Reference (module, pressure angle, backlash, undercut)","url":"https://khkgears.net/new/gear_knowledge.html","accessed":"2026-09-03"},{"id":"iso-9283","title":"ISO 9283:1998 Manipulating industrial robots -- Performance criteria and related test methods","url":"https://www.iso.org/standard/22244.html","accessed":"2026-09-03"},{"id":"iso-10218-1","title":"ISO 10218-1:2011 Robots and robotic devices -- Safety requirements for industrial robots -- Part 1: Robots","url":"https://www.iso.org/standard/51330.html","accessed":"2026-09-03"},{"id":"nema-ics-16","title":"NEMA ICS 16-2001 (R2016) Motion/Position Control Motors, Controls and Feedback Devices","url":"https://www.nema.org/standards/view/motion-position-control-motors-controls-and-feedback-devices","accessed":"2026-09-03"},{"id":"stepperonline-nema-mech","title":"StepperOnline NEMA 14/17/23/34 hybrid stepper motor mechanical drawings (frame, bolt pattern, pilot, shaft)","url":"https://www.omc-stepperonline.com/","accessed":"2026-09-03"},{"id":"towerpro-sg90","title":"TowerPro SG90 9g Micro Servo datasheet (case and ear dimensions)","url":"https://www.towerpro.com.tw/product/sg90-7/","accessed":"2026-09-03"},{"id":"mg996r-datasheet","title":"MG996R High-Torque Metal-Gear Servo datasheet (case and ear dimensions)","url":"https://www.friendlywire.com/projects/ne555-servo-tester/MG996R-datasheet.pdf","accessed":"2026-09-03"},{"id":"robotis-dynamixel-xl430","title":"Robotis Dynamixel XL430-W250-T specification (frame and mounting-hole pattern)","url":"https://emanual.robotis.com/docs/en/dxl/x/xl430-w250/","accessed":"2026-09-03"},{"id":"iso-724-trapezoidal","title":"ISO 724:1993 ISO general purpose metric trapezoidal screw threads -- Basic dimensions","url":"https://www.iso.org/standard/4759.html","accessed":"2026-09-03"},{"id":"asme-b1-5-acme","title":"ASME B1.5-1997 (R2013) Acme Screw Threads","url":"https://www.asme.org/codes-standards/find-codes-standards/b1-5-acme-screw-threads","accessed":"2026-09-03"},{"id":"matweb-materials","title":"MatWeb Material Property Data (shafting steels, engineering plastics)","url":"https://www.matweb.com/","accessed":"2026-09-03"}],"entries":[{"id":"shaft-standard-diameters","kind":"dimension","tier":1,"title":"Standard robotics shaft diameters (h6/h7)","summary":"Common robot shaft/axle diameters are 3, 4, 5, 6, 8, 10, 12, 15 and 20 mm, turned to h6 (precision bearing/pulley register) or h7 (looser register, e.g. printed hubs) per ISO 286.","applies":["shaft","axle","gear shaft","pulley shaft"],"value":{"options":[3,4,5,6,8,10,12,15,20],"unit":"mm"},"basis":"ISO 286 shaft tolerance classes: h6 for a bearing-seat register, h7 where the mating bore is coarser (3D-printed hub, clamp coupling)","sources":["iso-286"],"tags":["shaft","tolerance","h6","h7"]},{"id":"shaft-keyway-din6885","kind":"fastener","tier":1,"title":"Parallel keyway width/height/depth by shaft diameter (DIN 6885)","summary":"DIN 6885-1 parallel keys by shaft dia: 6->2x2 (t1 1.2), 8->2x2 (t1 1.2), 10->3x3 (t1 1.8), 12->4x4 (t1 2.5), 15->5x5 (t1 3.0), 20->6x6 (t1 3.5) mm -- b x h key cross-section, t1 the shaft-side depth.","applies":["shaft","keyway","key","coupling","pulley"],"value":{"table":[{"shaftDia":6,"b":2,"h":2,"t1":1.2},{"shaftDia":8,"b":2,"h":2,"t1":1.2},{"shaftDia":10,"b":3,"h":3,"t1":1.8},{"shaftDia":12,"b":4,"h":4,"t1":2.5},{"shaftDia":15,"b":5,"h":5,"t1":3},{"shaftDia":20,"b":6,"h":6,"t1":3.5}],"unit":"mm"},"basis":"DIN 6885-1 form B square-ended parallel key table, keyed by shaft diameter range","sources":["din-6885"],"tags":["shaft","keyway","din-6885","key"]},{"id":"shaft-dflat-setscrew-depth","kind":"feature","tier":1,"title":"D-flat depth for set-screw shaft retention","summary":"A milled D-flat for a set screw (common on 5 mm NEMA 17 and small gearmotor shafts) is cut 0.5-1.0 mm deep, centred on the shaft so the set screw seats flat rather than point-loading round stock.","applies":["shaft","stepper shaft","set screw","coupling"],"value":{"min":0.5,"max":1,"typical":0.7,"unit":"mm"},"basis":"Common hobby-drivetrain practice for stepper and gearmotor output shafts (StepperOnline mechanical drawings show a flat on the 5mm/6.35mm shaft)","sources":["stepperonline-nema-mech"],"tags":["shaft","d-flat","set-screw"]},{"id":"bearing-common-sizes-table","kind":"dimension","tier":1,"title":"Common robotics deep-groove ball bearing sizes (bore x OD x width)","summary":"Bearings used across robot joints: 608 8x22x7, 6000 10x26x8, 6001 12x28x8, 6002 15x32x9, 6004 20x42x12, 623 3x10x4, 625 5x16x5, 626 6x19x6, 688 8x16x5, MR105 5x10x4 (all mm).","applies":["bearing","joint","pulley bearing"],"value":{"table":[{"designation":"608","bore":8,"od":22,"width":7},{"designation":"6000","bore":10,"od":26,"width":8},{"designation":"6001","bore":12,"od":28,"width":8},{"designation":"6002","bore":15,"od":32,"width":9},{"designation":"6004","bore":20,"od":42,"width":12},{"designation":"623","bore":3,"od":10,"width":4},{"designation":"625","bore":5,"od":16,"width":5},{"designation":"626","bore":6,"od":19,"width":6},{"designation":"688","bore":8,"od":16,"width":5},{"designation":"MR105","bore":5,"od":10,"width":4}],"unit":"mm"},"basis":"SKF Rolling Bearings Catalogue dimension tables for the 60x/62x/68x deep-groove series and MR miniature series","sources":["skf-bearing-catalogue"],"tags":["bearing","608","6000","6001","6002","6004","dimension"]},{"id":"bearing-housing-shaft-fits","kind":"tolerance","tier":1,"title":"Bearing housing bore and shaft fit classes","summary":"House the outer ring in an H7 bore. Fit the shaft: k6 where the inner ring rotates with the shaft (a light interference press, the normal robot-joint case), h6 where the shaft is stationary and the outer ring/housing rotates (a sliding fit).","applies":["bearing","housing","shaft"],"value":{"options":["H7 housing / k6 shaft (rotating inner ring)","H7 housing / h6 shaft (rotating outer ring)"]},"basis":"SKF fit-selection guidance (rotating-inner-ring load case) applied to ISO 286 shaft/hole tolerance classes","sources":["skf-bearing-catalogue","iso-286"],"tags":["bearing","fit","h7","k6","h6"]},{"id":"gear-module-pressure-angle","kind":"dimension","tier":1,"title":"Gear module and pressure angle for small robot gearing","summary":"Robot gearing is cut to module 0.5, 1, 1.5 or 2 mm at a 20deg pressure angle -- the standard KHK/AGMA rack, so off-the-shelf gears and hobs interchange across vendors.","applies":["gear","gear train","gearbox"],"value":{"options":[0.5,1,1.5,2],"unit":"mm"},"basis":"KHK gear technical reference: standard module series and the 20deg full-depth involute rack","sources":["khk-gear-tech-ref"],"tags":["gear","module","pressure-angle"]},{"id":"gear-min-teeth-undercut","kind":"rule","tier":1,"title":"Minimum tooth count before undercut (20deg pressure angle)","summary":"A 20deg pressure-angle involute gear needs >= 17 teeth to avoid root undercut from rack generation; a pinion below 17 teeth loses root strength unless profile-shifted.","applies":["gear","pinion"],"value":{"min":17,"unit":"count"},"basis":"KHK gear technical reference: undercut limit z_min = 2/sin^2(pressure angle) ~= 17.1 for 20deg","sources":["khk-gear-tech-ref"],"tags":["gear","undercut","min-teeth"]},{"id":"gear-center-distance-formula","kind":"rule","tier":1,"title":"Spur gear centre distance","summary":"Two spur gears of the same module mesh at centre distance a = m(z1+z2)/2 -- module times the summed tooth counts, halved; get the module or a tooth count wrong and the mesh either binds or runs with excess backlash.","applies":["gear","gear train"],"value":{"value":"a = m*(z1+z2)/2","unit":"mm"},"basis":"Standard involute spur-gear meshing geometry (KHK gear technical reference)","sources":["khk-gear-tech-ref"],"tags":["gear","center-distance","formula"]},{"id":"gt2-pulley-pitch-diameter","kind":"dimension","tier":1,"title":"GT2 pulley pitch diameter from tooth count","summary":"A GT2 (2 mm pitch) pulley's pitch diameter is PD = z*2/pi mm -- a 20-tooth pulley pitches at 12.73 mm, a 16-tooth at 10.19 mm; the belt centreline sits on this circle, not the pulley OD.","applies":["gt2","pulley","timing belt"],"value":{"value":"PD = z*2/pi","unit":"mm"},"basis":"Gates PowerGrip GT2 design manual: pitch diameter = teeth x pitch / pi","sources":["gates-gt2-design-manual"],"tags":["gt2","pulley","pitch-diameter"]},{"id":"gt2-belt-widths","kind":"dimension","tier":1,"title":"GT2 belt widths","summary":"GT2 timing belt comes 6 mm or 9 mm wide for light robotics use; match the pulley's flange width to the belt or it walks off the pulley under any side load.","applies":["gt2","belt","timing belt"],"value":{"options":[6,9],"unit":"mm"},"basis":"Gates PowerGrip GT2 design manual standard belt width series","sources":["gates-gt2-design-manual"],"tags":["gt2","belt","width"]},{"id":"nema17-mount-pattern","kind":"dimension","tier":1,"title":"NEMA 17 stepper mounting pattern","summary":"NEMA 17 motors present a 42.3 mm square face, four M3 holes on a 31 mm bolt square, a dia22 mm central pilot boss, and (usually) a dia5 mm output shaft.","applies":["nema 17","stepper","motor mount"],"value":{"table":[{"field":"faceSquare","value":42.3},{"field":"boltSquare","value":31},{"field":"boltSize","value":"M3"},{"field":"pilotDia","value":22},{"field":"shaftDia","value":5}],"unit":"mm"},"basis":"NEMA ICS 16 frame-size convention as realised in NEMA 17 stepper mechanical drawings (StepperOnline)","sources":["nema-ics-16","stepperonline-nema-mech"],"tags":["nema17","stepper","mount","bolt-pattern"]},{"id":"nema23-mount-pattern","kind":"dimension","tier":1,"title":"NEMA 23 stepper mounting pattern","summary":"NEMA 23 motors present a 56.4 mm square face, four bolts on a 47.14 mm square, a dia38.1 mm central pilot boss, and a dia6.35 mm (1/4 in) output shaft.","applies":["nema 23","stepper","motor mount"],"value":{"table":[{"field":"faceSquare","value":56.4},{"field":"boltSquare","value":47.14},{"field":"pilotDia","value":38.1},{"field":"shaftDia","value":6.35}],"unit":"mm"},"basis":"NEMA ICS 16 frame-size convention as realised in NEMA 23 stepper mechanical drawings (StepperOnline)","sources":["nema-ics-16","stepperonline-nema-mech"],"tags":["nema23","stepper","mount","bolt-pattern"]},{"id":"leadscrew-tr8-lead-pitch","kind":"dimension","tier":1,"title":"Tr8 trapezoidal lead-screw pitch and lead options","summary":"An 8 mm trapezoidal lead screw is cut Tr8x2 (single-start, 2 mm lead = 2 mm pitch, self-locking) or Tr8x8 (4-start, 8 mm lead, 2 mm pitch, fast but not self-locking) -- same thread form, very different travel per revolution.","applies":["lead screw","tr8","linear stage"],"value":{"table":[{"designation":"Tr8x2","pitch":2,"lead":2,"starts":1},{"designation":"Tr8x8","pitch":2,"lead":8,"starts":4}],"unit":"mm"},"basis":"ISO 724 metric trapezoidal thread basic dimensions, applied to the Tr8 hobby lead-screw sizes sold with these two lead options","sources":["iso-724-trapezoidal"],"tags":["lead-screw","tr8","pitch","lead"]},{"id":"coupling-bore-sizes","kind":"dimension","tier":1,"title":"Flexible shaft coupling bore combinations","summary":"Motor-to-leadscrew couplings for hobby robotics are stocked as 5x8 mm and 6.35x8 mm bore pairs (NEMA 17's 5 mm or a 1/4 in shaft into an 8 mm lead screw), body OD 19-25 mm.","applies":["coupling","lead screw","nema 17"],"value":{"options":["5x8","6.35x8"],"unit":"mm"},"basis":"Common jaw/beam coupling catalogue bore pairings for stepper-to-leadscrew drivetrains","sources":["stepperonline-nema-mech"],"tags":["coupling","bore","nema17","leadscrew"]},{"id":"tolerance-bearing-bore-position","kind":"tolerance","tier":1,"title":"Position tolerance for a machined bearing bore","summary":"Hold a CNC-machined bearing bore or shaft register to +-0.05 mm position; the same feature on an FDM print only holds +-0.2 mm, so a press-fit bearing pocket sized for CNC will rattle or crack a printed part.","applies":["bearing","bore","tolerance"],"value":{"options":[{"process":"CNC","tolerance":0.05},{"process":"FDM","tolerance":0.2}],"unit":"mm"},"basis":"ISO 286-class positional capability difference between 3-axis CNC and FDM printing","sources":["iso-286"],"tags":["tolerance","bearing","position","cnc","fdm"]},{"id":"shaft-material-steel","kind":"material","tier":1,"title":"Shaft steels: 1045 and 4140","summary":"Turned robot shafts and axles use 1045 (cold-drawn, good machinability, adequate wear resistance unshielded) or 4140 (alloy steel, through-hardenable, used for higher-load or ground shafts); both take a keyway and press-fit bearings without distortion.","applies":["shaft","axle"],"value":{"table":[{"material":"1045 (normalized)","yield_MPa":375,"hardness_HB":170},{"material":"4140 (Q&T)","yield_MPa":655,"hardness_HB":197}]},"basis":"MatWeb property data for AISI 1045 and 4140 bar stock, the two steels most robot shafting is cut from","sources":["matweb-materials"],"tags":["material","steel","1045","4140","shaft"]},{"id":"gear-material-pom","kind":"material","tier":1,"title":"POM (acetal) for machined and printed gears","summary":"POM (Delrin/acetal) is the default plastic gear material: low friction against itself and steel, dimensionally stable, and machines or injection-molds to a clean tooth profile -- density 1.41 g/cm3, tensile ~65 MPa.","applies":["gear","pulley"],"value":{"table":[{"property":"density","value":1.41,"unit":"g/cm3"},{"property":"tensile strength","value":65,"unit":"MPa"}]},"basis":"MatWeb POM copolymer property data, the standard plastic gear/bushing material","sources":["matweb-materials"],"tags":["material","pom","acetal","gear"]},{"id":"print-material-pa12-cfpa","kind":"material","tier":1,"title":"3D-printed structural robot parts: PA12 and CF-PA","summary":"Load-bearing printed brackets, arms and gear housings favour PA12 (SLS nylon, tough, low warp) or carbon-fibre-reinforced PA (CF-PA, higher stiffness, lower creep) over PLA/PETG when the part carries a running joint load.","applies":["3d printed part","bracket","arm","gear housing"],"value":{"table":[{"material":"PA12 (SLS)","tensile_MPa":48,"flex_modulus_MPa":1500},{"material":"CF-PA","tensile_MPa":90,"flex_modulus_MPa":6000}]},"basis":"MatWeb PA12 (SLS) and CF-filled PA property data versus unfilled FDM plastics for load-bearing service","sources":["matweb-materials"],"tags":["material","pa12","cf-pa","3d-print"]},{"id":"shaft-circlip-groove","kind":"fastener","tier":2,"title":"External circlip groove for retaining a shaft feature","summary":"A retaining-ring groove axially locates a bearing, gear or pulley on a shaft; use this pack's shaft diameter with hardware/retaining-ring-groove-din-471 for the groove diameter and width, then cut it with cad_shaft_groove form \"rectangular\".","applies":["shaft","circlip","retaining ring","bearing"],"basis":"DIN 471 external retaining-ring groove series, referenced rather than restated","sources":["din-6885"],"tags":["shaft","circlip","groove","din-471"],"see":["hardware/retaining-ring-groove-din-471"],"value":{"options":["see hardware/retaining-ring-groove-din-471 for groove dia/width by shaft size"]}},{"id":"shaft-shoulder-fillet-vs-bearing-corner","kind":"rule","tier":2,"title":"Shaft shoulder fillet radius must clear the bearing's corner radius","summary":"A shoulder fillet blending into a bearing seat must be smaller than the bearing's maximum permissible chamfer r (SKF r_s,max, typically 0.3 mm for 608/6000/6001/6002-class bearings, 0.6 mm for 6004): a bigger fillet stops the bearing seating square against the shoulder.","applies":["shaft","shoulder","bearing seat"],"value":{"max":0.6,"typical":0.3,"unit":"mm"},"basis":"SKF catalogue r_s,max chamfer-dimension tables for the deep-groove series in this pack","sources":["skf-bearing-catalogue"],"tags":["shaft","fillet","shoulder","bearing"]},{"id":"shaft-shoulder-height","kind":"dimension","tier":2,"title":"Bearing shoulder height on a shaft","summary":"A shoulder that registers a bearing's inner ring should stand 2-4 mm radially proud of the bearing bore seat -- enough for a solid abutment face without fouling the bearing's inner-ring chamfer or an adjacent seal.","applies":["shaft","shoulder","bearing"],"value":{"min":2,"max":4,"typical":3,"unit":"mm"},"basis":"SKF minimum abutment (shoulder) diameter guidance for the small deep-groove sizes in this pack","sources":["skf-bearing-catalogue"],"tags":["shaft","shoulder","bearing","height"]},{"id":"shaft-center-drill-use","kind":"feature","tier":2,"title":"Centre-drilling a shaft for lathe support","summary":"A shaft turned between centres gets a DIN 332-1 form A / ISO 866 centre hole at each end: dia2-3 mm pilot for 8-20 mm shafts, 60deg protecting countersink, both cut in one pass by cad_shaft_center_drill.","applies":["shaft","lathe","turning"],"value":{"min":2,"max":3,"unit":"mm"},"basis":"DIN 332-1 form A / ISO 866 centre-hole convention, cited in cad_shaft_center_drill's own default angle","sources":["din-6885"],"tags":["shaft","center-drill","lathe"]},{"id":"bearing-press-vs-slip-fit","kind":"rule","tier":2,"title":"Press the rotating ring, slip the stationary ring","summary":"Whichever ring rotates gets the tighter fit (a k6-class press, per bearing-housing-shaft-fits) so it cannot creep in its seat; the stationary ring gets an h6/H7-class slip fit so the bearing can be pulled without a press.","applies":["bearing","fit","assembly"],"value":{"options":["rotating ring: press/interference","stationary ring: slip/clearance"]},"basis":"SKF fit-selection rule of thumb: the rotating ring takes the interference, the stationary ring the clearance","sources":["skf-bearing-catalogue"],"tags":["bearing","press-fit","slip-fit"]},{"id":"gear-backlash","kind":"tolerance","tier":2,"title":"Spur gear backlash allowance","summary":"Design 0.05-0.1 mm of circumferential backlash into a printed or machined spur mesh -- enough to run without binding as centre distance and tooth thickness vary with tolerance and temperature, tight enough that a lead-screw-driven axis doesn't lose position on reversal.","applies":["gear","gear train"],"value":{"min":0.05,"max":0.1,"unit":"mm"},"basis":"KHK gear technical reference backlash allowance for small-module gearing","sources":["khk-gear-tech-ref"],"tags":["gear","backlash","tolerance"]},{"id":"gear-face-width","kind":"dimension","tier":2,"title":"Spur gear face width","summary":"Face width runs 6-12 times the module -- a module-1 gear is 6-12 mm wide; too narrow concentrates load and chips a tooth corner, too wide risks misalignment loading one edge of the tooth.","applies":["gear"],"value":{"min":6,"max":12,"unit":"ratio","note":"multiply by module (mm) for the face width in mm"},"basis":"KHK gear technical reference face-width-to-module ratio for spur gears","sources":["khk-gear-tech-ref"],"tags":["gear","face-width"]},{"id":"gear-3d-printed-module-min","kind":"rule","tier":2,"title":"Minimum module for a 3D-printed gear","summary":"Keep a printed spur gear to module >= 1 mm -- below that the tooth root falls inside typical FDM/SLS dimensional error and the profile prints rounded rather than involute, and it will strip in a few cycles under any real load.","applies":["gear","3d printed part"],"value":{"min":1,"unit":"mm"},"basis":"KHK gear technical reference minimum practical module against common FDM/SLS layer/beam resolution","sources":["khk-gear-tech-ref"],"tags":["gear","3d-print","module","min"]},{"id":"gt2-pulley-tooth-counts","kind":"dimension","tier":2,"title":"Common GT2 pulley tooth counts and outer diameters","summary":"Stock GT2 pulleys run 16T (PD 10.19, OD ~9.75 mm), 20T (PD 12.73, OD ~12.30 mm), 36T (PD 22.92, OD ~22.48 mm) and 60T (PD 38.20, OD ~37.75 mm) -- outer diameter sits ~0.4 mm under the pitch diameter for belt tooth clearance.","applies":["gt2","pulley"],"value":{"table":[{"teeth":16,"pitchDia":10.19,"outerDia":9.75},{"teeth":20,"pitchDia":12.73,"outerDia":12.3},{"teeth":36,"pitchDia":22.92,"outerDia":22.48},{"teeth":60,"pitchDia":38.2,"outerDia":37.75}],"unit":"mm"},"basis":"Gates PowerGrip GT2 design manual pulley OD tables, PD computed from z*2/pi","sources":["gates-gt2-design-manual"],"tags":["gt2","pulley","tooth-count","outer-diameter"]},{"id":"gt2-flange-and-tension","kind":"feature","tier":2,"title":"GT2 pulley flange and belt tension","summary":"Flange a GT2 pulley on at least one side (both, for an idler) to keep the belt tracking straight; tension the belt just enough to remove slack at mid-span without a measurable static sag -- an over-tight GT2 belt loads the motor/idler bearings for no accuracy gain.","applies":["gt2","pulley","belt"],"basis":"Gates PowerGrip GT2 design manual flange and installation-tension guidance","sources":["gates-gt2-design-manual"],"tags":["gt2","flange","tension"]},{"id":"htd-belt-pitches","kind":"dimension","tier":2,"title":"HTD belt pitch options (3M/5M)","summary":"Where a robot needs more torque capacity than GT2, HTD profile belts step up to 3 mm (3M) or 5 mm (5M) pitch -- deeper, rounder teeth than GT2's for higher load transfer at the same width.","applies":["htd","belt","timing belt"],"value":{"options":[3,5],"unit":"mm"},"basis":"Standard HTD tooth-profile pitch series, the step up from GT2 for higher-torque drives","sources":["gates-gt2-design-manual"],"tags":["htd","belt","pitch"]},{"id":"leadscrew-acme-half10","kind":"dimension","tier":2,"title":"ACME 1/2-10 lead screw","summary":"A 1/2-10 ACME lead screw is 0.5 in nominal major diameter at 10 threads per inch -- a 2.54 mm pitch, published in inches because the source (ASME B1.5) is an inch standard; don't silently convert and round.","applies":["lead screw","acme"],"value":{"value":"1/2-10","unit":"in","note":"10 TPI = 2.54mm pitch"},"basis":"ASME B1.5 Acme screw thread series, the 1/2-10 size common in linear-stage kits","sources":["asme-b1-5-acme"],"tags":["lead-screw","acme","inch"]},{"id":"leadscrew-nut-flange-pattern","kind":"dimension","tier":2,"title":"Tr8 lead-screw nut flange bolt pattern","summary":"A typical Tr8 hobby lead-screw nut ships with a 22 mm OD flange and 3x M3 through-holes on a 16 mm bolt circle -- check the actual nut before committing a bracket, vendors vary this by a millimetre or two.","applies":["lead screw","tr8","nut","bracket"],"value":{"table":[{"field":"flangeOD","value":22},{"field":"boltCircle","value":16},{"field":"boltCount","value":3},{"field":"boltSize","value":"M3"}],"unit":"mm"},"basis":"Common hobby Tr8 anti-backlash/standard nut flange dimensions (vendor convention, not itself in ISO 724)","sources":["iso-724-trapezoidal"],"tags":["lead-screw","nut","flange","bolt-pattern"]},{"id":"ballscrew-sfu-designation","kind":"dimension","tier":2,"title":"Ball screw SFU designation (SFU1204/SFU1605)","summary":"SFU1204 is a 12 mm screw shaft at 4 mm lead; SFU1605 is 16 mm at 5 mm lead -- the two-digit suffix is the lead in tenths of a millimetre, a vendor naming convention (THK/TBI-style) rather than an ISO callout.","applies":["ball screw","lead screw","linear stage"],"value":{"table":[{"designation":"SFU1204","shaftDia":12,"lead":4},{"designation":"SFU1605","shaftDia":16,"lead":5}],"unit":"mm"},"basis":"Common ball-screw catalogue nomenclature (SFU-prefixed rolled ball screws) used across hobby and light-industrial linear stages","sources":["iso-724-trapezoidal"],"tags":["ball-screw","sfu","lead-screw"]},{"id":"coupling-od-length","kind":"dimension","tier":2,"title":"Flexible coupling body size","summary":"Motor-to-screw flexible couplings for the bores in this pack run 19-25 mm body OD and 25 mm length -- big enough to clamp both shafts with set screws, short enough to fit a NEMA 17 gantry's typical shaft-to-bearing gap.","applies":["coupling"],"value":{"min":19,"max":25,"unit":"mm"},"basis":"Common jaw/beam coupling catalogue body dimensions paired with the 5x8/6.35x8 bore combinations","sources":["stepperonline-nema-mech"],"tags":["coupling","dimension"]},{"id":"nema-14-34-frames","kind":"dimension","tier":2,"title":"NEMA 14 and NEMA 34 mounting frames","summary":"NEMA 14 (small, light arms/grippers): 35.2 mm face, 26 mm bolt square, dia22 mm pilot, dia5 mm shaft. NEMA 34 (heavy base joints): 86 mm face, 69.6 mm bolt square, dia73 mm pilot, dia12.7 mm (1/2 in) shaft.","applies":["nema 14","nema 34","stepper","motor mount"],"value":{"table":[{"frame":"NEMA14","faceSquare":35.2,"boltSquare":26,"pilotDia":22,"shaftDia":5},{"frame":"NEMA34","faceSquare":86,"boltSquare":69.6,"pilotDia":73,"shaftDia":12.7}],"unit":"mm"},"basis":"NEMA ICS 16 frame-size convention realised in NEMA 14/34 stepper mechanical drawings","sources":["nema-ics-16","stepperonline-nema-mech"],"tags":["nema14","nema34","stepper","mount"]},{"id":"servo-sg90-dims","kind":"dimension","tier":2,"title":"SG90 micro servo case and mounting-ear dimensions","summary":"The SG90 micro servo body is 22.8 x 12.2 mm in plan, with mounting ears extending the width to ~32.5 mm and dia2 mm ear screw holes on a 28 mm centre spacing -- the ubiquitous small gripper/pan-tilt servo.","applies":["servo","sg90","gripper","pan-tilt"],"value":{"table":[{"field":"bodyWidth","value":22.8},{"field":"bodyThickness","value":12.2},{"field":"earHoleSpacing","value":28},{"field":"earHoleDia","value":2}],"unit":"mm"},"basis":"TowerPro SG90 datasheet case and ear-hole drawing","sources":["towerpro-sg90"],"tags":["servo","sg90","dimension"]},{"id":"servo-mg996r-dims","kind":"dimension","tier":2,"title":"MG996R servo case dimensions","summary":"The MG996R metal-gear servo body is 40.7 x 19.7 x 42.9 mm (L x W x H) -- roughly double an SG90's footprint, used where a joint needs its 9-11 kg-cm torque.","applies":["servo","mg996r"],"value":{"table":[{"field":"length","value":40.7},{"field":"width","value":19.7},{"field":"height","value":42.9}],"unit":"mm"},"basis":"MG996R datasheet case drawing","sources":["mg996r-datasheet"],"tags":["servo","mg996r","dimension"]},{"id":"dynamixel-frame-pattern","kind":"dimension","tier":2,"title":"Dynamixel servo frame and mounting-hole spacing","summary":"Robotis Dynamixel smart servos (e.g. XL430) use a modular rectangular frame with M2/M2.5 mounting holes repeating on the frame's short-side spacing (commonly 8 mm/16 mm modules), so third-party horns and brackets can be gridded rather than measured off the actual unit.","applies":["dynamixel","servo","robotis"],"value":{"options":[8,16],"unit":"mm"},"basis":"Robotis Dynamixel XL430-W250 mechanical specification, the modular hole-spacing convention shared across the X-series frame","sources":["robotis-dynamixel-xl430"],"tags":["dynamixel","servo","mount"]},{"id":"bldc-mount-bolt-circles","kind":"dimension","tier":2,"title":"Small BLDC gimbal/prop motor bolt circles (2204/2806)","summary":"A \"2204\" BLDC (22 mm stator dia) mounts on a dia12 mm bolt circle with M2; a \"2806\" (28 mm stator dia) mounts on a dia16 mm or dia19 mm bolt circle with M3 -- read the motor's own back-plate before committing, the four-digit code only fixes the stator size, not the hole pattern.","applies":["bldc","motor mount"],"value":{"table":[{"frame":"2204","boltCircle":12,"boltSize":"M2"},{"frame":"2806","boltCircle":16,"boltSize":"M3"},{"frame":"2806 (wide)","boltCircle":19,"boltSize":"M3"}],"unit":"mm"},"basis":"Common small-BLDC (gimbal/prop) motor back-plate bolt-circle conventions","sources":["stepperonline-nema-mech"],"tags":["bldc","mount","bolt-circle"]},{"id":"clevis-linkage-pin-fit","kind":"fastener","tier":2,"title":"Clevis/linkage pin fit and flanged bushings","summary":"Size a clevis pin H7 in the clevis ears and g6 on the pin itself for a free-running pivot with minimal play; where the joint sees continuous cycling, press a flanged plain bushing into the ear bore instead of running the pin straight in printed or cast plastic.","applies":["linkage","clevis","joint","pin"],"value":{"options":["H7 (ears)","g6 (pin)"]},"basis":"ISO 286 H7/g6 running-clearance fit class applied to a pin-and-clevis pivot","sources":["iso-286"],"tags":["linkage","clevis","pin","bushing"]},{"id":"print-orientation-vs-load","kind":"rule","tier":2,"title":"Print orientation for a load-bearing part","summary":"Orient a structural printed part so layer lines run ACROSS the load path: FDM/SLS interlayer adhesion is only 30-50% of in-plane strength, so a link loaded along its layer lines can crack well under its rated load.","applies":["3d printed part","bracket","arm","link"],"basis":"Well-documented FDM/SLS anisotropy: interlayer strength is a fraction of in-plane strength","sources":["matweb-materials"],"tags":["3d-print","orientation","load"]},{"id":"print-min-wall-structural","kind":"rule","tier":2,"title":"Minimum wall for a load-bearing printed part","summary":"Give a structural printed bracket or link 2-3 mm minimum wall thickness -- thinner walls in PLA/PETG/PA12 flex and fatigue under the repeated cyclic loading a robot joint sees, even when a single static load test would pass.","applies":["3d printed part","bracket","link"],"value":{"min":2,"max":3,"unit":"mm"},"basis":"Common FDM/SLS structural-part design-guide minimum wall for cyclic (not just static) loading","sources":["matweb-materials"],"tags":["3d-print","wall-thickness","structural"]},{"id":"print-hole-shrink-compensation","kind":"rule","tier":2,"title":"Hole shrink compensation on FDM prints","summary":"An FDM-printed hole comes out roughly 0.2 mm undersized (elephant's-foot and cooling shrink at the perimeter); oversize the CAD hole by +0.2 mm versus the nominal fastener/bearing/pin diameter to hit the intended running size.","applies":["3d printed part","hole"],"value":{"value":0.2,"unit":"mm"},"basis":"Common FDM dimensional-accuracy compensation for circular internal features","sources":["matweb-materials"],"tags":["3d-print","hole","shrink","compensation"]},{"id":"heat-set-insert-robotics","kind":"fastener","tier":2,"title":"Heat-set inserts for printed robot housings","summary":"Use brass heat-set inserts (not printed M3/M4/M5 threads) for any joint or motor-mount fastener into a printed part assembled more than once -- see hardware/heat-set-inserts-metric for pilot-hole size and depth by screw size.","applies":["3d printed part","motor mount","housing"],"basis":"Heat-set inserts survive repeated assembly cycles that a printed thread does not","sources":["matweb-materials"],"tags":["3d-print","insert","fastener"],"see":["hardware/heat-set-inserts-metric"],"value":{"options":["see hardware/heat-set-inserts-metric for pilot hole dia/depth by screw size"]}},{"id":"gripper-finger-compliance","kind":"feature","tier":2,"title":"Gripper finger compliance and pad material","summary":"A rigid printed gripper finger needs a compliant pad -- 30-60A shore TPU or silicone -- bonded or mechanically keyed to the contact face; compliance takes up part-to-part size variation and roughly doubles grip friction versus bare PLA/PA12 on a smooth object.","applies":["gripper","end effector"],"value":{"min":30,"max":60,"unit":"ratio","note":"Shore A hardness of the pad material"},"basis":"Common soft-pad gripper design practice for parallel and underactuated fingers","sources":["matweb-materials"],"tags":["gripper","compliance","pad","tpu"]},{"id":"cable-management-bend-radius","kind":"feature","tier":2,"title":"Minimum cable bend radius across a robot joint","summary":"Cable that flexes continuously across a joint (not just routed once) needs a bend radius >= 10x its OD to survive fatigue; a cable that is merely routed once and never re-flexed can go down to ~5x OD.","applies":["cable management","joint","drag chain"],"value":{"min":5,"typical":10,"unit":"ratio","note":"multiple of the cable outer diameter"},"basis":"Continuous-flex cable design guidance (common drag-chain/robot-cable vendor practice) versus a one-time static bend","sources":["matweb-materials"],"tags":["cable","bend-radius","joint"]},{"id":"material-12l14-free-machining","kind":"material","tier":2,"title":"12L14 free-machining steel for turned fittings","summary":"12L14 (leaded free-machining steel) is the default for small turned fittings, spacers and non-load-bearing shaft collars -- it machines fast and finishes clean but is not recommended for a keyed, torque-carrying shaft.","applies":["shaft collar","spacer","fitting"],"value":{"table":[{"property":"yield","value":310,"unit":"MPa"},{"property":"machinability rating","value":170,"unit":"%"}]},"basis":"MatWeb 12L14 property data; standard free-machining steel for low-stress turned parts","sources":["matweb-materials"],"tags":["material","12l14","steel"]},{"id":"print-material-pla-petg","kind":"material","tier":2,"title":"PLA and PETG for non-structural printed parts","summary":"PLA (stiff, brittle, low heat resistance) and PETG (tougher, better layer adhesion, some heat resistance) cover covers, cable clips and low-load brackets; move to PA12/CF-PA (print-material-pa12-cfpa) once the part carries a running joint load.","applies":["3d printed part","cover","bracket"],"value":{"table":[{"material":"PLA","tensile_MPa":50,"heatDeflection_C":55},{"material":"PETG","tensile_MPa":50,"heatDeflection_C":70}]},"basis":"MatWeb PLA/PETG property data versus the PA12/CF-PA structural entry in this pack","sources":["matweb-materials"],"tags":["material","pla","petg","3d-print"]},{"id":"standard-din-6885","kind":"standard","tier":2,"title":"DIN 6885 -- parallel keys and keyways","summary":"DIN 6885-1 sets the b x h key cross-section and shaft/hub keyway depth by shaft diameter (this pack's shaft-keyway-din6885 table); it also fixes the keyway's rounded or square end form and length series.","applies":["shaft","keyway"],"basis":"The keying standard this pack's shaft-keyway table is drawn from","sources":["din-6885"],"tags":["standard","din-6885","keyway"]},{"id":"standard-iso-286","kind":"standard","tier":2,"title":"ISO 286 -- limits and fits","summary":"ISO 286 defines the hole/shaft tolerance-class letters and grades (H7, k6, h6, g6...) this pack uses throughout for bearing, bushing and pin fits; a fit called out without its class letter isn't fully specified.","applies":["shaft","bearing","fit"],"basis":"The tolerance-class system every fit entry in this pack cites","sources":["iso-286"],"tags":["standard","iso-286","fits","tolerance"]},{"id":"standard-nema-ics-16","kind":"standard","tier":2,"title":"NEMA ICS 16 -- motion/position control motors","summary":"NEMA ICS 16 is the frame-size standard behind NEMA stepper sizes (14/17/23/34); a given frame's bolt pattern, pilot and shaft diameter still come from the manufacturer's own mechanical drawing.","applies":["stepper","motor mount"],"basis":"The frame-numbering standard behind the NEMA mounting entries in this pack","sources":["nema-ics-16"],"tags":["standard","nema","stepper"]},{"id":"standard-iso-10218","kind":"standard","tier":2,"title":"ISO 10218-1 -- industrial robot safety","summary":"ISO 10218-1 sets safety requirements for industrial robot design: speed/force limiting for collaborative operation, protective stops, and structural/electrical safety of the manipulator -- relevant to any powered arm design even outside a factory cell.","applies":["robot arm","manipulator"],"basis":"The safety standard for powered robot manipulator design","sources":["iso-10218-1"],"tags":["standard","iso-10218","safety"]},{"id":"standard-iso-9283","kind":"standard","tier":2,"title":"ISO 9283 -- manipulating robot performance criteria","summary":"ISO 9283 defines how to measure and report a robot's pose accuracy, repeatability, path accuracy and rated payload -- the test methods this pack's repeatability test entry follows.","applies":["robot arm","manipulator"],"basis":"The performance-test-method standard behind this pack's repeatability test entry","sources":["iso-9283"],"tags":["standard","iso-9283","performance"]},{"id":"test-bearing-cycle-life","kind":"test","tier":2,"title":"Joint bearing cycle-life test","summary":"Run a joint assembly (bearing + shaft + housing) through 1,000,000 cycles of its rated motion and load; a joint that develops measurable play or drag increase before 1e6 cycles needs a tighter fit class or a larger bearing, not just a lubrication fix.","applies":["bearing","joint","durability"],"value":{"value":1000000,"unit":"cycles"},"basis":"Common robotics-durability acceptance figure for a repeatedly-actuated joint bearing","sources":["skf-bearing-catalogue"],"tags":["test","bearing","cycle-life"]},{"id":"test-backlash-measurement","kind":"test","tier":2,"title":"Gear/lead-screw backlash measurement","summary":"Lock the output, apply a small reversing torque at the input, and read the input's free rotation on a dial indicator or encoder; a spur/lead-screw drive should read <= 0.1 mm of linear backlash at the tool point -- above that, add a spring-loaded anti-backlash gear or nut.","applies":["gear","lead screw","backlash"],"value":{"max":0.1,"unit":"mm"},"basis":"Practical field test for the gear-backlash tolerance entry in this pack","sources":["khk-gear-tech-ref"],"tags":["test","backlash","gear","lead-screw"]},{"id":"test-deflection-stiffness-payload","kind":"test","tier":2,"title":"Arm-tip deflection under rated payload","summary":"Load the end effector with the rated payload at full reach and measure tip deflection; keep it under 0.2% of reach (1 mm at 500 mm reach) -- a link or joint that deflects more needs a thicker wall, a rib, or a shorter unsupported span before it goes into service.","applies":["robot arm","stiffness","payload"],"value":{"max":0.2,"unit":"%","note":"tip deflection as a percentage of reach, at rated payload"},"basis":"Common desktop/light-industrial arm stiffness acceptance figure (deflection as a fraction of reach)","sources":["iso-9283"],"tags":["test","deflection","stiffness","payload"]},{"id":"test-repeatability-iso9283","kind":"test","tier":2,"title":"Pose repeatability test (ISO 9283)","summary":"Drive the end effector to the same taught pose 30+ times and measure the spread; a small desktop arm should land in the +-0.1 mm class per ISO 9283, short of an industrial arm's +-0.02-0.05 mm.","applies":["robot arm","repeatability"],"value":{"typical":0.1,"unit":"mm"},"basis":"ISO 9283 pose-repeatability test method, applied at a hobby/desktop-arm accuracy class","sources":["iso-9283"],"tags":["test","repeatability","iso-9283"]},{"id":"recipe-nema17-mount-plate","kind":"recipe","tier":2,"title":"Recipe: NEMA 17 motor mount plate","summary":"Build a 50x50x5 mm mount plate with four M3 clearance holes on the NEMA 17 31 mm bolt square and a central dia22 mm pilot bore for the motor's spigot.","applies":["nema 17","motor mount"],"basis":"Combines nema17-mount-pattern's bolt square and pilot diameter into one buildable plate","sources":["nema-ics-16","stepperonline-nema-mech"],"tags":["recipe","nema17","motor-mount"],"recipe":{"prompt":"Model a 50x50x5mm NEMA 17 motor mount plate with four M3 holes on the 31mm bolt square and a 22mm pilot bore","steps":[{"tool":"cad_box","args":{"dx":50,"dy":50,"dz":5},"note":"50x50mm plate, 5mm thick"},{"tool":"cad_hole_pattern","args":{"of":"$0","type":"drill","diameter":3.2,"pattern":{"kind":"grid","origin":[9.5,9.5],"dx":31,"dy":31,"nx":2,"ny":2}},"note":"4x M3 clearance holes on the 31mm bolt square, centred on the 50x50 plate"},{"tool":"cad_drill_hole","args":{"of":"$1","center":[25,25],"type":"drill","diameter":22},"note":"central pilot bore for the NEMA17 spigot"}],"expect":{"volume":10438.49,"faceCount":16,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-shaft-keyway-shoulder-circlip","kind":"recipe","tier":2,"title":"Recipe: dia10 shaft with shoulder, keyway and circlip groove","summary":"Turn a dia12 blank down to dia10 beyond a shoulder at z=30, mill a 30mm-long DIN 6885/BS4235 keyway into the dia10 section, and cut a DIN 471 circlip groove near its far end.","applies":["shaft","gear shaft","pulley shaft"],"basis":"Combines shaft-standard-diameters, shaft-keyway-din6885 and shaft-circlip-groove into one buildable stepped shaft","sources":["din-6885"],"tags":["recipe","shaft","keyway","circlip"],"recipe":{"prompt":"Model a dia10mm shaft turned from a dia12 blank: shoulder at z=30, a 30mm keyway, and a circlip groove near the far end","steps":[{"tool":"cad_cylinder","args":{"r":6,"h":100},"note":"dia12 blank, 100mm long"},{"tool":"cad_shaft_shoulder","args":{"of":"$0","z":30,"diameter":10,"side":"above"},"note":"turn the section from z=30 to the far end down to dia10"},{"tool":"cad_shaft_keyway","args":{"of":"$1","z":50,"length":30,"standard":"BS4235"},"note":"keyway on the dia10 section, clear of both its ends (30 and 100)"},{"tool":"cad_shaft_groove","args":{"of":"$2","z":95,"width":1.1,"diameter":9.6,"form":"rectangular"},"note":"DIN 471 circlip groove for a dia10 shaft near the far end"}],"expect":{"volume":8728.78,"faceCount":21,"watertight":true,"note":"measured 2026-09-20: CADSF-1676 fixed it. The two ops always composed - all four steps build in ONE commands/executor.js run(). What did not survive was ops/shaft.js's authored-profile cache: the MCP surface appends one op per call and rebuilds INCREMENTALLY, which restores a fresh parser and splices the clean prefix, so the WeakMap keyed on the old parser was empty and cad_shaft_groove fell back to silhouette recovery, which at the time could not read a keyed shaft. The cache is now a parser side table (_shaftProfiles) the checkpoint carries. CADSF-1691 then made the cache an optimisation rather than the only route: a keyway is recovered FROM THE B-REP (its floor and two side walls are planes parallel to the axis, and the sign of each plane's distance from the axis says which is which), so a keyed shaft is readable however it arrives - a save and reload, another module, or an imported STEP file this session never authored. Re-measured 2026-09-21 on that path: identical volume, meshVolume and faceCount. faceCount is the 21 of the old pin; volume moves 8713.09 -> 8728.78 (+0.18%, inside the 0.5% band) because CADSB-1072 made the headline volume the construction-time closed form - 8713.09 is still what the mesh measures"}}},{"id":"recipe-bearing-housing-608","kind":"recipe","tier":2,"title":"Recipe: 608 bearing housing with flange bolt circle","summary":"Build a dia34x10 mm housing block with a through shaft-clearance bore, a dia22x7 mm blind pocket for a 608 bearing, and a 3-hole M3 flange bolt circle at radius 13 mm.","applies":["bearing","608","housing"],"basis":"Combines bearing-common-sizes-table's 608 dimensions with bearing-housing-shaft-fits into one buildable housing","sources":["skf-bearing-catalogue"],"tags":["recipe","bearing","608","housing"],"recipe":{"prompt":"Model a 608 bearing housing: dia34x10mm block, through shaft clearance bore, a 22x7mm bearing pocket, and a 3x M3 flange bolt circle at radius 13mm","steps":[{"tool":"cad_cylinder","args":{"r":17,"h":10},"note":"housing blank, 34mm OD x 10mm tall"},{"tool":"cad_drill_hole","args":{"of":"$0","center":[0,0],"type":"drill","diameter":8.5},"note":"through shaft-clearance bore, cut deepest (full-through) first"},{"tool":"cad_drill_hole","args":{"of":"$1","center":[0,0],"type":"drill","diameter":22,"depth":7},"note":"blind pocket for the 608 bearing (OD22 x width7)"},{"tool":"cad_hole_pattern","args":{"of":"$2","type":"drill","diameter":3.4,"pattern":{"kind":"circular","center":[0,0],"radius":13,"count":3}},"note":"3x M3 flange bolt circle"}],"expect":{"volume":5977.92,"faceCount":15,"watertight":true,"note":"measured 2026-09-19: representation change, not geometry: pinned while the boolean published a TESSELLATED B-rep (one planar face per triangle) and it now publishes an analytic one — faceCount 143 -> 15, volume +0.183%, pinned smaller (chord deficit of the faceted bore and counterbore)"}}}]},{"$schema":"nativecad-dfm-pack/1","id":"sheet-metal","title":"Sheet metal — brackets, enclosures, racks and press-brake formed parts","sector":"sheet-metal","version":"2026-09-03","summary":"Gauge and bend-radius tables, K-factor and bend-allowance formulas, flange/relief/hole-to-bend rules, hems/louvers/embosses, PEM and rivet hardware, 19-inch rack (EIA-310) and DIN-rail dimensions, NEMA/IP enclosure ratings, and the tests, standards, materials and recipes a laser-plus-press-brake part is held to.","aliases":["sheet metal","sheetmetal","bracket","rack","19 inch rack","rack ear","chassis","bend","flange","hem","louver","laser cut","press brake","u-bracket","l-bracket","sheet metal enclosure","metal enclosure"],"crossSector":false,"size":"full","sources":[{"id":"sendcutsend-sheet-cutting","title":"SendCutSend sheet cutting guidelines (laser/waterjet/router, min hole/radius)","url":"https://sendcutsend.com/guidelines/sheet-cutting/","accessed":"2026-09-03"},{"id":"sendcutsend-bending","title":"SendCutSend CNC bending service guidelines (materials, K-factor, bend limits, flange/relief)","url":"https://sendcutsend.com/services/cnc-bending/","accessed":"2026-09-03"},{"id":"sendcutsend-minmax","title":"SendCutSend min/max part sizes and per-material thickness","url":"https://sendcutsend.com/materials/min-max/","accessed":"2026-09-03"},{"id":"oshcut-capabilities","title":"OSH Cut capabilities (machines, materials, thicknesses, tolerances, tapping, bending)","url":"https://www.oshcut.com/capabilities","accessed":"2026-09-03"},{"id":"oshcut-minmax","title":"OSH Cut minimum/maximum material sizes","url":"https://www.oshcut.com/minimum-maximum-material-sizes","accessed":"2026-09-03"},{"id":"protolabs-sheet-metal","title":"Protolabs sheet metal design guide (bend radius, flange, relief, hem, hole-to-bend)","url":"https://www.protolabs.com/resources/design-tips/sheet-metal-design/","accessed":"2026-09-03"},{"id":"eia-310e","title":"EIA-310-E / ANSI/EIA 310 Cabinets, Racks, Panels and Associated Equipment (19-inch rack)","note":"no free official PDF; the 482.6mm/44.45mm/465.1mm numbers here are the same figures reproduced by Vertiv, APC and Wikipedia's 19-inch-rack technical summary of EIA-310-E","accessed":"2026-09-03"},{"id":"din-43880","title":"DIN 43880 Low-voltage switchgear — dimensions for modular installation devices (module width 17.5mm/18mm)","url":"https://www.din.de/en","accessed":"2026-09-03"},{"id":"iec-62262","title":"IEC 62262:2002 Degrees of protection against mechanical impact (IK code)","url":"https://webstore.iec.ch/publication/6968","accessed":"2026-09-03"},{"id":"iec-60529","title":"IEC 60529:1989+A2:2013 Degrees of protection provided by enclosures (IP Code)","url":"https://webstore.iec.ch/publication/2452","accessed":"2026-09-03"},{"id":"nema-250","title":"NEMA 250 Enclosures for Electrical Equipment (1000 Volts Maximum)","url":"https://www.nema.org/standards/view/enclosures-for-electrical-equipment-1-000-volts-maximum","accessed":"2026-09-03"},{"id":"asme-y14-5","title":"ASME Y14.5-2018 Dimensioning and Tolerancing (GD&T)","url":"https://www.asme.org/codes-standards/find-codes-standards/y14-5-dimensioning-tolerancing","accessed":"2026-09-03"},{"id":"pem-catalog","title":"PEM self-clinching fastener installation specifications (Penn Engineering)","url":"https://www.pemnet.com","accessed":"2026-09-03"},{"id":"matweb-sheet-alloys","title":"MatWeb material property datasheets (CRS 1008/1010, 5052-H32, 6061-T6, 304)","url":"https://www.matweb.com","accessed":"2026-09-03"}],"entries":[{"id":"sheet-gauge-thickness-table","kind":"dimension","tier":1,"title":"Sheet gauge to thickness, 24-7 gauge (steel/aluminium/stainless)","summary":"Common sheet-metal stock spans 24ga (0.6mm) to 7ga (4.5mm): e.g. 18ga steel 1.21mm, 14ga steel 1.90mm, 11ga steel 3.04mm, 7ga steel 4.55mm; aluminium and stainless use different gauge-to-mm tables at the same gauge number.","applies":["sheet metal","bracket","enclosure","chassis"],"value":{"table":[{"gauge":24,"steelMM":0.61,"alMM":0.51,"ssMM":0.61},{"gauge":20,"steelMM":0.91,"alMM":0.81,"ssMM":0.95},{"gauge":18,"steelMM":1.21,"alMM":1.02,"ssMM":1.21},{"gauge":16,"steelMM":1.52,"alMM":1.29,"ssMM":1.52},{"gauge":14,"steelMM":1.9,"alMM":1.63,"ssMM":1.91},{"gauge":11,"steelMM":3.04,"alMM":2.3,"ssMM":3.04},{"gauge":7,"steelMM":4.55,"alMM":3.57,"ssMM":4.55}],"unit":"mm"},"basis":"Manufacturers Standard Gauge (steel/stainless) vs the separate Aluminum B&S gauge series, extended to the shop-floor 24-7ga range SendCutSend/OSH Cut stock","sources":["sendcutsend-minmax","oshcut-minmax"],"tags":["gauge","thickness","steel","aluminum","stainless"],"see":["materials/sheet-metal-gauge-table"]},{"id":"inside-bend-radius-soft-metals","kind":"rule","tier":1,"title":"Inside bend radius, soft steel and aluminium (1x thickness)","summary":"For dead-soft mild steel and soft aluminium (5052-H32), the minimum inside bend radius equals the material thickness t (1xt); tighter radii crack the outer fiber in air bending.","applies":["mild steel","5052-H32 aluminium","bracket","enclosure"],"value":{"typical":1,"unit":"ratio"},"basis":"Press-brake air-bend minimum-radius guidance for soft/annealed sheet stock (SendCutSend/Protolabs)","sources":["sendcutsend-bending","protolabs-sheet-metal"],"tags":["bend radius","soft metal","press brake"],"check":{"process":"sheet_metal","rule":"bend_radius"}},{"id":"inside-bend-radius-6061-t6","kind":"rule","tier":1,"title":"Inside bend radius, 6061-T6 aluminium (1.5-2x thickness)","summary":"6061-T6 aluminium needs a minimum inside bend radius of 1.5-2x material thickness (vs 1x for soft 5052) because the T6 temper is far less ductile; bending at radius <1.5t routinely cracks the outer surface.","applies":["6061-T6 aluminium","bracket"],"value":{"min":1.5,"max":2,"unit":"ratio"},"basis":"6061-T6's temper drops elongation well below annealed/H32 aluminium; vendor bending calculators publish a wider minimum radius for it","sources":["sendcutsend-bending"],"tags":["bend radius","6061-t6","aluminum"],"check":{"process":"sheet_metal","rule":"bend_radius"},"see":["materials/al-6061-t6"]},{"id":"inside-bend-radius-stainless","kind":"rule","tier":2,"title":"Inside bend radius, stainless steel (0.5-1x thickness)","summary":"Stainless steel (304) tolerates a tighter minimum inside bend radius than mild steel, 0.5-1x material thickness, because of its higher work-hardening ductility before cracking — but it also springs back more, so overbend to compensate.","applies":["304 stainless","bracket","enclosure"],"value":{"min":0.5,"max":1,"unit":"ratio"},"basis":"Stainless sheet bending guidance: tighter achievable radius than mild steel at the same thickness, at the cost of higher springback","sources":["sendcutsend-bending","protolabs-sheet-metal"],"tags":["bend radius","stainless","304"],"check":{"process":"sheet_metal","rule":"bend_radius"}},{"id":"air-bend-v-die-opening","kind":"rule","tier":2,"title":"Air-bend V-die opening (6-8x material thickness)","summary":"A press-brake air-bend V-die opening is sized 6-8x the material thickness (e.g. 12-16mm die for 2mm steel); too narrow a die for the thickness overloads tonnage and distorts the bend radius achieved.","applies":["press brake","bracket"],"value":{"min":6,"max":8,"unit":"ratio"},"basis":"Standard air-bending die-selection rule of thumb, matched by SCS/OSH Cut die-keepout guidance (half the die width from the bend centreline)","sources":["sendcutsend-bending","protolabs-sheet-metal"],"tags":["v-die","press brake","tooling"]},{"id":"k-factor-bend-allowance","kind":"dimension","tier":1,"title":"K-factor and bend allowance formula (worked example)","summary":"K-factor (neutral-axis location as a fraction of thickness from the inside) runs 0.33-0.5 depending on material and bend radius; bend allowance BA = angle(rad) x (radius + K x thickness) — e.g. 90deg bend, R=2mm, t=2mm, K=0.44: BA = 1.5708 x (2 + 0.44x2) = 4.52mm.","applies":["flat pattern","sheet metal"],"value":{"min":0.33,"max":0.5,"typical":0.44,"unit":"ratio"},"basis":"Standard sheet-metal bend-allowance derivation; 0.33 for tight/soft bends, 0.5 for thick or fully work-hardened material (matches sheet_fold's air-bending R/T table)","sources":["sendcutsend-bending"],"tags":["k-factor","bend allowance","flat pattern"]},{"id":"bend-relief-dimensions","kind":"rule","tier":1,"title":"Bend relief notch: width and depth","summary":"A bend relief notch needs width >= 1x material thickness and depth >= bend radius + 1x thickness, or the un-relieved corner tears or bulges when the flange forms.","applies":["bracket","chassis","enclosure"],"value":{"min":1,"unit":"ratio"},"basis":"SendCutSend: \"Bend relief notches reduce stress on inner radii and prevent corner tearing or bulging\" / \"Without proper relief, a part cannot be bent accurately\"","sources":["sendcutsend-bending"],"tags":["bend relief","notch","press brake"],"check":{"process":"scs_bend","rule":"bend_relief"}},{"id":"min-flange-length","kind":"rule","tier":1,"title":"Minimum flange length (die-support floor)","summary":"A formed flange needs a minimum length of about 4x thickness + inside radius (or 2.5xt + half the die width, die-dependent) or the flange drops into the V-die and will not form straight; e.g. 2mm steel, R2 die-width 16mm needs roughly 10mm minimum flange.","applies":["bracket","u-bracket","flange"],"value":{"min":4,"unit":"ratio"},"basis":"SendCutSend: \"Minimum flange length depends on material and thickness\"; die-support physics floor is half the V-die opening plus one thickness","sources":["sendcutsend-bending","protolabs-sheet-metal"],"tags":["flange","minimum length","press brake"],"check":{"process":"scs_bend","rule":"flange_support_ratio"}},{"id":"hole-to-bend-distance","kind":"rule","tier":1,"title":"Hole-to-bend-line minimum distance","summary":"Keep every hole or cut feature at least 2.5x material thickness plus the bend radius away from a bend centreline (>= half the V-die width, per SCS/OSH Cut), or the feature distorts as the sheet stretches through the bend.","applies":["bracket","chassis"],"value":{"min":2.5,"unit":"ratio"},"basis":"SendCutSend: \"keep cut features at least 1/2 the die width away from the centerline of each bend\"; expressed against thickness and radius as the generic die-independent floor","sources":["sendcutsend-bending"],"tags":["hole to bend","die keepout"],"check":{"process":"scs_bend","rule":"hole_to_bend"}},{"id":"hole-to-edge-distance-sheet","kind":"rule","tier":2,"title":"Hole-to-edge minimum distance (sheet metal)","summary":"Keep every punched or laser-cut hole centre at least 2x material thickness from the sheet edge, so the remaining web does not tear out under load or during forming.","applies":["sheet metal","bracket","panel"],"value":{"min":2,"unit":"ratio"},"basis":"Standard sheet-metal punch/laser edge-distance guidance, matched by SCS's own web/spacing recommendations","sources":["sendcutsend-sheet-cutting","protolabs-sheet-metal"],"tags":["hole to edge","edge distance"]},{"id":"min-punch-hole-diameter","kind":"rule","tier":1,"title":"Minimum punched/laser hole diameter (>= 1x thickness)","summary":"A punched hole diameter must be at least equal to the material thickness (die-shear floor) — a smaller punch shears and tears the sheet instead of cleanly cutting; laser-cut holes relax this to 0.5x thickness on some vendor lasers.","applies":["sheet metal","punch","laser cut"],"value":{"min":1,"unit":"ratio"},"basis":"ops/dfmRules.js sheet_metal pack: min_hole_diameter = 1x material thickness; SCS laser publishes 0.5x thickness for their fiber laser specifically","sources":["sendcutsend-sheet-cutting"],"tags":["hole diameter","punch","laser"],"check":{"process":"sheet_metal","rule":"min_hole_diameter"}},{"id":"laser-kerf-width","kind":"dimension","tier":1,"title":"Laser kerf width","summary":"A fiber-laser kerf (the width of material removed by the beam) runs 0.1-0.3mm depending on thickness and material; the minimum internal corner radius and minimum cuttable feature both scale off this number.","applies":["laser cut","sheet metal"],"value":{"min":0.1,"max":0.3,"unit":"mm"},"basis":"Fiber laser kerf published across sheet-cutting vendor guidelines; the beam cannot turn inside its own kerf so a sharper corner comes back rounded at ~kerf radius","sources":["sendcutsend-sheet-cutting"],"tags":["kerf","laser","tolerance"],"check":{"process":"scs_laser","rule":"min_internal_corner_radius"}},{"id":"min-feature-size-laser-cut","kind":"rule","tier":2,"title":"Minimum cuttable feature size on laser-cut sheet (>= 1x thickness)","summary":"A slot, tab or thin web cut into sheet by laser should be at least 1x material thickness wide — thinner features warp from cutting heat or fall out of the sheet before the part is fully cut free.","applies":["sheet metal","laser cut"],"value":{"min":1,"unit":"ratio"},"basis":"Standard laser-cutting minimum-feature guidance; matches the sheet_metal pack's min_wall_thickness floor","sources":["sendcutsend-sheet-cutting"],"tags":["minimum feature","laser","slot"],"check":{"process":"sheet_metal","rule":"min_wall_thickness"}},{"id":"tab-notch-minimum-width","kind":"rule","tier":2,"title":"Tab and notch minimum width (>= 1.5x thickness)","summary":"A tab (for a slot-and-tab joint) or a notch cut into a sheet-metal edge should be at least 1.5x material thickness wide, or it bends or shears off during handling and assembly rather than locating the part.","applies":["sheet metal","tab and slot","assembly"],"value":{"min":1.5,"unit":"ratio"},"basis":"Standard sheet-metal tab/notch design guidance for slot-and-tab self-fixturing assemblies","sources":["protolabs-sheet-metal"],"tags":["tab","notch","slot and tab"]},{"id":"corner-relief-dogbone-sheet","kind":"feature","tier":1,"title":"Corner relief (dogbone/T-bone) for CNC-routed sheet","summary":"A square internal corner cannot be CNC-routed by a round bit; add a 3.175mm dogbone (one bit-radius circle on the bisector) or T-bone relief so a square mating part still seats — cad_corner_relief models this, never fillet the corner.","applies":["cnc router","sheet metal","enclosure"],"value":{"typical":3.175,"unit":"mm"},"basis":"SendCutSend/OSH Cut router guidance: \"standard chamfers and fillets don't solve this; dogbones do\" — filleting a router corner adds material where there is already too much","sources":["sendcutsend-sheet-cutting"],"tags":["corner relief","dogbone","tbone","router"]},{"id":"rack-19-inch-width","kind":"dimension","tier":1,"title":"19-inch rack panel width (EIA-310)","summary":"A 19-inch rack panel is 482.6mm (19.00in) wide overall, with the mounting-hole centres 465.1mm (18.31in) apart — the panel is wider than the hole spacing by the ear width on each side.","applies":["19 inch rack","rack ear","rack panel"],"value":{"value":482.6,"unit":"mm"},"basis":"EIA-310-E standard rack width, reproduced across every 19-inch rack mechanical reference","sources":["eia-310e"],"tags":["rack","eia-310","19 inch","width"]},{"id":"rack-unit-height-1u","kind":"dimension","tier":1,"title":"Rack unit (1U) height","summary":"One rack unit (1U) is 44.45mm (1.75in) tall; panel heights are specified in whole U (1U, 2U, 3U...) and a panel's actual height is slightly under nU to clear the rail (e.g. 1U panel is typically 44.20mm).","applies":["19 inch rack","rack panel","rack ear"],"value":{"value":44.45,"unit":"mm"},"basis":"EIA-310-E defines 1U = 1.75in; three rack-unit hole groups repeat every 44.45mm","sources":["eia-310e"],"tags":["rack","1u","eia-310","unit height"]},{"id":"rack-mounting-hole-pattern","kind":"dimension","tier":1,"title":"Rack mounting hole spacing (6.35/15.88/15.88mm repeat)","summary":"Within each 44.45mm (1U) rack-rail hole group there are three holes spaced 6.35mm (0.25in), 15.88mm (0.625in), 15.88mm (0.625in) apart, repeating every U; hole centres sit 465.1mm apart across the rack width.","applies":["19 inch rack","rack ear"],"value":{"table":[{"gap1":6.35,"gap2":15.88,"gap3":15.88}],"unit":"mm"},"basis":"EIA-310-E universal hole spacing pattern for rack rails","sources":["eia-310e"],"tags":["rack","hole pattern","eia-310"]},{"id":"material-thickness-stock-range","kind":"rule","tier":1,"title":"Material thickness must fall in the vendor's stocked range","summary":"A sheet-metal design's thickness must land inside the shop's stocked range (SCS bending 0.030-0.250in / 0.76-6.35mm; OSH Cut laser 0.02-1.0in depending on material) — an unstocked thickness is refused, not approximated to the nearest stocked gauge.","applies":["sheet metal","laser cut","press brake"],"value":{"min":0.76,"max":6.35,"unit":"mm"},"basis":"SendCutSend CNC bending stocks 0.030-0.250in material; thicker or thinner stock is not on their bending line","sources":["sendcutsend-bending","oshcut-minmax"],"tags":["material thickness","stock range"],"check":{"process":"scs_bend","rule":"material_thickness"}},{"id":"part-envelope-sheet-laser","kind":"rule","tier":1,"title":"Sheet part envelope (minimum and maximum flat size)","summary":"A flat laser-cut part must be at least ~0.1in (2.5mm) and no larger than the vendor's sheet: OSH Cut sheets to 119in x 47in (3023 x 1194mm), SendCutSend bending flats 0.375in x 1.5in minimum up to 30in x 44in maximum.","applies":["sheet metal","laser cut","flat pattern"],"value":{"min":2.5,"max":3023,"unit":"mm"},"basis":"OSH Cut/SendCutSend published sheet and flat-blank size limits","sources":["oshcut-minmax","sendcutsend-minmax"],"tags":["part envelope","sheet size"],"check":{"process":"oshcut_laser","rule":"part_envelope"}},{"id":"min-internal-corner-radius-sheet","kind":"rule","tier":1,"title":"Minimum internal corner radius, cut sheet","summary":"An internal (concave) corner cut into flat sheet should carry a radius of at least 0.5x material thickness — sharper corners are the notch a formed part cracks from, and on a router route a truly square corner is not cuttable at all without a relief.","applies":["sheet metal","laser cut","bracket"],"value":{"min":0.5,"unit":"ratio"},"basis":"ops/dfmRules.js sheet_metal / oshcut_laser: min_internal_corner_radius = 0.5x material thickness","sources":["sendcutsend-sheet-cutting","oshcut-capabilities"],"tags":["internal corner","radius","stress riser"],"check":{"process":"sheet_metal","rule":"min_internal_corner_radius"}},{"id":"hem-types-open-closed-teardrop","kind":"feature","tier":2,"title":"Hem types: open, closed, teardrop","summary":"An open hem (180deg fold, gap left) needs a minimum inside diameter of one material thickness; a closed hem folds flat against itself; a teardrop hem leaves a small rolled gap for a wire or panel edge to hook into — all measured at the fold, not the free edge.","applies":["sheet metal","edge finish","safety edge"],"value":{"min":1,"unit":"ratio"},"basis":"Standard sheet-metal hemming practice: minimum inside radius before the tooling crushes the fold flat","sources":["protolabs-sheet-metal","sendcutsend-bending"],"tags":["hem","open hem","closed hem","teardrop hem"]},{"id":"curl-feature-sheet","kind":"feature","tier":2,"title":"Curl (rolled edge)","summary":"A curl rolls a sheet-metal edge into a partial or full circle (e.g. a hinge knuckle or a safety edge) with inside radius typically 1-3x material thickness; tighter curls need progressive tooling rather than a single press-brake pass.","applies":["sheet metal","hinge","edge finish"],"value":{"min":1,"max":3,"unit":"ratio"},"basis":"Standard sheet-metal curling practice for hinge knuckles and rolled safety edges","sources":["protolabs-sheet-metal"],"tags":["curl","rolled edge","hinge"]},{"id":"louver-dimensions","kind":"feature","tier":2,"title":"Louver minimum height and spacing","summary":"A stamped/formed ventilation louver needs a minimum formed height of 1.5x material thickness to open enough airflow area, with louvers spaced at least their own height apart so the press-brake or stamping die does not collide between adjacent forms.","applies":["ventilation","enclosure","louver"],"value":{"min":1.5,"unit":"ratio"},"basis":"Standard sheet-metal louver forming guidance: formed lip height and die-to-die spacing on a progressive louver punch","sources":["protolabs-sheet-metal"],"tags":["louver","ventilation","spacing"]},{"id":"emboss-dimensions-sheet","kind":"feature","tier":2,"title":"Emboss depth and radius","summary":"A stiffening emboss (raised bead) in sheet should use a depth no more than 3-4x material thickness with a radius at least equal to thickness at the transition, or the sheet thins excessively at the corner of the emboss and cracks.","applies":["sheet metal","stiffening bead","panel"],"value":{"max":4,"unit":"ratio"},"basis":"Standard sheet-metal embossing/bead-forming guidance limiting local thinning at the bead radius","sources":["protolabs-sheet-metal"],"tags":["emboss","bead","stiffening"]},{"id":"countersink-max-depth-sheet","kind":"rule","tier":2,"title":"Countersink maximum depth in thin sheet (<= 0.6x thickness)","summary":"A countersink formed or cut into sheet metal should not exceed about 0.6x material thickness deep, or the remaining wall under the countersink is too thin to hold the fastener head without dishing or punching through.","applies":["sheet metal","countersink","fastener"],"value":{"max":0.6,"unit":"ratio"},"basis":"Standard sheet-metal countersink guidance: a countersink deeper than ~60% of thickness leaves an unsupported thin annulus","sources":["protolabs-sheet-metal"],"tags":["countersink","fastener","depth"]},{"id":"spot-weld-flange-width","kind":"rule","tier":2,"title":"Spot-weld flange width (>= 3x thickness + 8mm)","summary":"A flange intended for resistance spot welding needs a minimum width of about 3x material thickness plus 8mm, to clear the weld nugget and electrode tip without the flange edge distorting or the nugget breaking through to the free edge.","applies":["spot weld","weldment","sheet metal assembly"],"value":{"min":8,"unit":"mm"},"basis":"Standard resistance-spot-welding flange-width guidance for sheet-metal weldments","sources":["protolabs-sheet-metal"],"tags":["spot weld","flange","weldment"]},{"id":"rivet-flange-width-sheet","kind":"fastener","tier":2,"title":"Rivet flange width and hole size","summary":"A pop-rivet flange needs a hole ~0.1mm over the rivet shank (1/8in shank -> 3.3mm hole) and enough flange width either side of the hole (>= 2x hole diameter to the edge) to keep the rivet from tearing out under shear.","applies":["pop rivet","seam","sheet metal assembly"],"basis":"Industrial blind-rivet hole-size chart and standard edge-distance practice for riveted seams","sources":["pem-catalog"],"tags":["rivet","flange","seam"],"see":["hardware/pop-rivet-hole-sizes"],"value":{"min":2,"unit":"ratio"}},{"id":"pem-standoff-hole-sheet","kind":"fastener","tier":2,"title":"PEM self-clinching standoff/nut hole sizing","summary":"A self-clinching PEM nut or standoff needs a punched hole sized to its own series (e.g. CLS M4 = 5.41mm) and a minimum sheet thickness of roughly 1.5x the fastener's pitch diameter, or the sheet cannot resist the fastener pushing out under torque or shear.","applies":["pem","standoff","self-clinching nut","chassis"],"basis":"PEM (Penn Engineering) self-clinching fastener installation specification, CLS series","sources":["pem-catalog"],"tags":["pem","standoff","self-clinching"],"see":["hardware/pem-self-clinching-nut-holes"],"value":{"min":1.5,"unit":"ratio"}},{"id":"powder-coat-thickness-allowance","kind":"tolerance","tier":2,"title":"Powder-coat build-up allowance (60-120 microns per side)","summary":"Powder coat adds 60-120 micrometres of finish per side (2-4 mils) — mating features, press-fit holes and thread clearances must be sized before coating to still fit after, or masked during coating.","applies":["powder coat","finish","enclosure"],"value":{"min":60,"max":120,"unit":"um"},"basis":"Typical powder-coat dry-film-thickness range for a single coat on fabricated sheet metal","sources":["protolabs-sheet-metal"],"tags":["powder coat","finish","tolerance"]},{"id":"masked-threads-powder-coat","kind":"process","tier":2,"title":"Masking threaded holes and mating faces before powder coat","summary":"Tapped holes, PEM hardware and any face that must stay flat or conductive (ground straps, bus-bar contacts) are masked with silicone plugs or tape before powder coating, then unmasked — an unmasked M4 thread gains 60-120um of coating per side and will not accept the mating screw.","applies":["powder coat","threaded hole","grounding"],"basis":"Standard powder-coat shop practice for threaded and electrically-conductive features","sources":["protolabs-sheet-metal"],"tags":["masking","powder coat","thread"]},{"id":"galvanised-vs-stainless-corrosion","kind":"material","tier":2,"title":"Galvanised steel (G90) vs stainless for corrosion resistance","summary":"Hot-dip galvanised G90 carries 0.90 oz/sq ft zinc per side (~23um) and resists corrosion sacrificially — cheaper than stainless, but the coating is consumed at cut edges and welds; 304/316 resist through the bulk at 2-3x the cost.","applies":["outdoor enclosure","corrosion resistance","chassis"],"value":{"value":23,"unit":"um"},"basis":"ASTM A653 G90 coating designation (0.90 oz/ft2 total both sides, hot-dip galvanised sheet)","sources":["matweb-sheet-alloys"],"tags":["galvanised","g90","stainless","corrosion"]},{"id":"flat-pattern-export-note","kind":"process","tier":2,"title":"Flat-pattern export for shop quoting (contour DXF)","summary":"Export a folded sheet-metal body as flat-dxf (cad_export_body format 1 of 4 layers) — OUTLINE, BEND_UP/BEND_DOWN centrelines, TANGENT keepouts and a TEXT bend schedule — the file a laser-plus-brake shop quotes from.","applies":["flat pattern","dxf export","quoting"],"basis":"NativeCAD sheet_fold/sheet_box report a developed flatPattern alongside the solid; flat-dxf is the format vendors like SendCutSend/OSH Cut accept","sources":["sendcutsend-sheet-cutting","oshcut-capabilities"],"tags":["flat pattern","dxf","export"]},{"id":"tolerance-laser-cut-profile","kind":"tolerance","tier":2,"title":"Laser-cut profile tolerance (+/-0.1mm)","summary":"A fiber-laser-cut sheet-metal profile holds about +/-0.1mm (+/-0.005in) on cut features under typical shop tolerances; thermal expansion on long thin parts (especially aluminium) can widen this on the longest dimension.","applies":["laser cut","sheet metal","tolerance"],"value":{"value":0.1,"unit":"mm"},"basis":"OSH Cut/SendCutSend published laser-cut profile tolerance","sources":["oshcut-capabilities","sendcutsend-sheet-cutting"],"tags":["tolerance","laser cut"]},{"id":"tolerance-bend-angle","kind":"tolerance","tier":2,"title":"Press-brake bend angle tolerance (+/-0.5deg to +/-1deg)","summary":"A single press-brake bend holds about +/-0.5 to +/-1 degree of angular tolerance on bends up to roughly 600mm (24in) long; longer bends or thin/springy material (polycarbonate, stainless) widen the achievable tolerance.","applies":["press brake","bend","tolerance"],"value":{"min":0.5,"max":1,"unit":"deg"},"basis":"SendCutSend published angular bend tolerance (+/-1deg on bends up to 24in)","sources":["sendcutsend-bending"],"tags":["tolerance","bend angle","press brake"]},{"id":"tolerance-bend-to-edge","kind":"tolerance","tier":2,"title":"Bend-to-edge tolerance (+/-0.25mm)","summary":"The distance from a bend line to a cut edge or feature holds about +/-0.25mm (+/-0.015in) after forming — springback and sheet slip in the brake are the dominant error sources, not the original laser-cut accuracy.","applies":["press brake","bend","tolerance"],"value":{"value":0.25,"unit":"mm"},"basis":"SendCutSend published bend-to-edge tolerance (+/-0.015in / 0.381mm, here rounded to the commonly quoted 0.25mm shop figure)","sources":["sendcutsend-bending"],"tags":["tolerance","bend to edge"]},{"id":"din-43880-module-widths","kind":"dimension","tier":2,"title":"DIN 43880 module widths (17.5mm and multiples)","summary":"DIN 43880 modular devices (breakers, terminal blocks) on TH35 DIN rail are sized in module widths of 17.5mm (a full module) or 18mm depending on manufacturer convention; an enclosure sized for N modules needs an internal width of N x 17.5mm plus end-clamp clearance.","applies":["din rail","enclosure","electrical panel"],"value":{"value":17.5,"unit":"mm"},"basis":"DIN 43880 modular device width standard for low-voltage switchgear on TH35 rail","sources":["din-43880"],"tags":["din 43880","module width","din rail"]},{"id":"nema-ip-enclosure-ratings","kind":"standard","tier":2,"title":"NEMA 1/3R/4/4X/12 vs IP enclosure rating conventions","summary":"NEMA 1 (indoor) < NEMA 12 (dust/dripping) < NEMA 3R (rain/sleet) < NEMA 4 (hosedown) < NEMA 4X (plus corrosion resistance); NEMA is a North American test rating, IP (IEC 60529) a numeric code — NEMA 4 maps loosely to IP66, not interchangeably.","applies":["enclosure","outdoor equipment","electrical panel"],"basis":"NEMA 250 enclosure type definitions vs IEC 60529 IP code — different test regimes producing loosely comparable outcomes","sources":["nema-250","iec-60529"],"tags":["nema","ip rating","enclosure","ingress"]},{"id":"rack-ear-thickness","kind":"dimension","tier":2,"title":"Rack ear (rack mount flange) thickness","summary":"A 19-inch rack-mount ear is typically 2-3mm thick sheet steel or aluminium — thinner ears flex under the mounting screws and misalign the rack-hole pattern; 2mm is common for light equipment, 3mm for heavier chassis.","applies":["rack ear","19 inch rack","chassis"],"value":{"min":2,"max":3,"unit":"mm"},"basis":"Common commercial rack-ear gauge across 1U-4U equipment","sources":["eia-310e"],"tags":["rack ear","thickness","rack mount"]},{"id":"rack-rail-hole-pattern","kind":"dimension","tier":2,"title":"Rack rail hole pattern: 7.1mm square or M6 tapped","summary":"A rack rail's mounting hole is either a 7.1mm (0.28in) square hole (for a cage nut) or an M6 tapped hole directly — the same 465.1mm horizontal spacing and 3-hole-per-U vertical group applies to both conventions.","applies":["rack rail","19 inch rack","cage nut"],"value":{"value":7.1,"unit":"mm"},"basis":"EIA-310-E universal square-hole rack rail convention, alongside the common M6-tapped-rail variant","sources":["eia-310e"],"tags":["rack rail","square hole","m6","cage nut"]},{"id":"slot-orientation-forming","kind":"rule","tier":2,"title":"Slot orientation relative to a bend line","summary":"Cut a slot so its long axis runs perpendicular (90deg) to an adjacent bend line, not parallel — a slot parallel to and close to a bend concentrates strain and is far more likely to crack when the flange forms.","applies":["sheet metal","slot","bend"],"basis":"Standard press-brake design guidance on slot orientation relative to grain direction and bend lines","sources":["protolabs-sheet-metal"],"tags":["slot","orientation","bend"]},{"id":"crs-1008-1010-sheet","kind":"material","tier":2,"title":"Cold-rolled steel CRS 1008/1010 (sheet stock)","summary":"CRS 1008/1010: 7.87 g/cm3, yield ~180-280MPa, UTS ~300-365MPa — the default cheap, weldable, formable sheet-metal steel for brackets and enclosures where corrosion resistance is handled by paint or plating.","applies":["sheet metal","bracket","enclosure","weldment"],"value":{"table":[{"density":7.87,"yield":220,"uts":330,"elongPct":32,"costClass":1}]},"basis":"MatWeb 1008/1010 cold-rolled sheet datasheet; SAE J403 low-carbon composition","sources":["matweb-sheet-alloys"],"tags":["steel","1008","1010","cold rolled"]},{"id":"hrpo-steel-sheet","kind":"material","tier":2,"title":"Hot-rolled pickled and oiled steel (HRPO)","summary":"HRPO: hot-rolled steel that has been acid-pickled to remove mill scale and lightly oiled to prevent rust in transit — cheaper than cold-rolled for thicker gauges (>= 11ga / 3mm) where CRS surface finish is not required, common for heavier structural brackets.","applies":["structural bracket","heavy gauge","weldment"],"basis":"Standard steel-service-centre product description for HRPO sheet/plate stock","sources":["matweb-sheet-alloys"],"tags":["steel","hrpo","hot rolled"]},{"id":"galvanised-g90-sheet","kind":"material","tier":2,"title":"Galvanised steel G90 (sheet)","summary":"G90 hot-dip galvanised steel: CRS base with 0.90 oz/sq ft total zinc coating (~23 microns), giving corrosion resistance for outdoor/damp enclosures at a fraction of stainless cost; welds and cut edges lose the coating and need cold-galv touch-up.","applies":["outdoor enclosure","hvac","corrosion resistance"],"value":{"table":[{"density":7.87,"coatingUm":23,"costClass":1}]},"basis":"ASTM A653 G90 designation for hot-dip galvanised sheet steel","sources":["matweb-sheet-alloys"],"tags":["steel","galvanised","g90","corrosion"]},{"id":"al-5052-h32-sheet-see","kind":"material","tier":2,"title":"Aluminium 5052-H32 for sheet-metal forming","summary":"5052-H32: 2.68 g/cm3, yield 193MPa, UTS 228MPa — the standard sheet-metal aluminium alloy, chosen over 6061 for forming because it bends to a tighter radius (1x thickness vs 1.5-2x) without cracking.","applies":["sheet metal","bracket","enclosure"],"basis":"MatWeb 5052-H32 datasheet; the alloy vendors stock specifically for its forming ductility","sources":["matweb-sheet-alloys"],"tags":["aluminum","5052","sheet metal"],"see":["materials/al-5052-h32"]},{"id":"ss-304-2b-sheet","kind":"material","tier":2,"title":"Stainless steel 304, 2B finish (sheet)","summary":"304 stainless in 2B (cold-rolled, bright, mill) finish: 8.00 g/cm3, yield 215MPa, UTS 505MPa — the standard corrosion-resistant, food-safe and washdown sheet-metal stainless, at 0.5-1x thickness minimum bend radius.","applies":["food equipment","washdown enclosure","chassis"],"basis":"MatWeb 304 annealed datasheet; 2B is the standard commercial sheet mill finish","sources":["matweb-sheet-alloys"],"tags":["stainless","304","2b finish"],"see":["materials/ss-304"]},{"id":"test-ik-impact-sheet-enclosure","kind":"test","tier":2,"title":"IK mechanical impact rating (IEC 62262) for a sheet enclosure","summary":"IK07 (2J) is a common minimum for indoor sheet enclosures, IK10 (20J) for public/outdoor gear — a steel hammer dropped on the face; geometry response is thicker gauge or a rib/emboss behind the impact zone, since a flat panel dents below IK08.","applies":["outdoor enclosure","public-space equipment","rack panel"],"value":{"min":2,"max":20,"unit":"Nm"},"basis":"IEC 62262 IK code, impact energy by rating","sources":["iec-62262"],"tags":["ik rating","impact test","enclosure"]},{"id":"test-ip-ingress-sheet-enclosure","kind":"test","tier":2,"title":"IP ingress rating test (IEC 60529) for a sheet enclosure","summary":"IP54 (dust-protected, splash-protected) is a common indoor minimum; IP65/IP66 (dust-tight, jet-protected) needs gasketed seams and cable glands — the geometry demand is a continuous gasket groove/flange at every seam and penetration.","applies":["enclosure","outdoor equipment","gasketed lid"],"basis":"IEC 60529 IP code test methodology (dust chamber, water jet/immersion by digit)","sources":["iec-60529"],"tags":["ip rating","ingress","gasket"]},{"id":"test-rack-ear-load-deflection","kind":"test","tier":2,"title":"Rack-ear / shelf load-deflection test","summary":"A 1U rack shelf loaded to 20kg at mid-span should deflect no more than about 2mm to avoid visible sag and connector strain at the rear of mounted equipment — tested as a static load on the front rack ears with the rear unsupported, the worst case for a cantilevered shelf.","applies":["rack shelf","rack ear","structural"],"value":{"value":2,"unit":"mm"},"basis":"Common commercial rack-shelf load-deflection acceptance figure (20kg static load, <=2mm sag) used across server/AV rack-shelf datasheets","sources":["eia-310e"],"tags":["load test","deflection","rack shelf"]},{"id":"test-salt-spray-coated-sheet","kind":"test","tier":3,"title":"Salt-spray (fog) corrosion test for coated sheet parts","summary":"ASTM B117 rates a coating by hours to first red rust: galvanised steel ~200-500h, powder-coat 500-1000h+ depending on pretreatment, bare 304 stainless 1000h+ — specify the hour figure the finish must meet, not just \"salt spray tested\".","applies":["outdoor enclosure","coated sheet metal","corrosion test"],"value":{"min":200,"max":1000,"unit":"h"},"basis":"ASTM B117 neutral salt-spray test, typical hours-to-red-rust ranges reported across powder-coat and galvanised finish suppliers","sources":["matweb-sheet-alloys"],"tags":["salt spray","corrosion test","coating"]},{"id":"standard-eia-310","kind":"standard","tier":2,"title":"EIA-310-E: 19-inch rack cabinets and panels","summary":"EIA-310-E defines the 19-inch rack system: 482.6mm panel width, 465.1mm hole spacing, 44.45mm rack unit (1U), and the 6.35/15.88/15.88mm three-hole vertical repeat — every 19-inch rack ear, shelf and blank panel dimension in this pack derives from it.","applies":["19 inch rack","rack panel","rack ear"],"basis":"ANSI/EIA-310-E Cabinets, Racks, Panels, and Associated Equipment","sources":["eia-310e"],"tags":["standard","eia-310","rack"]},{"id":"standard-din-43880","kind":"standard","tier":3,"title":"DIN 43880: modular device dimensions for DIN rail","summary":"DIN 43880 standardises the width (17.5mm module), depth and TH35 rail foot of modular electrical devices — breakers, terminal blocks, contactors — so an enclosure can be sized in whole modules without knowing the exact device.","applies":["din rail","electrical panel","enclosure"],"basis":"DIN 43880 Low-voltage switchgear and controlgear for household and similar use — dimensions","sources":["din-43880"],"tags":["standard","din 43880","din rail"]},{"id":"standard-iec-62262-ik","kind":"standard","tier":3,"title":"IEC 62262: IK impact protection code","summary":"IEC 62262 defines the IK impact-energy scale (IK00 none through IK10 20J) for enclosures, tested with a calibrated hammer or pendulum on the face — a mechanical-impact standard, distinct from IEC 60529's ingress code.","applies":["enclosure","impact protection"],"basis":"IEC 62262:2002 Degrees of protection against mechanical impact for electrical equipment","sources":["iec-62262"],"tags":["standard","ik rating","iec 62262"]},{"id":"standard-asme-y14-5-sheet","kind":"standard","tier":3,"title":"ASME Y14.5 for sheet-metal drawings","summary":"ASME Y14.5 GD&T on sheet metal: flatness/profile call-outs read on the FORMED part, not the flat blank, and a bend-line dimension is tangent-to-tangent unless stated outside-mould-line — mixing conventions is the top print dispute.","applies":["drawing","gd&t","sheet metal"],"basis":"ASME Y14.5-2018 Dimensioning and Tolerancing, sheet-metal application notes","sources":["asme-y14-5"],"tags":["standard","gd&t","asme y14.5"]},{"id":"standard-nema-250","kind":"standard","tier":2,"title":"NEMA 250: enclosure type ratings","summary":"NEMA 250 defines NEMA 1/3R/4/4X/12 enclosure ratings by a North American test regime (rain, hose, dust, corrosion, ice), distinct from IEC 60529's IP code — used wherever a UL/NEMA-listed enclosure is specified over an IP-rated one.","applies":["enclosure","electrical panel","outdoor equipment"],"basis":"NEMA 250 Enclosures for Electrical Equipment (1000 Volts Maximum)","sources":["nema-250"],"tags":["standard","nema 250","enclosure rating"]},{"id":"recipe-1u-rack-ear","kind":"recipe","tier":2,"title":"Recipe: 1U rack ear with EIA-310 mounting slots","summary":"Build a 44.45mm (1U) tall, 2mm-thick rack ear as a folded sheet-metal L-bracket via cad_sheet_fold: a 25mm front mounting flange over a 90-degree R2 bend into a 20mm side flange running the full 1U height.","applies":["rack ear","1u rack","19 inch rack"],"basis":"Combines rack-19-inch-width, rack-unit-height-1u, rack-mounting-hole-pattern and rack-ear-thickness into one buildable part","sources":["eia-310e"],"tags":["recipe","rack ear","1u"],"recipe":{"prompt":"Model a 1U rack ear: 44.45mm tall, 2mm thick, folded 90 degrees with a 25mm mounting flange and a 20mm side flange","steps":[{"tool":"cad_sheet_fold","args":{"thickness":2,"width":44.45,"baseFlange":25,"bends":[{"angle":90,"radius":2,"flange":20}]},"note":"L-shaped rack-ear profile: 25mm front mounting flange, 90deg fold over R2, 20mm side flange, extruded 44.45mm (1U) along the bend line — EIA-310 mounting holes/slots would be a follow-up cad_drill_hole/cad_pad pass on the folded face"}],"expect":{"volume":4419.43,"faceCount":10,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-u-bracket-two-bends","kind":"recipe","tier":2,"title":"Recipe: U-bracket with two bends and mounting holes","summary":"Build a 2mm-thick U-bracket (channel) 40mm wide: 30mm base flange, two 90-degree bends over R2 into 25mm side walls, using cad_sheet_fold — base flange doubles the side-flange length per SendCutSend's U-channel guidance (base >= 2x flange).","applies":["u-bracket","channel","bracket"],"basis":"Combines inside-bend-radius-soft-metals, min-flange-length and bend-relief-dimensions into one folded channel","sources":["sendcutsend-bending"],"tags":["recipe","u-bracket","channel"],"recipe":{"prompt":"Model a U-bracket: 2mm steel, 40mm wide, 30mm base with two 90 degree bends over R2 into 25mm side walls","steps":[{"tool":"cad_sheet_fold","args":{"thickness":2,"width":40,"baseFlange":25,"bends":[{"angle":90,"radius":2,"flange":30},{"angle":-90,"radius":2,"flange":25}]},"note":"left wall (25mm) as the starting flange, +90 bend into the 30mm base, -90 bend back into the right wall (25mm) — a symmetric U-channel"}],"expect":{"volume":7153.98,"faceCount":14,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-folded-enclosure-base","kind":"recipe","tier":2,"title":"Recipe: folded enclosure base with corner relief","summary":"Build a 200x120mm sheet-metal enclosure base, 1.5mm thick, with 40mm walls folded up on all four sides (cad_sheet_box) and a 10mm inward lip on the north/south walls, corner-notched automatically by the box verb.","applies":["enclosure","chassis","tray"],"basis":"Combines sheet-gauge-thickness-table, inside-bend-radius-soft-metals and corner-relief-dogbone-sheet into one folded chassis","sources":["sendcutsend-bending"],"tags":["recipe","enclosure","chassis","sheet box"],"recipe":{"prompt":"Model a folded sheet-metal enclosure base: 200x120mm, 1.5mm thick, 40mm walls on all four sides with a 10mm inward lip on north and south","steps":[{"tool":"cad_sheet_box","args":{"thickness":1.5,"base":{"length":200,"width":120},"flanges":{"n":{"bends":[{"angle":90,"radius":2,"flange":40},{"angle":90,"radius":2,"flange":10,"notch":{"gap":10.5}}]},"s":{"bends":[{"angle":90,"radius":2,"flange":40},{"angle":90,"radius":2,"flange":10,"notch":{"gap":10.5}}]},"e":{"bends":[{"angle":90,"radius":2,"flange":40},{"angle":90,"radius":2,"flange":10}]},"w":{"bends":[{"angle":90,"radius":2,"flange":40},{"angle":90,"radius":2,"flange":10}]}},"notch":{"gap":0}},"note":"chassis base with inward lips on all four walls; N/S lips notched to clear the E/W lips' reach"}],"expect":{"volume":91391.66,"faceCount":54,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}}]},{"$schema":"nativecad-dfm-pack/1","id":"standards-testing","title":"Standards & testing — tolerances, fits, surface finish, environmental and compliance tests","sector":"standards-testing","version":"2026-09-03","summary":"Cross-sector reference for what a part is measured and tested against: ISO 2768 general tolerances, ISO 286 fits, surface finish by process, and the drop/vibration/IP/salt-spray/UL flammability tests that come back as geometry requirements.","aliases":["tolerance","tolerances","gd&t","gdt","iso 2768","surface finish","fit","test","testing","drop test","ip rating","ip67","vibration","salt spray","ul 94","rohs","inspection"],"crossSector":true,"size":"full","sources":[{"id":"iso-2768","title":"ISO 2768-1/-2:1989 General tolerances — linear/angular and geometrical","url":"https://www.iso.org/standard/7748.html","accessed":"2026-09-03"},{"id":"iso-286","title":"ISO 286-1/-2:2010 ISO code system for tolerances on linear sizes","url":"https://www.iso.org/standard/45975.html","accessed":"2026-09-03"},{"id":"asme-y14.5","title":"ASME Y14.5-2018 Dimensioning and Tolerancing (GD&T)","url":"https://www.asme.org/codes-standards/find-codes-standards/y14-5-dimensioning-tolerancing","accessed":"2026-09-03"},{"id":"iso-1101","title":"ISO 1101:2017 Geometrical tolerancing (form, orientation, location, run-out)","url":"https://www.iso.org/standard/66777.html","accessed":"2026-09-03"},{"id":"iso-4287","title":"ISO 4287:1997 Surface texture, profile method (Ra, Rz)","url":"https://www.iso.org/standard/10132.html","accessed":"2026-09-03"},{"id":"protolabs-tol","title":"Protolabs design tips — standard tolerances by process","url":"https://www.protolabs.com/resources/design-tips/","accessed":"2026-09-03"},{"id":"xometry-tol","title":"Xometry manufacturing tolerance and surface finish guides","url":"https://www.xometry.com/resources/","accessed":"2026-09-03"},{"id":"iec-60068-2-31","title":"IEC 60068-2-31:2008 Test Ec: Rough handling shocks (free fall)","url":"https://webstore.iec.ch/publication/972","accessed":"2026-09-03"},{"id":"mil-std-810","title":"MIL-STD-810H Method 516.8 Shock (transit drop)","url":"https://www.atec.army.mil/","accessed":"2026-09-03"},{"id":"iec-60068-2-32","title":"IEC 60068-2-32:1975 Test Ed: Free fall (tumble)","url":"https://webstore.iec.ch/publication/1029","accessed":"2026-09-03"},{"id":"iec-60068-2-6","title":"IEC 60068-2-6:2007 Test Fc: Vibration (sinusoidal)","url":"https://webstore.iec.ch/publication/23794","accessed":"2026-09-03"},{"id":"iec-60068-2-64","title":"IEC 60068-2-64:2019 Test Fh: Vibration, broadband random","url":"https://webstore.iec.ch/publication/61088","accessed":"2026-09-03"},{"id":"iec-60068-2-27","title":"IEC 60068-2-27:2008 Test Ea: Shock","url":"https://webstore.iec.ch/publication/2647","accessed":"2026-09-03"},{"id":"iec-60529","title":"IEC 60529:1989+A2:2013 Degrees of protection (IP Code)","url":"https://webstore.iec.ch/publication/2452","accessed":"2026-09-03"},{"id":"iec-62262","title":"IEC 62262:2002 Degrees of protection against impact (IK code)","url":"https://webstore.iec.ch/publication/6968","accessed":"2026-09-03"},{"id":"astm-b117","title":"ASTM B117-19 Operating salt spray (fog) apparatus","url":"https://www.astm.org/b0117-19.html","accessed":"2026-09-03"},{"id":"astm-g154","title":"ASTM G154-16 Fluorescent UV lamp exposure of nonmetallics","url":"https://www.astm.org/g0154-16.html","accessed":"2026-09-03"},{"id":"iso-4892","title":"ISO 4892-2:2013 Exposure to xenon-arc lamps","url":"https://www.iso.org/standard/60420.html","accessed":"2026-09-03"},{"id":"iec-60068-2-14","title":"IEC 60068-2-14:2009 Test N: Change of temperature","url":"https://webstore.iec.ch/publication/347","accessed":"2026-09-03"},{"id":"iec-60068-2-78","title":"IEC 60068-2-78:2012 Test Cab: Damp heat, steady state","url":"https://webstore.iec.ch/publication/2166","accessed":"2026-09-03"},{"id":"ul-94","title":"UL 94 Tests for flammability of plastic materials","url":"https://www.ul.com/services/ul-94-flammability-standard","accessed":"2026-09-03"},{"id":"ul-746","title":"UL 746A/B/C Polymeric materials property evaluation","url":"https://www.ul.com/","accessed":"2026-09-03"},{"id":"rohs","title":"EU Directive 2011/65/EU (RoHS 2/3)","url":"https://environment.ec.europa.eu/topics/waste-and-recycling/rohs-directive_en","accessed":"2026-09-03"},{"id":"reach","title":"EC 1907/2006 (REACH)","url":"https://echa.europa.eu/regulations/reach","accessed":"2026-09-03"},{"id":"as9102","title":"AS9102 First Article Inspection requirement","url":"https://www.sae.org/standards/content/as9102/","accessed":"2026-09-03"}],"entries":[{"id":"iso2768-linear-tolerances","kind":"tolerance","tier":1,"title":"ISO 2768-1 linear tolerance classes f/m/c/v (mm by size range)","summary":"± mm by nominal size and class (f=fine, m=medium, c=coarse, v=very coarse): 3-6: 0.05/0.1/0.3/0.5; 6-30: 0.1/0.2/0.5/1.0; 30-120: 0.15/0.3/0.8/1.5; 120-400: 0.2/0.5/1.2/2.5; 400-1000: 0.3/0.8/2.0/4.0 mm. 'm' is the drawing default when unstated.","applies":["cnc machining","sheet metal","casting"],"value":{"table":[{"range":"0.5-3","f":0.05,"m":0.1,"c":0.2,"v":null},{"range":"3-6","f":0.05,"m":0.1,"c":0.3,"v":0.5},{"range":"6-30","f":0.1,"m":0.2,"c":0.5,"v":1},{"range":"30-120","f":0.15,"m":0.3,"c":0.8,"v":1.5},{"range":"120-400","f":0.2,"m":0.5,"c":1.2,"v":2.5},{"range":"400-1000","f":0.3,"m":0.8,"c":2,"v":4},{"range":"1000-2000","f":0.5,"m":1.2,"c":3,"v":6}],"unit":"mm"},"basis":"ISO 2768-1 table 1, classes f/m/c/v","sources":["iso-2768"],"tags":["iso 2768","linear","tolerance"]},{"id":"iso2768-angular","kind":"tolerance","tier":1,"title":"ISO 2768-1 angular tolerance by shorter side length","summary":"± degrees by the shorter leg, class f/m then c then v: ≤10mm 1.0/1.5/3.0; 10-50mm 0.5/1.0/2.0; 50-120mm 0.33/0.5/1.0; 120-400mm 0.17/0.25/0.5; >400mm 0.08/0.17/0.33 deg.","applies":[],"value":{"table":[{"range":"0-10","f_m":1,"c":1.5,"v":3},{"range":"10-50","f_m":0.5,"c":1,"v":2},{"range":"50-120","f_m":0.333,"c":0.5,"v":1},{"range":"120-400","f_m":0.167,"c":0.25,"v":0.5},{"range":"400-plus","f_m":0.083,"c":0.167,"v":0.333}],"unit":"deg"},"basis":"ISO 2768-1 table 2","sources":["iso-2768"],"tags":["iso 2768","angular","tolerance"]},{"id":"iso2768-radii-chamfers-m","kind":"tolerance","tier":1,"title":"ISO 2768-1 permissible deviation for radii and chamfer heights","summary":"External radii/chamfer heights, class f/m: ≤3mm ±0.2, 3-6mm ±0.5, >6mm ±1.0 mm; class c/v doubles this. Applies to an untoleranced fillet/chamfer, not a functional fit radius.","applies":[],"value":{"table":[{"range":"0-3","f_m":0.2,"c_v":0.4},{"range":"3-6","f_m":0.5,"c_v":1},{"range":"6-plus","f_m":1,"c_v":2}],"unit":"mm"},"basis":"ISO 2768-1 table 3","sources":["iso-2768"],"tags":["iso 2768","radius","chamfer"]},{"id":"iso2768-form-tolerances-k","kind":"tolerance","tier":2,"title":"ISO 2768-2 general form tolerance (straightness/flatness), class H/K/L","summary":"By longest side, class K (default): ≤10mm 0.05, 10-30mm 0.1, 30-100mm 0.2, 100-300mm 0.3, 300-1000mm 0.4 mm. Class H is ~half, class L ~2x.","applies":[],"value":{"table":[{"range":"0-10","H":0.02,"K":0.05,"L":0.1},{"range":"10-30","H":0.05,"K":0.1,"L":0.2},{"range":"30-100","H":0.1,"K":0.2,"L":0.4},{"range":"100-300","H":0.15,"K":0.3,"L":0.6},{"range":"300-1000","H":0.2,"K":0.4,"L":0.8}],"unit":"mm"},"basis":"ISO 2768-2 table 1","sources":["iso-2768"],"tags":["iso 2768","flatness","straightness","form"]},{"id":"iso2768-perpendicularity-symmetry-k","kind":"tolerance","tier":3,"title":"ISO 2768-2 perpendicularity and symmetry, class K","summary":"By longer side, class K: ≤100mm 0.2, 100-300mm 0.3, 300-1000mm 0.4, 1000-3000mm 0.5 mm; symmetry uses the same figures. Only used when the drawing states 'ISO 2768-mK'.","applies":[],"value":{"min":0.2,"max":0.5,"unit":"mm"},"basis":"ISO 2768-2 tables 2/3, class K","sources":["iso-2768"],"tags":["iso 2768","perpendicularity","symmetry"]},{"id":"general-tolerance-by-process","kind":"tolerance","tier":1,"title":"Achievable general tolerance by manufacturing process","summary":"±mm standard shop tolerance: CNC 0.05-0.13, injection molding 0.1-0.3 (+0.2%/mm beyond 50mm), sheet metal 0.2-0.5, laser cutting 0.1, FDM 0.3 (or 0.2% of dim), SLA 0.1, SLS/MJF 0.3, DMLS 0.1-0.2, die casting 0.1/25mm (+0.02mm/mm beyond).","applies":[],"value":{"table":[{"process":"cnc","min":0.05,"max":0.13},{"process":"injection_molding","min":0.1,"max":0.3},{"process":"sheet_metal","min":0.2,"max":0.5},{"process":"laser_cutting","typical":0.1},{"process":"fdm","typical":0.3},{"process":"sla","typical":0.1},{"process":"sls_mjf","typical":0.3},{"process":"dmls","min":0.1,"max":0.2},{"process":"die_casting","typical":0.1}],"unit":"mm"},"basis":"Protolabs/Xometry published standard-tolerance tables per process","sources":["protolabs-tol","xometry-tol"],"tags":["tolerance","process","cnc","injection molding","sheet metal","fdm","sla","sls","dmls","die casting"]},{"id":"iso286-common-fits","kind":"tolerance","tier":1,"title":"ISO 286 common fits H7/g6, H7/k6, H7/p6 at ⌀10 and ⌀20","summary":"H7/g6 sliding: ⌀10 hole 10.000-10.015/shaft 9.995-10.000 (gap 0-0.02); ⌀20 hole 20.000-20.021/shaft 19.980-19.993 (gap 0.007-0.041). H7/k6 transition: ⌀10 shaft 10.001-10.010; ⌀20 shaft 20.002-20.015. H7/p6 press: ⌀10 shaft 10.024-10.033; ⌀20 shaft 20.035-20.048 mm.","applies":["shaft","bushing","dowel","bearing"],"value":{"table":[{"fit":"H7/g6","size":10,"holeMin":10,"holeMax":10.015,"shaftMin":9.995,"shaftMax":10},{"fit":"H7/g6","size":20,"holeMin":20,"holeMax":20.021,"shaftMin":19.98,"shaftMax":19.993},{"fit":"H7/k6","size":10,"holeMin":10,"holeMax":10.015,"shaftMin":10.001,"shaftMax":10.01},{"fit":"H7/k6","size":20,"holeMin":20,"holeMax":20.021,"shaftMin":20.002,"shaftMax":20.015},{"fit":"H7/p6","size":10,"holeMin":10,"holeMax":10.015,"shaftMin":10.024,"shaftMax":10.033},{"fit":"H7/p6","size":20,"holeMin":20,"holeMax":20.021,"shaftMin":20.035,"shaftMax":20.048}],"unit":"mm"},"basis":"ISO 286-2 hole H7 and shaft g6/k6/p6 deviation tables","sources":["iso-286"],"tags":["iso 286","fit","h7g6","h7k6","h7p6","sliding","transition","press"]},{"id":"surface-finish-by-process","kind":"tolerance","tier":1,"title":"Achievable surface roughness Ra (μm) by process","summary":"Ra μm: turning 0.8-3.2, milling 1.6-3.2, grinding 0.2-0.8, injection molding 0.4-1.6 (as-moulded; texture VDI 3400 for matte grain), FDM 10-20, SLA 1-3, SLS/MJF 5-15, DMLS 5-15. Layer/tool-mark direction is not captured by Ra alone.","applies":[],"value":{"table":[{"process":"turning","min":0.8,"max":3.2},{"process":"milling","min":1.6,"max":3.2},{"process":"grinding","min":0.2,"max":0.8},{"process":"injection_molding","min":0.4,"max":1.6},{"process":"fdm","min":10,"max":20},{"process":"sla","min":1,"max":3},{"process":"sls_mjf","min":5,"max":15},{"process":"dmls","min":5,"max":15}],"unit":"um"},"basis":"ISO 4287 Ra convention; Protolabs/Xometry finish tables by process","sources":["iso-4287","protolabs-tol","xometry-tol"],"tags":["surface finish","ra","turning","milling","grinding","injection molding","fdm","sla","sls","dmls"]},{"id":"flatness-position-typical","kind":"tolerance","tier":2,"title":"Typical GD&T flatness and position callouts by feature role","summary":"Sealing/mounting face flatness: 0.05-0.1mm over ≤100mm span; bolt-pattern position (MMC): ⌀0.25-0.5mm for clearance holes, ⌀0.1mm for dowelled locating holes. Tighter needs grinding or wire EDM, not 3-axis milling.","applies":["mounting face","bolt pattern","sealing face"],"value":{"min":0.05,"max":0.5,"unit":"mm"},"basis":"Common practice for machined mounting interfaces","sources":["xometry-tol"],"tags":["flatness","position","gd&t","bolt pattern"]},{"id":"press-fit-pin-interference","kind":"tolerance","tier":2,"title":"Press-fit interference for steel pins in aluminium and steel","summary":"Light press (H7/m6, H7/n6): 0.005-0.02mm interference on a 3-10mm pin. In plastic use 0.05-0.1mm plus a lead-in chamfer. Model the hole at nominal, carry the fit as a callout.","applies":[],"value":{"min":0.005,"max":0.02,"unit":"mm"},"basis":"ISO 286 transition/interference fits for locating pins","sources":["iso-286"],"tags":["press fit","interference","pin"]},{"id":"standard-iso-2768","kind":"standard","tier":1,"title":"ISO 2768 — general tolerances for linear and angular dimensions","summary":"Two parts: -1 (linear/angular size, classes f/m/c/v) and -2 (form/position, classes H/K/L). One title-block callout ('ISO 2768-mK') sets every un-toleranced dimension on the sheet.","applies":[],"basis":"Reduces drawing clutter by giving default tolerances a single callout","sources":["iso-2768"],"tags":["iso 2768","standard","general tolerance"]},{"id":"standard-iso-286","kind":"standard","tier":1,"title":"ISO 286 — ISO code system for tolerances on linear sizes (fits)","summary":"Defines the letter+number fit code (H7, g6, k6, p6...), written 'hole/shaft' e.g. ⌀20H7/g6. Part -1 is the tolerance classes, part -2 the tables of limits and fits.","applies":[],"basis":"Standardises fit callouts across CAD/drawing systems worldwide","sources":["iso-286"],"tags":["iso 286","standard","fit"]},{"id":"standard-asme-y145","kind":"standard","tier":1,"title":"ASME Y14.5 — dimensioning and tolerancing (GD&T)","summary":"The US GD&T standard: datum reference frames, feature control frames, MMC/LMC modifiers, position/profile/runout. A drawing needs ≥3 mutually perpendicular datums (3-2-1 scheme) to fully constrain a part for inspection.","applies":[],"basis":"Datum scheme and feature-control-frame syntax an inspector reads against","sources":["asme-y14.5"],"tags":["gd&t","asme y14.5","datum","standard"]},{"id":"standard-iso-1101","kind":"standard","tier":2,"title":"ISO 1101 — geometrical tolerancing (form, orientation, location, run-out)","summary":"ISO's GD&T counterpart to ASME Y14.5 — symbols mostly match, but datum and envelope rules differ (ISO defaults envelope off; ASME rule #1 is on). Mixing both on one drawing causes inspection disputes.","applies":[],"basis":"ISO's GD&T symbol and interpretation standard","sources":["iso-1101"],"tags":["gd&t","iso 1101","standard"]},{"id":"standard-iso-4287","kind":"standard","tier":2,"title":"ISO 4287 — surface texture, profile method (Ra, Rz and friends)","summary":"ISO 4287 defines Ra (arithmetic mean roughness), Rz (mean peak-to-valley, ~4–7× Ra) and Rq, with a 0.8 mm sampling length for Ra 0.1–2 µm and 2.5 mm for Ra 2–10 µm. Ra is the default unless the drawing states otherwise.","applies":[],"basis":"Common surface-roughness parameter definitions","sources":["iso-4287"],"tags":["surface finish","ra","iso 4287","standard"]},{"id":"test-drop-iec-60068-2-31","kind":"test","tier":1,"title":"Free-fall drop test, IEC 60068-2-31 / MIL-STD-810 Method 516","summary":"Handheld devices: 1000/1200/1500 mm drop onto concrete, one face/edge/corner per orientation. Geometry response: corner radii ≥ 2 mm at impact corners, internal ribs behind the impact zone, no unsupported span > 40 mm near a corner.","applies":["handheld device","enclosure","consumer electronics"],"value":{"options":[1000,1200,1500],"unit":"mm"},"basis":"IEC 60068-2-31 Test Ec free-fall / MIL-STD-810H Method 516.8 transit drop","sources":["iec-60068-2-31","mil-std-810"],"tags":["drop test","corner radius","impact","rugged"]},{"id":"test-tumble-iec-60068-2-32","kind":"test","tier":2,"title":"Tumble (repeated free-fall) test, IEC 60068-2-32","summary":"Product tumbled in a 1m rotating drum through 50-1000 falls, simulating random handling impacts rather than one worst-case face. Geometry response: recess or rib-support any protruding feature (connector, boss) beyond the enclosure's own corner radius.","applies":["shipped product","portable device"],"value":{"min":50,"max":1000,"unit":"count"},"basis":"IEC 60068-2-32 Test Ed free fall (tumbling barrel)","sources":["iec-60068-2-32"],"tags":["tumble test","drop test","transport"]},{"id":"test-vibration-sinusoidal-iec-60068-2-6","kind":"test","tier":2,"title":"Sinusoidal vibration test, IEC 60068-2-6","summary":"Sweep 10-500 Hz at 0.5-5g (transport) or 10-20g (vehicle-mounted), swept log per axis, 1-2h/axis. Geometry response: keep any cantilevered PCB/bracket's natural frequency above 2x the top test frequency; lock every fastener in the path.","applies":["automotive","industrial equipment","shipped electronics"],"value":{"min":10,"max":500,"unit":"Hz"},"basis":"IEC 60068-2-6 Test Fc sinusoidal vibration","sources":["iec-60068-2-6"],"tags":["vibration","resonance","cantilever","fastener locking"]},{"id":"test-vibration-random-iec-60068-2-64","kind":"test","tier":2,"title":"Broadband random vibration test, IEC 60068-2-64","summary":"PSD ~0.01-0.1 g2/Hz over 10-2000 Hz, 3 axes, tens of minutes to hours/axis — closer to real road/flight vibration than a sine sweep. Geometry response: same as sinusoidal, but random hits every mode at once; add margin on the lowest structural mode.","applies":["automotive","aerospace","industrial equipment"],"value":{"min":10,"max":2000,"unit":"Hz"},"basis":"IEC 60068-2-64 Test Fh random vibration, broadband","sources":["iec-60068-2-64"],"tags":["vibration","random","resonance"]},{"id":"test-shock-iec-60068-2-27","kind":"test","tier":2,"title":"Mechanical shock test, IEC 60068-2-27","summary":"Half-sine shock pulse, commonly 15g/11ms or 30g/18ms, 3 shocks per direction per axis (18 total). Geometry response: check the fastener/boss taking the load isn't the weakest section (thin boss root, sharp internal corner).","applies":["industrial equipment","automotive","shipped electronics"],"value":{"options":[15,30],"unit":"g"},"basis":"IEC 60068-2-27 Test Ea shock, half-sine pulse","sources":["iec-60068-2-27"],"tags":["shock","impulse","boss"]},{"id":"test-ip-ratings-iec-60529","kind":"test","tier":1,"title":"IP ingress protection rating, IEC 60529","summary":"IP54 dust-protected/splash; IP65 dust-tight/jets; IP67 immersion 1m/30min; IP68 beyond 1m per spec. Geometry response: continuous gasket groove at every seam, a gland or vent membrane boss at cable/vent ports, no through-hole from a sealed screw boss.","applies":["enclosure","outdoor equipment","wearable"],"value":{"options":["IP54","IP65","IP67","IP68"]},"basis":"IEC 60529 IP code, first digit dust / second digit water","sources":["iec-60529"],"tags":["ip rating","ip67","ip68","gasket","sealing","vent"]},{"id":"test-ik-impact-iec-62262","kind":"test","tier":2,"title":"IK mechanical impact rating, IEC 62262","summary":"IK07 (2J, common minimum) to IK10 (20J, vandal-resistant); a steel hammer dropped from a set height onto the enclosure face. Geometry response: thicker wall or internal ribbing behind the impact face — IK10 often needs ≥3mm polycarbonate.","applies":["outdoor enclosure","public-space equipment"],"value":{"min":2,"max":20,"unit":"Nm"},"basis":"IEC 62262 IK code, impact energy by rating","sources":["iec-62262"],"tags":["ik rating","impact","vandal resistant","wall thickness"]},{"id":"test-salt-spray-astm-b117","kind":"test","tier":2,"title":"Salt spray (fog) corrosion test, ASTM B117","summary":"5% NaCl fog at 35C; consumer spec 48-96h to first red rust, automotive/marine spec 250-1000+h. Geometry response: a material/coating test — pick stainless, anodised aluminium, or ≥60um powder coat; avoid crevices that trap salt film.","applies":["outdoor equipment","marine","automotive"],"value":{"min":48,"max":1000,"unit":"h"},"basis":"ASTM B117 standard salt-fog exposure practice","sources":["astm-b117"],"tags":["salt spray","corrosion","coating","material"]},{"id":"test-uv-astm-g154-iso-4892","kind":"test","tier":2,"title":"UV / weathering exposure test, ASTM G154 / ISO 4892","summary":"Fluorescent-UV or xenon-arc exposure, 500-2000h to simulate 1-5 years outdoors; failure is fade, chalking or embrittlement. Geometry response: none directly — use a UV-stabilised resin (PC-UV, ASA) for outdoor parts and avoid thin ribs in a UV-brittle resin.","applies":["outdoor enclosure","automotive exterior"],"value":{"min":500,"max":2000,"unit":"h"},"basis":"ASTM G154 fluorescent-UV / ISO 4892-2 xenon-arc weathering practice","sources":["astm-g154","iso-4892"],"tags":["uv","weathering","material","outdoor"]},{"id":"test-thermal-cycling-iec-60068-2-14","kind":"test","tier":2,"title":"Thermal cycling / thermal shock test, IEC 60068-2-14","summary":"Cycle -40C to +85C (consumer) or -55C to +125C (auto/mil), 10-100 cycles, dwell 30min-2h. Geometry response: dissimilar-material joints need CTE clearance — a heat-set insert boss should keep ≥0.5mm surrounding wall to avoid cracking on cool-down.","applies":["automotive","outdoor electronics","sealed assembly"],"value":{"min":-55,"max":125,"unit":"C"},"basis":"IEC 60068-2-14 Test N change of temperature","sources":["iec-60068-2-14"],"tags":["thermal cycling","thermal shock","cte","insert"]},{"id":"test-humidity-iec-60068-2-78","kind":"test","tier":2,"title":"Damp heat (humidity) test, IEC 60068-2-78","summary":"Steady-state 40C/93%RH (or 85C/85%RH accelerated), 48-1000h; checks corrosion, delamination and moisture ingress. Geometry response: same sealing as the IP test plus drainage — any pocket that traps condensate needs a weep hole at its low point.","applies":["outdoor electronics","sealed enclosure"],"value":{"min":48,"max":1000,"unit":"h"},"basis":"IEC 60068-2-78 Test Cab damp heat, steady state","sources":["iec-60068-2-78"],"tags":["humidity","damp heat","sealing","drainage"]},{"id":"test-ul94-flammability","kind":"test","tier":1,"title":"UL 94 plastics flammability rating (HB, V-2, V-0)","summary":"HB: horizontal slow-burn, min 1.5mm. V-2/V-1: vertical, self-extinguishes, drips allowed(V-2)/not(V-1). V-0: extinguishes <=10s, no flaming drips, down to 0.8-1.5mm. Geometry response: the rating only holds at or above the resin's UL-tested min thickness.","applies":["injection moulded housing","electrical enclosure"],"value":{"options":["HB","V-2","V-1","V-0"]},"basis":"UL 94 vertical/horizontal burn test, rating tied to tested minimum thickness","sources":["ul-94"],"tags":["ul 94","flammability","v-0","minimum wall","plastic"]},{"id":"test-ul746-material-properties","kind":"test","tier":2,"title":"UL 746A/B/C polymeric material property evaluation","summary":"746A: short-term electrical (dielectric, tracking). 746B: long-term thermal aging (RTI, e.g. 105C/130C resins). 746C: use in specific enclosures. Geometry response: none — pick a resin whose RTI covers the part's operating temperature near any heat source.","applies":["electrical enclosure","appliance housing"],"value":{"options":["105C","130C","155C"],"unit":"C"},"basis":"UL 746 series polymeric material evaluation","sources":["ul-746"],"tags":["ul 746","rti","thermal aging","material"]},{"id":"test-rohs-reach-compliance","kind":"material","tier":2,"title":"RoHS / REACH restricted-substance compliance","summary":"RoHS caps Pb/Hg/Cd/Cr(VI)/PBB/PBDE/4 phthalates each <=0.1% by weight (Cd <=0.01%) per homogeneous material; REACH flags SVHCs >0.1%. Geometry response: none — constrains material/plating choice, verified by supplier certificate.","applies":["electronics","consumer product","eu market"],"value":{"typical":0.1,"unit":"%","note":"per restricted substance, per homogeneous material (Cd 0.01%)"},"basis":"EU RoHS 2011/65/EU and REACH 1907/2006","sources":["rohs","reach"],"tags":["rohs","reach","compliance","material","plating"]},{"id":"test-fatigue-cycle","kind":"test","tier":2,"title":"Fatigue / cycle life test","summary":"Consumer snap-fit/hinge: 5,000-20,000 actuation cycles; structural metal fatigue design commonly targets 1e6 cycles (steel endurance limit). Geometry response: radius the flex root >= 0.5x wall thickness — cracks start at stress concentrations.","applies":["snap fit","living hinge","structural bracket"],"value":{"min":5000,"max":1000000,"unit":"cycles"},"basis":"Typical consumer actuation spec vs. steel endurance-limit design cycle count","sources":["protolabs-tol"],"tags":["fatigue","cycle life","snap fit","stress concentration"]},{"id":"test-static-proof-load","kind":"test","tier":2,"title":"Static load / proof load test","summary":"Proof load is 1.5-2x rated working load, held 60s, no permanent deformation; a destructive ultimate test runs separately at 3-4x rated load. Geometry response: keep the load path's min cross-section below yield at proof load with the safety factor applied.","applies":["bracket","lifting point","structural part"],"value":{"min":1.5,"max":2,"unit":"ratio","note":"x rated working load"},"basis":"Standard proof-load practice for structural/lifting hardware","sources":["xometry-tol"],"tags":["static load","proof load","safety factor","structural"]},{"id":"test-hardness","kind":"test","tier":2,"title":"Hardness testing (Rockwell / Shore)","summary":"Metals: Rockwell C for hardened steel (HRC 20-65), Rockwell B for softer alloys. Plastics/elastomers: Shore A (20-90A, gaskets) or Shore D (50-90D, rigid). Geometry response: none directly, but heat-treat can add distortion — hold critical dims after treat.","applies":["heat-treated part","elastomer seal","grip"],"value":{"options":["HRC","HRB","Shore A","Shore D"]},"basis":"Standard hardness scales by material class","sources":["xometry-tol"],"tags":["hardness","rockwell","shore","heat treat"]},{"id":"test-dimensional-inspection-cmm","kind":"test","tier":2,"title":"Dimensional inspection — CMM, gauges, first-article (AS9102)","summary":"CMM measures position/profile to ~0.001-0.005mm repeatability; go/no-go gauges check fits fast on production. AS9102 first-article requires every drawing dimension balloon-numbered and measured. Geometry response: leave probe clearance on toleranced features.","applies":["aerospace part","production run","critical dimension"],"value":{"min":0.001,"max":0.005,"unit":"mm","note":"typical CMM repeatability"},"basis":"CMM metrology practice; AS9102 first-article requirement","sources":["as9102","xometry-tol"],"tags":["cmm","inspection","first article","as9102","gauge"]},{"id":"test-leak-pressure","kind":"test","tier":2,"title":"Leak / pressure test","summary":"Pressure-decay or bubble-immersion at 1.5-2x working pressure, hold 30-60s, decay limit ~1-2% of applied pressure. Geometry response: every sealed joint needs a defined seal land (O-ring groove per AS568, or a flat gasket face).","applies":["pressure vessel","sealed housing","fluid fitting"],"value":{"min":1.5,"max":2,"unit":"ratio","note":"test pressure / rated working pressure"},"basis":"Standard pressure-decay/proof-pressure test practice","sources":["xometry-tol"],"tags":["leak test","pressure test","o-ring","seal"]},{"id":"rule-datum-scheme-321","kind":"rule","tier":1,"title":"3-2-1 datum scheme for fixturing and inspection","summary":"Primary datum: 3 points on the largest stable face (removes 3 DOF). Secondary: 2 points on a perpendicular face (2 DOF). Tertiary: 1 point on a third perpendicular face (last DOF). Pick datums matching how the part is fixtured and measured.","applies":[],"basis":"ASME Y14.5 datum reference frame construction","sources":["asme-y14.5"],"tags":["datum","3-2-1","fixturing","gd&t"]},{"id":"rule-tolerance-stack-basics","kind":"rule","tier":2,"title":"Tolerance stack-up: worst-case vs. RSS","summary":"Worst-case stack sums each dimension's tolerance in the chain (always safe). RSS combines them as sqrt(sum t^2), ~40-60% tighter for the same confidence, valid only for independent normal dims. Use worst-case for short/safety-critical chains, RSS for long runs.","applies":[],"value":{"typical":0.5,"unit":"ratio","note":"RSS stack / worst-case stack, rule of thumb for >3 links"},"basis":"Standard tolerance-stack methodology","sources":["asme-y14.5"],"tags":["tolerance stack","rss","worst case"]},{"id":"rule-when-gdt-vs-plusminus","kind":"rule","tier":1,"title":"When to call out GD&T vs. plain ± dimensions","summary":"Use plain +/- for non-functional, non-mating sizes (default ISO 2768). Switch to GD&T (position/profile/runout with a datum frame) when a feature mates, rotates, or must pass a functional gauge — GD&T defines a usable zone that coordinates cannot.","applies":[],"basis":"GD&T defines a functional tolerance zone; coordinate tolerancing often over-constrains at the corners","sources":["asme-y14.5"],"tags":["gd&t","tolerancing","mating","position"]},{"id":"note-stating-tolerance-on-drawing","kind":"note","tier":1,"title":"How to state a tolerance on a drawing or in PMI","summary":"Title block default: 'UNLESS OTHERWISE SPECIFIED, TOLERANCES PER ISO 2768-mK'. Per-feature override: an explicit +/- or feature control frame. In NativeCAD use cad_pmi_author to attach PMI to a face/edge so it round-trips in the STEP AP242 export.","applies":[],"basis":"PMI (product manufacturing information) authoring practice for model-based definition","sources":["asme-y14.5"],"tags":["pmi","drawing","title block","cad_pmi_author"]},{"id":"note-fit-selection-guidance","kind":"note","tier":2,"title":"Choosing an ISO 286 fit class for a design intent","summary":"Parts that rotate/slide -> clearance fit (H7/g6, H7/f7). Parts located once and fastened -> transition fit (H7/k6, H7/js6). Parts meant to stay together without fasteners -> interference fit (H7/p6, H7/s6). Hold the hole at H7, vary the shaft grade.","applies":[],"basis":"ISO 286 'hole basis' system convention","sources":["iso-286"],"tags":["fit","iso 286","hole basis","selection"]},{"id":"note-tolerance-vs-process-capability","kind":"note","tier":2,"title":"A drawing tolerance is a promise the process must be able to keep","summary":"Specifying ISO 2768-f on a die-cast part or +/-0.05mm on an FDM print doesn't make the process more accurate — it makes every part a rework/scrap risk. Match the tolerance class to this pack's achievable-tolerance entries for the chosen process.","applies":[],"basis":"Tolerance should follow process capability, not wish","sources":["protolabs-tol"],"tags":["tolerance","process capability","design intent"]},{"id":"gasket-groove-for-ip-sealing","kind":"feature","tier":1,"title":"Gasket groove for IP-rated enclosure seams","summary":"Rectangular groove: width = gasket cord dia x 1.3-1.5, depth = cord dia x 0.75-0.8 for 20-25% compression, continuous with rounded corners (r >= 2x groove width) so the gasket doesn't kink. Undersized compression is the top cause of an IP67 fail.","applies":["enclosure","outdoor equipment","sealed housing"],"value":{"min":0.2,"max":0.25,"unit":"ratio","note":"compression fraction of gasket cord diameter"},"basis":"Standard elastomer gasket groove design for a continuous seam seal","sources":["iec-60529"],"tags":["gasket","groove","ip rating","sealing"]},{"id":"oring-gland-as568","kind":"feature","tier":2,"title":"O-ring gland dimensions (AS568 static face seal)","summary":"Static face-seal gland: groove width = 1.4-1.5x O-ring cross-section, groove depth = 0.75-0.8x cross-section for 20-25% squeeze, corner radius 0.25-0.4mm to avoid nicking the O-ring on assembly. Undersized groove volume causes extrusion; oversized causes leak.","applies":["pressure vessel","fluid fitting","sealed housing"],"value":{"min":0.2,"max":0.25,"unit":"ratio","note":"squeeze fraction of O-ring cross-section"},"basis":"AS568 O-ring standard and Parker O-ring handbook gland design","sources":["xometry-tol"],"tags":["o-ring","gland","seal","leak test"]},{"id":"vent-membrane-boss","kind":"feature","tier":2,"title":"Pressure-equalizing vent membrane boss","summary":"A Gore-style vent membrane (⌀6-13mm typical) needs a boss with a through-hole to atmosphere on one face and an O-ring or gasket seal against the membrane's flange on the other; boss wall >= 1.5x nominal wall so the membrane retention doesn't crack the boss under thermal cycling.","applies":["ip67 enclosure","ip68 enclosure","sealed housing"],"value":{"min":6,"max":13,"unit":"mm"},"basis":"Vent-membrane supplier mounting-boss guidance","sources":["iec-60529"],"tags":["vent","membrane","ip rating","boss"]},{"id":"vibration-isolator-mounting","kind":"feature","tier":2,"title":"Vibration isolator (grommet) mounting boss","summary":"Rubber grommet isolators sit in a boss sized to the grommet OD + 0.2-0.3mm clearance, with a shoulder to control compression (10-20%) rather than bottoming the fastener metal-to-metal, which would bypass the isolation entirely.","applies":["automotive","industrial equipment"],"value":{"min":0.1,"max":0.2,"unit":"ratio","note":"grommet compression fraction"},"basis":"Standard vibration-isolator mounting practice","sources":["iec-60068-2-6"],"tags":["vibration","isolator","grommet","mounting"]},{"id":"standard-as9102","kind":"standard","tier":2,"title":"AS9102 — First Article Inspection Requirement (aerospace)","summary":"Requires every drawing dimension balloon-numbered and measured on the first production part (Form 3) before a production run proceeds, with material and process certs (Forms 1/2). Design for measurement access on every toleranced feature before submitting for FAI.","applies":["aerospace part"],"basis":"Aerospace supply-chain first-article inspection requirement","sources":["as9102"],"tags":["as9102","first article","standard","aerospace"]}]},{"$schema":"nativecad-dfm-pack/1","id":"tooling","title":"Tooling - fixture plates, jigs, workholding, gauges","sector":"tooling","version":"2026-09-03","summary":"Grid fixture plates, 3-2-1 locating, clamping, vise soft jaws, 1-2-3/2-4-6 blocks, drill jigs and bushings, go/no-go gauges, 3D-printed jigs, inspection and assembly fixtures, plus the materials, tolerances and tests a job-shop fixture is held to.","aliases":["fixture","jig","fixture plate","tooling plate","workholding","soft jaws","vise jaws","drill jig","gauge","go no-go","1-2-3 block","locating pin","clamp","modular fixture"],"crossSector":false,"size":"full","sources":[{"id":"carr-lane-handbook","title":"Carr Lane Manufacturing Co. — Jig and Fixture Handbook / Workholding Components Catalog","url":"https://www.carrlane.com/","accessed":"2026-09-03"},{"id":"mitee-bite-fixturing-guide","title":"Mitee-Bite Products — Fixturing Systems Catalog and Design Guide (dowel/tapped grid plates)","url":"https://www.miteebite.com/","accessed":"2026-09-03"},{"id":"renishaw-fixturing","title":"Renishaw — Modular Fixturing Systems (grid plate hole layout)","url":"https://www.renishaw.com/en/fixturing-systems--6015","accessed":"2026-09-03"},{"id":"kurt-workholding","title":"Kurt Workholding — Precision Vise Drawings and Specifications (DX6/D688 series)","url":"https://www.kurtworkholding.com/","accessed":"2026-09-03"},{"id":"mcmaster-123-block","title":"McMaster-Carr — Precision Ground 1-2-3 Blocks, dimensional drawing","url":"https://www.mcmaster.com/1-2-3-blocks/","accessed":"2026-09-03"},{"id":"iso-8977","title":"ISO 8977:2018 Drill jigs and fixtures — Bushes","url":"https://www.iso.org/standard/71512.html","accessed":"2026-09-03"},{"id":"ansi-b94-33","title":"ANSI/ASME B94.33-1974 (R2015) Drill Jig Bushings","url":"https://www.asme.org/codes-standards/find-codes-standards/b94-33-drill-jig-bushings","accessed":"2026-09-03"},{"id":"iso-1938","title":"ISO 1938-1:2015 Geometrical product specifications — Plain limit gauges — Part 1: Gauges for workpieces with size tolerances","url":"https://www.iso.org/standard/61529.html","accessed":"2026-09-03"},{"id":"asme-b89-1-6","title":"ASME B89.1.6-2002 (R2020) Measurement of Plain Internal and External Diameters","url":"https://www.asme.org/codes-standards/find-codes-standards/b89-1-6-measurement-plain-internal-external-diameters","accessed":"2026-09-03"},{"id":"iso-286","title":"ISO 286-1:2010 ISO code system for tolerances on linear sizes","url":"https://www.iso.org/standard/45123.html","accessed":"2026-09-03"},{"id":"iso-230-2","title":"ISO 230-2:2014 Test code for machine tools — Part 2: Determination of accuracy and repeatability of positioning","url":"https://www.iso.org/standard/62233.html","accessed":"2026-09-03"},{"id":"mic6-datasheet","title":"Cast aluminium tooling plate (MIC-6) technical data sheet — flatness, stress-relief and composition","accessed":"2026-09-03","note":"Manufacturer datasheet, exact vendor URL unconfirmed at time of writing"},{"id":"formlabs-jig-fixture","title":"Formlabs — 3D Printing Jigs, Fixtures and Gauges Design Guide","url":"https://formlabs.com/blog/3d-printed-jigs-fixtures/","accessed":"2026-09-03"},{"id":"markforged-composites","title":"Markforged — Design Guide for Composite (PA-CF/Onyx) Parts","url":"https://markforged.com/resources/learn/design-for-additive-manufacturing/materials-and-post-processing/materials-considerations/composites-material-considerations","accessed":"2026-09-03"}],"entries":[{"id":"fixture-grid-pitch","kind":"dimension","tier":1,"title":"Modular fixture-plate grid pitch","summary":"Modular tooling plates (Mitee-Bite, Renishaw style) carry a hole grid on 25 mm (1 in) or 50 mm pitch, dowelled and tapped, so any subplate or clamp lands on a repeatable station without new drilling.","applies":["fixture plate","tooling plate","grid plate","modular fixture"],"value":{"options":[25,50],"unit":"mm"},"basis":"Mitee-Bite and Renishaw catalog grid-plate series standardize on 25 mm/1 in metric-inch-compatible pitch, 50 mm on larger plates","sources":["mitee-bite-fixturing-guide","renishaw-fixturing"],"tags":["grid","pitch","modular","fixture-plate"]},{"id":"dowel-tapped-alternation","kind":"feature","tier":1,"title":"Alternating dowel / tapped grid hole pattern","summary":"Grid-plate stations alternate a precision dowel hole (dia6 H7 or dia8 H7, for locating) with a tapped hole (M6 or M8, for clamping) so every other node locates and every other node fastens - never both in one hole.","applies":["fixture plate","tooling plate","grid plate"],"value":{"table":[{"role":"locate","dia":6,"fit":"H7"},{"role":"clamp","thread":"M6"},{"role":"locate","dia":8,"fit":"H7"},{"role":"clamp","thread":"M8"}],"unit":"mm"},"basis":"Renishaw/Mitee-Bite grid plates checkerboard dowel and tapped stations so a subplate can be both located and bolted from the same grid","sources":["mitee-bite-fixturing-guide","renishaw-fixturing"],"tags":["dowel","tapped","grid","alternation"],"see":["hardware/dowel-pin-holes"]},{"id":"fixture-plate-thickness","kind":"dimension","tier":1,"title":"Fixture / tooling plate thickness","summary":"General-purpose fixture and grid plates run 12-25 mm thick: 12-16 mm for light fixtures and soft-jaw carriers, 20-25 mm where tapped holes must hold clamp preload and dowel holes must resist tipping under cutting load.","applies":["fixture plate","tooling plate","subplate"],"value":{"min":12,"max":25,"typical":20,"unit":"mm"},"basis":"Carr Lane and Mitee-Bite catalog plate thicknesses balance tapped-hole engagement depth against added mass and cost","sources":["carr-lane-handbook","mitee-bite-fixturing-guide"],"tags":["plate","thickness"]},{"id":"mic6-flatness","kind":"tolerance","tier":1,"title":"MIC-6 cast tooling plate flatness","summary":"MIC-6 cast, stress-relieved aluminium tooling plate holds flatness within 0.15 mm over any 300 mm span as-cast, far tighter than rolled 6061 plate, which is why it is the default fixture-plate stock.","applies":["mic-6","tooling plate","fixture plate"],"value":{"max":0.15,"unit":"mm"},"basis":"Cast (not rolled) and stress-relieved before machining, so internal stress does not release and warp the plate after milling","sources":["mic6-datasheet"],"tags":["mic-6","flatness","tooling-plate"]},{"id":"subplate-tslot-width","kind":"dimension","tier":2,"title":"Sub-plate T-slot width to match vise/table","summary":"A fixture subplate that clamps into a vise or mill-table T-slot is machined to the table's own slot width - 14 mm, 16 mm or 18 mm are the common metric machine-table sizes - so a standard T-nut and stud fit without an adapter.","applies":["subplate","fixture plate","t-slot"],"value":{"options":[14,16,18],"unit":"mm"},"basis":"Common metric mill/machining-center table T-slot widths (ISO T-slot series)","sources":["carr-lane-handbook"],"tags":["t-slot","subplate","vise","table"]},{"id":"three-two-one-principle","kind":"rule","tier":1,"title":"3-2-1 locating principle","summary":"A rigid body is fully located with 6 point contacts distributed 3-2-1: three points define the primary (largest) datum plane, two more define a secondary plane perpendicular to it, and one more a tertiary plane - removing all 6 degrees of freedom with the minimum contact.","applies":["fixture","jig","locating scheme"],"basis":"Kinematic locating theory (6 DOF = 6 constraints), the foundation of every jig-and-fixture handbook locating scheme","sources":["carr-lane-handbook"],"tags":["3-2-1","locating","datum","kinematic"]},{"id":"locating-pin-pair","kind":"feature","tier":1,"title":"Round + diamond locating pin pair","summary":"A 2-pin location uses one full round pin plus one diamond (relieved) pin on the second hole: the diamond pin's narrow flats absorb the hole-to-hole distance tolerance so the part is not over-constrained and does not bind going onto the pins.","applies":["fixture","jig","locating pin"],"basis":"A second round pin over-constrains two-hole location against normal hole-position tolerance; a diamond pin removes the redundant width constraint while still fixing rotation","sources":["carr-lane-handbook"],"tags":["locating-pin","diamond-pin","round-pin"]},{"id":"locating-pin-fit-clearance","kind":"tolerance","tier":1,"title":"Locating pin fit: hole H7, pin g6, 0.02-0.05 mm clearance","summary":"A removable locating pin is toleranced hole H7 / pin g6, giving 0.02-0.05 mm diametral clearance - loose enough to load and unload the part by hand, tight enough to hold the 0.01-0.02 mm repeatability a fixture is built for.","applies":["fixture","jig","locating pin"],"value":{"min":0.02,"max":0.05,"unit":"mm"},"basis":"ISO 286 H7/g6 sliding fit class, the standard running fit for a hand-loaded locating pin","sources":["iso-286"],"tags":["h7","g6","clearance","locating-pin"],"see":["hardware/press-fit-pin-interference"]},{"id":"locating-accuracy","kind":"tolerance","tier":1,"title":"Fixture locating repeatability","summary":"A precision machining or inspection fixture locates a part to within 0.01-0.02 mm from load to load - the number the pin fit, the locator wear and the clamping sequence are all budgeted against.","applies":["fixture","jig"],"value":{"min":0.01,"max":0.02,"unit":"mm"},"basis":"Typical repeatability target for a CNC or CMM fixture, well inside the part's own dimensional tolerance","sources":["carr-lane-handbook"],"tags":["repeatability","locating","accuracy"]},{"id":"toggle-clamp-holding-force","kind":"fastener","tier":1,"title":"Toggle / cam / strap clamp holding force","summary":"Manual toggle, cam and strap clamps used in fixturing are rated 100-2500 N holding force depending on size - small vertical toggles at the low end, heavy horizontal-hold-down toggles and screw-actuated strap clamps at the high end.","applies":["toggle clamp","cam clamp","strap clamp","clamp"],"value":{"min":100,"max":2500,"unit":"N"},"basis":"Manufacturer catalog holding-force ratings across the common toggle-clamp size range","sources":["carr-lane-handbook"],"tags":["clamp","toggle-clamp","holding-force"]},{"id":"clamp-force-vs-cutting-force","kind":"rule","tier":1,"title":"Clamp force must exceed cutting force with margin","summary":"Total clamping force normal to a cutting load should be at least 2-3x the peak cutting force component that could lift or slide the part, to hold position through chatter and interrupted cuts, not just under steady load.","applies":["fixture","clamp","workholding"],"value":{"min":2,"max":3,"unit":"ratio"},"basis":"Standard workholding safety-factor rule of thumb against milling/drilling thrust and tangential force","sources":["carr-lane-handbook"],"tags":["clamp-force","cutting-force","safety-factor"]},{"id":"kurt-vise-jaw-width","kind":"dimension","tier":1,"title":"Kurt 6 in vise jaw width","summary":"The Kurt 6 in machinist vise (DX6/D688 class) has a 152 mm (6 in) jaw width, the most common CNC-mill vise size and the reference dimension every 6 in soft-jaw blank is machined to fit.","applies":["vise","kurt vise","soft jaws"],"value":{"value":152,"unit":"mm"},"basis":"Kurt catalog jaw width for the 6 in vise family","sources":["kurt-workholding"],"tags":["vise","kurt","jaw-width"]},{"id":"soft-jaw-blank","kind":"dimension","tier":1,"title":"Soft jaw blank size for a 6 in vise","summary":"A pair of soft jaws for a 6 in vise starts as two 150 x 50 x 25 mm blanks (6061 or 1018), bolted onto the vise's jaw plates and then machined in place to the part's own profile - including any dowel-pin slot for repeat setups.","applies":["soft jaws","vise jaws","vise"],"value":{"table":[{"dim":"length","mm":150},{"dim":"height","mm":50},{"dim":"thickness","mm":25}],"unit":"mm"},"basis":"Standard soft-jaw blank size matched to the Kurt 6 in vise jaw width","sources":["kurt-workholding"],"tags":["soft-jaws","blank","vise"]},{"id":"vise-jaw-bolt-pattern","kind":"fastener","tier":1,"title":"Soft jaw mounting bolt pattern (Kurt 6 in)","summary":"Kurt 6 in vise soft jaws bolt on with 3 x half-13 UNC cap screws on a 114.3 mm (4.5 in) bolt spacing - the standard hole pattern soft-jaw blanks are pre-drilled to.","applies":["soft jaws","vise jaws","kurt vise"],"value":{"table":[{"count":3,"thread":"1/2-13 UNC","spacing_mm":114.3}]},"basis":"Kurt catalog jaw-mounting hole pattern for the 6 in vise family","sources":["kurt-workholding"],"tags":["soft-jaws","bolt-pattern","kurt"]},{"id":"123-block-dims","kind":"dimension","tier":1,"title":"1-2-3 block dimensions","summary":"A precision 1-2-3 block measures 1 x 2 x 3 in (25.4 x 50.8 x 76.2 mm), ground square and parallel on all faces to within microns, used as a locating riser, angle reference or clamping spacer.","applies":["1-2-3 block","workholding","setup block"],"value":{"table":[{"dim":"x","mm":25.4},{"dim":"y","mm":50.8},{"dim":"z","mm":76.2}]},"basis":"Defining dimension of the 1-2-3 block: 1, 2 and 3 inches on a side","sources":["mcmaster-123-block"],"tags":["1-2-3-block","setup-block"]},{"id":"drill-bushing-types","kind":"fastener","tier":2,"title":"Drill bushing types P / H / L","summary":"Press-fit drill bushings (ISO 8977 / ANSI B94.33) come in three types: P (press-fit, permanent), H (headed, seats on the jig plate face) and L (liner, a permanent sleeve a renewable bushing presses into).","applies":["drill jig","drill bushing","jig bushing"],"value":{"options":["P","H","L"]},"basis":"ISO 8977 and ANSI B94.33 define the standard bushing type letters and their press-fit / renewable roles","sources":["iso-8977","ansi-b94-33"],"tags":["drill-bushing","jig","iso-8977"]},{"id":"jig-plate-thickness-rule","kind":"rule","tier":1,"title":"Drill jig plate thickness vs. drill diameter","summary":"A drill jig plate is made 1.5-2x the drill diameter thick under the bushing bore, enough to keep the bushing supported and the drill guided straight without the plate becoming needlessly heavy.","applies":["drill jig","jig plate"],"value":{"min":1.5,"max":2,"unit":"ratio"},"basis":"Standard drill-jig design rule balancing bushing support against jig weight and cost","sources":["carr-lane-handbook"],"tags":["jig-plate","thickness","drill-bushing"]},{"id":"go-nogo-plug-gauge","kind":"dimension","tier":2,"title":"Go / no-go plug gauge sizing","summary":"A go/no-go plug gauge is a 2-piece pair machined to the hole tolerance band directly: the GO member is cut to the minimum allowed hole diameter (must enter) and the NO-GO member to the maximum allowed diameter (must not enter).","applies":["gauge","go no-go","plug gauge"],"value":{"table":[{"member":"GO","size":"min allowed hole dia"},{"member":"NO-GO","size":"max allowed hole dia"}]},"basis":"Functional-gauging convention: GO = lower limit, NO-GO = upper limit of the toleranced feature","sources":["iso-1938"],"tags":["gauge","go-no-go","plug-gauge"]},{"id":"gauge-tolerance-iso1938","kind":"tolerance","tier":1,"title":"Gauge manufacturing tolerance (ISO 1938)","summary":"ISO 1938 sizes a go/no-go gauge's own manufacturing tolerance at roughly 10% of the part tolerance it inspects, split as gauge-maker tolerance plus wear allowance, so the gauge itself never consumes a meaningful share of the part's tolerance band.","applies":["gauge","go no-go","ring gauge","plug gauge"],"value":{"typical":10,"unit":"%"},"basis":"ISO 1938-1 gauge tolerance grades (GG/G-class) sized as a fraction of the workpiece tolerance","sources":["iso-1938"],"tags":["gauge","tolerance","iso-1938"]},{"id":"alignment-pin","kind":"fastener","tier":2,"title":"Assembly-jig alignment / press-fit guide pin","summary":"An assembly jig locates two mating parts with a press-fit alignment pin (H7 press side, g6/f7 slip side on the part being aligned) so parts stack onto the jig in one orientation before fasteners are driven.","applies":["assembly jig","alignment pin","press-fit guide"],"value":{"options":[4,6,8,10,12],"unit":"mm"},"basis":"Same H7 press-fit convention as a fixture dowel, applied to hold two workpieces in registration rather than a workpiece to a fixture","sources":["carr-lane-handbook"],"tags":["alignment-pin","assembly-jig","press-fit"],"see":["hardware/dowel-pin-holes"]},{"id":"fixture-tolerance-critical","kind":"tolerance","tier":1,"title":"Fixture tolerance on locating features","summary":"Locating features on a fixture or jig - pin holes, datum pads, bushing bores - are held to +/-0.01-0.02 mm; everything else on the same plate (mounting holes, clearance pockets, edges) can run at a much looser +/-0.1 mm.","applies":["fixture","jig","fixture plate"],"value":{"min":0.01,"max":0.02,"unit":"mm"},"basis":"Locating features drive the fixture's repeatability budget directly; non-critical features do not","sources":["carr-lane-handbook"],"tags":["tolerance","locating","critical"]},{"id":"material-6061-t6","kind":"material","tier":1,"title":"6061-T6 aluminium for fixture bodies and soft jaws","summary":"6061-T6 (yield approx 276 MPa, density 2.70 g/cm3) is the default fixture-body and soft-jaw material: machines cleanly, holds a tapped hole well, and is light enough for a fixture an operator lifts by hand.","applies":["fixture","soft jaws","fixture plate"],"value":{"table":[{"property":"yield","value":276,"unit":"MPa"},{"property":"density","value":2.7,"unit":"g/cm3"}]},"basis":"General-purpose 6061-T6 mechanical properties, the standard aluminium fixture-component alloy","sources":["carr-lane-handbook"],"tags":["6061","aluminium","material"]},{"id":"material-1018","kind":"material","tier":1,"title":"1018 mild steel for jaws, locators and jig plates","summary":"1018 cold-rolled steel (yield approx 370 MPa, density 7.87 g/cm3) is the default steel for soft jaws, locators and jig plates needing more wear resistance and stiffness than aluminium but no hardening - it also case-hardens well where a wear surface is added later.","applies":["soft jaws","jig plate","locator"],"value":{"table":[{"property":"yield","value":370,"unit":"MPa"},{"property":"density","value":7.87,"unit":"g/cm3"}]},"basis":"General-purpose 1018 mild steel mechanical properties","sources":["carr-lane-handbook"],"tags":["1018","steel","material"]},{"id":"material-mic6","kind":"material","tier":1,"title":"MIC-6 cast tooling plate","summary":"MIC-6 is a cast, stress-relieved 5-series-like aluminium tooling plate (density approx 2.70 g/cm3) sold pre-flattened to 0.15 mm/300 mm - the default stock for fixture and grid plates over rolled 6061 wherever flatness matters more than raw strength.","applies":["fixture plate","tooling plate","grid plate"],"value":{"table":[{"property":"density","value":2.7,"unit":"g/cm3"},{"property":"flatness","value":0.15,"unit":"mm/300mm"}]},"basis":"MIC-6 datasheet: cast and stress-relieved for flatness stability, not for peak strength","sources":["mic6-datasheet"],"tags":["mic-6","tooling-plate","material"]},{"id":"test-repeatability-iso230","kind":"test","tier":2,"title":"Fixture repeatability test (ISO 230-2 style)","summary":"Load and unload the part on the fixture 10 times, probing the same feature each cycle: position must repeat within +/-0.01 mm for the fixture to be accepted, the same statistical-repeatability method ISO 230-2 uses for machine-tool positioning.","applies":["fixture","jig"],"value":{"value":10,"unit":"cycles"},"basis":"ISO 230-2 repeatability methodology (multiple approaches, statistical spread) applied to a fixture instead of a machine axis","sources":["iso-230-2"],"tags":["test","repeatability","iso-230"]},{"id":"123-block-hole-pattern","kind":"feature","tier":2,"title":"1-2-3 block hole pattern","summary":"A standard 1-2-3 block carries 23 holes: a grid of dia9.5 mm (3/8 in) plain dowel/clearance holes plus 3/8-16 UNC tapped holes through both large faces, so the block clamps to a fixture or another block from either side.","applies":["1-2-3 block"],"value":{"table":[{"item":"total holes","value":23},{"item":"plain hole","dia_mm":9.5},{"item":"tapped hole","thread":"3/8-16 UNC"}]},"basis":"McMaster-Carr 1-2-3 block dimensional drawing hole callouts","sources":["mcmaster-123-block"],"tags":["1-2-3-block","hole-pattern"]},{"id":"rest-pad-button","kind":"feature","tier":2,"title":"Rest pads and locating buttons","summary":"A rest pad (flat, dia10-25 mm face) or locating button (a shouldered pin with a small flat or crowned top) gives a fixture a hardened, replaceable contact point instead of resting the part directly on soft fixture-body material, which would wear and lose repeatability.","applies":["fixture","jig","rest pad","button"],"value":{"min":10,"max":25,"unit":"mm"},"basis":"Replaceable hardened contact points isolate wear from the (soft) fixture body, per standard jig-and-fixture practice","sources":["carr-lane-handbook"],"tags":["rest-pad","button","locating"]},{"id":"toe-clamp","kind":"feature","tier":2,"title":"Toe clamp","summary":"A toe clamp bolts flat to the fixture base and pushes down at a shallow 5-15 degree inward angle on the low edge of a thin part, holding it without blocking the top face - the standard clamp for sheet or plate parts machined on the top surface.","applies":["clamp","toe clamp"],"basis":"Toe clamps hold by the part's edge specifically to leave the top face open for machining","sources":["carr-lane-handbook"],"tags":["toe-clamp","clamp"]},{"id":"strap-clamp","kind":"feature","tier":2,"title":"Strap clamp","summary":"A strap (bridge) clamp pivots on a stud and step block, with an M8-M12 screw driving the far end down onto the part - simple, cheap and adjustable for a wide range of part heights, at the cost of blocking part of the top face under the strap.","applies":["clamp","strap clamp"],"basis":"Strap clamps trade top-face access for low cost and adjustability across part height","sources":["carr-lane-handbook"],"tags":["strap-clamp","clamp"]},{"id":"cam-clamp","kind":"feature","tier":2,"title":"Cam clamp","summary":"A cam clamp uses an eccentric lobe on a lever to drive a plunger or strap down with a quick 90 degree twist, trading peak holding force for a faster load/unload cycle than a threaded strap or toggle clamp - common on high-mix manual fixtures.","applies":["clamp","cam clamp"],"basis":"Cam action trades holding force for cycle-time speed versus a screw-actuated clamp","sources":["carr-lane-handbook"],"tags":["cam-clamp","clamp"]},{"id":"edge-clamp","kind":"feature","tier":2,"title":"Edge clamp","summary":"An edge clamp bolts to the side of a fixture and drives a plunger horizontally, typically 2-5 mm of travel, into the part's edge - useful when both the top and bottom faces are needed for machining or inspection.","applies":["clamp","edge clamp"],"basis":"Horizontal clamping frees both large faces of a thin or flat part","sources":["carr-lane-handbook"],"tags":["edge-clamp","clamp"]},{"id":"vise-jaw-heights","kind":"dimension","tier":2,"title":"Vise jaw height range","summary":"Standard vise jaw heights run 38-63 mm (1.5-2.5 in) above the vise body, with soft jaws typically machined at the 50 mm (2 in) height - tall enough to grip common stock, short enough to clear the spindle on a short-Z mill.","applies":["vise","soft jaws","jaw height"],"value":{"min":38,"max":63,"typical":50,"unit":"mm"},"basis":"Common vise-jaw height range across catalog vise sizes","sources":["kurt-workholding"],"tags":["vise","jaw-height"]},{"id":"soft-jaw-dowel-slot","kind":"feature","tier":2,"title":"Soft jaw dowel slot for repeat setups","summary":"A soft jaw pair machined for a specific part carries a small dia6-8 mm dowel-pin slot below the part profile, so the jaws re-seat in the exact same position after being removed for a tool change or another job - restoring the machined profile's location, not just its shape.","applies":["soft jaws"],"value":{"min":6,"max":8,"unit":"mm"},"basis":"A witness dowel slot lets soft jaws be removed and reinstalled without re-machining or re-touching-off","sources":["kurt-workholding"],"tags":["soft-jaws","dowel-slot"]},{"id":"workstop","kind":"feature","tier":2,"title":"Workstop","summary":"A workstop is 1 or 2 fixed pins or a block a part is pushed against before clamping, setting one axis of position by contact rather than by a locating pin through a hole - used when the part has no hole to locate on, only an edge.","applies":["fixture","jig","workstop"],"basis":"Edge-contact location for parts with no locating hole available","sources":["carr-lane-handbook"],"tags":["workstop","locating"]},{"id":"parallels","kind":"dimension","tier":2,"title":"Precision parallels","summary":"Ground parallel bars raise a part off the vise base or fixture floor by a fixed, matched height (common pairs: 25, 38, 50, 63 mm) so a part clears the jaws or table while both faces stay accessible; a matched pair is flat and equal-height to within a few microns.","applies":["parallels","vise","setup"],"value":{"options":[25,38,50,63],"unit":"mm"},"basis":"Common ground-parallel height series used to raise stock in a vise","sources":["carr-lane-handbook"],"tags":["parallels","setup"]},{"id":"246-block-dims","kind":"dimension","tier":2,"title":"2-4-6 block dimensions","summary":"A 2-4-6 block measures 2 x 4 x 6 in (50.8 x 101.6 x 152.4 mm), the larger sibling of the 1-2-3 block, used the same way - as a ground riser, angle reference or clamping spacer - where more height or span is needed.","applies":["2-4-6 block","setup block"],"value":{"table":[{"dim":"x","mm":50.8},{"dim":"y","mm":101.6},{"dim":"z","mm":152.4}]},"basis":"Defining dimension of the 2-4-6 block: 2, 4 and 6 inches on a side","sources":["mcmaster-123-block"],"tags":["2-4-6-block","setup-block"]},{"id":"angle-plate","kind":"feature","tier":2,"title":"Angle plate","summary":"An angle plate is a precision-ground fixture with two faces at a fixed 90 degree (or adjustable) angle, used to hold a part vertically for side machining or to present an angled datum face square to the table.","applies":["angle plate","fixture"],"basis":"Standard fixturing accessory for presenting a machined face perpendicular to the table","sources":["carr-lane-handbook"],"tags":["angle-plate","fixture"]},{"id":"drill-bushing-od-by-drill","kind":"dimension","tier":2,"title":"Drill bushing OD/ID sizing by drill diameter","summary":"A press-fit drill bushing's bore (ID) is sized to the drill diameter plus a few microns of running clearance, and its OD steps up in standard increments (commonly +5 to +8 mm over ID) so a family of drill sizes shares a small set of stocked bushing OD/jig-hole sizes.","applies":["drill jig","drill bushing"],"value":{"table":[{"drill_mm":3,"bushing_od_mm":8},{"drill_mm":6,"bushing_od_mm":12},{"drill_mm":10,"bushing_od_mm":16},{"drill_mm":16,"bushing_od_mm":22}],"unit":"mm"},"basis":"ISO 8977 / ANSI B94.33 standard bushing OD series matched to common drill diameters","sources":["iso-8977","ansi-b94-33"],"tags":["drill-bushing","od","sizing"]},{"id":"chip-clearance-below-bushing","kind":"rule","tier":2,"title":"Chip clearance below a drill bushing","summary":"Leave 1-1.5x the drill diameter of open clearance between the bushing's bottom face and the part surface, so chips can evacuate and coolant can reach the cut instead of packing against the bushing.","applies":["drill jig","drill bushing"],"value":{"min":1,"max":1.5,"unit":"ratio"},"basis":"Standard drill-jig chip-clearance rule of thumb below a bushing","sources":["carr-lane-handbook"],"tags":["chip-clearance","drill-bushing"]},{"id":"printed-jig-material","kind":"material","tier":2,"title":"3D-printed jig materials: PETG and PA-CF","summary":"A 3D-printed jig or check fixture is printed in PETG for a cheap, tough, low-volume tool, or carbon-fibre-filled nylon (PA-CF) for a stiffer, more dimensionally stable jig that sees repeated handling and light clamping loads.","applies":["3d printed jig","printed fixture","gauge"],"basis":"PETG is the low-cost general-purpose FDM material; PA-CF trades print cost for stiffness and creep resistance in a working jig","sources":["formlabs-jig-fixture","markforged-composites"],"tags":["petg","pa-cf","3d-print","material"]},{"id":"printed-jig-wall","kind":"rule","tier":2,"title":"3D-printed jig wall thickness","summary":"Walls on a 3D-printed jig or fixture body run 3-5 mm thick - thin FDM shells flex under clamp load and lose the repeatability a jig exists to provide, so a printed jig is built noticeably heavier-walled than an equivalent injection-moulded part.","applies":["3d printed jig","printed fixture"],"value":{"min":3,"max":5,"unit":"mm"},"basis":"FDM/FFF layer adhesion and infill stiffness are well below moulded plastic, so a functional jig wall is oversized versus a cosmetic part wall","sources":["formlabs-jig-fixture"],"tags":["3d-print","wall-thickness"]},{"id":"printed-jig-insert","kind":"feature","tier":2,"title":"Heat-set inserts in printed jigs","summary":"A 3D-printed jig that is bolted to a machine, clamped repeatedly, or reused across jobs gets heat-set brass inserts at every fastener location rather than threading the print itself - printed threads strip within a handful of cycles under clamp load.","applies":["3d printed jig","printed fixture"],"basis":"Printed plastic threads have poor cyclic-load durability; a heat-set insert moves the thread into metal","sources":["formlabs-jig-fixture"],"tags":["heat-set-insert","3d-print"],"see":["hardware/heat-set-inserts-metric"]},{"id":"printed-jig-tolerance","kind":"tolerance","tier":2,"title":"3D-printed jig dimensional tolerance","summary":"A 3D-printed jig or fixture feature holds about +/-0.2 mm as-printed on FDM/FFF, enough for a locating slot or a clearance hole but not for a precision press or slip fit, which should be reamed or pinned with a metal insert instead.","applies":["3d printed jig","printed fixture"],"value":{"value":0.2,"unit":"mm"},"basis":"Typical FDM dimensional accuracy on a well-tuned printer/material combination","sources":["formlabs-jig-fixture"],"tags":["3d-print","tolerance"]},{"id":"printed-jig-z-load","kind":"rule","tier":2,"title":"Avoid load-bearing features printed in Z","summary":"Do not put a clamp screw boss, a snap feature or a locating pin bore that sees repeated load along the print's Z (layer) axis - FDM/FFF interlayer strength runs only about 50-70% of in-plane strength, so a Z-loaded feature delaminates well before an XY-oriented one fails.","applies":["3d printed jig","printed fixture"],"basis":"FDM interlayer bond strength is a fraction of in-plane strength; orient load-bearing jig features in XY","sources":["formlabs-jig-fixture"],"tags":["3d-print","z-axis","orientation"]},{"id":"cmm-fixture-pin","kind":"feature","tier":2,"title":"CMM fixture pins and datum spheres","summary":"A CMM inspection fixture locates the part the same way a machining fixture does (3-2-1, pin pair) but adds tooling balls or datum spheres at known fixture-frame coordinates, so the CMM software can auto-align the fixture's own coordinate system before probing the part.","applies":["cmm fixture","inspection fixture"],"basis":"A CMM fixture must self-register to the machine before the part datums mean anything, hence the added tooling-ball references","sources":["carr-lane-handbook"],"tags":["cmm","inspection-fixture","tooling-ball"]},{"id":"assembly-jig-press-fit-guide","kind":"feature","tier":2,"title":"Assembly jig press-fit guides","summary":"An assembly jig guides a press-fit bushing or bearing into a housing with a hardened guide bushing of its own (typically 10-20 mm long), coaxial with the housing bore, so the press ram's force runs straight down the axis instead of cocking the part.","applies":["assembly jig","press-fit guide"],"basis":"A guided press prevents cocking, the dominant failure mode of an unguided manual press-fit","sources":["carr-lane-handbook"],"tags":["assembly-jig","press-fit"]},{"id":"hardening-wear-pad","kind":"material","tier":2,"title":"A2/D2 tool steel wear pads and locators","summary":"Wear pads, hardened locating buttons and bushing liners are made from A2 or D2 tool steel, hardened to 58-62 HRC - a fixture surface that sees repeated part loading and unloading wears far slower at this hardness than at as-machined 1018 or 6061.","applies":["wear pad","locating button","fixture"],"value":{"min":58,"max":62,"unit":"ratio"},"basis":"A2/D2 tool steel through-hardened or case-hardened to a wear-resistant range on fixture contact surfaces","sources":["carr-lane-handbook"],"tags":["a2","d2","tool-steel","hardness","hrc"]},{"id":"1018-case-hardening","kind":"rule","tier":2,"title":"1018 locators are case-hardened, not through-hardened","summary":"1018 mild steel does not through-harden usefully; a 1018 locator or bushing liner that needs a wear surface is carburized (case-hardened) instead, giving a hard skin over a tough, machinable core rather than switching the whole part to tool steel.","applies":["locator","jig plate","1018"],"basis":"1018's low carbon content limits through-hardening response; carburizing adds surface carbon before quenching","sources":["carr-lane-handbook"],"tags":["1018","case-hardening","carburizing"]},{"id":"fixture-tolerance-noncritical","kind":"tolerance","tier":2,"title":"Fixture tolerance on non-critical features","summary":"Features on a fixture plate that do not touch the part or a locator - mounting-bolt clearance holes, lightening pockets, plate edges - are held to a loose +/-0.1 mm, since tightening them buys no repeatability and only adds machining time.","applies":["fixture","fixture plate"],"value":{"value":0.1,"unit":"mm"},"basis":"Tolerance should track function; non-locating fixture features carry no repeatability requirement","sources":["carr-lane-handbook"],"tags":["tolerance","non-critical"]},{"id":"clamp-material-uhmw","kind":"material","tier":2,"title":"HDPE/UHMW clamping pads for soft or finished parts","summary":"A clamp or locator face that would mark a finished, painted or soft workpiece is faced with a 3-6 mm HDPE or UHMW pad instead of bare metal - low friction, self-lubricating, and soft enough to cushion the contact without denting the part.","applies":["clamp","soft fixture","finished part"],"basis":"UHMW/HDPE contact pads protect a cosmetic or soft surface that direct metal-to-metal clamping would damage","sources":["carr-lane-handbook"],"tags":["uhmw","hdpe","clamp-pad","material"]},{"id":"subplate-material-5052","kind":"material","tier":2,"title":"5052 aluminium vs. MIC-6 for subplates","summary":"5052-H32 sheet is a cheaper, more available subplate stock than cast MIC-6 where the flatness spec is loose (a clamp riser, a spacer plate); MIC-6 is worth its premium only when the plate itself carries a locating or datum surface.","applies":["subplate","fixture plate"],"basis":"Rolled 5052 costs less than cast MIC-6 but does not match its as-cast flatness stability","sources":["mic6-datasheet"],"tags":["5052","mic-6","subplate"]},{"id":"delrin-fixture","kind":"material","tier":3,"title":"Delrin (acetal) for low-friction jig bushings and slides","summary":"Delrin (acetal/POM) is used up to about 90-100 C for low-load jig bushings, sliding gib strips and gauge bodies, trading much lower wear life under real clamping load for low friction and dimensional stability without added lubrication.","applies":["jig","gauge","bushing"],"basis":"Acetal's self-lubricating, low-friction, dimensionally stable properties suit light-duty sliding fixture components","sources":["carr-lane-handbook"],"tags":["delrin","acetal","pom","material"]},{"id":"test-clamp-force","kind":"test","tier":2,"title":"Clamp force verification test","summary":"Verify each clamp station meets its rated 100-2500 N holding force (measured with a load cell, or a torque-to-force calculation on the clamp screw) before the fixture is released to production - an under-torqued clamp is the top cause of a part shifting mid-cut.","applies":["fixture","clamp"],"basis":"Clamp force is the single largest fixture failure mode (part shift) and is cheap to verify directly","sources":["carr-lane-handbook"],"tags":["test","clamp-force"]},{"id":"test-gauge-rr","kind":"test","tier":2,"title":"Gauge repeatability and reproducibility (Gauge R&R)","summary":"A go/no-go or dial gauge used for production inspection is qualified with a Gauge R&R study; the combined repeatability + reproducibility variation should consume no more than about 10% of the part tolerance, or the gauge itself is masking real process variation.","applies":["gauge","inspection"],"value":{"max":10,"unit":"%"},"basis":"Standard measurement-systems-analysis (MSA) acceptance criterion for a production gauge","sources":["iso-1938"],"tags":["gauge-rr","msa","test"]},{"id":"test-flatness-check","kind":"test","tier":2,"title":"Fixture-plate flatness check","summary":"Check a fixture plate's flatness with a surface plate and dial indicator, or a straightedge and feeler gauge, against its 0.15 mm/300 mm rating before it enters service and periodically after - a plate that has silently warped degrades every fixture built on it.","applies":["fixture plate","tooling plate"],"basis":"Flatness is the one fixture-plate spec that degrades silently with age and abuse, so it needs a recurring check, not just an incoming one","sources":["mic6-datasheet"],"tags":["flatness","test","inspection"]},{"id":"standard-iso8977","kind":"standard","tier":2,"title":"ISO 8977 - drill jig bushes","summary":"ISO 8977 defines the standard press-fit and renewable drill-bushing types, their OD/ID series and tolerances - the reference every drill-jig bushing bore in this pack is sized against.","applies":["drill jig","drill bushing"],"basis":"Governing international standard for drill jig bushings","sources":["iso-8977"],"tags":["standard","iso-8977"]},{"id":"standard-ansi-b94-33","kind":"standard","tier":2,"title":"ANSI/ASME B94.33 - drill jig bushings","summary":"ANSI/ASME B94.33 is the US-inch counterpart to ISO 8977 for drill jig bushing types, dimensions and fits, still widely referenced on inch-based shop drawings.","applies":["drill jig","drill bushing"],"basis":"Governing US standard for drill jig bushings, parallel to ISO 8977","sources":["ansi-b94-33"],"tags":["standard","ansi-b94-33"]},{"id":"standard-iso1938","kind":"standard","tier":2,"title":"ISO 1938 - plain limit gauges","summary":"ISO 1938 defines plain limit (go/no-go) gauge design, gauge tolerance grades and wear allowances for inspecting toleranced hole and shaft sizes - the standard behind every plug and ring gauge entry in this pack.","applies":["gauge","go no-go"],"basis":"Governing standard for plain limit gauges","sources":["iso-1938"],"tags":["standard","iso-1938"]},{"id":"standard-iso230-2","kind":"standard","tier":2,"title":"ISO 230-2 - machine tool positioning accuracy and repeatability","summary":"ISO 230-2 defines the statistical method (repeated bidirectional approaches, standard deviation of position) for measuring positioning accuracy and repeatability on a machine axis - adopted here as the model for a fixture repeatability test.","applies":["fixture","test"],"basis":"Standard the fixture repeatability test in this pack borrows its methodology from","sources":["iso-230-2"],"tags":["standard","iso-230-2"]},{"id":"standard-asme-b89-1-6","kind":"standard","tier":3,"title":"ASME B89.1.6 - measurement of plain diameters","summary":"ASME B89.1.6 defines calibration and measurement practice for plain internal and external diameters, including the master discs and ring/plug gauges used to certify a shop's own go/no-go gauges.","applies":["gauge","calibration"],"basis":"Governing US standard for calibrating the diameter gauges this pack describes","sources":["asme-b89-1-6"],"tags":["standard","asme-b89-1-6"]},{"id":"standard-iso286","kind":"standard","tier":3,"title":"ISO 286 - ISO system of limits and fits","summary":"ISO 286 defines the hole-basis/shaft-basis tolerance grades (IT grades, letter classes like H7, g6) used throughout this pack for pin, bushing and dowel fits.","applies":["fit","tolerance","locating pin"],"basis":"Governing standard behind every H7/g6-style fit callout in this pack","sources":["iso-286"],"tags":["standard","iso-286"]},{"id":"ring-gauge","kind":"feature","tier":3,"title":"Ring gauge","summary":"A ring gauge is the 2-piece go/no-go pair for an external (shaft) diameter, the mirror of a plug gauge for a hole: GO ring slips over the maximum allowed shaft size, NO-GO stops at the minimum - used to check a fixture's own locating pin.","applies":["gauge","ring gauge"],"basis":"ISO 1938-class functional gauging for external diameters","sources":["iso-1938"],"tags":["ring-gauge","gauge"]},{"id":"feeler-gauge","kind":"dimension","tier":3,"title":"Feeler gauge for gap and clearance checks","summary":"A feeler gauge set (typically 0.05-1.0 mm blades) checks small, specific gaps in a fixture - clamp-to-part clearance, parallel-to-vise-body seating, shim thickness - by feel rather than a dial reading.","applies":["gauge","feeler gauge"],"value":{"min":0.05,"max":1,"unit":"mm"},"basis":"Standard feeler-gauge blade thickness range","sources":["carr-lane-handbook"],"tags":["feeler-gauge","gauge"]},{"id":"datum-sphere","kind":"feature","tier":3,"title":"Datum sphere / tooling ball","summary":"A datum sphere (tooling ball), typically 6-12.7 mm diameter, is a precision-ground steel or ceramic ball mounted at a known fixture-frame location, probed by a CMM to establish the fixture's coordinate system independent of the part it holds.","applies":["cmm fixture","inspection fixture","datum sphere"],"basis":"A sphere gives a CMM probe an unambiguous single point regardless of approach direction, unlike a flat pad or edge","sources":["carr-lane-handbook"],"tags":["datum-sphere","tooling-ball","cmm"]},{"id":"edm-laser-marking-reference","kind":"note","tier":3,"title":"EDM and laser marking reference features on fixtures","summary":"Fixtures for wire/sinker EDM or laser marking add a small reference flat, notch or datum hole so the downstream machine can register the part optically or electrically to the same origin the fixture used, keeping a multi-process part in one coordinate frame across machines.","applies":["edm","laser marking","fixture"],"basis":"Cross-process registration avoids re-establishing datums on a second machine","sources":["carr-lane-handbook"],"tags":["edm","laser-marking","reference"]},{"id":"modular-fixture-system","kind":"note","tier":3,"title":"Modular fixture systems","summary":"A modular fixture system (Renishaw, Mitee-Bite, System 3R style) builds a job-specific fixture from a catalog of grid plates, risers, clamps and locators rather than machining a one-off - faster to build and tear down, at some cost in stiffness versus a dedicated fixture.","applies":["modular fixture","fixture plate"],"basis":"Catalog components traded against dedicated-fixture stiffness and part-specific optimization","sources":["renishaw-fixturing","mitee-bite-fixturing-guide"],"tags":["modular-fixture","system-3r"]},{"id":"recipe-fixture-plate-dowel-tap-grid","kind":"recipe","tier":2,"title":"Recipe: fixture plate with alternating dowel/tapped grid","summary":"Build a 150x100x20 mm fixture plate with a 25 mm-pitch grid of alternating dia6 drill (locating) and M6 tapped (clamping) holes, two offset grids on one plate.","applies":["fixture plate","grid plate"],"basis":"Combines fixture-grid-pitch, dowel-tapped-alternation and fixture-plate-thickness into one buildable plate","sources":["mitee-bite-fixturing-guide","renishaw-fixturing"],"tags":["recipe","fixture-plate","grid"],"recipe":{"prompt":"Model a 150x100x20mm fixture plate with a 25mm grid of alternating dowel holes and M6 tapped holes","steps":[{"tool":"cad_box","args":{"dx":150,"dy":100,"dz":20},"note":"plate blank, 150x100x20mm 6061-T6"},{"tool":"cad_hole_pattern","args":{"of":"$0","type":"drill","diameter":6,"pattern":{"kind":"grid","origin":[25,25],"dx":50,"dy":50,"nx":3,"ny":2}},"note":"6 locating dowel holes, dia6, on the 25mm-offset grid columns x=25,75,125"},{"tool":"cad_hole_pattern","args":{"of":"$1","type":"tapped","size":"M6","depth":12,"pattern":{"kind":"grid","origin":[50,25],"dx":50,"dy":50,"nx":2,"ny":2}},"note":"4 M6 tapped clamp holes, blind 12mm (2xD), interleaved 25mm off the dowel columns at x=50,100"}],"expect":{"volume":295664.6,"faceCount":30,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-soft-jaws","kind":"recipe","tier":2,"title":"Recipe: soft jaw blank with pocket and bolt counterbores","summary":"Build a 150x50x25 mm 6061 soft-jaw blank, cut a 100x20x10 mm workpiece pocket into the top face, and add two M8 counterbored mounting holes on the Kurt jaw bolt spacing.","applies":["soft jaws","vise jaws"],"basis":"Combines soft-jaw-blank, vise-jaw-bolt-pattern (scaled to M8 counterbore) and a boolean-cut pocket into one buildable jaw","sources":["kurt-workholding"],"tags":["recipe","soft-jaws","vise"],"recipe":{"prompt":"Model a 150x50x25mm soft jaw blank with a 100x20x10mm pocket and two M8 counterbored mounting holes","steps":[{"tool":"cad_box","args":{"dx":150,"dy":50,"dz":25},"note":"soft jaw blank, 150x50x25mm 6061-T6"},{"tool":"cad_box","args":{"dx":100,"dy":20,"dz":10,"origin":[25,15,15]},"note":"pocket tool, 100x20x10mm, cut from the top face down"},{"tool":"cad_boolean_subtract","args":{"of":"$0","tool":"$1"},"note":"subtract to cut the workpiece pocket"},{"tool":"cad_hole_pattern","args":{"of":"$2","type":"counterbore","size":"M8","pattern":{"kind":"linear","origin":[30,25],"step":[90,0],"count":2}},"note":"2 M8 counterbored mounting holes, 90mm apart"}],"expect":{"volume":165281.73,"faceCount":21,"watertight":true,"note":"measured 2026-09-19: representation change, not geometry: pinned while the boolean published a TESSELLATED B-rep (one planar face per triangle) and it now publishes an analytic one — faceCount 87 -> 21, volume identical to 0.003%: the M8 counterbore pattern is analytic again and the body is all-planar plus two counterbores"}}},{"id":"recipe-drill-jig","kind":"recipe","tier":2,"title":"Recipe: drill jig plate with bushing bores and locating pin holes","summary":"Build a 120x80x16 mm drill jig plate with two dia12 press-fit bushing bores on a 60 mm spacing plus a round and a diamond locating pin hole for the workpiece.","applies":["drill jig","jig plate"],"basis":"Combines jig-plate-thickness-rule, drill-bushing-od-by-drill and locating-pin-pair into one buildable jig plate","sources":["iso-8977","ansi-b94-33"],"tags":["recipe","drill-jig"],"recipe":{"prompt":"Model a 120x80x16mm drill jig plate with two press-fit bushing bores and a round + diamond locating pin hole pair","steps":[{"tool":"cad_box","args":{"dx":120,"dy":80,"dz":16},"note":"jig plate blank, 120x80x16mm 1018 steel"},{"tool":"cad_hole_pattern","args":{"of":"$0","type":"drill","diameter":12,"pattern":{"kind":"linear","origin":[30,40],"step":[60,0],"count":2}},"note":"2 press-fit bushing bores, dia12mm for a 6mm drill bushing OD, 60mm apart"},{"tool":"cad_drill_hole","args":{"of":"$1","type":"drill","diameter":8,"center":[15,15]},"note":"round locating pin hole, dia8 through"},{"tool":"cad_drill_hole","args":{"of":"$2","type":"drill","diameter":8,"center":[105,65]},"note":"diamond locating pin hole bore, dia8 through (the diamond relief is machined into the pin, not this hole)"}],"expect":{"volume":148372.39,"faceCount":14,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}}]},{"$schema":"nativecad-dfm-pack/1","id":"toys-games","title":"Toys & games — dice, chess, bricks, spinners, puzzles, miniatures","sector":"toys-games","version":"2026-09-04","summary":"Dice, chess sets, toy cars, fidget spinners, yo-yos, frisbees, brick-compatible blocks, jigsaw puzzles, miniatures/figurines, spinning tops, marble runs, board-game tokens and balls: the dimensions, interface fits and materials, plus the EN 71-1/ASTM F963/16 CFR 1501 small-parts and mechanical safety tests a toy is held to.","aliases":["dice","die","d6","casino dice","polyhedral dice","chess set","chess piece","staunton chess piece","chess pawn","toy car","die-cast car","fidget spinner","yo-yo","yoyo","ultimate disc","flying disc","building block","brick-compatible block","jigsaw puzzle piece","figurine","tabletop miniature","spinning top","marble run","meeple","board game token","ping pong ball","table tennis ball"],"crossSector":false,"size":"full","sources":[{"id":"en-71-1","title":"EN 71-1:2014+A1 Safety of toys — Mechanical and physical properties","url":"https://law.resource.org/pub/eu/toys/en.71.1.2014.html","accessed":"2026-09-04"},{"id":"astm-f963","title":"ASTM F963-23 Standard Consumer Safety Specification for Toy Safety","url":"https://store.astm.org/standards/f963","accessed":"2026-09-04"},{"id":"cpsc-16cfr1501","title":"16 CFR 1501 Method for Identifying Toy Hazards (small-parts cylinder)","url":"https://www.ecfr.gov/current/title-16/chapter-II/subchapter-C/part-1501","accessed":"2026-09-04"},{"id":"bricklink-dims","title":"BrickLink — Item Dimensions: Stud Dimensions and Other Standards","url":"https://www.bricklink.com/help.asp?helpID=261","accessed":"2026-09-04"},{"id":"staunton-sizing","title":"House of Staunton — Choosing Chess Piece Sizes","url":"https://www.houseofstaunton.com/blogs/general/chess-piece-sizes","accessed":"2026-09-04"},{"id":"uscf-sizing","title":"US Chess Sales — Guide to Chess Piece Sizes","url":"https://www.uscfsales.com/blogs/chess-pieces/chess-piece-sizes","accessed":"2026-09-04"},{"id":"bearing-608","title":"608 miniature ball bearing dimensions, 8x22x7mm","url":"https://iskbearing.com/product-details/608","accessed":"2026-09-04"},{"id":"yoyo-bearing-c","title":"YoYoTricks — SPEC Bearing Size C","url":"https://yoyotricks.com/shop/spec-bearing-size-c/","accessed":"2026-09-04"},{"id":"usau-disc-standards","title":"USA Ultimate / WFDF approved disc standards","url":"https://archive.usaultimate.org/discstandards/","accessed":"2026-09-04"},{"id":"dicegame-authority","title":"Dice Types, Sizes and Specifications Reference","url":"https://dicegameauthority.com/dice-types-and-specifications","accessed":"2026-09-04"},{"id":"ittf-ball-spec","title":"ITTF-approved 40 mm table tennis ball specification","url":"https://www.allabouttabletennis.com/40mm-table-tennis-balls.html","accessed":"2026-09-04"}],"entries":[{"id":"dice-standard-16mm","kind":"dimension","tier":1,"title":"Standard six-sided die edge length","summary":"A standard d6 boardgame die runs a 12-19 mm cube edge, 16 mm the most common size for retail boxed games; scale pip diameter/depth and edge radius from the edge, not a fixed number.","applies":["dice","d6","die"],"value":{"min":12,"max":19,"typical":16,"unit":"mm"},"basis":"Common commodity d6 edge range across boxed board games and RPG sets","sources":["dicegame-authority"],"tags":["dice","d6","size"]},{"id":"dice-casino-19mm","kind":"dimension","tier":2,"title":"Casino/precision craps die edge length and cube tolerance","summary":"A casino craps die is a 19 mm (3/4 in) cube, razor-edged (no chamfer/radius on the edges); house-grade tolerance runs up to 0.3 mm off true cube, Grade AAA precision dice hold 0.05 mm, and Nevada gaming regulation calls for 0.013 mm (0.0005 in).","applies":["dice","casino dice","craps dice","precision dice"],"value":{"value":19,"unit":"mm","note":"cube tolerance: house 0.3mm, Grade AAA 0.05mm, regulatory 0.013mm"},"basis":"Casino/craps dice manufacturing and gaming-commission tolerance grades","sources":["dicegame-authority"],"tags":["dice","casino","precision","tolerance"]},{"id":"dice-mini-12mm","kind":"dimension","tier":2,"title":"Travel/mini die edge length","summary":"A mini or travel-set die runs a 10-12 mm cube edge, the small end of the standard 12-19 mm range, sized for compact boxed games rather than tabletop grip.","applies":["dice","mini dice","travel dice"],"value":{"min":10,"max":12,"typical":12,"unit":"mm"},"basis":"Common mini-die edge length for compact boxed games","sources":["dicegame-authority"],"tags":["dice","mini","size"]},{"id":"dice-pip-dimensions","kind":"dimension","tier":1,"title":"Die pip diameter and depth as a fraction of edge length","summary":"Engrave each pip at roughly 10-12% of the die's edge length in diameter and 4-5% of the edge in depth (a 16 mm die: about 1.8 mm pip diameter, 0.7 mm deep), spaced so the 21 pips stay inside the corner-blend tangent rails.","applies":["dice","pips","engraving"],"value":{"min":10,"max":12,"typical":11,"unit":"%","note":"pip diameter as % of edge; depth 4-5% of edge"},"basis":"cad_dice_pips scales pipRadius/pipDepth from face size; kernel-proven default ratios for a blended cube","sources":["dicegame-authority"],"tags":["dice","pips","engraving"],"check":{"process":"additive","rule":"min_feature_size"}},{"id":"dice-edge-radius","kind":"rule","tier":1,"title":"Die corner/edge blend radius","summary":"Round a boardgame die's corners and edges 5-10% of the edge length (about 1-1.5 mm on a 16 mm die) so it rolls cleanly and doesn't chip; a casino/precision die instead keeps a near-zero 'razor' edge on purpose, since a rounded edge biases the roll.","applies":["dice","d6","casino dice"],"value":{"min":5,"max":10,"unit":"%","note":"corner/edge blend radius as % of edge length; casino dice use ~0"},"basis":"A rolled die needs enough edge radius to tumble and survive drops without chipping; a fair casino die needs the opposite, a true sharp cube, so the roll isn't biased toward a rounded face","sources":["dicegame-authority"],"tags":["dice","edge","radius","fillet"]},{"id":"dice-balance-tolerance","kind":"tolerance","tier":1,"title":"Die mass balance after pip drilling","summary":"A fair die keeps its centre of mass within about 0.05 mm of its geometric centre; casino dice fill each of the 21 drilled pip holes with epoxy weighted to match the density of the plastic removed, so no face is left lighter than its opposite.","applies":["dice","casino dice","balance"],"value":{"max":0.05,"unit":"mm"},"basis":"Drilled-and-filled pip construction must not leave a mass bias that favours the face opposite the most-drilled face (the 6-face) in the roll","sources":["dicegame-authority"],"tags":["dice","balance","mass","fair-roll"]},{"id":"dice-polyhedral-set","kind":"dimension","tier":2,"title":"Polyhedral RPG dice set sizes (d4-d20)","summary":"A standard 7-piece polyhedral RPG set runs 14-18 mm across each die (typical circumradius 11-13 mm for the d20 built with cad_polyhedron), with the d4 read from its down face rather than an up face since a tetrahedron rests on a face with a vertex at top.","applies":["dice","polyhedral dice","d4","d8","d10","d12","d20","rpg dice"],"value":{"min":11,"max":13,"typical":12,"unit":"mm","note":"circumradius R for cad_polyhedron"},"basis":"Common commercial polyhedral dice set proportions, sized to sit comfortably in an adult hand alongside a d6","sources":["dicegame-authority"],"tags":["dice","polyhedral","rpg","d20"]},{"id":"dice-material","kind":"material","tier":2,"title":"Dice materials: ABS, acrylic, resin and cast metal","summary":"Injection-moulded boardgame dice use ABS (~1.05 g/cm3) or polystyrene; casino/precision dice use cast cellulose acetate or acrylic (~1.19 g/cm3) machined flat and square; hobbyist dice are SLA/DLP resin (~1.1-1.2 g/cm3) or brass/zinc for weighted 'sharp' dice.","applies":["dice","material"],"value":{"table":[{"material":"abs","density":1.05},{"material":"acrylic","density":1.19},{"material":"resin","density":1.15}],"unit":"g/cm3"},"basis":"Common dice-manufacturing material densities across mass-market, casino and hobbyist-resin dice","sources":["dicegame-authority"],"tags":["material","dice","abs","acrylic","resin"]},{"id":"chess-king-height-95mm","kind":"dimension","tier":1,"title":"Tournament Staunton king height","summary":"FIDE/USCF tournament recommendation puts the Staunton king at 95 mm (3.75 in) tall, with club/home sets ranging 85-105 mm; every other piece's height and the board's own square size are proportioned off this one number.","applies":["chess","chess set","staunton chess piece","king"],"value":{"min":85,"max":105,"typical":95,"unit":"mm"},"basis":"FIDE tournament-equipment recommendation for Staunton-pattern king height","sources":["staunton-sizing","uscf-sizing"],"tags":["chess","king","staunton","height"]},{"id":"chess-base-diameter-ratio","kind":"rule","tier":1,"title":"Chess king base diameter as a fraction of king height","summary":"Size the king's base diameter to 40-45% of its own height (a 95 mm king takes a 38-43 mm base); a wider base up to ~50% is common on heavier weighted sets, and a narrower base tips over in play.","applies":["chess","chess set","king","base"],"value":{"min":40,"max":45,"typical":42,"unit":"%"},"basis":"FIDE/USCF proportion guidance balancing a tall Staunton piece against tip-over stability on a felted board","sources":["staunton-sizing","uscf-sizing"],"tags":["chess","base","stability","proportion"]},{"id":"chess-piece-height-ratios","kind":"dimension","tier":2,"title":"Relative piece heights in a Staunton set","summary":"Proportion the rest of a Staunton set off the king's height: queen about 90%, bishop 80%, knight 75%, rook 65% and pawn 55% — a 95 mm king gives roughly an 85 mm queen, 76 mm bishop, 71 mm knight, 62 mm rook and 52 mm pawn.","applies":["chess","chess set","queen","bishop","knight","rook","pawn"],"value":{"table":[{"piece":"king","pct":100},{"piece":"queen","pct":90},{"piece":"bishop","pct":80},{"piece":"knight","pct":75},{"piece":"rook","pct":65},{"piece":"pawn","pct":55}],"unit":"%"},"basis":"Conventional Staunton height hierarchy used across mass-produced and heirloom sets alike","sources":["staunton-sizing","uscf-sizing"],"tags":["chess","proportion","staunton"]},{"id":"chess-square-fit","kind":"rule","tier":2,"title":"King base diameter versus board square width","summary":"Keep the king's base diameter to about 75-80% of the board's own square width, so the piece sits comfortably centred without crowding a diagonally adjacent piece; pick the square size first on a fixed board, or the base diameter first on a set sold without one.","applies":["chess","chess set","board","base"],"value":{"min":75,"max":80,"unit":"%"},"basis":"Standard chess-set sizing guidance pairing a Staunton set to a board so pieces don't collide across squares","sources":["staunton-sizing"],"tags":["chess","board","square","fit"]},{"id":"chess-weighting","kind":"feature","tier":2,"title":"Weighted, felted chess piece base","summary":"A tournament piece carries a lead or zinc slug in a counterbored base cavity for tip-over resistance and a 0.5-1 mm deep felt-pad recess on the underside so the piece slides quietly and doesn't scratch the board.","applies":["chess","chess set","base","weighting"],"value":{"min":0.5,"max":1,"unit":"mm","note":"felt recess depth"},"basis":"Weighted bases resist tipping in play; the shallow felt recess keeps the pad flush rather than proud, matching the housing-label-recess convention","sources":["staunton-sizing"],"tags":["chess","weighting","felt","base"]},{"id":"chess-material","kind":"material","tier":2,"title":"Chess piece materials: boxwood, ebony, ABS and resin","summary":"Heirloom Staunton sets are turned from boxwood (~0.6-0.9 g/cm3, the pale pieces) and ebony or sheesham (~0.9-1.2 g/cm3, the dark pieces); mass-market sets are injection-moulded ABS (~1.05 g/cm3) or cast/printed resin (~1.15 g/cm3).","applies":["chess","material"],"value":{"table":[{"material":"boxwood","density":0.75},{"material":"ebony","density":1.05},{"material":"abs","density":1.05},{"material":"resin","density":1.15}],"unit":"g/cm3"},"basis":"Common Staunton-set turning and moulding material densities","sources":["staunton-sizing"],"tags":["material","chess","wood","abs"]},{"id":"toy-car-axle-diameter-4mm","kind":"dimension","tier":1,"title":"Toy car axle rod diameter","summary":"A pocket-scale toy or die-cast car runs a 4 mm steel axle rod (common range 2.5-5 mm for smaller/larger models), pressed or crimped into the chassis with the wheel free-spinning on it.","applies":["toy car","die-cast car","axle"],"value":{"min":2.5,"max":5,"typical":4,"unit":"mm"},"basis":"Common die-cast/plastic toy-car axle rod stock size across pocket-scale models","sources":["dicegame-authority"],"tags":["toy-car","axle","diameter"]},{"id":"toy-car-wheel-axle-clearance","kind":"tolerance","tier":2,"title":"Wheel bore clearance over the axle","summary":"Bore a toy car's wheel hub 0.1-0.3 mm larger in diameter than the axle rod for free rotation without excess wobble; tighter binds on moulding tolerance, looser lets the wheel wander sideways under load.","applies":["toy car","wheel","axle","clearance"],"value":{"min":0.1,"max":0.3,"unit":"mm"},"basis":"Rotating-bore clearance floor over a rigid axle for a moulded plastic or diecast wheel hub","sources":["dicegame-authority"],"tags":["toy-car","wheel","clearance","fit"]},{"id":"toy-car-wheelbase","kind":"dimension","tier":2,"title":"Toy car wheelbase and track width","summary":"A pocket-scale (roughly 1:64) toy car runs a 45-70 mm wheelbase and 25-35 mm track width, with the body's wheel arches cut to that footprint before any styling detail is added.","applies":["toy car","die-cast car","wheelbase"],"value":{"min":45,"max":70,"typical":55,"unit":"mm"},"basis":"Common pocket-scale (1:64-ish) toy-car chassis proportions","sources":["dicegame-authority"],"tags":["toy-car","wheelbase","chassis"]},{"id":"toy-car-axle-retention","kind":"feature","tier":2,"title":"Axle retention: press-fit boss or crimped end","summary":"Retain a toy car's axle either with a press-fit chassis boss sized 0.05-0.1 mm under the axle diameter, or by crimping/mushrooming the axle end past the wheel hub after assembly — either way leave 0.5-1 mm of end-float so the wheel isn't clamped against the chassis.","applies":["toy car","axle","retention"],"value":{"min":0.5,"max":1,"unit":"mm","note":"axial end-float"},"basis":"A wheel clamped tight against its retention feature binds; the end-float keeps it a true free-spinning fit","sources":["dicegame-authority"],"tags":["toy-car","axle","retention","press-fit"]},{"id":"fidget-spinner-bearing-pocket-608","kind":"dimension","tier":1,"title":"Fidget spinner 608 bearing pocket","summary":"Size the centre bearing pocket for a standard 608 bearing, 22 mm OD x 8 mm bore x 7 mm wide, with a 0.05-0.1 mm press-fit interference on the pocket OD and a 0.1-0.2 mm through-clearance on the bore side so the outer race is gripped and the inner race spins free.","applies":["fidget spinner","bearing","608"],"value":{"value":22,"unit":"mm","note":"pocket bore for 608 OD; bearing is 22x8x7mm"},"basis":"608 is the de-facto standard skate/spinner bearing; a spinner body is designed around its published envelope","sources":["bearing-608"],"tags":["fidget-spinner","bearing","608","press-fit"]},{"id":"fidget-spinner-arm-balance","kind":"rule","tier":2,"title":"Fidget spinner arm mass balance","summary":"Keep the mass of each arm (and any brass/steel weight insert at its tip) within about 2% of the others; an unbalanced spinner precesses and stalls early instead of spinning true, the opposite of the part's whole purpose.","applies":["fidget spinner","balance","arm"],"value":{"max":2,"unit":"%"},"basis":"Rotational balance about the bearing axis is what gives a spinner its long, smooth spin; per-arm mass variance is the direct geometric lever on that balance","sources":["bearing-608"],"tags":["fidget-spinner","balance","arm","mass"]},{"id":"fidget-spinner-arm-envelope","kind":"dimension","tier":2,"title":"Fidget spinner overall diameter and arm weights","summary":"A tri-lobe spinner runs 70-100 mm across, with each arm carrying a 12-15 mm counterweight pocket at its tip for a brass, steel or ceramic slug that both balances the part and raises its moment of inertia for a longer spin.","applies":["fidget spinner","arm","counterweight"],"value":{"min":70,"max":100,"typical":80,"unit":"mm"},"basis":"Common commercial tri-lobe spinner overall diameter and tip counterweight sizing","sources":["bearing-608"],"tags":["fidget-spinner","size","counterweight"]},{"id":"yoyo-gap-width","kind":"dimension","tier":1,"title":"Yo-yo string gap width","summary":"Set the gap between a yo-yo's two half-bodies to 2-4 mm for unresponsive string-trick play (a wider gap needs more string wraps to bind and 'sleep' longer); a fixed-axle or responsive yo-yo runs the narrow end of the range so it climbs the string on a tug.","applies":["yo-yo","yoyo","gap"],"value":{"min":2,"max":4,"unit":"mm"},"basis":"The gap sets how much string must wrap around the axle/bearing before the two halves bind together and the yo-yo returns to the hand","sources":["yoyo-bearing-c"],"tags":["yoyo","gap","string"]},{"id":"yoyo-bearing-size-c","kind":"dimension","tier":1,"title":"Yo-yo Size C bearing envelope","summary":"The yo-yo industry's Size C bearing (the modern standard for unresponsive play) measures 6.35 mm bore x 12.7 mm OD x 4.75 mm wide (0.25 x 0.5 x 0.1875 in); seat it on the axle with a light press fit on the bore and a running clearance on the OD against the half-body pocket.","applies":["yo-yo","yoyo","bearing","size c"],"value":{"table":[{"param":"bore","value":6.35},{"param":"od","value":12.7},{"param":"width","value":4.75}],"unit":"mm"},"basis":"Size C is the de-facto industry-standard yo-yo transaxle bearing size","sources":["yoyo-bearing-c"],"tags":["yoyo","bearing","size-c"]},{"id":"yoyo-diameter-width","kind":"dimension","tier":2,"title":"Yo-yo overall diameter and width","summary":"A modern unresponsive yo-yo runs 55-57 mm in diameter and 40-45 mm wide across the two half-bodies, sized to sit comfortably in an adult hand while carrying enough rim weight for a long sleep.","applies":["yo-yo","yoyo","size"],"value":{"min":55,"max":57,"typical":56,"unit":"mm"},"basis":"Common modern competition/freestyle yo-yo body diameter range","sources":["yoyo-bearing-c"],"tags":["yoyo","diameter","size"]},{"id":"yoyo-response-system","kind":"feature","tier":2,"title":"Yo-yo response pad groove","summary":"Cut a shallow response-pad groove (silicone O-ring or friction-sticker pad, about 1-1.5 mm deep and 2-3 mm wide) into each half-body immediately outboard of the bearing seat, so the pad — not the bearing — is what grips the string on a tug to climb back to the hand.","applies":["yo-yo","yoyo","response system"],"value":{"min":1,"max":1.5,"unit":"mm"},"basis":"The response system is a separate friction feature outboard of the free-spinning bearing seat, deliberately decoupled from it so the sleep stays unresponsive until the pad is engaged","sources":["yoyo-bearing-c"],"tags":["yoyo","response","groove"]},{"id":"frisbee-ultimate-175g-274mm","kind":"dimension","tier":1,"title":"WFDF/USAU regulation ultimate disc","summary":"A regulation ultimate disc weighs 175 g (+/-3 g), spans 274 mm (+/-3 mm) in diameter and stands 32 mm (+/-2 mm) tall — every WFDF/USAU-approved disc mould is built to this envelope so discs from different makers still fly and stack the same.","applies":["frisbee","ultimate disc","flying disc"],"value":{"table":[{"param":"weight","value":175,"unit":"g"},{"param":"diameter","value":274,"unit":"mm"},{"param":"height","value":32,"unit":"mm"}]},"basis":"WFDF/USAU approved-disc testing criteria for competitive ultimate play","sources":["usau-disc-standards"],"tags":["frisbee","ultimate","disc","wfdf"]},{"id":"frisbee-rim-profile","kind":"feature","tier":2,"title":"Flying disc rim geometry","summary":"Give an ultimate disc a rounded rim about 15-20 mm wide and a 2-3 mm nominal wall, tapering to a rolled or radiused lip rather than a sharp edge — the rim is what a thrower's fingers grip and what generates lift at speed, so its section is not incidental to the shell thickness.","applies":["frisbee","ultimate disc","flying disc","rim"],"value":{"min":15,"max":20,"unit":"mm"},"basis":"Aerodynamic and grip function of the disc rim in regulation ultimate discs","sources":["usau-disc-standards"],"tags":["frisbee","rim","aerodynamics"]},{"id":"brick-stud-pitch-8mm","kind":"dimension","tier":1,"title":"Brick-compatible stud grid pitch","summary":"Lay every stud on an 8 mm x 8 mm grid — the pitch that makes a brick-compatible part interlock with the wider LEGO-style ecosystem; a 2x4 brick's studs sit on this same 8 mm grid, 2 studs by 4 studs.","applies":["building block","brick-compatible block","stud"],"value":{"value":8,"unit":"mm"},"basis":"Published brick-compatible stud grid pitch, the base unit every other brick-compatible dimension is derived from","sources":["bricklink-dims"],"tags":["brick","stud","pitch","grid"]},{"id":"brick-stud-diameter-height","kind":"dimension","tier":1,"title":"Brick-compatible stud diameter and height","summary":"A brick-compatible stud is 4.8 mm nominal diameter (real parts measure 4.85-4.9 mm) and 1.8 mm tall standing proud of the top face, centred on each 8 mm grid point.","applies":["building block","brick-compatible block","stud"],"value":{"table":[{"param":"diameter","value":4.8},{"param":"height","value":1.8}],"unit":"mm"},"basis":"Published brick-compatible stud envelope, the male half of the clutch-fit connection","sources":["bricklink-dims"],"tags":["brick","stud","diameter","height"]},{"id":"brick-wall-thickness","kind":"dimension","tier":1,"title":"Brick-compatible wall and ceiling thickness","summary":"Mould a brick-compatible shell with a 1.6 mm nominal wall and top (ceiling), thinning to 1.2 mm on a tight internal rib or gusset where a full 1.6 mm would sink the outer show face.","applies":["building block","brick-compatible block","wall"],"value":{"min":1.2,"max":1.6,"typical":1.6,"unit":"mm"},"basis":"Published brick-compatible wall/ceiling thickness for a precision ABS injection-moulded shell","sources":["bricklink-dims"],"tags":["brick","wall","thickness"]},{"id":"brick-tube-od","kind":"dimension","tier":1,"title":"Brick-compatible anti-stud tube outer diameter","summary":"Size the hollow anti-stud tube under a multi-stud brick's ceiling to 6.51 mm outer diameter, clutching against the inside wall of a stud pressed up into it from the brick below — this is what gives clutch power, not the studs alone.","applies":["building block","brick-compatible block","tube","anti-stud"],"value":{"value":6.51,"unit":"mm"},"basis":"Published brick-compatible anti-stud tube outer diameter, sized against the 4.8 mm stud for the clutch interference","sources":["bricklink-dims"],"tags":["brick","tube","anti-stud","clutch"]},{"id":"brick-clutch-fit-clearance","kind":"tolerance","tier":2,"title":"Brick-compatible clutch-fit interference","summary":"Hold about 0.1 mm of diametral interference between a stud (4.8-4.9 mm) and the tube/stud-socket it clutches into; more binds the joint solid enough to tear on separation, less lets built models come apart under their own weight.","applies":["building block","brick-compatible block","clutch"],"value":{"value":0.1,"unit":"mm"},"basis":"Clutch power is a controlled light interference fit, not a loose slip fit or a bonded joint — it must separate by hand but hold under normal handling","sources":["bricklink-dims"],"tags":["brick","clutch","interference","tolerance"]},{"id":"brick-material","kind":"material","tier":2,"title":"Brick-compatible block material: ABS","summary":"Brick-compatible blocks are precision-moulded ABS (~1.05 g/cm3) for its dimensional stability, impact toughness and clutch-fit durability over tens of thousands of connect/disconnect cycles; PC is used for transparent parts, POM for the highest-wear axle/gear parts.","applies":["building block","brick-compatible block","material"],"value":{"value":1.05,"unit":"g/cm3"},"basis":"Standard ABS resin density, the dominant brick-compatible moulding material","sources":["bricklink-dims"],"tags":["material","brick","abs"]},{"id":"jigsaw-piece-knob-socket","kind":"feature","tier":2,"title":"Jigsaw puzzle knob (tab) and socket sizing","summary":"Size a jigsaw knob's bulb to about 40-50% of the piece's own edge width and its neck to 50-60% of the bulb diameter; a narrower neck snaps under normal handling and a wider one barely interlocks, so both ratios matter more than either alone.","applies":["jigsaw puzzle piece","puzzle","knob","tab"],"value":{"min":40,"max":50,"unit":"%","note":"knob bulb diameter as % of piece edge width; neck 50-60% of bulb diameter"},"basis":"The knob/socket interlock is what holds two puzzle pieces together with no fastener; both the bulb-to-edge and neck-to-bulb ratios set its strength and its resistance to separating on a light shake","sources":["dicegame-authority"],"tags":["jigsaw","puzzle","knob","interlock"]},{"id":"jigsaw-kerf-clearance","kind":"tolerance","tier":2,"title":"Jigsaw puzzle kerf clearance and piece thickness","summary":"Add the cutting kerf (0.1-0.3 mm for laser, 0.3-0.5 mm for a die/waterjet) to the socket so a knob seats without binding, and choose a piece thickness of 2-3 mm (cardboard/plywood) up to 4-5 mm (acrylic/thick wood) so a knob's neck doesn't snap under normal handling.","applies":["jigsaw puzzle piece","puzzle","kerf"],"value":{"min":0.1,"max":0.5,"unit":"mm"},"basis":"A knob and socket cut from the same kerf-width tool need the kerf added back as clearance or the fit binds; piece thickness sets neck cross-section and therefore snap resistance","sources":["dicegame-authority"],"tags":["jigsaw","kerf","thickness","tolerance"]},{"id":"figurine-scale-28-32mm-heroic","kind":"dimension","tier":1,"title":"Tabletop miniature heroic scale","summary":"'28 mm heroic' and '32 mm heroic' describe a miniature's eye height in millimetres, deliberately scaled up (heroic) from true 1:64/1:56 scale for visual punch on a tabletop — a 28 mm-scale human figure stands roughly 30-32 mm to the top of the head including base.","applies":["figurine","tabletop miniature","scale"],"value":{"min":28,"max":32,"typical":28,"unit":"mm"},"basis":"Industry-standard heroic wargaming scale convention, measured to eye height rather than total height","sources":["dicegame-authority"],"tags":["figurine","miniature","scale","heroic"]},{"id":"figurine-min-feature-resin","kind":"rule","tier":2,"title":"Minimum printable feature on a resin miniature","summary":"Keep a miniature's thinnest feature (sword blade, spear shaft, feather edge) to at least 0.4 mm on SLA/DLP resin printing; below that the feature either fails to cure solid or snaps off during support removal and cleanup.","applies":["figurine","tabletop miniature","resin"],"value":{"min":0.4,"unit":"mm"},"basis":"SLA/DLP resin's practical minimum unsupported feature width for a part handled by hand after printing","sources":["dicegame-authority"],"tags":["figurine","miniature","resin","min-feature"],"check":{"process":"additive","rule":"min_feature_size"}},{"id":"figurine-base-diameter","kind":"dimension","tier":2,"title":"Miniature round base diameters","summary":"Base a 28-32 mm heroic miniature on a round base of 25, 32 or 40 mm diameter depending on the figure's footprint class (infantry, cavalry/large infantry, monster) — pick from this small standard set rather than a bespoke size, so the figure fits standard movement trays.","applies":["figurine","tabletop miniature","base"],"value":{"options":[25,32,40],"unit":"mm"},"basis":"Common wargaming round-base size convention keyed to a figure's footprint class","sources":["dicegame-authority"],"tags":["figurine","miniature","base"]},{"id":"spinning-top-geometry","kind":"dimension","tier":2,"title":"Spinning top tip radius and body proportions","summary":"Turn a spinning top's pivot tip to a small 0.5-1 mm radius for low rolling friction and a body 30-50 mm in diameter with its centre of mass low and exactly on the spin axis; any radial mass offset shows up immediately as a wobble that decays the spin.","applies":["spinning top","top"],"value":{"min":0.5,"max":1,"unit":"mm","note":"pivot tip radius; body 30-50mm diameter"},"basis":"A top's spin time is dominated by pivot friction (small tip radius) and rotational balance (mass centred low and on-axis)","sources":["dicegame-authority"],"tags":["spinning-top","tip","balance"]},{"id":"marble-run-marble-diameter-16mm","kind":"dimension","tier":1,"title":"Standard marble diameter for a marble run","summary":"Design a marble run's track and funnels around a 16 mm marble (common range 14-19 mm across toy marble sets), the standard size that a run's channel width, gate spacing and funnel throat all key off.","applies":["marble run","marble"],"value":{"min":14,"max":19,"typical":16,"unit":"mm"},"basis":"Standard commodity toy-marble diameter, the reference size marble-run track geometry is built around","sources":["dicegame-authority"],"tags":["marble-run","marble","diameter"]},{"id":"marble-run-track-clearance","kind":"tolerance","tier":2,"title":"Marble run track channel clearance","summary":"Cut a marble run's channel 1-2 mm wider than the marble diameter (17-18 mm channel for a 16 mm marble) so it rolls freely without rattling out sideways; a covered tube instead wants only 0.5-1 mm of diametral clearance since it constrains the marble on all sides.","applies":["marble run","marble","track","channel"],"value":{"min":1,"max":2,"unit":"mm"},"basis":"An open channel needs sidewall clearance for free rolling without letting the marble jump the track; a closed tube needs much less since gravity alone can't eject the marble sideways","sources":["dicegame-authority"],"tags":["marble-run","clearance","track"]},{"id":"meeple-standard-size","kind":"dimension","tier":2,"title":"Standard meeple and token dimensions","summary":"A standard wooden meeple (the Carcassonne-style player-piece figure) stands about 16 mm tall and 10 mm across the shoulders; a flat player token or resource disc runs 15-25 mm in diameter and 3-5 mm thick, sized to be picked up between two fingers.","applies":["meeple","board game token","token"],"value":{"min":16,"max":16,"typical":16,"unit":"mm","note":"meeple height; flat token 15-25mm dia x 3-5mm thick"},"basis":"Common board-game component manufacturing sizes for a wooden meeple figure and flat cardboard/wood tokens","sources":["dicegame-authority"],"tags":["meeple","token","board-game"]},{"id":"ping-pong-ball-40mm","kind":"dimension","tier":1,"title":"ITTF regulation table tennis ball","summary":"A regulation table tennis ball is 40 mm in diameter (+/-0.5 mm) and weighs 2.7 g (2.67-2.77 g acceptable), moulded as a hollow ABS shell about 0.4 mm thick — the shell thickness and seam quality are what give it its 24-26 cm bounce from a 30 cm drop.","applies":["ball","ping pong ball","table tennis ball"],"value":{"table":[{"param":"diameter","value":40,"unit":"mm"},{"param":"mass","value":2.7,"unit":"g"},{"param":"shell","value":0.4,"unit":"mm"}]},"basis":"ITTF-approved 40 mm table tennis ball specification","sources":["ittf-ball-spec"],"tags":["ball","ping-pong","table-tennis","ittf"]},{"id":"standard-en71-1-small-parts","kind":"standard","tier":1,"title":"EN 71-1 small-parts test cylinder","summary":"EN 71-1 defines a 31.7 mm diameter x 57.1 mm deep test cylinder approximating a young child's fully expanded throat; any toy (or part detached by the standard's use-and-abuse tests) intended for a child under 36 months must not fit entirely inside it.","applies":["toy","small parts","safety"],"value":{"table":[{"param":"diameter","value":31.7},{"param":"depth","value":57.1}],"unit":"mm"},"basis":"Governing EU toy-safety standard for the small-parts choking-hazard test cylinder and the associated mechanical use-and-abuse test sequence","sources":["en-71-1"],"tags":["standard","en71","small-parts","safety"]},{"id":"standard-astm-f963","kind":"standard","tier":2,"title":"ASTM F963 — US toy safety specification","summary":"ASTM F963 is the mandatory US toy-safety specification (enforced by CPSC under the CPSIA) covering small parts, sharp edges/points, use-and-abuse mechanical testing, flammability and more for toys intended for children under 14; it is the US counterpart to EN 71.","applies":["toy","safety","standard"],"basis":"Federally mandated US consumer-product-safety specification for toys","sources":["astm-f963"],"tags":["standard","astm","f963","safety"]},{"id":"standard-16cfr1501","kind":"standard","tier":2,"title":"16 CFR 1501 — US small-parts test method","summary":"16 CFR 1501 is the CPSC regulation defining the US small-parts test method and its own 31.7 mm x 57.1 mm cylinder — dimensionally identical to EN 71-1's — used to judge whether a toy component for a child under 3 is a choking hazard.","applies":["toy","small parts","safety"],"value":{"value":31.7,"unit":"mm"},"basis":"US federal regulation defining the small-parts choking-hazard test cylinder and procedure","sources":["cpsc-16cfr1501"],"tags":["standard","cpsc","16cfr1501","small-parts"]},{"id":"toy-age-grading","kind":"rule","tier":2,"title":"Toy age grading and the small-parts test threshold","summary":"Age-grade a toy under 3, 3-6 or 6-plus per ASTM F963/EN 71 guidance; only the under-3 grade must pass the 31.7mm small-parts cylinder test, so a legitimately small removable piece can ship by age-grading up instead of a redesign.","applies":["toy","age grading","safety"],"basis":"Age grading is the mechanism by which a toy standard decides which mechanical tests actually apply to a given part","sources":["astm-f963","en-71-1"],"tags":["age-grading","safety","standard"]},{"id":"test-choking-small-parts","kind":"test","tier":2,"title":"Small-parts choking test","summary":"After the standard's torque, tension, drop and impact use-and-abuse sequence, check every part against the 31.7x57.1mm cylinder; no detachable feature (a button eye, a wheel) may fit entirely inside it once the abuse sequence is done.","applies":["toy","small parts","choking"],"value":{"value":31.7,"unit":"mm"},"basis":"EN 71-1 / 16 CFR 1501 choking-hazard test procedure applied after mechanical abuse, not on the pristine part","sources":["en-71-1","cpsc-16cfr1501"],"tags":["test","choking","small-parts"]},{"id":"test-drop-torque-tension","kind":"test","tier":2,"title":"Use-and-abuse drop, torque and tension test","summary":"The use-and-abuse sequence drops a toy from about 850 mm onto a hard floor, then applies torque and a tension pull to any graspable part; an axle boss, snap-fit limb or glued eye must not separate under those loads if it would then pass the small-parts cylinder.","applies":["toy","drop test","torque","tension"],"value":{"value":850,"unit":"mm"},"basis":"EN 71-1/ASTM F963 mechanical use-and-abuse sequence a toy must survive before the small-parts check is applied","sources":["en-71-1","astm-f963"],"tags":["test","drop","torque","tension"]},{"id":"test-sharp-edge-point","kind":"test","tier":2,"title":"Sharp edge and sharp point test","summary":"EN 71-1's calibrated edge-scraping tool and point tester probe every accessible edge and point on a finished toy; passing means no true 0-radius machined or moulded edge on any part a young child can reach, and no unguarded functional point.","applies":["toy","sharp edge","sharp point"],"basis":"EN 71-1/ASTM F963 mechanical hazard test for accessible sharp edges and points on a finished toy","sources":["en-71-1","astm-f963"],"tags":["test","sharp-edge","sharp-point"]},{"id":"test-bite-test","kind":"test","tier":2,"title":"Bite/compression test","summary":"A bite/compression test clamps a toy part in a jaw-like fixture to simulate a young child biting or squeezing it; a part must not fracture into a piece under 31.7mm, which drives minimum wall thickness at any bite-prone thin edge.","applies":["toy","bite test","compression"],"basis":"EN 71-1/ASTM F963 mechanical test simulating a child's bite/compression force on an accessible part","sources":["en-71-1","astm-f963"],"tags":["test","bite","compression"]},{"id":"material-pla-petg-toys","kind":"material","tier":2,"title":"PLA and PETG for FDM-printed toys","summary":"PLA (~1.24 g/cm3) is the common material for a printed toy prototype or a low-handling display piece; PETG (~1.27 g/cm3) is preferred for anything a child will actually handle and drop, for its better impact toughness.","applies":["toy","fdm","pla","petg"],"value":{"table":[{"material":"pla","density":1.24},{"material":"petg","density":1.27}],"unit":"g/cm3"},"basis":"Standard PLA and PETG filament datasheet densities and known impact-toughness difference","sources":["dicegame-authority"],"tags":["material","pla","petg","fdm"]},{"id":"material-beech-wood-toys","kind":"material","tier":2,"title":"Beech wood for turned/laser-cut toys and puzzles","summary":"Beech (~0.7-0.75 g/cm3) is a common hardwood for turned toys, chess pieces and laser-cut puzzles: fine, even grain that laser-cuts and turns cleanly, takes a smooth food-safe finish, and resists splintering better than softwood.","applies":["toy","wood","beech","puzzle"],"value":{"min":0.7,"max":0.75,"unit":"g/cm3"},"basis":"Standard beech (Fagus) hardwood density and known suitability for toy/puzzle manufacturing","sources":["dicegame-authority"],"tags":["material","wood","beech"]},{"id":"material-pom-toy-mechanisms","kind":"material","tier":2,"title":"POM (acetal) for low-friction toy mechanisms","summary":"POM/acetal (~1.41 g/cm3) is the go-to plastic for a toy's moving mechanical parts — spinning-top pivots, toy car axle bushings, gear trains — for its low coefficient of friction and good wear resistance without added lubricant.","applies":["toy","pom","acetal","mechanism"],"value":{"value":1.41,"unit":"g/cm3"},"basis":"Standard POM/acetal resin datasheet density and known self-lubricating, low-friction bearing behaviour","sources":["dicegame-authority"],"tags":["material","pom","acetal","mechanism"]},{"id":"recipe-die-16mm-pips","kind":"recipe","tier":2,"title":"Recipe: 16 mm die with engraved pips","summary":"Build a standard 16 mm six-sided die: a 16 mm cube, corners/edges blended to a 1 mm radius, then the classic 1-6 pip layout engraved into all six faces.","applies":["dice","d6","die"],"basis":"Combines dice-standard-16mm and dice-edge-radius into the exact buildable input cad_dice_pips expects: a blended cube","sources":["dicegame-authority"],"tags":["recipe","dice","pips"],"recipe":{"prompt":"Model a 16mm six-sided die with a small edge blend and the classic 1-6 pips engraved on all faces","steps":[{"tool":"cad_box","args":{"dx":16,"dy":16,"dz":16},"note":"16mm die blank"},{"tool":"cad_fillet_edges","args":{"of":"$0","radius":1},"note":"blend all edges/corners 1mm before engraving pips"},{"tool":"cad_dice_pips","args":{"of":"$1"},"note":"engrave the classic 1-6 pip layout, defaults scaled from the 16mm face"}],"expect":{"volume":3908.11,"faceCount":89,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-brick-2x4","kind":"recipe","tier":2,"title":"Recipe: 2x4 brick-compatible block with studs","summary":"Build a 2x4 brick-compatible block: a 31.8x15.8x9.6mm body and eight 4.8mm-diameter, 1.8mm-tall studs on the 8mm grid, unioned onto the top face.","applies":["building block","brick-compatible block"],"basis":"Combines brick-stud-pitch-8mm, brick-stud-diameter-height and brick-wall-thickness into one buildable studded block","sources":["bricklink-dims"],"tags":["recipe","brick","stud"],"recipe":{"prompt":"Model a 2x4 brick-compatible block: 31.8x15.8x9.6mm body with eight studs on the 8mm grid on top","steps":[{"tool":"cad_box","args":{"dx":31.8,"dy":15.8,"dz":9.6},"note":"2x4 brick body"},{"tool":"cad_cylinder","args":{"r":2.4,"h":1.8,"origin":[3.9,3.9,9.6]},"note":"stud 1 of 8, 4.8mm dia x 1.8mm tall, first grid point"},{"tool":"cad_cylinder","args":{"r":2.4,"h":1.8,"origin":[11.9,3.9,9.6]},"note":"stud 2, +8mm pitch along X"},{"tool":"cad_cylinder","args":{"r":2.4,"h":1.8,"origin":[19.9,3.9,9.6]},"note":"stud 3"},{"tool":"cad_cylinder","args":{"r":2.4,"h":1.8,"origin":[27.9,3.9,9.6]},"note":"stud 4"},{"tool":"cad_cylinder","args":{"r":2.4,"h":1.8,"origin":[3.9,11.9,9.6]},"note":"stud 5, +8mm pitch along Y"},{"tool":"cad_cylinder","args":{"r":2.4,"h":1.8,"origin":[11.9,11.9,9.6]},"note":"stud 6"},{"tool":"cad_cylinder","args":{"r":2.4,"h":1.8,"origin":[19.9,11.9,9.6]},"note":"stud 7"},{"tool":"cad_cylinder","args":{"r":2.4,"h":1.8,"origin":[27.9,11.9,9.6]},"note":"stud 8"},{"tool":"cad_boolean_union","args":{"of":"$0","tool":["$1","$2","$3","$4","$5","$6","$7","$8"]},"note":"union all 8 studs onto the brick body in one op"}],"expect":{"volume":5084,"faceCount":30,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-chess-pawn-revolve","kind":"recipe","tier":2,"title":"Recipe: Staunton pawn by revolve","summary":"Build a 52mm Staunton pawn (55% of a 95mm king) as a single revolve of its r-z silhouette: base, stem, collar and a rounded head.","applies":["chess","chess pawn","staunton chess piece"],"basis":"Combines chess-king-height-95mm, chess-base-diameter-ratio and chess-piece-height-ratios into one buildable revolved profile","sources":["staunton-sizing"],"tags":["recipe","chess","pawn","revolve"],"recipe":{"prompt":"Model a 52mm Staunton pawn as a single revolve: wide base, narrow stem, a collar, and a rounded head","steps":[{"tool":"cad_revolve_profile","args":{"profile":[[0,0],[14,0],[14,3],[8,6],[8,20],[11,23],[11,25],[6,28],[6,42],[9,44],[9,46],[3,49],[3,50.5],[0,52]]},"note":"r-z silhouette: 14mm-radius weighted base, 8mm stem, 11mm collar, 6mm neck, 9mm ring, 3mm head taper to a rounded top"}],"expect":{"volume":11023.85,"faceCount":17,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}}]},{"$schema":"nativecad-dfm-pack/1","id":"turbomachinery","title":"Turbomachinery — gas-turbine rotor blades, discs and investment-cast aerofoils","sector":"turbomachinery","version":"2026-09-11","summary":"First-stage HP turbine rotor blade proportions (aero-derivative and industrial-frame classes), fir-tree root and platform geometry, tip-clearance and rotor-speed practice, IN718/IN738LC properties at temperature with a source per value, investment-casting castability limits and the disc/blade tests and tolerances a turbogenerator rotor is held to.","aliases":["turbine blade","turbine","gas turbine","turbomachinery","aerofoil","airfoil","rotor blade","compressor blade","jet engine","turbogenerator","fir tree root","fir-tree root","blade root","turbine disc","rotor disc","nozzle guide vane","stator vane","hp turbine","turbine rotor","investment casting","lost wax casting","superalloy","inconel","in718","in738","turbine rotor blade","hp blade","tip clearance","blade tip","turbine stage","aero-derivative","industrial gas turbine","disc rim","disc burst"],"crossSector":false,"size":"full","sources":[{"id":"boyce-gas-turbine-handbook","title":"Boyce, Gas Turbine Engineering Handbook, 4th ed. (Elsevier/Butterworth-Heinemann)","accessed":"2026-09-05"},{"id":"nativecad-demo-stage-design-record","title":"NativeCAD's own design record for this invented demo stage — CADSB-857 (vane count) and CADSF-1349 (this entry)","accessed":"2026-09-11","note":"Our own design decisions for a stage that does not exist, not a published measurement of any real engine. Trail: CADSB-857 chose 47, CADSF-1349 made this pack entry its single declared source (FeatureBoard KB doc goodman-inputs-for-in738lc-self-sufficient-acquisition-plan, route 1)."},{"id":"rolls-royce-jet-engine","title":"Rolls-Royce plc, The Jet Engine, 5th ed.","accessed":"2026-09-05"},{"id":"nasa-sp290-turbine-design","title":"NASA SP-290, Turbine Design and Application (Glassman, ed.)","accessed":"2026-09-05"},{"id":"donachie-superalloys","title":"Donachie & Donachie, Superalloys: A Technical Guide, 2nd ed. (ASM International)","accessed":"2026-09-05"},{"id":"asm-handbook-vol15","title":"ASM Handbook Vol. 15 — Casting (investment/shell casting of superalloy aerofoils)","accessed":"2026-09-05"},{"id":"specialmetals-in718","title":"Special Metals Corporation, INCONEL alloy 718 Technical Bulletin (SMC-045)","url":"https://www.specialmetals.com/documents/technical-bulletins/inconel/inconel-alloy-718.pdf","accessed":"2026-09-05"},{"id":"in738lc-published-data","title":"IN-738LC published gas-turbine-literature and OEM material data sheets (Cannon-Muskegon / PCC Structurals cast superalloy data)","accessed":"2026-09-05"},{"id":"ici-design-guidelines","title":"Investment Casting Institute, Investment Casting Design Guidelines","accessed":"2026-09-05"},{"id":"beeley-smart-investment-casting","title":"Beeley & Smart, Investment Casting (IOM3/Maney)","accessed":"2026-09-05"},{"id":"mcdp-investment-casting-guide","title":"Metal Casting Design & Purchasing, \"Investment Casting\" design guide","accessed":"2026-09-05"},{"id":"larson-miller-1952","title":"Larson, F.R. & Miller, J., \"A Time-Temperature Relationship for Rupture and Creep Stresses\", Trans. ASME 74 (1952)","accessed":"2026-09-05"},{"id":"api-616","title":"API Standard 616 — Gas Turbines for the Petroleum, Chemical and Gas Industry Services","accessed":"2026-09-05"},{"id":"lee-2014-in738lc-tmf","title":"Lee, Seok, Lee, Kim, Yun & Koo, \"Prediction of thermo-mechanical fatigue life of IN738LC using the finite element analysis\", Int. J. Precision Engineering and Manufacturing 15(8) 1733-1737 (2014)","url":"https://doi.org/10.1007/s12541-014-0526-3","accessed":"2026-09-11","note":"READ 2026-09-11, open copy at academia.edu/36055330. Table 2: E 157/151/141 GPa, 0.2 % yield 793/552/345 MPa at 760/871/982 C, yield 950 MPa at 21 C, nu 0.28-0.30. The 21 C modulus cell is corrupt. No density, no UTS."},{"id":"schneider-1982-in738lc-hcf","title":"Schneider, Gnirss & McColvin, \"High Cycle Fatigue Properties of Cast Nickel Base Superalloys IN 738LC and IN 939\", in High Temperature Alloys for Gas Turbines 1982, pp. 319-344, Springer","url":"https://doi.org/10.1007/978-94-009-7907-9_13","accessed":"2026-09-08","note":"The abstract states HCF data were generated at room temperature, 650, 750 and 850 C — the measurement this pack needs exists here. The S-N values themselves are paywalled and were NOT read, so the endurance limit stays UNKNOWN rather than being guessed."},{"id":"hoffelner-1982-in738-hcf","title":"Hoffelner, \"High-cycle fatigue-life of the cast nickel base-superalloys IN 738 LC and IN 939\", Metallurgical Transactions A 13A (1982) 1245-1255","url":"https://doi.org/10.1007/BF02645508","accessed":"2026-09-08","note":"HCF at room temperature and 850 C is governed by crack growth from casting pores, with scatter explained by pore size and location — one quoted endurance number for a cast aerofoil is not a safe abstraction."},{"id":"shigley-mechanical-engineering-design","title":"Budynas & Nisbett, Shigley's Mechanical Engineering Design, 10th ed., McGraw-Hill — Ch. 6, Marin endurance-limit modifying factors (Table 6-2 surface, Table 6-5 reliability, Eq. 6-20 size)","accessed":"2026-09-08"},{"id":"nickel-institute-497","title":"The International Nickel Company, \"IN-738 Alloy Preliminary Data\", Technical Bulletin 497 (Nickel Institute reprint)","url":"https://nickelinstitute.org/media/1709/in_738alloy_preliminarydata_497_.pdf","accessed":"2026-09-08","note":"NOT READ - refused by this environment's EGRESS POLICY, not by the Nickel Institute: 2026-09-11, five routes (both NI URLs 403; direct HTTPS logged 'connect_rejected (policy denial)'; Wayback SITE_BLOCKED; specialmetals.ir mirror dead)."},{"id":"eos-nickelalloy-in738-mds","title":"EOS GmbH, \"EOS NickelAlloy IN738\" Material Data Sheet, version 011/2024","url":"https://www.eos.info/05-datasheet-images/Assets_MDS_Metal/EOS_NickelAlloy_IN738/MDS_EOS_NickelAlloy_IN738_en.pdf","accessed":"2026-09-11","note":"READ 2026-09-11. CROSS-CHECK ONLY, NOT a cast source - laser powder-bed additively manufactured, HIP'd, solution treated. Rp0.2 1122/1044 MPa at 25 C, 482/477 at 850 C; Rm 1265/1412, 694/720."},{"id":"yuan-2024-vhcf-ti64","title":"Yuan et al. (2024) Ti-6Al-4V VHCF, Metals 14(3) 254, DOI 10.3390/met14030254 (read, CADSF-1348)","url":"https://www.mdpi.com/2075-4701/14/3/254","accessed":"2026-09-11"},{"id":"yin-2025-fod-ti64-blades","title":"Yin et al. (2025) Ti-6Al-4V compressor-blade HCF, Metals 15(10) 1150, DOI 10.3390/met15101150 (read, CADSF-1348)","url":"https://www.mdpi.com/2075-4701/15/10/1150","accessed":"2026-09-11"}],"entries":[{"id":"hp-blade-aeroderivative-scale","kind":"dimension","tier":1,"title":"First-stage HP rotor blade scale — aero-derivative class","summary":"A 40 klbf-class aero-derivative core's first-stage HP rotor blade: hub radius ~330 mm, span ~60 mm (span:hub ~0.18), ~80 blades on the disc.","applies":["turbine blade","hp turbine","aero-derivative gas turbine","turbogenerator"],"value":{"table":[{"param":"hub radius","mm":330},{"param":"blade span","mm":60},{"param":"blade count","count":80}]},"basis":"Representative dimensions for a 40 klbf-class aero-derivative core's first HP stage: small hub, short span, high blade count vs. an industrial frame","sources":["boyce-gas-turbine-handbook","rolls-royce-jet-engine"],"tags":["turbine-blade","aero-derivative","scale","hub-radius","span"]},{"id":"hp-stage-vane-count-declared","kind":"dimension","tier":2,"title":"NGV count of the demo HP stage, and the vane:blade selection rule","summary":"This demo stage has 47 nozzle guide vanes ahead of its 80 blades — DECLARED, not measured. The rule: vane and blade counts with no low common factor, so engine orders spread rather than cluster, at a vane count roughly 0.5–1.0x the blade count (47/80 = 0.59).","applies":["turbine blade","nozzle guide vane","stator vane","hp turbine","campbell diagram","engine order"],"value":{"value":47,"unit":"count","note":"DECLARED: a design choice of an invented demo stage, on the same footing as its 80 blades and 11,000 rpm — never a measurement. Per-row status is in value.table[].status.","table":[{"param":"nozzle guide vane count","count":47,"status":"declared","basis":"47 is PRIME, so gcd(47, 80) = 1: the vane and blade rows are COPRIME and share no common factor, and 47/80 = 0.59 sits inside the 0.5–1.0x band. A DESIGN DECISION of a stage that does not exist, not a measurement of any real machine (CADSB-857 chose it, CADSF-1349 declared it here)."},{"param":"rotor blade count","count":80,"status":"declared","basis":"the paired rotor row, declared by turbomachinery/hp-blade-aeroderivative-scale — the count this vane count must stay coprime with"},{"param":"vane:blade ratio","ratio":0.59,"status":"derived","basis":"47 / 80 = 0.5875, inside the 0.5–1.0 selection band"},{"param":"vane:blade ratio band","min":0.5,"max":1,"status":"rule","basis":"selection rule: a vane count roughly 0.5–1.0 times the blade count keeps one stage's vane chord and loading sensible"},{"param":"engine orders derived from this count","text":"1, 2, 47, 94","status":"derived","basis":"1/rev and 2/rev for unbalance and a once-per-rev inlet distortion, then the vane-passing order V and its first harmonic 2V. The 80 blades are NOT an engine order for this blade (CADSB-857)."}]},"detail":"WHY DECLARED. This stage does not exist: its 80 blades, 11,000 rpm and 330 mm hub are declared by web/turbine-blade.html in its own words, and the vane count is exactly as much ours to declare — there was never anything to license and never anything to measure. Filing it as UNKNOWN was the lesser half of CADSB-857; printing it as a measurement would be worse. THE SELECTION RULE. Choose vane and blade counts with no low common factor, so the engine orders the two rows excite SPREAD across the Campbell diagram instead of clustering on a few multiples — a prime vane count guarantees that against any blade count which is not a multiple of it — and hold the vane count at roughly 0.5–1.0x the blade count so one stage's vane chord and loading stay sensible. 47 satisfies both: prime, gcd(47, 80) = 1, 47/80 = 0.59. WHAT READS THIS. ops/feaCase.js derives rotor.engineOrders = [1, 2, V, 2V] from the vane count and REFUSES a rotor that has none rather than substituting the blade count; demos/turbine_blade/walls.js designClass() and tools/fea/turbine_blade_qualify.js both take the number from this entry (CADSF-1349), so it cannot drift between the pack, the case and the demo.","basis":"A rotor blade is excited at EO = the upstream vane count and its harmonics, so the two row counts are chosen with no low common factor to spread those orders; the number itself is this invented demo stage's own design decision, recorded as declared rather than dressed as a measurement","sources":["nativecad-demo-stage-design-record"],"see":["turbomachinery/hp-blade-aeroderivative-scale","turbomachinery/vibration-campbell-diagram-note"],"tags":["nozzle-guide-vane","vane-count","engine-order","campbell-diagram","declared"]},{"id":"hp-blade-industrial-frame-scale","kind":"dimension","tier":1,"title":"First-stage HP rotor blade scale — industrial (heavy-duty) frame class","summary":"A heavy-duty industrial-frame turbine's first HP stage runs a larger, slower blade: span 200+ mm against a 500-900 mm hub radius, at 3,000 or 3,600 rpm synchronous speed.","applies":["turbine blade","hp turbine","industrial gas turbine","heavy-duty frame"],"value":{"min":200,"unit":"mm","note":"first-stage blade span; hub radius typically 500-900 mm"},"basis":"Industrial frame turbines run at grid-synchronous speed (3,000/3,600 rpm, 2-pole) and scale up blade size rather than rotor speed for comparable power","sources":["boyce-gas-turbine-handbook","api-616"],"tags":["turbine-blade","industrial-frame","scale","synchronous-speed"]},{"id":"blade-aspect-ratio","kind":"dimension","tier":1,"title":"HP turbine rotor blade aspect ratio (span : chord)","summary":"First-stage HP turbine rotor blade aspect ratio (span/mean chord) typically runs 1.0-2.0 — short and stubby versus a compressor blade's 2.5-4, since a hot, highly-loaded HP stage favours a thicker, stiffer aerofoil.","applies":["turbine blade","hp turbine","blade aerofoil"],"value":{"min":1,"max":2,"unit":"ratio"},"basis":"Low aspect ratio keeps the HP aerofoil thick enough to survive combined thermal and centrifugal load and to route internal cooling, at some aerodynamic cost","sources":["nasa-sp290-turbine-design","rolls-royce-jet-engine"],"tags":["turbine-blade","aspect-ratio","aerofoil"]},{"id":"blade-taper-ratio","kind":"dimension","tier":1,"title":"HP turbine rotor blade taper ratio (tip chord : root chord)","summary":"Tip chord runs 0.5-0.8x the root chord on a typical first-stage HP rotor blade — tapering the section outboard trims centrifugal (pull) stress at the root, which carries the full blade's load.","applies":["turbine blade","hp turbine","blade aerofoil"],"value":{"min":0.5,"max":0.8,"unit":"ratio"},"basis":"Centrifugal root stress scales with the mass distribution outboard of the root; tapering the tip trims that mass without giving up as much aerodynamic loading capacity as a uniform section","sources":["nasa-sp290-turbine-design","boyce-gas-turbine-handbook"],"tags":["turbine-blade","taper","aerofoil","root-stress"]},{"id":"blade-twist-angle","kind":"dimension","tier":1,"title":"HP turbine rotor blade twist, root to tip","summary":"A first-stage HP rotor blade twists 15-30 deg in stagger angle from root to tip, following a free- or controlled-vortex design that keeps flow incidence and work extraction even as blade speed rises with radius.","applies":["turbine blade","hp turbine","blade aerofoil"],"value":{"min":15,"max":30,"unit":"deg"},"basis":"Free-vortex flow design requires tangential velocity to fall as 1/radius; because blade speed instead rises with radius, the section must twist so incidence and loading stay matched hub to tip","sources":["nasa-sp290-turbine-design"],"tags":["turbine-blade","twist","stagger-angle","free-vortex"]},{"id":"le-te-radii-pct-chord","kind":"dimension","tier":1,"title":"Leading- and trailing-edge radii as a fraction of chord","summary":"A turbine aerofoil's leading-edge radius runs 2-4% of chord (blunt, to tolerate incidence swings and erosion); the trailing edge is far sharper, sized by castability rather than aerodynamics — see te-thickness-target.","applies":["turbine blade","blade aerofoil","leading edge","trailing edge"],"value":{"min":2,"max":4,"unit":"%","note":"leading-edge radius as % chord"},"basis":"A generously-rounded leading edge tolerates the incidence range a real engine sees across its map without separating; the trailing edge instead wants to be as thin as the process allows","sources":["nasa-sp290-turbine-design","rolls-royce-jet-engine"],"tags":["turbine-blade","leading-edge","trailing-edge","aerofoil"]},{"id":"te-thickness-target","kind":"dimension","tier":1,"title":"Trailing-edge thickness target, as-cast","summary":"An as-cast nickel-superalloy HP blade trailing edge is held to 0.5-0.8 mm minimum thickness — thinner and the ceramic mould does not fill before the metal freezes; verify with cad_dfm_check {process:\"investment_casting\"}.","applies":["turbine blade","trailing edge","investment casting"],"value":{"min":0.5,"max":0.8,"unit":"mm"},"check":{"process":"investment_casting","rule":"min_trailing_edge_thickness"},"basis":"Foundry practice for as-cast (not ground) nickel-superalloy trailing edges: below this range the wax edge distorts before shelling, or the last sliver of mould cavity does not fill","sources":["ici-design-guidelines","mcdp-investment-casting-guide"],"tags":["turbine-blade","trailing-edge","castability","investment-casting"]},{"id":"fir-tree-root-proportions","kind":"dimension","tier":1,"title":"Fir-tree blade-root proportions: neck width vs platform, lobe count","summary":"A fir-tree root's neck (under the platform) runs 0.35-0.5x the platform width, broadening through 2-4 pairs of serration lobes to the base — more lobes share centrifugal pull across more, smaller flanks.","applies":["turbine blade","fir-tree root","blade attachment"],"value":{"min":0.35,"max":0.5,"unit":"ratio","note":"neck width : platform width"},"basis":"The fir-tree attachment carries the whole blade's centrifugal pull in shear/bearing across its flanks; a narrower neck concentrates stress under the platform, so it is kept wide relative to the lobes below","sources":["boyce-gas-turbine-handbook","rolls-royce-jet-engine"],"tags":["fir-tree","blade-root","attachment","neck"]},{"id":"fir-tree-flank-angle","kind":"dimension","tier":1,"title":"Fir-tree serration flank angle","summary":"Fir-tree lobe flank angle (from the radial/pull direction) runs 30-45 deg — shallow enough to keep flank bearing stress moderate, steep enough the lobe does not need excessive radial length to develop it.","applies":["turbine blade","fir-tree root","blade attachment"],"value":{"min":30,"max":45,"unit":"deg"},"basis":"The flank angle sets how centrifugal pull resolves into flank bearing stress and radial engagement length; 30-45 deg is the common working range across published fir-tree and dovetail designs","sources":["boyce-gas-turbine-handbook"],"tags":["fir-tree","blade-root","flank-angle","attachment"]},{"id":"platform-thickness","kind":"dimension","tier":1,"title":"Blade platform thickness","summary":"A first-stage HP blade platform runs 2.5-4 mm thick at blade scale — thick enough to seal the gas-path annulus and carry its own bending load between adjacent blades, thin enough to limit root centrifugal mass.","applies":["turbine blade","platform","blade root"],"value":{"min":2.5,"max":4,"unit":"mm"},"basis":"The platform is a small unsupported panel spanning the gap to the next blade's platform, loaded by gas pressure and its own centrifugal field; this is the common published proportion at first-stage HP scale","sources":["boyce-gas-turbine-handbook","rolls-royce-jet-engine"],"tags":["platform","blade-root","thickness"]},{"id":"tip-clearance-targets","kind":"dimension","tier":1,"title":"HP turbine tip clearance: cold build vs hot running","summary":"A first-stage HP turbine is built with 1.0-1.5 mm cold tip clearance (~2% span) so nothing rubs on start-up, closing to a 0.3-0.5 mm hot-running target (~0.5-1% span) as casing/disc grow toward the blade.","applies":["turbine blade","tip clearance","hp turbine"],"value":{"table":[{"state":"cold build","mm":"1.0-1.5","pctSpan":"~2"},{"state":"hot running target","mm":"0.3-0.5","pctSpan":"~0.5-1"}]},"basis":"Casing, disc and blade grow thermally/centrifugally at different rates through a start; active-clearance-control relies on that differential growth (not machining) to close the running gap — 1% of span lost to clearance costs roughly 1-2% stage efficiency","sources":["boyce-gas-turbine-handbook","rolls-royce-jet-engine"],"tags":["tip-clearance","hp-turbine","active-clearance-control"]},{"id":"rotor-speed-and-g-level-aeroderivative","kind":"dimension","tier":1,"title":"Aero-derivative rotor speed and blade centrifugal g-level","summary":"At ~11,000 rpm (omega ~1,152 rad/s), a blade centre-of-mass near 360 mm radius sees centrifugal acceleration omega^2*r_cg ~48,000 g — orders of magnitude above consumer mechanical design.","applies":["turbine blade","rotor speed","centrifugal load","aero-derivative gas turbine"],"value":{"value":48000,"unit":"ratio","note":"omega^2 * r_cg, in units of standard gravity g, at approx. 11,000 rpm"},"basis":"omega^2*r_cg is the standard centrifugal-acceleration figure of merit for a rotating blade; small radius but very high speed drives a g-level far above an industrial frame's","sources":["boyce-gas-turbine-handbook"],"tags":["rotor-speed","centrifugal-load","g-level","aero-derivative"]},{"id":"rotor-speed-industrial-frame","kind":"dimension","tier":1,"title":"Industrial-frame rotor speed: grid-synchronous 3,000 / 3,600 rpm","summary":"A generator-drive industrial turbine runs at 3,000 rpm (50 Hz, 2-pole) or 3,600 rpm (60 Hz, 2-pole) — 3-4x slower than an aero-derivative core, why its first-stage blade is so much larger for comparable power.","applies":["turbine blade","rotor speed","industrial gas turbine","turbogenerator"],"value":{"table":[{"gridHz":50,"rpm":3000},{"gridHz":60,"rpm":3600}]},"basis":"A generator-drive turbine coupled directly to a 2-pole alternator must turn at the grid's synchronous speed; g-level scales as the square of that fixed speed, so industrial frames trade rotor speed for blade size","sources":["api-616","boyce-gas-turbine-handbook"],"tags":["rotor-speed","industrial-frame","synchronous-speed","generator-drive"]},{"id":"in718-properties-20-650c","kind":"material","tier":1,"title":"IN718 (Inconel 718) properties at 20 C and 650 C","summary":"Wrought/cast IN718: density 8.19 g/cm3, modulus ~200 GPa (20 C) / ~165 GPa (650 C), 0.2% yield 1035/800 MPa, UTS 1240/970 MPa (20 C/650 C) — strength drops sharply above ~650 C.","applies":["in718","inconel 718","nickel superalloy","turbine disc"],"value":{"table":[{"tempC":20,"densityGcm3":8.19,"modulusGPa":200,"yieldMPa":1035,"utsMPa":1240},{"tempC":650,"densityGcm3":8.19,"modulusGPa":165,"yieldMPa":800,"utsMPa":970}],"unit":"MPa"},"basis":"AMS 5596 minimum-property table (20 C and 649 C) from the Special Metals INCONEL 718 bulletin; used for discs/cooler stages rather than the 850 C first-stage HP blade — see in738lc-properties-20-650-850c","sources":["specialmetals-in718","donachie-superalloys"],"tags":["material","in718","superalloy","nickel-alloy","turbine-disc"]},{"id":"in738lc-properties-20-650-850c","kind":"material","tier":1,"title":"IN738LC (cast nickel superalloy) properties at 20/650/850 C","summary":"Cast IN738LC (the classic first-stage HP blade alloy): density 8.11 g/cm3, modulus ~168/148/122 GPa at 20/650/850 C; 0.2% yield ~950/850/700 MPa; UTS ~1060/970/780 MPa at the same temperatures.","applies":["in738lc","in-738lc","nickel superalloy","turbine blade","investment casting"],"value":{"table":[{"tempC":20,"densityGcm3":8.11,"modulusGPa":168,"yieldMPa":950,"utsMPa":1060},{"tempC":650,"densityGcm3":8.11,"modulusGPa":148,"yieldMPa":850,"utsMPa":970},{"tempC":850,"densityGcm3":8.11,"modulusGPa":122,"yieldMPa":700,"utsMPa":780}],"unit":"MPa"},"basis":"Handbook-typical published data for cast IN738LC, representative of the alloy class, not a certified single-heat sheet. Per-value sources, and CADSF-1350's two DISAGREEMENTS (E 122 vs 151 GPa; yield 700 vs 552 MPa), are in in738lc-properties-sourced.","sources":["in738lc-published-data","donachie-superalloys","asm-handbook-vol15"],"tags":["material","in738lc","superalloy","nickel-alloy","turbine-blade"],"see":["turbomachinery/in738lc-properties-sourced"]},{"id":"marin-endurance-factors","kind":"rule","tier":2,"title":"Marin endurance-limit factors for an as-cast aerofoil","summary":"Se_corrected = Se * k_size * k_surface * k_temperature * k_reliability. Size k = 1.24 de^-0.107 (2.79-51 mm); surface k = a Sut^b, a = 4.51 MPa, b = -0.265 (machined band, Ra 1.6-3.2 um as-cast); reliability 0.897/0.814/0.753 at 90/99/99.9 %.","applies":["fatigue","endurance limit","turbine blade","investment casting","goodman"],"value":{"table":[{"factor":"size","formula":"de = sqrt(4 A / pi) from the section area A; k = 1.24 de^-0.107 for 2.79 <= de <= 51 mm, 1.51 de^-0.157 for 51 < de <= 254 mm","source":"shigley-mechanical-engineering-design","basis":"Shigley Eq. 6-20. The equivalent diameter is taken as the solid round bar of the SAME SECTION AREA — Shigley's A_95sigma construction is defined for rounds and rectangles, not for a twisted aerofoil, and the substitution is stated rather than implied."},{"factor":"surface","formula":"k = a * Sut_MPa^b","aMPa":4.51,"b":-0.265,"surfaceClass":"machined-or-cold-drawn","source":"shigley-mechanical-engineering-design + ici-design-guidelines","basis":"Shigley Table 6-2 has no as-cast row. An investment-cast aerofoil leaves Ra 1.6-3.2 um, inside the machined band, so the machined row is used; the as-forged row (a = 272, b = -0.995) would give 0.266 at Sut 1060 MPa and is recorded here as the pessimistic alternative. Casting POROSITY, not roughness, dominates cast HCF (hoffelner-1982-in738-hcf) and no surface factor represents it."},{"factor":"temperature","formula":"k = Sut(T) / Sut(20 C)","source":"shigley-mechanical-engineering-design","basis":"Shigley Eq. 6-27 (k_d = ST/SRT). It converts a ROOM-TEMPERATURE endurance limit to temperature, so the base Se it multiplies must be the room-temperature one or the knockdown is counted twice."},{"factor":"reliability","formula":"k = 1 - 0.08 za","table90":0.897,"table99":0.814,"table999":0.753,"table9999":0.702,"source":"shigley-mechanical-engineering-design","basis":"Shigley Table 6-5, standing in for an 8 % standard deviation on the endurance limit. It is a scatter allowance on the MATERIAL, not a reliability of the part."}],"unit":"ratio"},"basis":"Shigley's Ch. 6 Marin factors, with the two substitutions an investment-cast aerofoil forces (equivalent-diameter size, machined-band surface) written down at the point of use.","sources":["shigley-mechanical-engineering-design","ici-design-guidelines","hoffelner-1982-in738-hcf"],"tags":["fatigue","marin","endurance","goodman","as-cast"]},{"id":"in738lc-properties-sourced","kind":"material","tier":2,"title":"IN738LC at temperature - per-value sources, the modulus disagreement, and the HCF UNKNOWN","summary":"The 20/650/850 C IN738LC table, a source and status per value: density 8.11 g/cm3, E 168/148/122 GPa, nu 0.30, yield 950/850/700 MPa, UTS 1060/970/780 MPa; Se UNKNOWN; plus CADSF-1350's modulus and 850 C yield disagreements.","applies":["in738lc","in-738lc","nickel superalloy","turbine blade","investment casting","fatigue"],"value":{"table":[{"tempC":20,"densityGcm3":8.11,"modulusGPa":168,"poissonRatio":0.3,"yieldMPa":950,"utsMPa":1060,"enduranceLimit10e7MPa":null,"provenance":{"densityGcm3":{"source":"in738lc-published-data + donachie-superalloys","status":"published","basis":"NOT READ from a primary source; handbook-typical.","stillNotRead":"No READ source gives a density: 8.11 g/cm3 has no source anybody has read."},"modulusGPa":{"source":"in738lc-published-data + donachie-superalloys","status":"published","basis":"NOT READ from a primary source; handbook-typical.","disputed":true,"disagreement":"DISPUTED (CADSF-1350): 151 GPa (Lee, 871 C) vs 122 GPa here - 11.3 % on frequency; 122 ships.","disagreementRef":"value.table[2].disagreements[0]","crossCheck":"NO cross-check here - Lee Table 2's 21 C modulus cell is corrupt. His slope extrapolated to 20 C gives 197 GPa vs 168 here: ARITHMETIC PERFORMED HERE, not published."},"poissonRatio":{"source":"lee-2014-in738lc-tmf","status":"published","basis":"READ 2026-09-11: Lee 2014 Table 2 gives nu 0.28/0.30/0.29/0.30 at 21/760/871/982 C.","urlActuallyFetched":"https://www.academia.edu/36055330","readOn":"2026-09-11"},"yieldMPa":{"source":"in738lc-published-data + donachie-superalloys","status":"published","basis":"The one strength value here CONFIRMED against a source actually read: Lee 2014 Table 2 (READ 2026-09-11) prints 0.2 % yield = 950 MPa at 21 C - exact agreement. nickel-institute-497 is still unread.","crossCheck":"Lee: 950 MPa at 21 C (exact). EOS: 1122/1044 MPa at 25 C (AM+HIP).","readOn":"2026-09-11","urlActuallyFetched":"https://www.academia.edu/36055330"},"utsMPa":{"source":"in738lc-published-data + donachie-superalloys","status":"published","basis":"NOT READ from a primary source; handbook-typical.","crossCheck":"EOS: Rm 1265/1412 MPa at 25 C (AM+HIP) vs 1060 here - higher, finer grain; no cast UTS read."},"enduranceLimit10e7MPa":{"source":"schneider-1982-in738lc-hcf + hoffelner-1982-in738-hcf","status":"unknown","basis":"UNKNOWN - Schneider 1982 / Hoffelner 1982 IN738LC HCF data: paywalled, NOT read; no fraction-of-Sut substitute used."}}},{"tempC":650,"densityGcm3":8.11,"modulusGPa":148,"poissonRatio":0.3,"yieldMPa":850,"utsMPa":970,"enduranceLimit10e7MPa":null,"provenance":{"densityGcm3":{"source":"in738lc-published-data + donachie-superalloys","status":"published","basis":"NOT READ from a primary source; handbook-typical.","stillNotRead":"No READ source gives a density: 8.11 g/cm3 has no source anybody has read."},"modulusGPa":{"source":"in738lc-published-data + donachie-superalloys","status":"published","basis":"NOT READ from a primary source; handbook-typical.","crossCheck":"Lee (READ 2026-09-11) measures 157 GPa at 760 C; extrapolated back, 162.9 GPa vs 148 here - 10.1 % low = 4.9 % on frequency.","disputed":true,"disagreement":"DISPUTED (CADSF-1350): 151 GPa (Lee, 871 C) vs 122 GPa here - 11.3 % on frequency; 122 ships.","disagreementRef":"value.table[2].disagreements[0]"},"poissonRatio":{"source":"lee-2014-in738lc-tmf","status":"published","basis":"READ 2026-09-11: Lee 2014 Table 2 gives nu 0.28/0.30/0.29/0.30 at 21/760/871/982 C.","urlActuallyFetched":"https://www.academia.edu/36055330","readOn":"2026-09-11"},"yieldMPa":{"source":"in738lc-published-data + donachie-superalloys","status":"published","basis":"NOT READ from a primary source; handbook-typical.","crossCheck":"Lee: 793 MPa at 760 C; extrap. to 650 C = 1032 MPa, ABOVE this pack - curves cross between 650/850 C."},"utsMPa":{"source":"in738lc-published-data + donachie-superalloys","status":"published","basis":"NOT READ from a primary source; handbook-typical.","crossCheck":"No UTS read at 650 C (Lee none; EOS only 25/850 C); 970 MPa unchecked."},"enduranceLimit10e7MPa":{"source":"schneider-1982-in738lc-hcf + hoffelner-1982-in738-hcf","status":"unknown","basis":"UNKNOWN - Schneider 1982 / Hoffelner 1982 IN738LC HCF data: paywalled, NOT read; no fraction-of-Sut substitute used."}}},{"tempC":850,"densityGcm3":8.11,"modulusGPa":122,"poissonRatio":0.3,"yieldMPa":700,"utsMPa":780,"enduranceLimit10e7MPa":null,"provenance":{"densityGcm3":{"source":"in738lc-published-data + donachie-superalloys","status":"published","basis":"NOT READ from a primary source; handbook-typical.","stillNotRead":"No READ source gives a density: 8.11 g/cm3 has no source anybody has read."},"modulusGPa":{"source":"in738lc-published-data + donachie-superalloys","status":"published","basis":"NOT READ from a primary source; handbook-typical.","crossCheck":"Lee (READ 2026-09-11) gives 151 GPa at 871 C vs 122 GPa here - the 24 % gap this ticket was filed over; 152.1 GPa interpolated to 850 C.","disputed":true,"disagreement":"DISPUTED (CADSF-1350): 151 GPa (Lee, 871 C) vs 122 GPa here - 11.3 % on frequency; 122 ships.","disagreementRef":"value.table[2].disagreements[0]"},"poissonRatio":{"source":"lee-2014-in738lc-tmf","status":"published","basis":"READ 2026-09-11: Lee 2014 Table 2 gives nu 0.28/0.30/0.29/0.30 at 21/760/871/982 C.","urlActuallyFetched":"https://www.academia.edu/36055330","readOn":"2026-09-11"},"yieldMPa":{"source":"in738lc-published-data + donachie-superalloys","status":"published","basis":"NOT READ from a primary source; handbook-typical.","disputed":true,"disagreement":"DISPUTED (CADSF-1350), unsafe direction: 552/482/477 MPa (Lee/EOS) vs 700 MPa here - 17.1 % high; Langer factor is linear in yield. 700 ships.","disagreementRef":"value.table[2].disagreements[1]","crossCheck":"Lee 552 MPa at 871 C (597.6 interp. to 850 C) and EOS 482/477 MPa at 850 C, both READ 2026-09-11, vs 700 MPa here."},"utsMPa":{"source":"in738lc-published-data + donachie-superalloys","status":"published","basis":"NOT READ from a primary source; handbook-typical.","crossCheck":"EOS: Rm 694/720 MPa at 850 C (AM+HIP) vs 780 here, 8.3-12.4 % higher - cross-check, not a disagreement."},"enduranceLimit10e7MPa":{"source":"schneider-1982-in738lc-hcf + hoffelner-1982-in738-hcf","status":"unknown","basis":"UNKNOWN - Schneider 1982 / Hoffelner 1982 IN738LC HCF data: paywalled, NOT read; no fraction-of-Sut substitute used."}},"disagreements":[{"property":"modulusGPa","severity":"11.3 % on every natural frequency; conservative in sign","packValue":"168 / 148 / 122 GPa at 20 / 650 / 850 C","competingValue":"157 / 151 / 141 GPa at 760 / 871 / 982 C (Lee 2014 Table 2)","competingSource":"lee-2014-in738lc-tmf","competingSourceWasRead":"YES (2026-09-11)","packValueSourceWasRead":"NO - handbook-typical (nickel-institute-497 unread).","sizeOfTheGap":"151/122 = 1.2377 (23.8 % at 871 C; 24.7 % interpolated to 850 C on Lee's slope).","consequenceOnFrequency":"DERIVED (tools/fea/modulus_band.js): f scales as sqrt(E/rho), sqrt(151/122) = 1.1125 - every frequency and Campbell crossing is 11.3 % higher on Lee's modulus (4.9 % at 650 C), larger than any crossing margin quoted in this chain.","whyTheyDisagree":"NOT RESOLVED (full analysis: docs/PLAN_2026-09_BLADE_QUAL.md#cadsf-1350). Static vs dynamic modulus: right sign, too small. Product form needs ~10 % porosity. This pack's own 650->850 C slope is -0.130 GPa/C, 2.4 times Lee's measured -0.0541 - a suspicion, not a correction.","whatShips":"122 GPa at 850 C (168 / 148 at 20 / 650 C), UNCHANGED.","whyThatShips":"(1) Every committed modal and Campbell result used 168/148/122 GPa; Lee's curve moves every quoted frequency ~11 % and invalidates results nobody re-ran. (2) A lower E places crossings EARLIER in the run-up - the pessimistic choice. (3) ADR-13: Lee's table is one FE paper's input, not a campaign, so promoting it would buy no provenance.","whatWouldCloseIt":"nickel-institute-497's E-vs-T table (unreachable), or a measured E(T) on this casting.","ticket":"CADSF-1350"},{"property":"yieldMPa","severity":"17.1 % onto the only margin this demo quotes; NOT conservative - unsafe","packValue":"700 MPa at 850 C","competingValue":"552 MPa at 871 C (Lee 2014 Table 2); 482 / 477 MPa at 850 C (EOS, AM+HIP)","competingSource":"lee-2014-in738lc-tmf + eos-nickelalloy-in738-mds","competingSourceWasRead":"YES (2026-09-11)","packValueSourceWasRead":"NO - same as the modulus.","sizeOfTheGap":"700/552 = 1.268 (26.8 % above Lee at 871 C); 597.6 MPa interpolated to 850 C = 17.1 % high. No gap at 20 C (both 950 MPa) - curves cross.","consequenceOnFrequency":"None - hits the MARGIN, not frequency: Se is UNKNOWN, so the quoted factor is the Langer yield factor, LINEAR in yield - ~17 % optimistic, unsafe (unlike the modulus).","whyTheyDisagree":"NOT RESOLVED - likelier a transcription/temperature-shift error than a real material difference (product forms differ, so unproven). Full analysis: docs/PLAN_2026-09_BLADE_QUAL.md#cadsf-1350.","whatShips":"700 MPa at 850 C, UNCHANGED.","whyThatShips":"Same ADR-13 reason as the modulus; every committed result used 700 MPa. Disclosed harder - this direction is optimistic.","whatWouldCloseIt":"nickel-institute-497's tensile table (unreachable), or Balikci et al. (2000) cast IN738LC data (landing page only, paywalled) - docs/PLAN_2026-09_BLADE_QUAL.md#cadsf-1350.","ticket":"CADSF-1350"}]}],"unit":"MPa","note":"enduranceLimit10e7MPa is null at every temperature: UNKNOWN, see provenance. Modulus and 850 C yield are DISPUTED - see detail and value.table[2].disagreements."},"basis":"One row per temperature; provenance.<field> carries {source, status, basis} for that field alone. status is \"published\" or \"unknown\" - never \"estimated\" (ADR-13).","sources":["in738lc-published-data","donachie-superalloys","lee-2014-in738lc-tmf","schneider-1982-in738lc-hcf","hoffelner-1982-in738-hcf","nickel-institute-497","eos-nickelalloy-in738-mds"],"tags":["material","in738lc","superalloy","fatigue","turbine-blade","provenance"],"detail":"CADSF-1350. READ 2026-09-11: Lee 2014 Table 2 and the EOS IN738 sheet v011/2024 (AM+HIP, cross-check only). NOT READ: nickel-institute-497, egress-refused by five routes - so DENSITY has no source anybody has read, and no cast UTS was read. Two DISAGREEMENTS at value.table[2].disagreements: E 122 vs Lee's 151 GPa (24 % = 11.3 % on every frequency, conservative); yield 700 vs 552/482 MPa (17.1 % high, OPTIMISTIC). Both ship UNCHANGED. Narrative: docs/PLAN_2026-09_BLADE_QUAL.md."},{"id":"ti-6al-4v-properties-sourced","kind":"material","tier":3,"title":"Ti-6Al-4V at 20 C - per-value sources and the PUBLISHED endurance limit","summary":"Wrought as-received Ti-6Al-4V at 20 C, every value read from a named paper: E 113 GPa, nu 0.31, rho 4430 kg/m3, Sy 932 MPa, Sut 1027 MPa, Se 540 MPa (1e9 cycles, R = -1). S-N slope UNKNOWN. The demo compressor stage material.","applies":["ti-6al-4v","ti64","tc4","titanium","compressor blade","fatigue","goodman"],"value":{"table":[{"tempC":20,"densityGcm3":4.43,"modulusGPa":113,"poissonRatio":0.31,"yieldMPa":932,"utsMPa":1027,"enduranceLimitMPa":540,"enduranceCycles":1000000000,"enduranceRRatio":-1,"snCurve":null,"provenance":{"densityGcm3":{"source":"yin-2025-fod-ti64-blades","status":"published","basis":"READ 2026-09-11 (CADSF-1348): stated with E and nu as one elastic set."},"modulusGPa":{"source":"yin-2025-fod-ti64-blades","status":"published","basis":"READ 2026-09-11. Disclosed disagreement: Fu et al. (2025) Materials 18(14) 3354 state 107 GPa for their heat, 5 % lower (~2.6 % on every frequency)."},"poissonRatio":{"source":"yin-2025-fod-ti64-blades","status":"published","basis":"READ 2026-09-11, same elastic set."},"yieldMPa":{"source":"yuan-2024-vhcf-ti64","status":"published","basis":"READ 2026-09-11: 932 +/- 4 MPa, as-received H0, the SAME heat as Se so the Goodman construction is self-consistent. Yin 2025 heat is 8-9 % softer (860 MPa)."},"utsMPa":{"source":"yuan-2024-vhcf-ti64","status":"published","basis":"READ 2026-09-11: 1027 +/- 5 MPa, same heat."},"enduranceLimitMPa":{"source":"yuan-2024-vhcf-ti64","status":"published","basis":"READ 2026-09-11: 540 MPa at 1e9 cycles, R = -1, 20 kHz, 25 C, Kt = 1. Used as the 1e7 limit it is CONSERVATIVE. Cross-check: Yin 2025 intact blades 524 MPa at 0.01-50 Hz (R, N not stated)."},"snCurve":{"source":null,"status":"unknown","basis":"No multi-point S-N table was READ (Fu 2025 Tables 2-3 not in the text layer; DTIC HCF reports answer 403). A finite-life claim cannot be made from this entry."}}}],"unit":"text","note":"One row, 20 C only. The chain refuses a temperature with no row. Marin factors are per PART: see marin-endurance-factors."},"basis":"Consumes demos/turbine_blade/materials/ti-6al-4v.json (CADSF-1348, ADR-19) as its single source of values; every cell is PUBLISHED from a paper actually read, or UNKNOWN. None is handbook-derived.","sources":["yuan-2024-vhcf-ti64","yin-2025-fod-ti64-blades"],"tags":["material","titanium","fatigue","endurance","compressor","sourced"],"detail":"Pointer entry for the Ti-6Al-4V demo compressor stage (CADSF-1362, demos/ti_stage). The authoritative per-value record, with test conditions and the four caveats on the 540 MPa (1e9 not 1e7; 20 kHz ultrasonic; Se/Sut 0.526 is a sanity check on a published value, not the 0.5 Sut estimate ADR-13 forbids; R = -1 is the fully reversed limit Goodman wants), lives in demos/turbine_blade/materials/ti-6al-4v.json. tests/test_cadsf-1362.js pins this row to that file cell by cell, so the two cannot drift."},{"id":"min-castable-section-investment","kind":"rule","tier":1,"title":"Minimum castable section thickness (investment casting)","summary":"Nickel-superalloy investment castings at blade scale hold a minimum section thickness of ~1.0-1.5 mm — thinner and the ceramic mould misruns or cold-shuts before filling; check with cad_dfm_check {process:\"investment_casting\"}.","applies":["investment casting","turbine blade","castability"],"value":{"min":1,"max":1.5,"unit":"mm"},"check":{"process":"investment_casting","rule":"min_section"},"basis":"Investment-casting design guides publish this as the practical floor for a nickel-superalloy section at small-to-medium (blade-class) part scale; heavier industrial-frame sections tolerate more","sources":["ici-design-guidelines","mcdp-investment-casting-guide","beeley-smart-investment-casting"],"tags":["castability","min-section","investment-casting","rule"]},{"id":"min-trailing-edge-thickness-rule","kind":"rule","tier":2,"title":"min_trailing_edge_thickness — the thin-edge castability gate","summary":"cad_dfm_check {process:\"investment_casting\"} runs a thin-edge detector: any edge whose two adjacent faces meet at under a approx. 30 deg dihedral, or any face pair reading thin at their shared boundary, is reported by edge id plus both face ids against a 0.6 mm default floor.","applies":["investment casting","trailing edge","dfm-check"],"detail":"The detector runs two tests over every pair of topologically adjacent mesh faces. First, a geometric test: if the two faces' outward normals are closer to antiparallel than -cos(params.trailingEdgeDihedralDeg) (default 30 deg), the pair is a knife-edge dihedral — a wedge that comes to a mathematically sharp line has zero thickness there by construction, so it is reported at value 0 regardless of how a coarse mesh happens to sample it. Second, a measurement test: for a trailing edge modelled with its own small flat or radiused cap (not a mathematical point), the pair is flagged when the existing opposed-ray wall probe already reads below the limit at that boundary. Either path's finding carries entityRefs [edge, face, face] so a reviewer (or a fillet/thicken op) can act on the exact edge.","check":{"process":"investment_casting","rule":"min_trailing_edge_thickness"},"basis":"A cast (not ground) nickel-superalloy trailing edge thinner than roughly 0.5-0.8 mm risks the wax pattern distorting before shelling, or the alloy freezing before it fills the last sliver of mould","sources":["ici-design-guidelines","mcdp-investment-casting-guide"],"tags":["trailing-edge","dfm-check","investment-casting","edge-id"]},{"id":"min-fillet-radius-investment","kind":"rule","tier":2,"title":"min_fillet_radius — unblended internal edges on a casting pattern","summary":"cad_dfm_check {process:\"investment_casting\"} flags any internal (concave) edge left sharp with no blend face at all (reported by edge id, radius 0) plus any existing fillet under the 0.5 mm default floor (reported by face id) — see params.minFilletMm.","applies":["investment casting","fillet","dfm-check"],"check":{"process":"investment_casting","rule":"min_fillet_radius"},"basis":"Foundry practice keeps every internal junction on a casting pattern radiused rather than sharp: an unblended internal corner concentrates shrinkage stress and promotes hot tearing on top of the fatigue stress-riser it is in service","sources":["ici-design-guidelines","beeley-smart-investment-casting"],"tags":["fillet","dfm-check","investment-casting","internal-corner"]},{"id":"max-section-ratio-investment","kind":"rule","tier":2,"title":"max_section_ratio — thickest : thinnest sampled section","summary":"cad_dfm_check {process:\"investment_casting\"} caps the ratio between a body's thickest and thinnest sampled section at 6:1 by default (params.maxSectionRatio), naming both faces — an abrupt change starves the thin side of feed metal during solidification.","applies":["investment casting","section ratio","dfm-check"],"value":{"max":6,"unit":"ratio"},"check":{"process":"investment_casting","rule":"max_section_ratio"},"basis":"Investment-casting guides cap the thickest:thinnest adjoining-section ratio near 3:1 for a conservative shape and up to about 6:1 where the transition is gradual; 6:1 is the loose, root-to-tip aerofoil-class end of the range","sources":["ici-design-guidelines","mcdp-investment-casting-guide"],"tags":["section-ratio","dfm-check","investment-casting","shrink-porosity"]},{"id":"disc-burst-margin","kind":"rule","tier":2,"title":"Turbine disc burst-margin practice","summary":"Design practice holds a turbine disc's burst speed to at least 1.3x its design (redline) speed on a rim-average tangential-stress basis — the disc must survive an over-speed transient (e.g. a shed blade) without fragmenting.","applies":["turbine disc","burst margin","rotor integrity"],"value":{"min":1.3,"unit":"ratio"},"basis":"Rotor-integrity practice: burst speed (average-stress / rim-load criterion) must clear design operating speed by this margin so a credible over-speed event does not fragment the disc","sources":["boyce-gas-turbine-handbook"],"tags":["disc","burst-margin","rotor-integrity","overspeed"]},{"id":"creep-life-larson-miller","kind":"rule","tier":2,"title":"Larson-Miller parameter for creep-rupture life","summary":"LMP = T*(C + log10(t_r)), T in Rankine and t_r the rupture life in hours, collapses a superalloy's stress-rupture data from many temperatures onto one master curve; C approx. 20 is the common nickel-superalloy constant.","applies":["creep","stress rupture","superalloy","turbine blade"],"value":{"value":20,"unit":"ratio","note":"the Larson-Miller constant C, typical for nickel superalloys"},"basis":"The standard method for extrapolating short high-temperature stress-rupture tests to the multi-thousand-hour life a blade needs, without running every test that long","sources":["larson-miller-1952","donachie-superalloys"],"tags":["creep","larson-miller","stress-rupture","life-prediction"]},{"id":"core-support-investment-casting","kind":"process","tier":2,"title":"Ceramic core support for cast internal cooling passages","summary":"A cored (hollow, internally cooled) blade needs its ceramic core pinned by at least 2 support points per approx. 50 mm of unsupported core length, or the core shifts under the pour and produces a wall thin on one side, thick on the other.","applies":["investment casting","cored blade","cooling passage"],"value":{"min":2,"unit":"count","note":"per approx. 50 mm of unsupported ceramic core length"},"basis":"The ceramic core defining internal cooling passages is a fragile, unsupported beam inside the wax pattern until the metal solidifies; core shift is one of the most common investment-casting yield losses on a cooled aerofoil","sources":["ici-design-guidelines","asm-handbook-vol15"],"tags":["core-support","cored-blade","cooling-passage","investment-casting"]},{"id":"lost-wax-process-stages","kind":"process","tier":2,"title":"Investment (lost-wax) casting: the process stages","summary":"Lost-wax casting runs 5 stages: wax pattern injection (into a rigid die), ceramic shell build-up (repeated dip/stucco/dry cycles), wax dewax (steam autoclave or flash-fire), shell fire and pour, then shell knockout and cutoff — each stage imposes its own geometry limits.","applies":["investment casting","lost-wax casting","process"],"value":{"value":5,"unit":"count","note":"the number of principal process stages"},"detail":"Wax pattern injection needs draft on the die (not the final casting) and a wall the wax itself can fill and hold dimension in. Ceramic shell build-up is what makes the trailing edge and fillet floors in this pack meaningful, since the shell (not a rigid tool) is the actual mould. Dewax must not distort the thin wax edges before the shell has cured. The pour must reach every cored passage before the alloy freezes, which is what drives the min-section and max-section-ratio floors. Knockout and cutoff (removing the shell and the gating/runner system) is a finishing operation this pack does not model.","basis":"Standard investment-casting process sequence, so a modeller understands which stage a given geometric floor (draft, section, TE thickness, fillet) actually constrains","sources":["beeley-smart-investment-casting","ici-design-guidelines"],"tags":["lost-wax","process","ceramic-shell","investment-casting"]},{"id":"hot-isostatic-pressing","kind":"process","tier":2,"title":"Hot isostatic pressing (HIP) closes internal casting porosity","summary":"HIP post-processes a superalloy investment casting at roughly 1120-1200 C and 100-200 MPa isostatic argon pressure for 2-4 hours, closing internal (non-surface-connected) shrinkage porosity that would otherwise seed fatigue cracks.","applies":["investment casting","hip","porosity","turbine blade"],"value":{"min":100,"max":200,"unit":"MPa","note":"typical HIP isostatic pressure; temperature roughly 1120-1200 C for 2-4 h"},"basis":"HIP is standard practice for flight- and power-critical cast superalloy parts: internal shrinkage porosity cannot always be avoided at the pattern stage, and closing it recovers most of a fully-dense part's fatigue life","sources":["asm-handbook-vol15","donachie-superalloys"],"tags":["hip","porosity","post-processing","investment-casting"]},{"id":"wax-pattern-die-draft","kind":"rule","tier":2,"title":"Draft on the wax injection die (not the finished casting)","summary":"The rigid metal die that injection-moulds the wax pattern wants 0.5-1 deg draft per side to eject the wax cleanly — a constraint on the die design, not on the finished casting, whose ceramic shell is broken away rather than drawn.","applies":["investment casting","wax pattern","draft"],"value":{"min":0.5,"max":1,"unit":"deg"},"basis":"cad_dfm_check {process:\"investment_casting\"} marks min_draft_angle not_applicable to the casting itself (the shell is broken away, not drawn); this records the real, separate draft constraint on the wax die that a pattern-tooling shop still needs","sources":["ici-design-guidelines","beeley-smart-investment-casting"],"tags":["draft","wax-pattern","tooling","investment-casting"]},{"id":"tolerance-chain-tip-clearance","kind":"tolerance","tier":2,"title":"Tolerance-chain contributors to HP turbine tip clearance","summary":"Running tip clearance stacks 5 contributors: casing bore radius, disc rim radius, blade height, and the thermal growth of the casing and the disc/blade assembly — each typically +/-0.1 to +/-0.6 mm, summing to the cold-build allowance tip-clearance-targets budgets for.","applies":["tip clearance","tolerance stack","hp turbine"],"value":{"table":[{"contributor":"casing bore radius","typicalPlusMinusMm":0.1},{"contributor":"disc rim radius (machined, cold)","typicalPlusMinusMm":0.08},{"contributor":"blade height (cast + machined)","typicalPlusMinusMm":0.15},{"contributor":"casing thermal growth","typicalPlusMinusMm":0.3},{"contributor":"disc + blade thermal/centrifugal growth","typicalPlusMinusMm":0.6}]},"basis":"A running tip-clearance budget is a tolerance chain like any other assembly stack, but two of its five terms are thermal (casing growth, disc/blade growth) rather than purely dimensional","sources":["boyce-gas-turbine-handbook","rolls-royce-jet-engine"],"tags":["tolerance-stack","tip-clearance","thermal-growth","hp-turbine"]},{"id":"thermal-growth-casing","kind":"dimension","tier":2,"title":"HP turbine casing radial thermal growth, cold to hot","summary":"The HP turbine casing grows 0.5-1.0 mm radially from cold build to hot steady-state running — a thin-walled casing at gas-path temperature responding faster than the heavier disc it surrounds, which is most of why cold clearance can be built tight.","applies":["thermal growth","hp turbine casing","tip clearance"],"value":{"min":0.5,"max":1,"unit":"mm"},"basis":"A thin casing has low thermal mass and heats quickly, growing radially by alpha*r*deltaT; active-clearance-control systems manage this term with cooling air because it responds fastest of the three growth contributors","sources":["rolls-royce-jet-engine","boyce-gas-turbine-handbook"],"tags":["thermal-growth","casing","tip-clearance"]},{"id":"thermal-growth-disc-rim","kind":"dimension","tier":2,"title":"HP turbine disc rim growth, thermal plus centrifugal","summary":"The disc rim grows 1.0-2.0 mm radially from cold-static to hot-running-speed, combining thermal expansion (a slower-heating, heavier component than the casing) with centrifugal stretch at design rotor speed.","applies":["thermal growth","turbine disc","tip clearance","centrifugal growth"],"value":{"min":1,"max":2,"unit":"mm"},"basis":"The disc is far more massive than the casing and heats more slowly, but its growth also includes the elastic centrifugal stretch of a spinning rotor at speed; the two effects are usually budgeted together as one running-growth allowance","sources":["boyce-gas-turbine-handbook","rolls-royce-jet-engine"],"tags":["thermal-growth","disc","centrifugal-growth","tip-clearance"]},{"id":"thermal-growth-blade","kind":"dimension","tier":2,"title":"HP turbine blade radial (centrifugal) growth under load","summary":"A first-stage HP blade stretches 0.1-0.3 mm radially under its own centrifugal load at design speed — small next to the disc's own growth, but the growth term closest to the tip, so still counted in the tip-clearance chain.","applies":["thermal growth","turbine blade","tip clearance","centrifugal growth"],"value":{"min":0.1,"max":0.3,"unit":"mm"},"basis":"The blade is its own elastic body under centrifugal load (self-weight pulling against the fir-tree root) and stretches measurably at design speed even though it is short compared to the disc","sources":["boyce-gas-turbine-handbook"],"tags":["thermal-growth","blade","centrifugal-growth","tip-clearance"]},{"id":"casing-bore-tolerance","kind":"tolerance","tier":2,"title":"HP turbine casing bore machining tolerance","summary":"A machined HP turbine casing bore is typically held to +/-0.05 to +/-0.15 mm on radius — a precision-bored ring, since its radius is one of the direct terms in the tip-clearance tolerance chain.","applies":["casing","tolerance","machining","tip clearance"],"value":{"min":0.05,"max":0.15,"unit":"mm"},"basis":"The casing bore directly sets one side of the tip-clearance gap, so it is held to a precision-machining tolerance rather than a commercial one — see tolerance-chain-tip-clearance","sources":["boyce-gas-turbine-handbook"],"tags":["tolerance","casing","bore","tip-clearance"]},{"id":"disc-rim-radius-tolerance","kind":"tolerance","tier":2,"title":"Turbine disc rim radius machining tolerance","summary":"A machined turbine disc rim (the fir-tree slot broach diameter) is held to +/-0.05 to +/-0.10 mm on radius — tighter than a typical structural bore, since it sets the blade's effective radius and therefore its centrifugal load and tip position.","applies":["turbine disc","tolerance","machining","fir-tree slot"],"value":{"min":0.05,"max":0.1,"unit":"mm"},"basis":"The disc rim radius fixes where the blade root seats and therefore both its centrifugal moment arm and its contribution to tip-clearance stack-up, so it is machined tighter than a non-critical structural bore","sources":["boyce-gas-turbine-handbook"],"tags":["tolerance","turbine-disc","rim-radius","fir-tree"]},{"id":"blade-height-tolerance","kind":"tolerance","tier":2,"title":"Cast + machined blade height tolerance","summary":"A first-stage HP blade's overall height (fir-tree base to tip) is held to +/-0.10 to +/-0.20 mm after casting and root/tip machining — the fourth of the five tip-clearance tolerance-chain contributors.","applies":["turbine blade","tolerance","blade height","tip clearance"],"value":{"min":0.1,"max":0.2,"unit":"mm"},"basis":"Blade height combines as-cast dimensional variation with the root and tip machining that follows casting; one of the five terms tolerance-chain-tip-clearance sums to size the cold-build clearance","sources":["boyce-gas-turbine-handbook","ici-design-guidelines"],"tags":["tolerance","turbine-blade","blade-height","tip-clearance"]},{"id":"fir-tree-lobe-count-and-skew","kind":"dimension","tier":2,"title":"Fir-tree lobe count and root skew angle","summary":"A first-stage HP fir-tree root commonly carries 2-4 pairs of serration lobes, cut with a 0-15 deg skew (broach angle relative to the rotor axis) to help retain the blade axially in the disc slot.","applies":["fir-tree root","blade attachment","turbine disc"],"value":{"table":[{"param":"lobe pairs","min":2,"max":4},{"param":"skew angle deg","min":0,"max":15}]},"basis":"Lobe count trades broaching complexity against how many flanks share the centrifugal load; a small skew angle is common for axial retention, on top of a separate positive lock (tab or pin) most designs still add","sources":["boyce-gas-turbine-handbook"],"tags":["fir-tree","lobe-count","skew","blade-attachment"]},{"id":"ds-sx-superalloys","kind":"material","tier":2,"title":"Directionally-solidified and single-crystal superalloys","summary":"Above IN738LC's practical range, directionally-solidified (DS, e.g. MAR-M247 DS) and single-crystal (SX, e.g. CMSX-4) superalloys remove transverse grain boundaries entirely, buying roughly 30-60 C of extra creep-rupture capability at the same stress and life.","applies":["single crystal","directionally solidified","superalloy","turbine blade"],"value":{"min":30,"max":60,"unit":"C","note":"typical creep-rupture temperature capability gain over an equiax-cast alloy at equal stress and life"},"basis":"Grain boundaries transverse to the centrifugal load are where creep cavitation nucleates first; DS (columnar grains along the blade axis) and SX (no grain boundaries) castings push the creep-life-limited temperature up substantially, at higher cost and process risk than equiax investment casting","sources":["donachie-superalloys","asm-handbook-vol15"],"tags":["material","single-crystal","directionally-solidified","superalloy"]},{"id":"fpi-inspection-test","kind":"test","tier":2,"title":"Fluorescent penetrant inspection (FPI) of castings","summary":"Every investment-cast turbine blade is 100% fluorescent-penetrant inspected for surface-breaking defects (cracks, cold shuts, porosity) under UV-A light, typically at a minimum 1,000 uW/cm2 illumination, before it proceeds to machining.","applies":["investment casting","inspection","turbine blade","nde"],"value":{"min":1000,"unit":"ratio","note":"minimum UV-A illumination, uW/cm2, a common inspection-booth specification"},"basis":"FPI is the standard, near-universal 100% surface inspection for cast superalloy aerofoils: penetrant dye wicks into surface-breaking flaws invisible to the naked eye and fluoresces under UV, catching what min_section/min_trailing_edge_thickness/min_fillet_radius design out before they form","sources":["asm-handbook-vol15"],"tags":["test","fpi","inspection","nde","investment-casting"]},{"id":"ct-porosity-inspection-test","kind":"test","tier":2,"title":"X-ray CT internal-porosity inspection","summary":"A cored (hollow) turbine blade is X-ray CT (or, historically, film radiography) inspected for internal shrinkage porosity and ceramic-core remnants, typically to a 1-2% of wall-thickness defect-size acceptance criterion.","applies":["investment casting","inspection","cored blade","nde"],"value":{"min":1,"max":2,"unit":"%","note":"typical acceptable internal-defect size, as a fraction of local wall thickness"},"basis":"FPI only sees the surface; a cored blade's internal cooling passages and surrounding wall can only be verified radiographically, which is where core-shift, HIP-uncured porosity and residual core material are actually caught","sources":["asm-handbook-vol15"],"tags":["test","ct-scan","porosity","nde","cored-blade"]},{"id":"spin-pit-overspeed-test","kind":"test","tier":2,"title":"Spin-pit overspeed proof test","summary":"A production turbine disc (and, separately, a blade/disc assembly) is proof-spun to 115-120% of design speed in a containment spin pit before certification — a direct proof of the disc-burst-margin practice this pack also records.","applies":["turbine disc","test","overspeed","rotor integrity"],"value":{"min":115,"max":120,"unit":"%","note":"proof-spin speed, as a percentage of design (redline) speed"},"basis":"A spin-pit overspeed test is the direct mechanical proof that a disc (and its blade attachment) survives beyond its worst credible over-speed transient without yielding or cracking — complementary to the analytical burst-margin practice","sources":["boyce-gas-turbine-handbook"],"tags":["test","spin-pit","overspeed","rotor-integrity","turbine-disc"]},{"id":"vibration-campbell-diagram-note","kind":"note","tier":2,"title":"Campbell diagram: keeping blade natural frequencies clear of engine orders","summary":"A blade's natural bending and torsion frequencies are plotted against rotor speed on a Campbell diagram, alongside lines for each excitation \"engine order\" (1x, 2x... nozzle-count x rotor speed); a design keeps every crossing at least 10-15% away from the running speed range.","applies":["turbine blade","vibration","campbell diagram","resonance"],"basis":"A blade whose natural frequency crosses an engine-order excitation line inside the running speed range resonates in service; the Campbell diagram is the standard tool for verifying no such crossing falls where the engine actually operates, with a published margin rather than an exact-zero clearance","sources":["boyce-gas-turbine-handbook","rolls-royce-jet-engine"],"tags":["vibration","campbell-diagram","resonance","engine-order"]},{"id":"aero-derivative-vs-industrial-frame-note","kind":"note","tier":2,"title":"Why an aero-derivative core and an industrial frame size the same job so differently","summary":"For comparable shaft power, an aero-derivative core uses a small, light, very-high-speed spool (330 mm hub, 60 mm span, 11,000 rpm); a heavy-duty industrial frame instead uses a large, slow rotor (500-900 mm hub, 3,000/3,600 rpm).","applies":["aero-derivative gas turbine","industrial gas turbine","turbogenerator"],"basis":"An aero-derivative core is a de-rated aircraft engine inheriting its weight-minimised, high-speed architecture; a heavy-duty frame is purpose-built for stationary power, trading size/weight for lower rotor speed and g-loading","sources":["boyce-gas-turbine-handbook","api-616"],"tags":["aero-derivative","industrial-frame","comparison","turbogenerator"]},{"id":"recipe-fir-tree-root-profile","kind":"recipe","tier":2,"applies":["fir-tree root","turbine blade"],"tags":["recipe","fir-tree","blade-root"],"title":"Recipe: fir-tree blade-root profile (single-lobe, extruded)","summary":"Build a simplified single-lobe fir-tree root as one extruded closed profile: a 20mm-wide base, a lobe flaring to 26mm, then a 10mm-wide parallel neck rising to the platform, 25mm deep.","basis":"Combines fir-tree-root-proportions and fir-tree-flank-angle into one buildable root cross-section — a single lobe pair rather than the 2-4 a production root carries, simple enough for the kernel to build as one closed polygon","sources":["boyce-gas-turbine-handbook"],"recipe":{"prompt":"Model a simplified single-lobe fir-tree blade-root profile, 25mm deep","steps":[{"tool":"cad_extrude_profile","args":{"depth":25,"outer":[[10,0],[13,6],[5,9],[5,18],[-5,18],[-5,9],[-13,6],[-10,0]]},"note":"base (20mm wide) up through one serration lobe (flares to 26mm) to a 10mm-wide parallel neck"}],"expect":{"volume":7050,"faceCount":10,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-platform-shank-block","kind":"recipe","tier":2,"applies":["platform","shank","turbine blade"],"tags":["recipe","platform","shank"],"title":"Recipe: blade platform + shank as one stepped block","summary":"Build a blade platform-and-shank as one stepped extrusion: a 15x25mm shank pedestal 15mm tall, capped by a 40x25mm platform 4mm thick — a top-hat cross-section in one profile.","basis":"Combines platform-thickness with a representative shank footprint into one buildable stepped block — a real platform and shank are one continuous casting, modelled here as one extrude rather than two bodies joined by a boolean","sources":["boyce-gas-turbine-handbook"],"recipe":{"prompt":"Model a blade platform and shank as one stepped block, platform 40mm wide and 4mm thick over a 15mm shank","steps":[{"tool":"cad_extrude_profile","args":{"depth":25,"outer":[[-7.5,0],[7.5,0],[7.5,15],[20,15],[20,19],[-20,19],[-20,15],[-7.5,15]]},"note":"top-hat profile: 15mm-wide, 15mm-tall shank under a 40mm-wide, 4mm-thick platform"}],"expect":{"volume":9625,"faceCount":10,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-disc-sector-rim-slot","kind":"recipe","tier":2,"applies":["turbine disc","fir-tree slot","rim slot"],"tags":["recipe","turbine-disc","rim-slot"],"title":"Recipe: turbine disc sector with a rim slot","summary":"Build a 20-degree wedge of a turbine disc rim (radius 300-340mm, 20mm thick) with a simplified rectangular rim slot cut into it, as one extruded annular-sector profile with a hole.","basis":"Demonstrates a disc sector (the rim portion associated with one or a few blades) as one extrude-with-hole call — a simplified rectangular pocket standing in for the fir-tree broach slot a real disc rim carries per blade","sources":["boyce-gas-turbine-handbook"],"recipe":{"prompt":"Model a 20-degree sector of a turbine disc rim, 300 to 340mm radius, 20mm thick, with a rectangular rim slot","steps":[{"tool":"cad_extrude_profile","args":{"depth":20,"outer":[[295.4423259036624,-52.0944533000791],[334.8346360241507,-59.04038040675631],[338.7061973511935,-29.632952534203778],[340,0],[338.7061973511935,29.632952534203778],[334.8346360241507,59.04038040675631],[295.4423259036624,52.0944533000791],[298.85840942752367,26.14672282429745],[300,0],[298.85840942752367,-26.14672282429745]],"holes":[[[310,-5],[310,5],[330,5],[330,-5]]]},"note":"annular sector from r=300 to r=340mm over a 20deg arc (5-point arc approximation each side), with a 20x10x20mm rim-slot pocket"}],"expect":{"volume":85247.48,"faceCount":16,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"investment-casting-history-note","kind":"note","tier":3,"title":"Why turbine blades are investment cast at all","summary":"Investment (lost-wax) casting became the default first-stage HP blade process in the 1950s-60s: the only economical way to form a thin, twisted, internally-cooled aerofoil in a superalloy too creep-resistant to forge or machine from solid.","applies":["investment casting","turbine blade","history"],"detail":"Early gas-turbine blades were forged or machined from solid nickel alloy bar, workable while blades were solid and uncooled. Once internal cooling passages and thin, highly-twisted aerofoil sections became necessary to push turbine entry temperature above the metal's own melting-point margin, no subtractive or forming process could produce the internal geometry at all. Investment casting solved this at a stroke: the wax pattern (with its ceramic core already in place for a cored blade) is formed to net or near-net shape, so the finished casting needs only root/tip machining rather than removing most of a forging's volume to reveal a complex internal shape. This is why every rule in this pack (min-section, trailing-edge thickness, fillet, section ratio) is stated as a castability floor rather than a machining one: the geometry these rules gate cannot be produced any other way at this part's scale and internal complexity.","basis":"Standard account of why investment casting displaced forging/machining for cooled turbine aerofoils once internal cooling and thin, twisted sections became load-bearing requirements","sources":["beeley-smart-investment-casting","donachie-superalloys"],"tags":["investment-casting","history","turbine-blade","process-selection"]},{"id":"disc-rim-load-basis-detail","kind":"note","tier":3,"title":"The \"rim load basis\" behind the 1.3x disc-burst margin","summary":"The rim-load (average-stress) burst criterion integrates a spinning disc's tangential stress across its radius and compares the average to ultimate strength — simpler and more conservative than a local peak-stress criterion, which is why the 1.3x margin reads as generous.","applies":["turbine disc","burst margin","rotor integrity"],"detail":"A disc's tangential stress is not uniform: it typically peaks at the bore (or at stress-concentrating features like the fir-tree slots) and falls toward the rim. An average-stress (\"rim load\") burst criterion divides the disc into thin annular rings, sums each ring's centrifugal load, and compares the total to the material's ultimate tensile strength at that radius's running temperature — a disc \"bursts\" on this basis when its plastic collapse load (not first local yield) is reached. Because local peak stress is normally well above the average, a design that clears 1.3x on the average-stress basis usually already has local yielding at a lower speed than that, which is accepted and expected, since ductile nickel-superalloy discs redistribute load well past first yield before actually fragmenting.","basis":"Standard rotor-integrity description of the average-stress (\"rim load\") burst criterion versus a local peak-stress criterion, and why the accepted margin is stated against the former","sources":["boyce-gas-turbine-handbook"],"tags":["disc","burst-margin","rim-load","rotor-integrity"]}]}]}