Neale Pickett
·
2026-03-28
cap.scad
1include <BOSL2/std.scad>
2
3$fa = 1;
4$fs = $preview ? 2 : 0.5;
5
6module rings(id) {
7 tag("remove") {
8 for (z = [-2, 2]) {
9 up(z) tube(id=id-1, od=id+1, h=1);
10 }
11 }
12}
13
14angle = 45;
15
16diff() cyl(h=150, d=20, anchor=BOTTOM) {
17 position(TOP) down(15) rings(20);
18 position(BOTTOM) up(15) rings(20);
19 position(TOP) {
20 cyl(h=10, d=24);
21 down(20) yrot(90+angle) {
22 cyl(h=60, d=12, anchor=BOTTOM) {
23 position(TOP) down(10) rings(12);
24 }
25 }
26 }
27
28 tag("remove") cyl(h=150, d=18) {
29 position(TOP) {
30 down(20) yrot(90+angle) cyl(h=60, d=10, anchor=BOTTOM);
31 }
32 }
33}