// 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); } }