cad/outdoor/triglide-d.scad
2025-01-03 18:49:14 -07:00

64 lines
1.6 KiB
OpenSCAD

// triglide. Target 20mm
// thickness
rThick = 5;
// strap width, rec 0.5mm under
strapWide = 19.5;
// strap thickness try 2mm
strapThick = 2;
// hole diam
holeD = 10;
// head curve
hcDeep = 3;
hcRad = 200;
// minkowski/fillet rad
minkRad = 1.2;
$fn = 25;
difference(){
minkowski(){
difference(){
//main
union(){
cube([strapWide + 2 * rThick, 2 * strapThick + 3 * rThick + 10, (rThick - minkRad) * 2], center = true);
translate([0, strapThick + 1.5 * rThick + 8, 0]){
cylinder(d = 1.7 * holeD, rThick, center = true);
}
}
// slot 1
translate([0, rThick + strapThick / 2, 0]){
cube([strapWide + 2 * minkRad, strapThick + 2 * minkRad, 99], center = true);
}
// slot 2
translate([0, -1 * (rThick + strapThick), 0]){
cube([strapWide + 2 * minkRad, strapThick * 2 + 2 * minkRad, 99], center = true);
}
// hole
translate([0, strapThick + 1.5 * rThick + 8, 0]){
cylinder(d = holeD + 2 * minkRad, rThick * 2, center = true);
}
// channel
translate([0, -44 - rThick - strapThick, rThick - strapThick]){
cube([strapWide + 2 * minkRad, 88, strapThick + minkRad], center = true);
}
// curvature
translate([0, 0, hcRad + rThick - hcDeep]){
rotate([0, 90, 0]){
cylinder(r = hcRad, 99, center = true, $fn = 300);
}
}
}
// mink
sphere(r = minkRad);
}
// bottom
translate([0, 0, -222]){
cube([222, 222, 444], center = true);
}
}