scad/knob.scad

48 lines
1.1 KiB
OpenSCAD

include <lib/BOSL2/std.scad>
include <lib/BOSL2/screws.scad>
Base_diameter = 30.0; // 0.1
Base_depth = 30.0; // 0.1
Screw_size = "M4";
Screw_length = 15.0; // 0.1
Head_style = "sphere"; // ["sphere", "stl"]
Sphere_diameter = 50.0; // 0.1
Sphere_offset = 40.0; // 0.1
Head_import = "";
Head_rotate_x = 0.0; // 0.1
Head_rotate_y = 0.0; // 0.1
Head_rotate_z = 0.0; // 0.1
Head_scale_x = 1.0; // 0.1
Head_scale_y = 1.0; // 0.1
Head_scale_z = 1.0; // 0.1
Head_translate_x = 0.0; // 0.1
Head_translate_y = 0.0; // 0.1
Head_translate_z = 0.0; // 0.1
$fn = 64;
module thing() {
union() {
cylinder(Base_depth, d=Base_diameter);
if (Head_style == "sphere") {
translate([0, 0, Sphere_offset]) { sphere(d=50);
};
}
if (Head_style == "stl") {
translate([Head_translate_x, Head_translate_y, Head_translate_z]) {
rotate([Head_rotate_x, Head_rotate_y, Head_rotate_z]) {
scale([Head_scale_x, Head_scale_y, Head_scale_z]) {
import(Head_import);
}
}
}
}
}
}
difference() {
thing();
translate([0, 0, Screw_length/2]) {
screw_hole(Screw_size, tolerance="tap", length=Screw_length);
}
};