Neale Pickett
·
2025-12-30
sigil.scad
1// A simple re-implementation from mcad
2module cylinder_tube(height, radius, wall) {
3 difference() {
4 cylinder(h=height, r=radius);
5 cylinder(h=height, r=radius-wall);
6 }
7}
8
9module sigil(d, top_str="", bot_str="") {
10 // Sigil
11 translate([0, 0, 4]) intersection() {
12 cylinder_tube(50, d/2+0.5, 1);
13 union() {
14 rotate([90, 0, -90]) {
15 linear_extrude(height=d, convexity=4) {
16 translate([0, 8]) import("ruby.svg", center=true);
17 // XXX: when this is in openscad prod, add center to import and remove translate
18 }
19 }
20 rotate([90, 0, -90]) {
21 linear_extrude(height=d, convexity=10) {
22 translate([0, 13]) text(top_str, size=2, halign="center", valign="bottom");
23 translate([0, 1]) text(bot_str, size=2, halign="center", valign="bottom");
24 }
25 }
26 }
27 }
28}