diff --git a/server_rack/images/Bauhaus graphic design.jpg b/server_rack/images/Bauhaus graphic design.jpg new file mode 100644 index 0000000..fccc700 Binary files /dev/null and b/server_rack/images/Bauhaus graphic design.jpg differ diff --git a/server_rack/images/Brutalist Architecture.webp b/server_rack/images/Brutalist Architecture.webp new file mode 100644 index 0000000..6f59d79 Binary files /dev/null and b/server_rack/images/Brutalist Architecture.webp differ diff --git a/server_rack/images/IMG_20251026_123955786_MFNR.jpg b/server_rack/images/IMG_20251026_123955786_MFNR.jpg new file mode 100644 index 0000000..2e7ed91 Binary files /dev/null and b/server_rack/images/IMG_20251026_123955786_MFNR.jpg differ diff --git a/server_rack/images/IMG_20251026_124001656_MFNR.jpg b/server_rack/images/IMG_20251026_124001656_MFNR.jpg new file mode 100644 index 0000000..ffcafcb Binary files /dev/null and b/server_rack/images/IMG_20251026_124001656_MFNR.jpg differ diff --git a/server_rack/images/IMG_20251026_124016724_MFNR.jpg b/server_rack/images/IMG_20251026_124016724_MFNR.jpg new file mode 100644 index 0000000..f0e842f Binary files /dev/null and b/server_rack/images/IMG_20251026_124016724_MFNR.jpg differ diff --git a/server_rack/images/IMG_20251031_102315126_MFNR.jpg b/server_rack/images/IMG_20251031_102315126_MFNR.jpg new file mode 100644 index 0000000..bf46c9b Binary files /dev/null and b/server_rack/images/IMG_20251031_102315126_MFNR.jpg differ diff --git a/server_rack/images/IMG_20251031_102349440_MFNR.jpg b/server_rack/images/IMG_20251031_102349440_MFNR.jpg new file mode 100644 index 0000000..e9a9766 Binary files /dev/null and b/server_rack/images/IMG_20251031_102349440_MFNR.jpg differ diff --git a/server_rack/images/Ikea Svalnäs.jpg b/server_rack/images/Ikea Svalnäs.jpg new file mode 100644 index 0000000..d3900b1 Binary files /dev/null and b/server_rack/images/Ikea Svalnäs.jpg differ diff --git a/server_rack/images/Tray trolley.webp b/server_rack/images/Tray trolley.webp new file mode 100644 index 0000000..c71c059 Binary files /dev/null and b/server_rack/images/Tray trolley.webp differ diff --git a/server_rack/images/m_connector.png b/server_rack/images/m_connector.png new file mode 100644 index 0000000..04b4fbc Binary files /dev/null and b/server_rack/images/m_connector.png differ diff --git a/server_rack/images/mini_itx_mount.png b/server_rack/images/mini_itx_mount.png index ef82358..6abaa69 100644 Binary files a/server_rack/images/mini_itx_mount.png and b/server_rack/images/mini_itx_mount.png differ diff --git a/server_rack/images/nano_itx_mount.png b/server_rack/images/nano_itx_mount.png new file mode 100644 index 0000000..0b29748 Binary files /dev/null and b/server_rack/images/nano_itx_mount.png differ diff --git a/server_rack/images/rack.png b/server_rack/images/rack.png index 5dfb28f..d2698e5 100644 Binary files a/server_rack/images/rack.png and b/server_rack/images/rack.png differ diff --git a/server_rack/images/s_height_plate_fan_mount.png b/server_rack/images/s_height_plate_fan_mount.png new file mode 100644 index 0000000..da8bd1e Binary files /dev/null and b/server_rack/images/s_height_plate_fan_mount.png differ diff --git a/server_rack/images/ssd_plate.png b/server_rack/images/triple_ssd_plate.png similarity index 100% rename from server_rack/images/ssd_plate.png rename to server_rack/images/triple_ssd_plate.png diff --git a/server_rack/scad/base_plate.scad b/server_rack/scad/base_plate_v1.scad similarity index 100% rename from server_rack/scad/base_plate.scad rename to server_rack/scad/base_plate_v1.scad diff --git a/server_rack/scad/mini_itx_board.scad b/server_rack/scad/mini_itx_board.scad index f919c30..349a3ce 100644 --- a/server_rack/scad/mini_itx_board.scad +++ b/server_rack/scad/mini_itx_board.scad @@ -1,20 +1,14 @@ -fragments = 36; -d=3.96; -h=3; +include module pcb() { - color("green") { - difference(){ - cube(size = [170,170,h], center = false); - // mini-itx holes - translate([6.35,6.35+22.86,0]) - cylinder(5, d/2, d/2, $fn = fragments, center=false); - translate([6.35,6.35+154.94,0]) - cylinder(5, d/2, d/2, $fn = fragments, center=false); - translate([6.35+157.48,6.35,0]) - cylinder(5, d/2, d/2, $fn = fragments, center=false); - translate([6.35+157.48,6.35+154.94,0]) - cylinder(5, d/2, d/2, $fn = fragments, center=false); - } + color("green", alpha=.5) difference() { + cuboid([170,170,1.6], rounding=3, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]); + // mini-itx holes + translate([-78.74,74.84,5]) zcyl(l=20, d=2.7); + translate([-78.74,-80.1,5]) zcyl(l=20, d=2.7); + translate([78.74,-80.1,5]) zcyl(l=20, d=2.7); + translate([78.74,51.98,5]) zcyl(l=20, d=2.7); } -} \ No newline at end of file +} + +*pcb(); \ No newline at end of file diff --git a/server_rack/scad/mini_itx_mount.scad b/server_rack/scad/mini_itx_mount.scad index f2d4408..24fe63b 100644 --- a/server_rack/scad/mini_itx_mount.scad +++ b/server_rack/scad/mini_itx_mount.scad @@ -1,7 +1,6 @@ $fn=60; include -include include @@ -17,24 +16,28 @@ module pilar() { } // holes_positions -* color("red") { - translate([-78.7,-52.2,5]) zcyl(l=20, d=1); - translate([-78.7,80.1,5]) zcyl(l=20, d=1); - translate([78.8,80.1,5]) zcyl(l=20, d=1); - translate([78.8,-74.8,5]) zcyl(l=20, d=1); +color("red") { + translate([-78.74,74.84,5]) zcyl(l=20, d=1); + translate([-78.74,-80.1,5]) zcyl(l=20, d=1); + translate([78.74,-80.1,5]) zcyl(l=20, d=1); + translate([78.74,51.98,5]) zcyl(l=20, d=1); } -* translate([-85,-81,10]) pcb(); - -color("cyan") { -// mini_itx_plate -rect_tube(3, frame_l, wall=frame_e*6, rounding=frame_e, irounding=frame_e/2, center=true); +color("yellow") { +// base_plate + difference() { + cuboid([frame_l,frame_l,frame_e], rounding=3, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]); + cuboid([frame_l-34,frame_l-34,frame_e+1], rounding=3, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]); + } + *rect_tube(3, frame_l, wall=frame_e*6, rounding=frame_e, irounding=frame_e/2, center=true); // pcb_supports translate([0,0,p_height-1]) { - translate([-78.7,-52.2,0]) pilar(); - translate([-78.7,80.1,0]) pilar(); - translate([78.8,80.1,0]) pilar(); - translate([78.8,-74.8,0]) pilar(); + translate([-78.74,74.84,0]) pilar(); + translate([-78.74,-80.1,0]) pilar(); + translate([78.74,-80.1,0]) pilar(); + translate([78.74,51.98,0]) pilar(); } -} \ No newline at end of file +} + +translate([0,0,10]) pcb(); \ No newline at end of file diff --git a/server_rack/scad/nano_itx_board.scad b/server_rack/scad/nano_itx_board.scad new file mode 100644 index 0000000..0f1a526 --- /dev/null +++ b/server_rack/scad/nano_itx_board.scad @@ -0,0 +1,14 @@ +include + +module pcb() { + color("green", alpha=.5) difference() { + cuboid([120,120,1.6], rounding=3, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]); + // nano-itx holes + translate([-56.4,-41.9,5]) zcyl(l=20, d=2.7); + translate([-56.4,56.4,5]) zcyl(l=20, d=2.7); + translate([56.4,56.4,5]) zcyl(l=20, d=2.7); + translate([56.4,-56.4,5]) zcyl(l=20, d=2.7); + } +} + +*pcb(); \ No newline at end of file diff --git a/server_rack/scad/nano_itx_mount.scad b/server_rack/scad/nano_itx_mount.scad new file mode 100644 index 0000000..0ace4c5 --- /dev/null +++ b/server_rack/scad/nano_itx_mount.scad @@ -0,0 +1,44 @@ +$fn=60; + +include +include + +include + +frame_l=130; +frame_e=3; +p_height=5; + +module pilar() { + difference() { + zcyl(l=p_height, d=8, rounding1=-2); + zcyl(l=p_height, d=3, rounding=-1); + } +} + +// holes_positions +color("red") { + translate([-56.4,-41.9,5]) zcyl(l=20, d=1); + translate([-56.4,56.4,5]) zcyl(l=20, d=1); + translate([56.4,56.4,5]) zcyl(l=20, d=1); + translate([56.4,-56.4,5]) zcyl(l=20, d=1); +} + +color("pink") { +// base_plate + difference() { + cuboid([frame_l,frame_l,frame_e], rounding=3, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]); + cuboid([frame_l-30,frame_l-30,frame_e+1], rounding=3, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]); + } + *rect_tube(3, frame_l, wall=frame_e*6, rounding=frame_e, irounding=frame_e/2, center=true); + +// pcb_supports + translate([0,0,p_height-1]) { + translate([-56.4,-41.9,0]) pilar(); + translate([-56.4,56.4,0]) pilar(); + translate([56.4,56.4,0]) pilar(); + translate([56.4,-56.4,0]) pilar(); + } +} + +translate([0,0,10]) pcb(); \ No newline at end of file diff --git a/server_rack/scad/rack.scad b/server_rack/scad/rack.scad index 7b53f59..7696571 100644 --- a/server_rack/scad/rack.scad +++ b/server_rack/scad/rack.scad @@ -3,13 +3,15 @@ $fn=60; include include include ; -include +include +include include base_l=190; base_e=3; b_height=5; r_height=200; +hdd=1; module screw(x) { translate([0,-5,0]) rotate([90,90,0]) { @@ -18,6 +20,31 @@ module screw(x) { } } +module corner() { + difference() { + union() { + cuboid([30,3,30], rounding=3, edges=[LEFT+TOP,LEFT+BOT]); + translate([50,0,-10]) cuboid([100,3,10]); + } + translate([15,0,15]) ycyl(l=3.5, d=40); + translate([-10,0,10]) screw(10.5); + translate([-10,0,-10]) screw(10.5); + translate([30,0,-10]) screw(10.5); + } +} + +module s_height_corner() { + difference() { + union() { + cuboid([30,3,10], rounding=3, edges=[LEFT+TOP,LEFT+BOT]); + translate([50,0,0]) cuboid([100,3,10]); + } + translate([-10,0,0]) screw(10.5); + translate([-10,0,-10]) screw(10.5); + translate([30,0,0]) screw(10.5); + } +} + module base_plate() { /*[front]*/ translate([0,0,13]) { @@ -36,6 +63,24 @@ module base_plate() { } } +module s_height_plate() { + /*[front]*/ + translate([0,0,3]) { + union() { + translate([-90,-97,0]) s_height_corner(); + translate([90,-97,0]) mirror([1,0,0]) s_height_corner(); + } + union() { + translate([-90,97,0]) s_height_corner(); + translate([90,97,0]) mirror([1,0,0]) s_height_corner(); + } + } + /*[plate]*/ + translate([0,0,3]) rect_tube(7, size=[base_l,base_l+7], wall=base_e, center=true) { + attach(BOT) rect_tube(base_e, size=[base_l,base_l+7], wall=base_e*5, irounding=10, center=true); + } +} + module rail(h) { difference() { color("grey") cuboid([10,10,h], rounding=1); @@ -53,20 +98,7 @@ module rail2(h) { } } -module corner() { - difference() { - union() { - cuboid([30,3,30], rounding=3, edges=[LEFT+TOP,LEFT+BOT]); - translate([50,0,-10]) cuboid([100,3,10]); - } - translate([15,0,15]) ycyl(l=3.5, d=40); - translate([-10,0,10]) screw(10.5); - translate([-10,0,-10]) screw(10.5); - translate([30,0,-10]) screw(10.5); - } -} - -module connector() { +module b_connector() { mirror ([0,0,1]) difference() { union() { cuboid([33,16,30], rounding=1); @@ -84,6 +116,31 @@ module connector() { } } +module m_connector() { + mirror ([0,0,1]) difference() { + union() { + translate([0,-1.5,-20]) { + translate([-7,0,0]) cuboid([17,13,40], rounding=1); + translate([50,0,0]) cuboid([110,13,10], rounding=1); + } + } + translate([-12,0,-20]) cuboid([12,11,40], rounding=-1); + translate([-3,0,0]) { + translate([0,0,-10]) rotate([0,0,90]) screw(20); + translate([0,0,-30]) rotate([0,0,90]) screw(20); + } + translate([-11,0,0]) { + translate([0,0,-5]) ycyl(l=20, d=2); + translate([0,0,-15]) ycyl(l=20, d=2); + translate([0,0,-25]) ycyl(l=20, d=2); + translate([0,0,-35]) ycyl(l=20, d=2); + } + } + *difference() { + translate([-5,0,10]) rotate([0,90,0]) nutcatch_parallel("M4", clh=0.1); + translate([-3,0,10]) rotate([0,0,90]) screw(20); + } +} module walls() { difference() { union() { @@ -106,28 +163,63 @@ color("red") { } /*[rails]*/ - translate([-105,-90,0]) mirror([0,1,0]) rail2(200); - translate([-105,90,0]) rail2(200); - translate([100,-90,0]) mirror([0,1,0]) rail(200); - translate([100,90,0]) rail(200); - // 1U - translate([120,90,-40]) rail(120); +// 1 U +translate([-130,90,-40]) rail(120); +// 1.5 U +translate([100,90,180]) rail(160); +translate([100,-90,180]) mirror([0,1,0]) rail(160); +// 2U +translate([100,-90,0]) mirror([0,1,0]) rail(200); +translate([100,90,0]) rail(200); +// 2U double +translate([-105,-90,0]) mirror([0,1,0]) rail2(200); +translate([-105,90,0]) rail2(200); /*connectors*/ -color("green") translate([0,0,-80]) rotate([0,0,90]) { - translate([-79,-100,0]) connector(); - translate([79,-100,0]) mirror([1,0,0]) connector(); -} - -color("cyan") { - /*[plates_and_accessories]*/ - translate([0,0,7]) { - base_plate(); - rotate([0,0,90]) ssd_mount(); +color("green") { + translate([0,0,-80]) rotate([0,0,90]) { + translate([-79,-100,0]) b_connector(); + translate([79,-100,0]) mirror([1,0,0]) b_connector(); } - translate([0,0,-53]) { - base_plate(); - translate([0,0,-0.5]) rotate([0,0,90])fan_mount(); + rotate([0,0,90]) { + translate([-79,-100,80]) m_connector(); + translate([79,-100,80]) mirror([1,0,0]) m_connector(); } } +/*[plates_and_accessories]*/ +translate([0,0,-53]) { + color("cyan") base_plate(); + rotate([0,0,90]) { + color("cyan") ssd_plate_addon(); + color("orange") translate([0,0,-3]) mirror([0,0,1]) mount(); + } +} + +translate([0,0,8]) { + color("pink") { + s_height_plate(); + rotate([0,0,90]) { + translate([0,0,-0.5]) { + *ssd_plate_addon(); + fan_mount(); + } + } + } +} + +translate([0,0,92.5]) { + mirror([0,0,1]) { + color("cyan") base_plate(); + color("cyan") translate([0,0,-0.5]) fan_mount(); + } +} + + +// addon +color("red") { + union() { + translate([-90,97,40]) corner(); + translate([90,97,40]) mirror([1,0,0]) corner(); + } +} diff --git a/server_rack/scad/ssd_mount.scad b/server_rack/scad/ssd_mount.scad new file mode 100644 index 0000000..e58d99d --- /dev/null +++ b/server_rack/scad/ssd_mount.scad @@ -0,0 +1,40 @@ +include + +hdd=1; + +module addon() { + difference() { + union() { + rotate([0,0,41]) cuboid([175,10,3], rounding=5, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]); + rotate([0,0,-41]) cuboid([175,10,3], rounding=5, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]); + tube(od=122.5, id=112.5, l=3); + } + translate([60,52.5,0]) zcyl(l=10, d=4.5); + translate([60,-52.5,0]) zcyl(l=10, d=4.5); + translate([-60,52.5,0]) zcyl(l=10, d=4.5); + translate([-60,-52.5,0]) zcyl(l=10, d=4.5); + } +} + +module walls(hdd) { + difference() { + union() { + cuboid([3,85,13+13*hdd], rounding=3, edges=[TOP+FRONT,TOP+BACK], anchor=BOT); + for(i=[0:13:13*hdd]) translate([-1.5,0,2+i]) ycyl(l=85, d=3); + } + for(i=[0:13:13*hdd]) { + translate([0,-38.5,7+i]) xcyl(l=3, d=3.5); + translate([0,38.5,7+i]) xcyl(l=3, d=3.5); + } + } +} + +module mount() { + addon(); + rect_tube(h=3, size=[85,85], wall=10, center=true); + translate([36.5,0,0]) walls(hdd); + translate([-36.5,0,0]) mirror([1,0,0]) walls(hdd); +} + + +*mount(); diff --git a/server_rack/scad/ssd_plate_addon.scad b/server_rack/scad/ssd_plate_addon.scad new file mode 100644 index 0000000..c599548 --- /dev/null +++ b/server_rack/scad/ssd_plate_addon.scad @@ -0,0 +1,17 @@ +include + +module ssd_plate_addon() { + difference() { + union() { + rotate([0,0,41]) cuboid([250,15,3], rounding=5, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]); + rotate([0,0,-41]) cuboid([250,15,3], rounding=5, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]); + tube(od=172.5, id=147.5, l=3); + } + translate([60,52.5,0]) zcyl(l=10, d=4.5); + translate([60,-52.5,0]) zcyl(l=10, d=4.5); + translate([-60,52.5,0]) zcyl(l=10, d=4.5); + translate([-60,-52.5,0]) zcyl(l=10, d=4.5); + } +} + +*ssd_plate_addon(); \ No newline at end of file diff --git a/server_rack/scad/triple_ssd_mount.scad b/server_rack/scad/triple_ssd_mount.scad deleted file mode 100644 index daa978b..0000000 --- a/server_rack/scad/triple_ssd_mount.scad +++ /dev/null @@ -1,33 +0,0 @@ -include - -module walls() { - difference() { - union() { - translate([0,0,19]) cuboid([3,85,38], rounding=3, edges=[TOP+FRONT,TOP+BACK]); - for(i=[2:13:28]) translate([-1.5,0,i]) ycyl(l=85, d=3); - } - for(i=[7:13:33]) { - translate([0,-38.5,i]) xcyl(l=3, d=3.5); - translate([0,38.5,i]) xcyl(l=3, d=3.5); - } - } -} - -module ssd_mount() { - difference() { - union() { - rect_tube(h=3, size=[85,85], wall=10, center=true); - translate([36.5,0,0]) walls(); - translate([-36.5,0,0]) mirror([1,0,0]) walls(); - rotate([0,0,41]) cuboid([250,15,3], rounding=5, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]); - rotate([0,0,-41]) cuboid([250,15,3], rounding=5, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]); - tube(od=172.5, id=147.5, l=3); - } - translate([60,52.5,0]) zcyl(l=10, d=4.5); - translate([60,-52.5,0]) zcyl(l=10, d=4.5); - translate([-60,52.5,0]) zcyl(l=10, d=4.5); - translate([-60,-52.5,0]) zcyl(l=10, d=4.5); - } -} - -*ssd_mount(); diff --git a/server_rack/stl/connector.stl b/server_rack/stl/b_connector.stl similarity index 100% rename from server_rack/stl/connector.stl rename to server_rack/stl/b_connector.stl diff --git a/server_rack/stl/front_plate_alt.stl b/server_rack/stl/front_plate_alt.stl new file mode 100644 index 0000000..a279c09 Binary files /dev/null and b/server_rack/stl/front_plate_alt.stl differ diff --git a/server_rack/stl/m_connector.stl b/server_rack/stl/m_connector.stl new file mode 100644 index 0000000..410a612 Binary files /dev/null and b/server_rack/stl/m_connector.stl differ diff --git a/server_rack/stl/nano_itx_mount.stl b/server_rack/stl/nano_itx_mount.stl new file mode 100644 index 0000000..ecaf910 Binary files /dev/null and b/server_rack/stl/nano_itx_mount.stl differ diff --git a/server_rack/stl/rail.stl b/server_rack/stl/rail.stl deleted file mode 100644 index 695d9f0..0000000 Binary files a/server_rack/stl/rail.stl and /dev/null differ diff --git a/server_rack/stl/rail2.stl b/server_rack/stl/rail2.stl deleted file mode 100644 index b748376..0000000 Binary files a/server_rack/stl/rail2.stl and /dev/null differ diff --git a/server_rack/stl/rail_1.5U.stl b/server_rack/stl/rail_1.5U.stl new file mode 100644 index 0000000..13787af Binary files /dev/null and b/server_rack/stl/rail_1.5U.stl differ diff --git a/server_rack/stl/rail_2U.stl b/server_rack/stl/rail_2U.stl new file mode 100644 index 0000000..1f37a45 Binary files /dev/null and b/server_rack/stl/rail_2U.stl differ diff --git a/server_rack/stl/s_heigtht_plate.stl b/server_rack/stl/s_heigtht_plate.stl new file mode 100644 index 0000000..485f5e4 Binary files /dev/null and b/server_rack/stl/s_heigtht_plate.stl differ diff --git a/tir_sportif/tripod/scad/07_plate.scad b/tir_sportif/tripod/scad/07_plate.scad deleted file mode 100644 index 502f83c..0000000 --- a/tir_sportif/tripod/scad/07_plate.scad +++ /dev/null @@ -1,14 +0,0 @@ -$fn = 60; - -include - -tube_dia=16; - -// new -cuboid([90,150,9], rounding=3) attach(BOT) textured_tile("trunc_diamonds", [80,140], tex_reps=[10,10]/*, style="convex"*/); -translate([0,0,17]) { - difference() { - cyl(l=25, d1=80, d2=26, rounding1=-5, rounding2=5); - zcyl(l=25, d=tube_dia+.5, rounding=-2); - } -} \ No newline at end of file diff --git a/tir_sportif/tripod/stl/07_plate.stl b/tir_sportif/tripod/stl/07_plate.stl deleted file mode 100644 index bb1d3d8..0000000 Binary files a/tir_sportif/tripod/stl/07_plate.stl and /dev/null differ