diff --git a/openscad/own/rgb-fanblock/IMG/rgb-fanblock.png b/openscad/own/rgb-fanblock/IMG/rgb-fanblock.png new file mode 100644 index 0000000..631fe1d Binary files /dev/null and b/openscad/own/rgb-fanblock/IMG/rgb-fanblock.png differ diff --git a/openscad/own/rgb-fanblock/IMG/rgb-fanblock_logo.png b/openscad/own/rgb-fanblock/IMG/rgb-fanblock_logo.png new file mode 100644 index 0000000..f3b90a5 Binary files /dev/null and b/openscad/own/rgb-fanblock/IMG/rgb-fanblock_logo.png differ diff --git a/openscad/own/rgb-fanblock/SRC/Stencil Gothic - Read Me.pdf b/openscad/own/rgb-fanblock/SRC/Stencil Gothic - Read Me.pdf new file mode 100644 index 0000000..ad1c069 Binary files /dev/null and b/openscad/own/rgb-fanblock/SRC/Stencil Gothic - Read Me.pdf differ diff --git a/openscad/own/rgb-fanblock/SRC/StencilGothic.ttf b/openscad/own/rgb-fanblock/SRC/StencilGothic.ttf new file mode 100644 index 0000000..3606091 Binary files /dev/null and b/openscad/own/rgb-fanblock/SRC/StencilGothic.ttf differ diff --git a/openscad/own/rgb-fanblock/STL/plate1_2mm.stl b/openscad/own/rgb-fanblock/STL/plate1_2mm.stl new file mode 100644 index 0000000..b6abc34 Binary files /dev/null and b/openscad/own/rgb-fanblock/STL/plate1_2mm.stl differ diff --git a/openscad/own/rgb-fanblock/STL/plate2_2mm.stl b/openscad/own/rgb-fanblock/STL/plate2_2mm.stl new file mode 100644 index 0000000..f3b24c4 Binary files /dev/null and b/openscad/own/rgb-fanblock/STL/plate2_2mm.stl differ diff --git a/openscad/own/rgb-fanblock/STL/plate3_3mm.stl b/openscad/own/rgb-fanblock/STL/plate3_3mm.stl new file mode 100644 index 0000000..c363681 Binary files /dev/null and b/openscad/own/rgb-fanblock/STL/plate3_3mm.stl differ diff --git a/openscad/own/rgb-fanblock/STL/plate4_2mm.stl b/openscad/own/rgb-fanblock/STL/plate4_2mm.stl new file mode 100644 index 0000000..85d917e Binary files /dev/null and b/openscad/own/rgb-fanblock/STL/plate4_2mm.stl differ diff --git a/openscad/own/rgb-fanblock/STL/plate5_2mm.stl b/openscad/own/rgb-fanblock/STL/plate5_2mm.stl new file mode 100644 index 0000000..6f73ed5 Binary files /dev/null and b/openscad/own/rgb-fanblock/STL/plate5_2mm.stl differ diff --git a/openscad/own/rgb-fanblock/rgb-fanblock.scad b/openscad/own/rgb-fanblock/rgb-fanblock.scad new file mode 100644 index 0000000..636080a --- /dev/null +++ b/openscad/own/rgb-fanblock/rgb-fanblock.scad @@ -0,0 +1,70 @@ +// by zeus - zeus@ctdo.de - CC-BY-NC-4.00 +// -> https://www.thingiverse.com/zeus +// -> https://www.printables.com/social/366928-zeus/about +// -> https://github.com/zeus86 +// -> https://blog.tastatursport.de/ +// 2023-04-22 +// RGB-Fanblock - Block of a 120mm Fan-Cutout with some RGB-Plating +//################## +// +// VARS +mt=4; +hole_dia=4.5; +hole_dist=105; // nominal hole-distance for 120mm-fans: 105mm +hole_dist_v=hole_dist-20; // vertical hole-distance (to enable non-square-designs) +height=hole_dist_v+hole_dia+(2.5*mt); // overall height +width=hole_dist+hole_dia+(2.5*mt); // overall width +height_inner=80+1; +width_inner=80+1; +depth=mt; +text_h=10; +q=0.01; +$fn=100; +use + +// ################# +// MODULES +module baseplate(plate_t=depth){ + difference(){ + hull(){ // "complex" basic-cube with rounded edges made from a hull-element + for (x=[-(width/2-mt/2),(width/2-mt/2)], z=[-(height/2-mt/2),(height/2-mt/2)]){ + translate([x,0,z])rotate([90,0,0])cylinder(r=hole_dia/2,h=plate_t,center=true); + } + } + //cube([width,depth,height],center=true); + for (x=[-hole_dist/2,hole_dist/2], z=[-hole_dist_v/2,hole_dist_v/2]){ + translate([x,0,z])rotate([90,0,0])#cylinder(r=hole_dia/2,h=plate_t+q,center=true); + } + } +} + +module distanceplate(plate_d=depth,cut_w=width_inner,cut_h=height_inner,cableslot=0,cableslot_h=0){ + plate_t=plate_d; + difference(){ + baseplate(plate_t); + cube([cut_w,plate_d+q,cut_h],center=true); + if (cableslot==1){ + translate([width/4,0,0])cube([width/2+1,plate_d+q,cableslot_h],center=true); + } + } +} + +module faceplate(plate_d=depth,text_value1,text_value2,fontsize){ + plate_f=plate_d; + difference(){ + baseplate(plate_f); + //cube([width_inner,plate_d+q,height_inner],center=true); + translate([0,plate_f/2+q,0])rotate([90,0,0])linear_extrude(plate_f+2*q){ + translate([0, fontsize*0.7,0])text(text_value1, size=fontsize, font="Stencil Gothic:style=Regular", halign="center",valign="center"); + translate([0,-fontsize*0.7,0])text(text_value2, size=fontsize, font="Stencil Gothic:style=Regular", halign="center",valign="center"); + } + } +} +// +// ################# +// DRAWING +translate([0,0,0])baseplate(2); // bottom layer +translate([20,-30,0])distanceplate(2,25,25,1,10); // plate for cableruns +translate([40,-60,0])distanceplate(3); // plate for the PCB to be resting in +%translate([60,-90,0])baseplate(2);// transparent or white layer +translate([80,-120,0])faceplate(2,"ZEUS","AQUA",25);// faceplate with text