3d-printing/my_designs/parametric-radius-gauge/gauge.scad
2025-12-17 15:28:17 -06:00

67 lines
2.6 KiB
OpenSCAD

$fn = 128;
module gauge(gauge_size, gauge_width, gauge_height, gauge_thickness, hole_size) {
body_radius = 5;
difference() {
union() {
difference(){
union() {
minkowski() {
cube([gauge_width - body_radius, gauge_height - body_radius, gauge_thickness / 2], center = true);
cylinder(d = body_radius, h = gauge_thickness / 2, center = true);
};
translate([-((gauge_width / 2) - (body_radius / 2)), (gauge_height / 2) - (body_radius / 2), 0])
cube([body_radius, body_radius, gauge_thickness], center = true);
translate([(gauge_width / 2) - (body_radius / 2), (gauge_height / 2) - (body_radius / 2), 0])
cube([body_radius, body_radius, gauge_thickness], center = true);
};
translate([-(gauge_width / 2), gauge_height / 2, 0])
cylinder(h = gauge_thickness, r1 = gauge_size, r2 = gauge_size, center = true);
translate([gauge_width / 2, gauge_height / 2, 0])
cylinder(h = gauge_thickness, r1 = gauge_size, r2 = gauge_size, center = true);
};
translate([(gauge_width / 2) - gauge_size, gauge_height / 2 - gauge_size, 0])
difference() {
cylinder(h = gauge_thickness, r1 = gauge_size, r2 = gauge_size, center = true);
translate([-gauge_size/2, -gauge_size/2, 0])
cube([gauge_size, gauge_size, gauge_thickness], center = true);
translate([-gauge_size/2, gauge_size/2, 0])
cube([gauge_size, gauge_size, gauge_thickness], center = true);
translate([gauge_size/2, -gauge_size/2, 0])
cube([gauge_size, gauge_size, gauge_thickness], center = true);
};
};
if (hole_size > 0) {
translate([(gauge_width / 2) - 3.5, -((gauge_height / 2) - 3.5), 0])
cylinder(h = gauge_thickness, d = hole_size, center = true);
};
translate([0, -(gauge_height / 3), 0])
linear_extrude(gauge_thickness, center = true)
text(str(gauge_size, "mm"), size = 6, valign = "center", halign = "center", font = "OpenSans:style=Extrabold");
};
};
thickness = false;
hole = 5.5;
size = 30;
g_width = 65;
g_height = 35;
g_thickness = 1.5;
if(thickness) {
gauge(size, g_width, g_height, size, hole);
}
else {
gauge(size, g_width, g_height, g_thickness, hole);
}