$fn=33; M3HoleDiam=3.4; height=40; thickness=3; length=30; // cambelt has 6mm width innerspace=8; render() difference() { frame(); holes(); } module frame() { cube([innerspace + 2 * thickness,thickness,height]); translate([0, thickness, 0]) cube([thickness, length, height]); translate([innerspace + thickness, thickness, 0]) cube([thickness, length, height]); } module holes(){ // two inner holes translate([innerspace / 2 + thickness, 0, height / 4]) M3Hole(); translate([innerspace / 2 + thickness, 0, height / 4 * 3]) M3Hole(); translate([0, length / 4 *3, height / 2]) SideM3Hole(); translate([innerspace + thickness, length / 4 * 3, height / 2]) SideM3Hole(); } module M3Hole() { rotate([0,90,90])cylinder(h=thickness, d=M3HoleDiam); } module SideM3Hole() { rotate([0,90,0])cylinder(h=thickness, d=M3HoleDiam); }