{"$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"]}]}