generated from CubeCraft-Creations/Tracehound
fix: make rear strap brackets side-feed
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
// RemoteRig camera node case v4
|
||||
// Upright appliance-style OpenSCAD prototype for a strap-mounted camera node.
|
||||
// Units: millimeters. Coordinate system: X=width, Y=depth/front-back, Z=height.
|
||||
// Front/service lid is on the -Y face. Rear zip-tie pass-through loops are on the +Y face.
|
||||
// Front/service lid is on the -Y face. Rear side-feed zip-tie brackets are on the +Y face.
|
||||
//
|
||||
// v4 visual direction: tall/upright appliance/control box matching the original
|
||||
// reference image, replacing the rejected wide, low generic electronics box.
|
||||
@@ -50,10 +50,10 @@ rocker_h = 19.0;
|
||||
front_slot_w = 34.0; // two long rounded horizontal slots near lower front
|
||||
front_slot_h = 3.2;
|
||||
|
||||
// Rear reusable cloth zip-tie / Velcro pass-through loops.
|
||||
// Two visibly vertical external belt-loop brackets sit left/right of center.
|
||||
// The strap path is the real non-solid tunnel between rear wall and raised bridge;
|
||||
// it stays outside the electronics cavity and is open at the top/bottom for feeding.
|
||||
// Rear reusable cloth zip-tie / Velcro pass-through brackets.
|
||||
// Two visibly vertical external brackets sit left/right of center.
|
||||
// The strap path is a lateral X-direction tunnel between the sealed rear wall
|
||||
// and raised bridge face; long side windows stay open for feeding from either side.
|
||||
rear_loop_x = 13.0;
|
||||
rear_loop_w = 8.5; // outside bracket width in X
|
||||
rear_loop_h = 50.0; // outside bracket height in Z
|
||||
@@ -61,8 +61,8 @@ rear_loop_z = case_h/2;
|
||||
rear_loop_gap_y = 3.8; // usable strap-thickness clearance behind raised bridge
|
||||
rear_loop_face_t = 1.4; // low-profile outer bridge skin
|
||||
rear_loop_y = rear_loop_gap_y + rear_loop_face_t;
|
||||
rear_loop_usable_w = 6.4; // usable strap width through each vertical loop
|
||||
rear_loop_side_pad = (rear_loop_w - rear_loop_usable_w) / 2;
|
||||
rear_loop_anchor_h = 5.0; // top/bottom weld pads; side window remains long vertically
|
||||
rear_loop_side_window_h = rear_loop_h - 2*rear_loop_anchor_h;
|
||||
|
||||
// USB power connector placeholder cutouts
|
||||
usb_c_cutout_w = 10.5; // bottom USB-C female inlet visible opening, X width
|
||||
@@ -114,26 +114,27 @@ module screw_boss(x, z) {
|
||||
|
||||
module rear_zip_tie_loop(xc) {
|
||||
// Vertical external belt-loop bracket for reusable cloth zip ties/Velcro.
|
||||
// The central void is a real strap tunnel: rear wall -> air gap -> raised
|
||||
// outer bridge face. Side pads weld the bridge to the shell while keeping
|
||||
// the electronics cavity sealed; the tunnel is open at top and bottom.
|
||||
// The bracket silhouette remains vertical, but the real strap tunnel runs
|
||||
// laterally in X through the long side windows, behind the raised bridge face.
|
||||
// Top/bottom pads weld the bridge to the shell; no cut reaches the rear wall.
|
||||
loop_overlap_y = 0.75;
|
||||
tunnel_extra_y = 0.35;
|
||||
tunnel_clear_z = rear_loop_h + 0.8;
|
||||
pad_r = 1.15;
|
||||
bridge_y_center = case_d/2 + rear_loop_gap_y + rear_loop_face_t/2;
|
||||
pad_y_center = case_d/2 + rear_loop_y/2 - loop_overlap_y;
|
||||
pad_z_offset = rear_loop_h/2 - rear_loop_anchor_h/2;
|
||||
|
||||
translate([xc, case_d/2 + rear_loop_y/2 - loop_overlap_y, rear_loop_z])
|
||||
difference() {
|
||||
xz_rounded_prism(rear_loop_w, rear_loop_y, rear_loop_h, r=1.6);
|
||||
union() {
|
||||
// Raised vertical bridge face: visually preserves the requested vertical
|
||||
// rear brackets while spanning the side-feed tunnel externally.
|
||||
translate([xc, bridge_y_center, rear_loop_z])
|
||||
xz_rounded_prism(rear_loop_w, rear_loop_face_t, rear_loop_h, r=1.6);
|
||||
|
||||
// Real vertical feed-through gap behind the raised bridge. Starts
|
||||
// just outside the rear wall, so it cannot cut into the enclosure.
|
||||
translate([0,
|
||||
-rear_loop_y/2 + loop_overlap_y + rear_loop_gap_y/2 + 0.08,
|
||||
0])
|
||||
cube([rear_loop_usable_w,
|
||||
rear_loop_gap_y + tunnel_extra_y,
|
||||
tunnel_clear_z], center=true);
|
||||
}
|
||||
// Top and bottom anchor pads close the old top-to-bottom feed direction
|
||||
// and tie the raised face back into the rear wall without opening the case.
|
||||
for (zoff = [-pad_z_offset, pad_z_offset])
|
||||
translate([xc, pad_y_center, rear_loop_z + zoff])
|
||||
xz_rounded_prism(rear_loop_w, rear_loop_y, rear_loop_anchor_h, r=pad_r);
|
||||
}
|
||||
}
|
||||
|
||||
// ----- Printable body -----
|
||||
@@ -145,7 +146,7 @@ module camera_node_body_v4() {
|
||||
// Upright outer shell with softened appliance-like corners.
|
||||
rounded_box([case_w, case_d, case_h], r=corner_r);
|
||||
|
||||
// Rear cloth zip-tie / Velcro pass-through loops kept flat/quiet.
|
||||
// Rear cloth zip-tie / Velcro side-feed brackets kept flat/quiet.
|
||||
rear_zip_tie_loop(-rear_loop_x);
|
||||
rear_zip_tie_loop( rear_loop_x);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user