Branch Clamp Lower V1
implemented unverified
Biomorphic pack Bio-1 (docs/BIOMORPHIC.md): lower half of the split branch/pipe clamp — the functional core a lamp arm or tool mount hangs from a living branch with. Constant YZ section extruded along X (X = the branch axis), printed on its section (side_profile, support-free by construction). The open saddle notch is HALF the nominal branch circle whose center sits compression_gap/2 beyond the mating plane, so the bolted pair always squeezes the branch and never closes a hole around it (the split-clamp law — a tree grows). Two flat pad lands recessed into the saddle take glued TPU strips; two heatset bolt columns in the wings (id mount_pilot_* — the screw_joint pilot convention) receive the upper half; a cord slot pair near the saddle center takes a shock cord for one-handed mounting. The clamp_mate datum bakes the compression gap in (joints land datum-on-datum and cannot express offsets). The outer shell is an exoskeleton_panel canvas — the bio skin grows there in Bio-3+.
Declaration example
A minimal product declaration for this archetype — exposed parameters at
their defaults. Validate and build it with
forge validate / forge build.
schema: product/v1
id: my_branch_clamp_lower
archetype: branch_clamp_lower_v1@1
params:
nominal_branch_d: 60mm
clamp_w: 40mm
modifiers:
- id: apply_biomorphic_exoskeleton
target: outer_shell Parameters
| parameter | type | default | range | role | |
|---|---|---|---|---|---|
nominal_branch_dnominal branch/pipe diameter at the clamping point | length | 60mm | 30mm … 100mm | functional | exposed |
clamp_wclamp body width along the branch axis | length | 40mm | 32mm … 120mm | structural | exposed |
compression_gapdesigned daylight between the bolted mating faces: the TPU pads always stay compressed, the faces never bottom out | length | 3mm | 1.5mm … 6mm | functional | |
screwclamp bolts (heatset inserts in this half) | choice | M4 | M4 | assembly | |
base_tfloor thickness under the deepest saddle point | length | 8mm | 5mm … 14mm | structural | |
flange_tbolt wing thickness at the mating plane | length | 10mm | 8mm … 14mm | structural | |
wallminimum wall between the saddle and the outer shell | length | 4mm | 3mm … 8mm | structural | |
bolt_webweb between the saddle edge and the bolt axis — form.saddle_geometry_ok fails a bolt placed over the open mouth | length | 8mm | 0mm … 20mm | structural | |
edge_mwing material beyond the bolt axis | length | 10mm | 6mm … 16mm | structural | |
corner_r | length | 2.5mm | 1mm … 5mm | aesthetic | |
land_anglepad land positions, degrees from the saddle bottom — with the upper apex land this is three-point contact by construction | number | 50 | 30 … 65 | functional | |
land_wflat width of each TPU pad land | length | 14mm | 8mm … 20mm | functional | |
pad_recessradial recess of the pad lands (glued TPU strip thickness) | length | 1.2mm | 0.6mm … 2mm | functional | |
insert_depthheatset insert pocket depth in the wings | length | 6mm | 5mm … 8mm | assembly | |
cord_ycord slot offset from the saddle centerline | length | 6mm | 4mm … 10mm | functional |
Regions
-
saddle_contactsoft contact surface -
outer_shellexoskeleton panel
Contract
Guarantees
must-have features and invariants — verified on every build
branch_saddlethree_point_tpu_contactheatset_pocketstie_slotscompression_gap >= 1.5bolt_dx >= 12
Will refuse
explicit prohibitions — the engine refuses to build these
closed_branch_hole_without_splitweak_saddle_contactperforated_bolt_boss
Not claimed
what passing validation does not mean
- Provided “as is” under Apache-2.0 — no warranty of fitness for a particular purpose.
Built from operations
clamp_half_lowerheatset_insert_pocketheatset_insert_pocketcord_slot_pair
Allowed modifiers
apply_biomorphic_exoskeletonadd_bone_windowsadd_vein_ribs
Subscribed validators (12)
interface.frame_existsinterface.frame_orthonormalinterface.normal_points_outwardinterface.up_consistentform.saddle_geometry_okform.pad_lands_presentform.cuts_respect_keepoutstopology.cavity_opentopology.single_connected_solidtopology.pockets_presenttopology.cutout_presentregion.keepouts_preserved