76 lines
1.6 KiB
OpenSCAD
76 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);
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|