$fn=60; include include include mini_l=180; nano_l=130; frame_e=3; p_height=6; 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); } // base_plate difference() { union() { cuboid([mini_l,mini_l,frame_e], rounding=3, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT], anchor=[0,0,1]); cuboid([nano_l+8,nano_l+8,frame_e+1], rounding=3, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT], anchor=[0,0,-1]); } cuboid([nano_l+2,nano_l+2,frame_e+1], rounding=3, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT], anchor=[0,0,-1]); cuboid([nano_l-8,nano_l-8,frame_e*3], rounding=3, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]); cuboid([nano_l+12,nano_l-20,frame_e+2], anchor=[0,0,-1]); cuboid([nano_l-20,nano_l+12,frame_e+2], anchor=[0,0,-1]); } color("pink") { difference() { cuboid([nano_l,nano_l,frame_e], rounding=3, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT], anchor=[0,0,-1]); cuboid([nano_l-30,nano_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]) { 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();