$fn=60; include include ; difference() { diff() prismoid(size1=[9,10], size2=[9,17], h=12, rounding=.5, center=true) { edge_profile([BOT+BACK, BOT+FRONT], excess=5, convexity=10) { mask2d_roundover(h=3,mask_angle=$edge_angle); } } color("blue") { translate([0,0,1]) cuboid([1,20,3], rounding=.5); translate([0,0,6]) cuboid([2,20,5]); } color("red") translate([0,0,3.5]) ycyl(d=3.8, l=20); color("green") { * rotate([0,0,30]) { nutcatch_parallel("M3", clh=3.5); hole_through(name="M3", l=10, cld=0.1, h=0, hcld=0.4); } } color("cyan") translate([0,0,-2.5]) rotate([0,0,30]) zcyl(d=7, l=7, $fn=6); color("red") translate([3.5, 0, -2.5]) rotate([0,90,0]) screw("M3x5"); }