Skip to content

Collector Endcap V1

implemented unverified

Vertical Farm Pack (tilted flush row canon, VF-4.2): the Collector/Drain Endcap — a sloped catch tray under the LAST rail's lap lip on a STURDY U-frame (two full side walls carry the cantilever, not thin columns). The tray drains through a VERTICAL bore out the sump bottom: the push-in tube enters from below and routes under the row (no sagging horizontal ceiling). The lip continuing the channel floor plane is the drip edge, its protrusion IS the air gap. Droplets detach at the lip tip, fall into the tray mouth, run down the tray floor to a push-in drain bore enclosed below the rim at the floor's lowest point — the tray empties completely, verified not postulated (form.collector_tray_drains + topology.fluid_path_open). Hangs tool-free on the rail FRONT wall: arm over the wall top, side cheeks outside the drip band, dry tongue riding the outlet corridor ABOVE the exiting water. Mates the rail's drain_edge port. Prints as modeled. Local frame: y=0 = the rail front face; the catch datum sits at the lip tip on the handover plane.

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_collector_endcap
archetype: collector_endcap_v1@1

params:
  tray_w: 20mm
  tube_od: 9mm
  dock_magnets: False
  screen_seat: False

Parameters

parametertypedefaultrangerole
tray_wtray inner width — wider than the rail channel's drip bandlength20mm16mm … 180mmfunctionalexposed
tube_odouter diameter of the silicone drain tube (hardware, BOM)length9mm6mm … 13mmassemblyexposed
bore_clearancelength0.4mm0.2mm … 0.8mmmanufacturing
cassette_wlength177mm160mm … 236mmassembly
seat_clearancelength0.75mm0.5mm … 1mmassembly
module_wlength205mm200mm … 250mmassembly
seat_depthlength14mm10mm … 20mmassembly
channel_dlength5mm4mm … 8mmassembly
lip_tshared rail lap-lip thickness — the handover plane is the lip tip undersidelength1.4mm1.2mm … 1.6mmassembly
lip_lenshared rail lap-lip protrusion (same name as the rail's parameter — shared: injects both) — how far outside the wall face the drip edge and the catch datum sitlength4mm3mm … 6mmassembly
channel_wlength16mm12mm … 20mmassembly
tongue_wdry locator tongue width — must fit INSIDE the rail channellength14mm8mm … 18mmfunctional
tray_slope_degtray floor slope toward the drain — the drain sits at the tray's low point so the floor empties to it (VF-7); the mounted row tilt adds to thisnumber2.50.8 … 3.0functional
catch_falldrop from the lip to the tray floor — deep enough to enclose the drain bore below the rimlength8.5mm6mm … 12mmfunctional
capture_depthreceiver capture past the rail face — the lip tip must keep >= 2 to the apron wall (VF-4.1 end receiver)length8mm6mm … 8mmfunctional
drain_extensionsump length past the mouth so the VERTICAL drain has solid body to grip the push-in tube (VF-4.2)length10mm8mm … 14mmfunctional
wall_extraextra U-frame side wall thickness beyond a molded skin — carries the cantilevered tray as a wall, not a columnlength3mm1.6mm … 4mmstructural
saddle_fitlength0.4mm0.2mm … 0.8mmmanufacturing
corner_rlength3mm2mm … 6mmaesthetic
dock_magnetsVF-6: dock the collector arm onto the LAST rail's front wall-top magnets (rail needs endcap_dock: front) — alignment onlyboolFalseassemblyexposed
dock_xdock magnet centers at +-dock_x — must match the raillength22mm14mm … 40mmassembly
dock_insetdock pocket step inboard from the rail face — match the raillength7mm4mm … 12mmassembly
dock_fitdiametral press-fit of the d6x2 dock magnetlength0.2mm0.1mm … 0.3mmmanufacturing
screen_seatVF-8: carve a LOWERED sump WELL fed by a radial funnel — the tray floor slopes to the drain from every side, the drain sits at the absolute low point, and a drop-in strainer basket seats in the well over it. The seat keys are always published; the funnel + well are cut only when this is on (and the drain shifts to the tray centre)boolFalseassemblyexposed
screen_seat_wstrainer basket OUTER footprint across X; the funnel well mouth is this + 2*clearance (match the drain_screen basket screen_l)length24mm18mm … 90mmassembly
screen_seat_dstrainer basket footprint along Y — must overhang the drain bore so water passes only through the mesh (fits the shallow sump)length13mm10mm … 24mmassembly
screen_sump_depthhow far the sump well floor drops below the tray floor — the radial funnel converges over this depth to the drain (absolute low)length5mm3mm … 9mmassembly
screen_funnel_wthe funnel opening width across X — the tray floor slopes in from here to the well mouth (clamped to the tray interior)length74mm40mm … 120mmassembly
screen_seat_clearancelength0.75mm0.5mm … 2mmassembly

Regions

  • catch_tray transient water path
  • saddle interface keepout

Contract

Guarantees

must-have features and invariants — verified on every build

  • hose_takeoff
  • catch_tray
  • tongue_w <= channel_w - 2
  • tray_slope_deg >= 0.8 and tray_slope_deg <= 3.0

Will refuse

explicit prohibitions — the engine refuses to build these

  • closed_water_reservoir
  • dead_water_pocket
  • hidden_wet_cavity

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

collector_endcap_body

Subscribed validators (20)

interface.frame_existsinterface.frame_orthonormalinterface.normal_points_outwardinterface.up_consistentinterface.keepouts_preservedform.hose_bore_okform.collector_tray_drainsform.collector_receiver_matches_final_lapform.receiver_open_top_cleanableform.collector_drain_bore_supportlessform.collector_structure_sturdyform.dock_pockets_dryform.no_standing_water_irform.collector_sump_is_lowest_pointform.tray_floor_slopes_to_sumpform.basket_not_transverse_flow_barrierform.no_standing_water_before_screentopology.fluid_path_opentopology.single_connected_solidtopology.ribs_present