generated from CubeCraft-Creations/Tracehound
fix: make tripod case dovetail connector fit
This commit is contained in:
+2
-2
@@ -105,8 +105,8 @@ 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 × 36.9 × 19.0 |
|
| Case body external | ~56.8 × 38.2 × 19.0 |
|
||||||
| Lid external | ~56.8 × 32.8 × 4.0 |
|
| Lid external | ~56.8 × 32.8 × 4.0 |
|
||||||
| Tripod clamp | ~43.0 × 54.3 × 16.0 |
|
| Tripod clamp | ~43.0 × 56.9 × 16.0 |
|
||||||
| 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.
@@ -29,12 +29,15 @@ 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 interface
|
// Dovetail slide interface
|
||||||
|
// Male rail is on the case; matching female socket is on the tripod clamp.
|
||||||
|
// This is easier to inspect and avoids the previous mismatched "two lips + tab" geometry.
|
||||||
rail_z = outer_h * 0.78;
|
rail_z = outer_h * 0.78;
|
||||||
rail_depth = 5.0;
|
rail_depth = 5.0;
|
||||||
rail_open_w = 12.0;
|
rail_neck_w = 12.0; // narrow width at case wall / slot opening
|
||||||
rail_back_w = 18.0;
|
rail_outer_w = 18.0; // wider retained edge
|
||||||
rail_clearance = 0.35;
|
rail_clearance = 0.45; // FDM sliding clearance per side-ish
|
||||||
|
socket_wall = 2.2;
|
||||||
|
|
||||||
// Cable ports
|
// Cable ports
|
||||||
usb_port_w = 12; usb_port_h = 6;
|
usb_port_w = 12; usb_port_h = 6;
|
||||||
@@ -104,17 +107,15 @@ module screw_post(x, y) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module dovetail_socket_rails() {
|
module case_male_dovetail_rail() {
|
||||||
// Female-ish dovetail receiver on the case back. The clamp's male dovetail slides vertically.
|
// Positive tapered rail on the case back. Cross-section is narrow at the
|
||||||
// Two angled lips are intentionally proud of the rear wall for printability and strength.
|
// wall and wider at the outside, so the clamp socket captures it.
|
||||||
for (side = [-1, 1]) {
|
translate([0, outer_d/2 - 0.15, outer_h/2])
|
||||||
translate([side*(rail_open_w/2 + 1.3), outer_d/2 + 0.9, outer_h/2])
|
dovetail_prism(rail_z, rail_neck_w, rail_outer_w, rail_depth);
|
||||||
rotate([0, 0, side*8])
|
|
||||||
cube([3.0, rail_depth + 1.0, rail_z], center=true);
|
// Bottom stop so the clamp socket cannot slide past the case.
|
||||||
}
|
translate([0, outer_d/2 + rail_depth/2, outer_h*0.12])
|
||||||
// Bottom stop so clamp cannot slide all the way through.
|
rounded_cube_centered(rail_outer_w + 3.0, rail_depth + 0.8, 2.4, 0.8);
|
||||||
translate([0, outer_d/2 + 1.3, outer_h*0.12])
|
|
||||||
cube([rail_back_w + 2, rail_depth, 2.4], center=true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module case_body() {
|
module case_body() {
|
||||||
@@ -122,7 +123,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));
|
||||||
dovetail_socket_rails();
|
case_male_dovetail_rail();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -173,18 +174,33 @@ module clamp_ears() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module male_dovetail_tab() {
|
module clamp_dovetail_socket() {
|
||||||
outer_r = pole_dia/2 + clamp_thick;
|
outer_r = pole_dia/2 + clamp_thick;
|
||||||
// Tab on rear of clamp, opposite the mouth. Slides into case rails.
|
socket_outer_w = rail_outer_w + socket_wall*2;
|
||||||
translate([0, -outer_r - rail_depth + 0.4, 0])
|
socket_depth = rail_depth + socket_wall*2;
|
||||||
dovetail_prism(clamp_width, rail_open_w - rail_clearance, rail_back_w - rail_clearance, rail_depth);
|
|
||||||
|
// Solid boss on the rear of the clamp, opposite the tightening mouth.
|
||||||
|
// A matching dovetail void is cut through it along Z so the case rail
|
||||||
|
// slides in from the top/bottom with practical FDM clearance.
|
||||||
|
difference() {
|
||||||
|
translate([0, -outer_r - socket_depth/2 + socket_wall, 0])
|
||||||
|
rounded_cube_centered(socket_outer_w, socket_depth, clamp_width, 1.2);
|
||||||
|
|
||||||
|
translate([0, -outer_r - 0.15, 0])
|
||||||
|
dovetail_prism(
|
||||||
|
clamp_width + 1.0,
|
||||||
|
rail_neck_w + rail_clearance,
|
||||||
|
rail_outer_w + rail_clearance,
|
||||||
|
rail_depth + 0.6
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module tripod_clamp() {
|
module tripod_clamp() {
|
||||||
union() {
|
union() {
|
||||||
clamp_ring_with_mouth();
|
clamp_ring_with_mouth();
|
||||||
clamp_ears();
|
clamp_ears();
|
||||||
male_dovetail_tab();
|
clamp_dovetail_socket();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user