generated from CubeCraft-Creations/Tracehound
fix: replace dovetail with bolted clamp mount
This commit is contained in:
+3
-2
@@ -105,8 +105,9 @@ The ESP8266 and GoPro talk over Wi-Fi — **no data cable between them**. The on
|
|||||||
|
|
||||||
| | W × D × H (mm) |
|
| | W × D × H (mm) |
|
||||||
|---|---|
|
|---|---|
|
||||||
| Case body external | ~56.8 × 42.0 × 19.2 |
|
| Case body external | ~56.8 × 36.6 × 19.0 |
|
||||||
| Lid external | ~56.8 × 32.8 × 4.0 |
|
| Lid external | ~56.8 × 32.8 × 4.0 |
|
||||||
| Tripod clamp | ~43.0 × 54.5 × 16.0 |
|
| Tripod clamp | ~43.0 × 53.5 × 16.0 |
|
||||||
|
| Clamp-to-case mount | Two M3 screws through flat mounting plate |
|
||||||
| Clamp pole fit | Nominal 35mm; smaller poles TBD / may need inserts |
|
| Clamp pole fit | Nominal 35mm; smaller poles TBD / may need inserts |
|
||||||
| Total weight | TBD after prototype print |
|
| Total weight | TBD after prototype print |
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,5 @@
|
|||||||
// RemoteRig — Dual-ESP Tripod Case v3
|
// RemoteRig — Dual-ESP Tripod Case v3
|
||||||
// v3 changes: screw-tightened tripod clamp + dovetail slide interface.
|
// v3b changes: screw-tightened tripod clamp + two-screw flat mounting plate interface.
|
||||||
// Coordinate system: all case/lid geometry uses bottom-origin Z.
|
// Coordinate system: all case/lid geometry uses bottom-origin Z.
|
||||||
|
|
||||||
$fn = 36;
|
$fn = 36;
|
||||||
@@ -29,15 +29,16 @@ mouth_width = 13.0; // clamp opening
|
|||||||
m3_clearance = 3.4; // M3 screw clearance
|
m3_clearance = 3.4; // M3 screw clearance
|
||||||
nut_flat = 6.4; // M3 nut trap flat-to-flat
|
nut_flat = 6.4; // M3 nut trap flat-to-flat
|
||||||
|
|
||||||
// Dovetail slide interface
|
// Case ↔ clamp interface
|
||||||
// Female receiver is on the case; male tab is on the tripod clamp.
|
// v3b removes the dovetail: use a flat two-screw mounting plate instead.
|
||||||
// This makes the separate parts visually/physically obvious: tab slides into slot.
|
// This is simpler to print, easier to inspect, and field-serviceable.
|
||||||
rail_z = outer_h * 0.78;
|
mount_plate_w = 24.0;
|
||||||
rail_depth = 5.0;
|
mount_plate_h = 16.0;
|
||||||
rail_neck_w = 12.0; // narrow side of the trapezoid profile
|
mount_plate_thick = 4.0;
|
||||||
rail_outer_w = 18.0; // wide side of the trapezoid profile
|
mount_hole_spacing = 10.0;
|
||||||
rail_clearance = 0.55; // FDM sliding clearance
|
mount_screw_clear = 3.4; // M3 clearance through clamp plate
|
||||||
socket_wall = 2.2;
|
mount_case_pilot = 2.7; // pilot/insert hole through case boss
|
||||||
|
mount_boss_r = 1.2;
|
||||||
|
|
||||||
// Cable ports
|
// Cable ports
|
||||||
usb_port_w = 12; usb_port_h = 6;
|
usb_port_w = 12; usb_port_h = 6;
|
||||||
@@ -107,30 +108,20 @@ module screw_post(x, y) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module case_dovetail_socket() {
|
module case_mount_boss() {
|
||||||
// Receiver boss on the case back. A dovetail-shaped through-slot is cut
|
// Flat rear boss on the case. The clamp plate bolts directly to this face.
|
||||||
// vertically through it so the clamp's male tab slides down from above.
|
// Holes run front/back (Y axis) for M3 screws, heat-set inserts, or nuts.
|
||||||
socket_outer_w = rail_outer_w + socket_wall*2;
|
boss_y = outer_d/2 + mount_plate_thick/2 - 0.2;
|
||||||
socket_depth = rail_depth + socket_wall*2;
|
|
||||||
boss_y0 = outer_d/2 - 0.15;
|
|
||||||
|
|
||||||
difference() {
|
difference() {
|
||||||
translate([0, boss_y0 + socket_depth/2, outer_h/2])
|
translate([0, boss_y, outer_h/2])
|
||||||
rounded_cube_centered(socket_outer_w, socket_depth, rail_z + socket_wall*2, 1.2);
|
rounded_cube_centered(mount_plate_w, mount_plate_thick, mount_plate_h, mount_boss_r);
|
||||||
|
|
||||||
// Through-cut, centered within the receiver boss, oversized for FDM.
|
for (zoff = [-mount_hole_spacing/2, mount_hole_spacing/2]) {
|
||||||
translate([0, boss_y0 + socket_wall, outer_h/2])
|
translate([0, outer_d/2 + mount_plate_thick/2, outer_h/2 + zoff])
|
||||||
dovetail_prism(
|
rotate([90, 0, 0])
|
||||||
rail_z + socket_wall*3,
|
cylinder(d=mount_case_pilot, h=mount_plate_thick + wall*3, center=true, $fn=24);
|
||||||
rail_neck_w + rail_clearance,
|
}
|
||||||
rail_outer_w + rail_clearance,
|
|
||||||
rail_depth + rail_clearance
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bottom stop shelf: clamp tab slides down until it rests here.
|
|
||||||
translate([0, boss_y0 + socket_depth/2, outer_h*0.08])
|
|
||||||
rounded_cube_centered(socket_outer_w, socket_depth, 1.8, 0.8);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module case_body() {
|
module case_body() {
|
||||||
@@ -138,7 +129,7 @@ module case_body() {
|
|||||||
case_shell();
|
case_shell();
|
||||||
for (x = [-1, 1], y = [-1, 1])
|
for (x = [-1, 1], y = [-1, 1])
|
||||||
screw_post(x*(outer_w/2 - 5), y*(outer_d/2 - 5));
|
screw_post(x*(outer_w/2 - 5), y*(outer_d/2 - 5));
|
||||||
case_dovetail_socket();
|
case_mount_boss();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -162,7 +153,7 @@ module clamp_ring_with_mouth() {
|
|||||||
outer_r = pole_dia/2 + clamp_thick;
|
outer_r = pole_dia/2 + clamp_thick;
|
||||||
difference() {
|
difference() {
|
||||||
cylinder(r=outer_r, h=clamp_width, center=true, $fn=72);
|
cylinder(r=outer_r, h=clamp_width, center=true, $fn=72);
|
||||||
cylinder(r=pole_dia/2 + rail_clearance, h=clamp_width + 1, center=true, $fn=72);
|
cylinder(r=pole_dia/2 + tol, h=clamp_width + 1, center=true, $fn=72);
|
||||||
// Mouth opens toward +Y. Width is intentionally generous for snap-on placement before tightening.
|
// Mouth opens toward +Y. Width is intentionally generous for snap-on placement before tightening.
|
||||||
translate([0, outer_r, 0])
|
translate([0, outer_r, 0])
|
||||||
cube([mouth_width, outer_r*2, clamp_width + 2], center=true);
|
cube([mouth_width, outer_r*2, clamp_width + 2], center=true);
|
||||||
@@ -189,25 +180,29 @@ module clamp_ears() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module clamp_male_dovetail_tab() {
|
module clamp_mount_plate() {
|
||||||
outer_r = pole_dia/2 + clamp_thick;
|
outer_r = pole_dia/2 + clamp_thick;
|
||||||
|
plate_y = -outer_r - mount_plate_thick/2 + 0.2;
|
||||||
|
|
||||||
// Positive tab on rear of clamp, opposite the tightening mouth. This is
|
// Flat plate matching the case boss. Two M3 clearance holes pass through
|
||||||
// intentionally the moving/replaceable side: it slides into the case socket.
|
// along Y so the clamp bolts to the case with ordinary hardware.
|
||||||
translate([0, -outer_r - rail_depth + 0.2, 0])
|
difference() {
|
||||||
dovetail_prism(
|
translate([0, plate_y, 0])
|
||||||
rail_z - rail_clearance,
|
rounded_cube_centered(mount_plate_w, mount_plate_thick, mount_plate_h, mount_boss_r);
|
||||||
rail_neck_w - rail_clearance,
|
|
||||||
rail_outer_w - rail_clearance,
|
for (zoff = [-mount_hole_spacing/2, mount_hole_spacing/2]) {
|
||||||
rail_depth - 0.25
|
translate([0, plate_y, zoff])
|
||||||
);
|
rotate([90, 0, 0])
|
||||||
|
cylinder(d=mount_screw_clear, h=mount_plate_thick + 2, center=true, $fn=24);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module tripod_clamp() {
|
module tripod_clamp() {
|
||||||
union() {
|
union() {
|
||||||
clamp_ring_with_mouth();
|
clamp_ring_with_mouth();
|
||||||
clamp_ears();
|
clamp_ears();
|
||||||
clamp_male_dovetail_tab();
|
clamp_mount_plate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user