diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..774c653 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.stl +!/stl/** diff --git a/BaseLeft.scad b/BaseLeft.scad new file mode 100644 index 0000000..aa97faf --- /dev/null +++ b/BaseLeft.scad @@ -0,0 +1,50 @@ + +t = 7; +w = 35; +h = 47.7; +rc = 6.5; +rcs = 2; + +$fn = 100; + +module through(l=7, lh=3.3, lt=1, lb=1){ + union(){ + translate([0,0,l-lh])cylinder(h=lh+lt, d=5.6); + translate([0,0,-lb])cylinder(h=l+lh+lb, d=3.5); + } +} + +module m3 (h=8, lb=1){ + translate([0,0,-lb])cylinder(h+lb, d=2.5); // tapped M3 + //translate([0,0,-lb])cylinder(h+lb, d=4); // rutex insert +} + +difference(){ + hull(){ + translate([rc, rc])cylinder(h=t, r=rc); + translate([rc,h-rc])cylinder(h=t, r=rc); + translate([w-rcs, h-rcs])cylinder(h=t, r=rcs); + translate([w-rcs, rcs])cylinder(h=t, r=rcs); + } + translate([30.4, h-14.75])through(l=t); + translate([13.2, h-33.7])through(l=t); + translate([-1, h-24-14,-1])hull(){ + cube([1,14, t+2]); + translate([5,3])cylinder(h=t+2,r=3); + translate([5,11])cylinder(h=t+2,r=3); + } + translate([35,h-19.5-31,-1])hull(){ + translate([0,3])cylinder(h=t+2,r=3); + translate([0,28])cylinder(h=t+2,r=3); + } + translate([12,h-12,-1])cylinder(h=t+2,d=5.5); + translate([32.3,h-52.3,-1])cylinder(h=t+2,d=11); + //fan shroud + for(x=[24.6]){ + for(y=[23.4,43.7]){ + translate([x,h-y,0])m3(); + } + } + +} + \ No newline at end of file diff --git a/BaseRight.scad b/BaseRight.scad new file mode 100644 index 0000000..750d1e1 --- /dev/null +++ b/BaseRight.scad @@ -0,0 +1,55 @@ + +t = 7; +w = 38; +h = 47.7; +rc = 6.5; +rcs = 2; +ofs = 88.1-w; + +$fn = 100; +module through(l=7, lh=3.3, lt=1, lb=1){ + union(){ + translate([0,0,l-lh])cylinder(h=lh+lt, d=5.6); + translate([0,0,-lb])cylinder(h=l+lh+lb, d=3.5); + } +} + +module m3 (h=8, lb=1){ + translate([0,0,-lb])cylinder(h+lb, d=2.5); // tapped M3 + //translate([0,0,-lb])cylinder(h+lb, d=4); // rutex insert +} + +difference(){ + hull(){ + translate([w-rc, rc])cylinder(h=t, r=rc); + translate([w-rc,h-rc])cylinder(h=t, r=rc); + translate([rcs, h-rcs])cylinder(h=t, r=rcs); + translate([rcs, rcs])cylinder(h=t, r=rcs); + } + translate([72.2-ofs, h-14.75])through(l=t); + translate([72.2-ofs, h-39.9])through(l=t); + translate([82.1-ofs, h-6.65])through(l=t); + translate([w-7, h-24-14,-1])hull(){ + translate([7,0])cube([1,14, t+2]); + translate([3,3])cylinder(h=t+2,r=3); + translate([3,11])cylinder(h=t+2,r=3); + } + translate([-1,h-19.5-31,-1])hull(){ + cube([0.01,31,t+2]); + translate([12,3])cylinder(h=t+2,r=3); + translate([12,28])cylinder(h=t+2,r=3); + } + +// translate([32.3,h-52.3,-1])cylinder(h=t+2,d=11); + for(x=[72.6-ofs]){ + for(y=[33.4]){ + translate([x,h-y,0])m3(); + } + } + for(x=[64.6-ofs]){ + for(y=[11.4]){ + translate([x,h-y,0])m3(); + } + } +} + \ No newline at end of file diff --git a/shroud.scad b/shroud.scad new file mode 100644 index 0000000..4b2779b --- /dev/null +++ b/shroud.scad @@ -0,0 +1,98 @@ +/* shroud options */ +wt = 3; +tb = 40; +bpt = 7; + + +/* fan size */ +lf = 40; +tf = 10; +hd = 38; +lhf = 32; +rc = 4; +/* heatsink size */ +lh = 30; +wh = 26; +th = 16; +ofsx = 0; +ofsy = 0; +ofsz = 3.5; + +t= tb-bpt-tf; +$fn= 100; + +module through(l=7, lh=3.3, lt=1, lb=1){ + union(){ + translate([0,0,l-lh])cylinder(h=lh+lt, d=5.6); + translate([0,0,-lb])cylinder(h=l+lh+lb, d=3.5); + } +} + +module m3 (h=8, lt=1){ + translate([0,0,-lt])cylinder(h, d=2.5); // tapped M3 + //translate([0,0,-lt])cylinder(h, d=4); // rutex insert +} + +module mount(){ + translate([4,4,-12])difference(){ + hull(){ + translate([0,0,6])cylinder(h=6, d=8); + translate([4,-4,0])cube([0.01,8,12]); + } + translate([0,0,12])mirror([0,0,1])through(l=10,lb=1,lt=1,lh=7); + } +} + +difference(){ + union(){ + hull(){ + for(x=[rc, lf-rc]){ + for(y=[rc, lf-rc]){ + translate([x,y])cylinder(h=wt,r=rc); + } + } + } + if (2*wt+hd> lf){ + translate([lf/2, lf/2])cylinder(h=wt, d=2*wt+hd); + } + hull(){ + for(x=[lf-rc]){ + for(y=[rc, lf-rc]){ + translate([x,y,0])cylinder(h=t,r=rc); + } + } + } + hull(){ + x=rc; + translate([x,rc])cylinder(h=t,r=rc); + translate([x,lf-rc])cylinder(h=1,r=rc); + translate([x-1*rc,lf-1,t-12])cube([2*rc,1,12]); + } + hull(){ + translate([lf/2,lf/2, wt-0.1])cylinder(h=0.1,d=hd+2*wt); + translate([lf/2-wh/2-wt+ofsx,lf/2-lh/2+ofsy,t-th+ofsz])cube([wh+2*wt,lh,0.01]); + } + translate([lf/2-wh/2-wt+ofsx,lf/2-lh/2+ofsy,t-th+ofsz])cube([wh+2*wt,lh,th]); + for(x=[48]){ + for(y=[7.7,28]){ + translate([x,y,t])mirror([1,0,0])mount(); + } + } + for(x=[-8]){ + for(y=[18]){ + translate([x,y,t])mount(); + } + } + translate([0,48,t])rotate([0,0,-90])mount(); + } + hull(){ + translate([lf/2,lf/2,-0.01])cylinder(h=wt+0.01,d=hd); + translate([lf/2-wh/2+ofsx,lf/2-lh/2+ofsy-0.01,t-th+ofsz])cube([wh,lh+0.02,0.01]); + } + translate([lf/2-wh/2+ofsx,lf/2-lh/2+ofsy-0.01,t-th+ofsz])cube([wh,lh+0.02,th+0.01]); + for(x=[(lf-lhf)/2, (lf-lhf)/2+lhf]){ + for(y=[(lf-lhf)/2, (lf-lhf)/2+lhf]){ + translate([x,y])m3(); + } + } +} \ No newline at end of file diff --git a/stl/BaseLeft.stl b/stl/BaseLeft.stl new file mode 100644 index 0000000..81dce1d Binary files /dev/null and b/stl/BaseLeft.stl differ diff --git a/stl/BaseRight.stl b/stl/BaseRight.stl new file mode 100644 index 0000000..f223090 Binary files /dev/null and b/stl/BaseRight.stl differ diff --git a/stl/shroud.stl b/stl/shroud.stl new file mode 100644 index 0000000..b283736 Binary files /dev/null and b/stl/shroud.stl differ