$fn=60; include include frame_l=180; 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([-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); } 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.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(); } } translate([0,0,10]) pcb();