2022-09-24 11:25:05 +02:00
|
|
|
/*
|
|
|
|
hexagonal magnetic panels for serverracks or fridges
|
|
|
|
by zeus - 2022-09-23 - CC-BY-SA-NC-4.0
|
|
|
|
https://git.kostianix.de/zeus/3d-stuff/src/branch/main/openscad/own/hex-rackpanels
|
|
|
|
|
|
|
|
howto: edit the variables to your liking and needs. Then uncomment one of the models in the end of this file, or add your own
|
2022-09-24 15:13:32 +02:00
|
|
|
(images have to be in the folder SRC for the provided models). SVG and DXF-Files will work good for this.
|
2022-09-24 11:25:05 +02:00
|
|
|
|
|
|
|
Syntax is as following:
|
|
|
|
translate([0,-10,0]) logo("SRC/icinga.svg",3.5);
|
2022-09-24 15:13:32 +02:00
|
|
|
^ move logo [x,y,z](optional) ^ filename ^ scaling-factor (1==100%), depending on source file
|
2022-09-24 11:25:05 +02:00
|
|
|
*/
|
|
|
|
|
2022-09-23 23:10:52 +02:00
|
|
|
// ##########################################
|
|
|
|
// VARS:
|
|
|
|
$fn=100;
|
|
|
|
q=0.01; // only used to get rid of visual glitches
|
|
|
|
sides=6; // whyever you want to change this...
|
|
|
|
panel_dia=125; // overall diameter (largest diameter, not the distance of the parallel sides!)
|
|
|
|
mt=3; // material thickness, NOT overall thickness in case of a rim!
|
|
|
|
rim_t=mt; // thickness of the surrounding rim
|
|
|
|
rim_h=2; // height of the surroundig rim
|
|
|
|
logo_d=rim_h; // thickness of the embossing
|
|
|
|
magnet_count=4; // count of magnets
|
2022-09-24 11:25:05 +02:00
|
|
|
magnet_dia=11; // diameter of the magnet-recesses, 1mm bigger won't hurt..
|
2022-09-23 23:10:52 +02:00
|
|
|
magnet_h=1; // height of the magnets
|
|
|
|
// ##########################################
|
|
|
|
|
|
|
|
// MODULES:
|
|
|
|
|
|
|
|
module panel(){
|
|
|
|
difference(){
|
|
|
|
cylinder(d=panel_dia,h=mt+rim_h,$fn=sides);
|
|
|
|
translate([0,0,mt+q])cylinder(d=panel_dia-2*rim_t,h=rim_h,$fn=sides);
|
|
|
|
if (magnet_count==1){
|
|
|
|
translate([0,0,-q])cylinder(d=magnet_dia,h=magnet_h);
|
|
|
|
}
|
|
|
|
if (magnet_count>1){
|
|
|
|
for (m=[1:360/magnet_count:359]){
|
|
|
|
rotate([0,0,m]){
|
|
|
|
translate([panel_dia/4,0,-q]){
|
|
|
|
cylinder(d=magnet_dia,h=magnet_h);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
module logo(path,scale){
|
|
|
|
translate([0,0,mt]){
|
|
|
|
scale([scale,scale,1]){
|
|
|
|
linear_extrude(logo_d){
|
|
|
|
import(path,center=true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// ##########################################
|
|
|
|
|
|
|
|
// DRAW MODEL:
|
|
|
|
|
|
|
|
panel();
|
2022-09-24 11:25:05 +02:00
|
|
|
|
|
|
|
/* Distributions/OSses: */
|
|
|
|
//logo("SRC/truenas-core.svg",10);
|
|
|
|
//logo("SRC/truenas-scale.svg",1.25);
|
2022-09-24 14:26:46 +02:00
|
|
|
//translate([5,0,0])logo("SRC/freenas.svg",0.5);
|
2022-09-24 15:13:32 +02:00
|
|
|
//logo("SRC/pfsense.svg",8.5);
|
2022-09-24 14:26:46 +02:00
|
|
|
//logo("SRC/proxmox.svg",7);
|
2022-09-24 11:25:05 +02:00
|
|
|
//translate([-7,0,0])logo("SRC/ubuntu.svg",0.5);
|
|
|
|
//translate([0,5,0])logo("SRC/homeassistant.svg",0.45);
|
|
|
|
//logo("SRC/debian.svg",12.5);
|
|
|
|
//logo("SRC/mint.svg",6.5);
|
|
|
|
//translate([0,10,0])logo("SRC/arch.svg",0.15);
|
2022-09-24 15:13:32 +02:00
|
|
|
translate([0,5,0])logo("SRC/tux.svg",0.65);
|
2022-09-24 11:25:05 +02:00
|
|
|
//logo("SRC/windows.svg",0.4);
|
|
|
|
//logo("SRC/freebsd.svg",17);
|
|
|
|
|
|
|
|
/* container-stuff */
|
|
|
|
//logo("SRC/kubernetes.svg",0.175);
|
|
|
|
//logo("SRC/docker.svg",7.5);
|
|
|
|
//logo("SRC/openwrt.svg",10);
|
|
|
|
|
|
|
|
/* Venors/Hardware */
|
|
|
|
//logo("SRC/ubiquity.svg",1.5);
|
|
|
|
//logo("SRC/raspberry-pi.svg",0.5);
|
|
|
|
//logo("SRC/cisco.svg",8);
|
|
|
|
//logo("SRC/cisco-alt.svg",22);
|
|
|
|
|
|
|
|
/* VPNs */
|
|
|
|
//logo("SRC/openvpn.svg",0.15);
|
|
|
|
//logo("SRC/wireguard.svg",7.5);
|
|
|
|
|
|
|
|
/* Programming Languages/Projects */
|
|
|
|
//logo("SRC/python-alt.svg",20);
|
|
|
|
//logo("SRC/python.svg",0.31);
|
|
|
|
//logo("SRC/rust.svg",4);
|
|
|
|
//logo("SRC/r.svg",0.17);
|
|
|
|
//logo("SRC/go.svg",0.45);
|
|
|
|
//logo("SRC/nodejs.svg",22);
|
2022-09-24 14:26:46 +02:00
|
|
|
//logo("SRC/snakemake.svg",2.5);
|
2022-09-24 11:25:05 +02:00
|
|
|
|
|
|
|
/* Services/Software */
|
|
|
|
//logo("SRC/grafana.svg",8);
|
|
|
|
//logo("SRC/ansible.svg",8);
|
|
|
|
//logo("SRC/ansible_alt.svg",0.125);
|
|
|
|
//logo("SRC/discord.svg",10);
|
|
|
|
//translate([0,5,0])logo("SRC/jellyfin.svg",0.4);
|
|
|
|
//logo("SRC/plex.svg",8);
|
|
|
|
//translate([5,0,0])logo("SRC/plex-alt.svg",8);
|
|
|
|
//logo("SRC/nextcloud.svg",7.5);
|
|
|
|
//logo("SRC/github.svg",0.75);
|
|
|
|
//logo("SRC/gitlab.svg",15);
|
|
|
|
//translate([-5,-5,0])logo("SRC/gitea.svg",10);
|
|
|
|
//logo("SRC/pi-hole.svg",12);
|
|
|
|
//translate([0,-5,0])logo("SRC/bitwarden.svg",3);
|
|
|
|
//logo("SRC/nginx.svg",8);
|
|
|
|
//logo("SRC/nginx-alt.svg",0.2);
|
|
|
|
//logo("SRC/nginx-alt2.svg",23);
|
|
|
|
//logo("SRC/wordpress.svg",0.75);
|
|
|
|
//translate([-3,-3,0])logo("SRC/wordpress-alt.svg",0.4);
|
|
|
|
//translate([0,-10,0])logo("SRC/icinga.svg",3.5);
|
|
|
|
|