//////////////// /// Settings /// //////////////// // The thickness of the walls wall_thickness = 4; // The dimensions of the box on the inside box_inside = [ 130, 140, 110 ]; // Screw dimensions screw_diameter = 3; screw_length = 6.3; // The size of a breadboard bb_size = [ 46, 35 ]; // ------------------------------------------- corner_piece_size = screw_diameter + (wall_thickness * 2); box_outside = [ box_inside[0] + (wall_thickness * 2), box_inside[1] + (wall_thickness * 2), box_inside[2] + (wall_thickness - 0.1) ]; // ------------------------------------------- // Offset of the Arduino - i.e. where it should be mounted in the box offset_arduino = [53.4+8, 40, wall_thickness]; // Breadboard mounting specs breadboard = [ bb_size[0], bb_size[1]+24+13, 49 ]; offset_breadboard = [70, 20, wall_thickness - 0.1]; bb_mount_height = 5; // Battery location battery = [ 60, 19, 70 ]; offset_battery = [ wall_thickness + corner_piece_size + 10, box_inside[1] - battery[1], 0 ]; // Power regulator mount settings power_reg = [ 54, 31, 12 ]; power_reg_underneath = 9; offset_power_reg = [ offset_arduino[0] + 10, 85, wall_thickness ]; // Location of the lid - should not be touching the box - default is to the side of the box itself for easy 3d printing offset_lid = [ 0, 0, 0 ]; // Based height of the lid lid_base_height = wall_thickness * 1.5; // Height of the extra lip to make the lid fit snugly lid_lip_height = 2; //offset_lid = [ 0, 0, box_outside[2] + 25 ]; // ------------------------------------------- // Lid // ------------------------------------------- module screw_hole_indent() { indent_depth = lid_lip_height + wall_thickness / 2; indent_size = screw_diameter + 1.25; translate([-indent_size/2, -indent_size/2, 0]) cube([ indent_size , indent_size , indent_depth ]); translate([0, 0, indent_depth - 0.1]) cylinder(h = screw_length, d = screw_diameter, $fn = 25); } translate(offset_lid) { difference() { union() { cube([ box_outside[0], box_outside[1], lid_base_height ]); translate([wall_thickness, wall_thickness, lid_base_height]) cube([ box_outside[0] - (wall_thickness * 2), box_outside[1] - (wall_thickness * 2), lid_lip_height ]); } translate([0, 0, -0.1]) union() { inset = corner_piece_size / 2 + wall_thickness; translate([ inset, inset, ]) screw_hole_indent(); translate([ box_outside[0] - inset, inset, ]) screw_hole_indent(); translate([ box_outside[0] - inset, box_outside[1] - inset ]) screw_hole_indent(); translate([ inset, box_outside[1] - inset ]) screw_hole_indent(); } } }