From f36fa7aa354ea0862bbfaf9b0a053ca0c7c89c9b Mon Sep 17 00:00:00 2001 From: Stephen Carpenter Date: Sat, 19 Nov 2022 12:13:00 -0500 Subject: [PATCH] Initial import of lovejoy.scad Initial import into its own project --- lovejoy.scad | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 lovejoy.scad diff --git a/lovejoy.scad b/lovejoy.scad new file mode 100644 index 0000000..30fb809 --- /dev/null +++ b/lovejoy.scad @@ -0,0 +1,55 @@ +use +use +use + + +module spider_section(ir=6,or=13, l=6, lt=1, h, die=false) { + a = 360/l; + cx=or-ir+.2; + for (r=[0,a]) + rotate([0,0,r]) + translate([ir+cx/2-.2,0,0]) cube([cx, die ? lt+.2 : lt, h], center=true); + if (die) { + RiS(R=or, r=0, h=h, w1=0, w2=60); + Ri(R=ir+.4, r=0, h=h); + } else { + Ri(R=ir, r=ir-lt, h=h); + } +} + +module spider(ir=6, sd=9, or=13, l=6, lt=1, h=3, die=false) { + difference() { + union() { + for (i=[0 : 1 : l-1]) + if (i % 2) rotate([0,0,i*360/l]) spider_section(ir=ir,h=h,die=die); + } + } +} + +module lovejoy(ph=5, jh=3) { + ir = ($children < 1) ? 4.2 : 0; + difference() { + // Body + translate([0,0,-(jh+ph)/2]) Ri(R=13-.1,r=ir,h=ph+jh); + // Cuts + translate([0,0,-jh/2+.01]) spider(ir=6, die=true, h=jh+.1); + // Center Cuts + if ($children > 0) + children(); + } +} + +if (! $preview) { + $fs= .1; + $fn= 60; +} +color("pink") + lovejoy() translate([0,0,-6]) cylinder(r=2, h=12, $fn=4, center=true); +color("green") + translate([0,0,0]) spider(ir=6, die=false, h=3); +color("blue") + rotate([180,0,0]) { + lovejoy(); +} + +//translate([tan(60),0,-2]) color("yellow") cube([.1,1,5]);