///////////////////////////////////////////////////////////////////////////////// // Male part of the box. // // Author: Maximilian Stiefel // Last modification: 31.07.2017 ///////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////// // Includes ///////////////////////////////////////////////////////////////////////////////// // Dimesnions include use // Module for raw box without any lids include use // Module for screw holes include use //////////////////////////////////////////////////////////////////////////////// // Vars ///////////////////////////////////////////////////////////////////////////////// // Set minimum angle of a fragment $fa = 0.5; // Set minimum size of a fragment $fs = 0.5; //////////////////////////////////////////////////////////////////////////////// // Action ///////////////////////////////////////////////////////////////////////////////// color(myColor1) { translate([0, 0, housing_outside_height/2]) rotate([180, 0, 0]) union() { rotate([180, 0, 0]) { // Draw cylinders for mortise joint translate([0, 0, (mortise_joint_height - mortise_joint_cone_height - allowance05)/2 - 0.01]) screw_holes(housing_inside_width + housing_thickness/2, housing_inside_depth + housing_thickness/2, mortise_joint_dia - allowance05, mortise_joint_height - mortise_joint_cone_height - allowance05); // Draw cones for(x=[-0.5,+0.5]) for(y=[-0.5,+0.5]) translate([x*(housing_inside_width + housing_thickness/2), y*(housing_inside_depth + housing_thickness/2), mortise_joint_height - mortise_joint_cone_height/2 - allowance05 - 0.01]) cylinder(r1 = (mortise_joint_dia - allowance05)/2, r2 = 1, mortise_joint_cone_height, center = true); } difference() { // Draw hole box box(); // Cut off half of it translate([0, 0, -housing_outside_height/4]) cube([housing_outside_width + 1, housing_outside_depth + 1, housing_outside_height/2 + 0.01], center = true); } } }