Lamp Bracket V1
implemented unverified
Ceiling/under-shelf lamp bracket: a screw-mounted plate, a cantilever arm with an optional root gusset, and a CONTINUOUS wiring channel — vertical entry through the plate near the root, horizontal run exiting the arm tip. The channel is verified void along its full L-path on the compiled solid. The arm tip carries the datum a lamp_socket_cup_v1 mounts onto (match the cup's mount_bc to the arm width).
Built from a real example — orbit to inspect.
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_lamp_bracket
archetype: lamp_bracket_v1@1
params:
arm_len: 160mm
channel_d: 8mm Parameters
| parameter | type | default | range | role | |
|---|---|---|---|---|---|
arm_len | length | 160mm | 60mm … 190mm | functional | exposed |
arm_w | length | 22mm | 12mm … 40mm | structural | |
arm_h | length | 22mm | 12mm … 40mm | structural | |
plate_l | length | 70mm | 50mm … 140mm | assembly | |
plate_w | length | 46mm | 30mm … 80mm | assembly | |
plate_t | length | 6mm | 4mm … 10mm | manufacturing | |
gusset | bool | True | — | structural | |
gusset_len | length | 34mm | 15mm … expr(arm_len * 0.4) | structural | |
gusset_drop | length | expr(arm_h * 0.6) | 0mm … 30mm | structural | |
channel_dwiring channel bore (v1 clamp — leaves >= 2mm wall) | length | 8mm | 4mm … expr(min(arm_w, arm_h) - 4) | functional | exposed |
screw | choice | M4 | M3 | M4 | M5 | assembly | |
screw_count | count | 2 | 2 … 4 | assembly | |
screw_spacing | length | expr(arm_w + 20) | expr(arm_w + 13) … expr(plate_l - 10) | assembly | |
mount_bcbolt-circle diameter of tip thread pilots; match the cup's mount_bc (declare it once via assembly.shared) | length | 0mm | 0mm … expr(arm_w - 10) | assembly | |
mount_screw | choice | M4 | M3 | M4 | M5 | assembly | |
mount_screw_count | count | 4 | 2 … 6 | assembly | |
mount_insetcup center setback from the arm tip | length | 26mm | expr(mount_bc / 2 + 6) … expr(arm_len / 2) | assembly | |
pilot_depththread pilot depth — clamped so pilots never break into the wiring channel above | length | expr(min(8, arm_h / 2 - channel_d / 2 - 2)) | 5mm … expr(arm_h / 2 - channel_d / 2 - 2) | assembly |
Regions
-
platemounting surface -
screw_zonesfastener keepout -
arm_roothigh stress region forbids: add_hex_perforation -
arm_tip_facemounting surface -
channel_zonesoft contact surface
Contract
Guarantees
must-have features and invariants — verified on every build
cantilever_armwiring_channelmounting_flangechannel_d <= min(arm_w, arm_h) - 4
Will refuse
explicit prohibitions — the engine refuses to build these
blocked_channel
Not claimed
what passing validation does not mean
- Provided “as is” under Apache-2.0 — no warranty of fitness for a particular purpose.
Subscribed validators (14)
interface.frame_existsinterface.frame_orthonormalinterface.normal_points_outwardinterface.up_consistentform.channel_inside_wallsform.cuts_respect_keepoutsform.flange_above_cradleform.screw_access_cleartopology.single_connected_solidtopology.flange_above_cradletopology.screw_holes_opentopology.countersinks_presenttopology.bores_opentopology.channel_continuous