2016-08-01 12:51:03 +02:00
|
|
|
include <constants.scad>;
|
|
|
|
|
|
|
|
module handle() {
|
2016-08-03 19:57:55 +02:00
|
|
|
center_offset = (handle_length / 2)
|
2016-08-01 12:51:03 +02:00
|
|
|
- handle_height;
|
|
|
|
|
2016-08-03 19:57:55 +02:00
|
|
|
// Doesn't make much sense but gives nice proportions
|
2016-08-01 12:51:03 +02:00
|
|
|
handle_bevel_radius = 2 * handle_length - handle_min_width;
|
|
|
|
|
|
|
|
rotate([-90, 0, 0])
|
|
|
|
minkowski() {
|
|
|
|
translate([0, center_offset, 0])
|
|
|
|
difference() {
|
|
|
|
cylinder(d = handle_length,
|
|
|
|
h = handle_max_width,
|
|
|
|
center = true);
|
|
|
|
cylinder(d = handle_length - handle_thickness,
|
|
|
|
h = handle_max_width,
|
|
|
|
center = true);
|
|
|
|
translate([0, handle_height, 0])
|
2016-08-03 19:57:55 +02:00
|
|
|
cube([handle_length,
|
2016-08-01 12:51:03 +02:00
|
|
|
handle_length,
|
|
|
|
handle_max_width
|
2016-08-03 19:57:55 +02:00
|
|
|
],
|
2016-08-01 12:51:03 +02:00
|
|
|
center = true);
|
2016-08-03 19:57:55 +02:00
|
|
|
|
2016-08-01 12:51:03 +02:00
|
|
|
for(z = [-handle_length, handle_length])
|
|
|
|
translate([0, -center_offset, z])
|
|
|
|
rotate([90,0,0])
|
|
|
|
cylinder(d = handle_bevel_radius,
|
|
|
|
h =handle_max_width);
|
|
|
|
|
|
|
|
}
|
2016-08-03 19:57:55 +02:00
|
|
|
|
2016-08-01 12:51:03 +02:00
|
|
|
sphere(d = handle_minkowski_dia, center = true);
|
|
|
|
}
|
|
|
|
}
|
2016-12-01 16:15:24 +01:00
|
|
|
|
|
|
|
handle();
|