x_size = 75; y_size = 40; z_size = 9; pcb_x = 70; pcb_y = 35; wall_size = 1; hole_rad = 1.5; filament_x = 57.5 - pcb_x/2 - 13 - 1; filament_size = 2; difference() { union() { difference() { // Main cube([x_size, y_size, z_size], center = true); // Hollow translate([0, 0, wall_size]) { cube([x_size - 2 * wall_size, y_size - 2 * wall_size, z_size], center = true); } } // Bottom Hole Mounts for (i = [-1:2:1]) { translate([i * (pcb_x/2 - 3) - 1, -(pcb_y/2 - 3) - 1, -0.5]) { difference() { cylinder(z_size - 1, hole_rad + 1, hole_rad + 1, $fn = 360, center = true); translate([0, 0, wall_size]) { cylinder(z_size - 1, hole_rad, hole_rad, $fn = 360, center = true); } } } } // Top Hole Mount translate([(41 - pcb_x/2) - 1, pcb_y/2 - 3 - 1, -0.5]) difference() { cylinder(z_size - 1, hole_rad + 1, hole_rad + 1, $fn = 360, center = true); translate([0, 0, wall_size]) { cylinder(z_size - 1, hole_rad, hole_rad, $fn = 360, center = true); } } // Fillament Block translate([filament_x, 0, -0.5]) { difference() { cube([filament_size + wall_size * 2, y_size, z_size - 1], center = true); translate([13, pcb_y/2 - 12.5 - 1, 0]) { cylinder(z_size, 13.5, 13.5, $fn = 360, center = true); } } } } // Bottom Holes for (i = [-1:2:1]) { translate([i * (pcb_x/2 - 3) - 1, -(pcb_y/2 - 3) - 1, -z_size/2 + 1]) { cylinder(2, 2.8, hole_rad, $fn = 360, center = true); } } // Top Hole translate([(41 - pcb_x/2) - 1, pcb_y / 2 - 3 - 1, -z_size/2 + 1]) { cylinder(2, 2.8, hole_rad, $fn = 360, center = true); } // Filament Hole translate([filament_x, 0, -0.5]) { rotate([90, 0, 0]) { cylinder(y_size + 1, filament_size/2, filament_size/2, $fn = 360, center = true); } } // Temp *translate([-x_size/2, y_size/5, 0]) { cube([x_size, y_size, z_size], center = true); } *translate([x_size/1.5, y_size/5, 0]) { cube([x_size, y_size, z_size], center = true); } }