3d-stuff/openscad/own/hex-rackpanels/hexpanel.scad

125 lines
3.8 KiB
OpenSCAD
Raw Normal View History

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);