$fn=60; include ; include ; include ; include base_length=100; base_width=20; base_height=15; module screw() { nutcatch_parallel("M3", clh=0.1); translate([0,0,23]) hole_through(name="M3", l=16, cld=0.1, h=10, hcld=0.4); *nutcatch_sidecut("M3", l=20, clk=0.1, clh=0.1, clsl=0.1); } module pcie_mount() { color("cyan") difference() { union() { // Base cuboid([base_length,base_width,base_height], rounding=2, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT], anchor=TOP); translate([0,-10,-5]) cuboid([80,4,50], rounding=40, edges=[TOP+RIGHT,TOP+LEFT,], anchor=BOT+FRONT); // Front support *translate([-65,0,0]) cuboid([10,20,80.5], rounding=2, edges=[FWD+LEFT,BACK+LEFT, TOP+RIGHT], anchor=BOT+RIGHT); } // riser_screwholes translate([29,-8,-7.25]) rotate([0,-90,-90]) screw(); translate([-29,-8,-7.25]) rotate([0,-90,-90]) screw(); // cage_screwholes translate([0,-20,35]) rotate([0,-90,-90]) screw(); translate([0,-20,5]) rotate([0,-90,-90]) screw(); // riser_nest cuboid([68,2,base_height], rounding=-1, edges=[TOP+RIGHT,TOP+LEFT,TOP+BACK,TOP+FRONT], anchor=TOP+FRONT); translate([0,-3,0]) cuboid([44,14,base_height], rounding=-1, edges=[TOP+RIGHT,TOP+LEFT,TOP+FRONT], anchor=TOP+FRONT); } } module riser() { color("grey") { difference() { union() { cuboid([67.45,1.65,14.25], rounding=1, edges=[TOP+RIGHT,TOP+LEFT,BOT+RIGHT,BOT+LEFT], anchor=TOP); cuboid([39,7.125,10.55], rounding=.5, anchor=BOT); translate([0,0,-7.5]) cuboid([42,7,7.5], rounding=1, edges=[TOP+RIGHT,TOP+LEFT,BOT+RIGHT,BOT+LEFT], anchor=TOP); } translate([29,0,-7.25]) ycyl(l=5, d=3.25); translate([-29,0,-7.25]) ycyl(l=5, d=3.25); } translate([-63.2,11,2]) difference() { cuboid([12.75,18.25,80], rounding=2, anchor=BOT+BACK+RIGHT); translate([-1,2,-1]) cuboid([15,25,80], rounding=2, anchor=BOT+BACK+RIGHT); } } } translate([0,65.5,-40]) { pcie_mount(); translate([0,1,0]) riser(); } // 2_bays_stand color("blue", alpha=0.9) { difference() { rotate([0,90,0]) translate([0,0,-75]) rect_tube(150, 110, 105, rounding=10); translate([0,0,45]) cuboid([130,120,50], rounding=5, edges=[BOT+LEFT,BOT+RIGHT]); translate([0,0,-54]) cuboid([130,120,20], rounding=5, edges=[TOP+LEFT,TOP+RIGHT]); // holes translate([0,0,-5]) cuboid([125,120,4], rounding=2, edges=[TOP+LEFT,TOP+RIGHT,BOT+LEFT,BOT+RIGHT]); translate([0,0,-35]) cuboid([125,120,4], rounding=2, edges=[TOP+LEFT,TOP+RIGHT,BOT+LEFT,BOT+RIGHT]); } translate([-75,-55,17]) linear_extrude(2.5) { honeycomb(150, 110, 15, 4, whole_only=true); } translate([0,51,-13]) cuboid([150,5,2], rounding=3, edges=[FRONT+LEFT,FRONT+RIGHT]); translate([0,51,-43]) cuboid([150,5,2], rounding=3, edges=[FRONT+LEFT,FRONT+RIGHT]); translate([0,-51,-13]) cuboid([150,5,2], rounding=3, edges=[BACK+LEFT,BACK+RIGHT]); translate([0,-51,-43]) cuboid([150,5,2], rounding=3, edges=[BACK+LEFT,BACK+RIGHT]); } // fan_mount rotate([0,-90,0]) { translate([0,0,75]) rect_tube(size1=[110,110], size2=[60,60], wall=2.5, h=30, rounding1=10, rounding2=3); translate([-30,-30,103]) fan_mount(size=60,thick=3); }