M3HoleDiam = 3.4; MountSize = 40; $fn = 100; difference() { MainBody(); M3MountHoles(); } module M3MountHoles(){ edgeDistance = (MountSize-20)/2; translate([0, edgeDistance, edgeDistance]) M3Hole(40); translate([0, MountSize-edgeDistance, edgeDistance]) M3Hole(40); translate([0, edgeDistance, MountSize-edgeDistance]) M3Hole(40); translate([0, MountSize-edgeDistance, MountSize-edgeDistance]) M3Hole(40); } module M3Hole(thickness) { rotate([0, 90, 0])cylinder(h = thickness, d = M3HoleDiam); } module MainBody() { // left mount plate cube([5, MountSize, MountSize]); // bottom frame plate translate([5, 0,0 ]) cube([50, MountSize, 5]); // motorholder plate translate([0, MountSize,0 ]) cube([40+5, 5, 40]); }