3d_print/Sasza/bron/ft1911/thumb_rest.scad

49 lines
1.5 KiB
OpenSCAD

include <BOSL2/std.scad>
// external model
down(7.3) left(20) back(0.35) import("/home/sasza/Pobrane/1.stl", center=true);
t = 1.5;
frame_dist = 0.4;
$fn = 46;
thumb_size = [14,17,2];
thumb_fwd = 10;
thumb_up = 2;
thumb_clearance = 0.4;
// base for the hinge
chain_hull() {
cyl(d=8.5, h=2.22, anchor=TOP, $fn=36);
down(t - frame_dist) right(thumb_fwd) fwd(thumb_up) zrot(180+45)
cuboid([t,thumb_size[1],t], anchor=LEFT+BOTTOM);
}
hinge_d = 2.5;
hinge_hole = 0.8;
hinge_num = 5;
hinge_h = 3;
// hinged part
down(t - frame_dist) right(thumb_fwd) fwd(thumb_up) zrot(180+45) xrot(-90) difference() {
down(thumb_size[1]/2) right(hinge_d/2) fwd(hinge_d/2 + t + 0.1)
for(i=[0 : hinge_num-1]) {
up(hinge_h/2 + i * (thumb_size[1]-hinge_h) / (hinge_num-1))
if(i%2==0) {
back(t/2) cuboid([hinge_d,hinge_d+t,hinge_h], rounding=1, edges="Z");
} else {
left(t/2) cuboid([hinge_d+t,hinge_d,hinge_h], rounding=1, edges="Z");
}
}
// hole for hinge wire
up(0) right(hinge_d/2) fwd(hinge_d/2 + t + 0.1)
cyl(d=hinge_hole, h=thumb_size[1]*2, $fn=36);
}
// thumb part
right(thumb_fwd) fwd(thumb_up) zrot(180+45) down(t - frame_dist) yrot(-90) down(t)
up(hinge_d/2 + t/2) union() {
cuboid(thumb_size, anchor=LEFT+BOTTOM, rounding=t/2, edges=["X","Z", RIGHT]);
cuboid([t,thumb_size[1]-t,thumb_clearance], anchor=LEFT+TOP, chamfer=thumb_clearance/2, edges=BOTTOM);
}