$fn=60; include // Dimesions of the CM4-IO board and enclosure CM4_WIDTH = 152; // mm CM4_HEIGHT = 70; // mm CM4_DEPTH = 36; // mm ENclosure_WIDTH = CM4_WIDTH + 8; // mm ENclosure_HEIGHT = CM4_HEIGHT + 10; // mm ENclosure_DEPTH = CM4_DEPTH + 20; // mm // CM4-IO placement and hole cm4_io_offset = CM4_HEIGHT/2 + 5; // offset from bottom of enclosure // Enclosure dimensions and hole positions enclosure = rect_tube(size=[ENclosure_WIDTH,ENclosure_DEPTH], h=ENclosure_HEIGHT, wall=5); holes = [ [[10, 10], [CM4_WIDTH-36, 10]], // Front holes for CM4-IO pins [[2, ENclosure_HEIGHT - CM4_HEIGHT - 20], [ENclosure_WIDTH - 2, ENclosure_HEIGHT - CM4_HEIGHT - 20]] // Bottom hole for mounting ]; for (i = holes) { translate(i[0][0], i[0][1], ENclosure_DEPTH - 5) hole(r=3, d=5); } * cm4_io_placement = translate([cm4_io_offset,cm4_io_offset,0]) scale(1, -1, 1) rotate([0, 0, 90]) cm4_io; // Add CM4-IO and enclosure to the final model difference() { enclosure; for (i = cm4_io_placement.convex_hull.vertices) { sphere(r=1, center=i); } }