esp32_width = 25.8; case_height = 12; esp32_length = 65.8; esp32_secondary_length = 60.2; wall_thickness = 1; usb_thickness = 3.3; usb_width = 9.1; module generateCase() { difference() { // Generate Outer Shell cube([(esp32_width+(wall_thickness*2)), (esp32_length+(wall_thickness*2)), (case_height+wall_thickness)]); // Generate inner cutout for ESP32 PCB translate([wall_thickness,wall_thickness,wall_thickness]) cube([esp32_width, esp32_secondary_length, case_height]); // Generate cutout for ESP32 Antenna translate([wall_thickness+3,wall_thickness,wall_thickness+1]) cube([esp32_width-6, esp32_length, case_height]); // Generate slot for OTG Port translate([wall_thickness+2.1,0,wall_thickness+1.1]) cube([usb_width,2,usb_thickness]); // Generate slot for UART port translate([(wall_thickness+esp32_width-usb_width-2.1),0,wall_thickness+1.1]) cube([usb_width,2,usb_thickness]); } } module generateLid() { union() { cube([(esp32_width+(wall_thickness*2)), (esp32_length+(wall_thickness*2)), 1.5]); translate([wall_thickness, wall_thickness, 1.5]) cube([esp32_width, esp32_secondary_length, 1.0]); translate([wall_thickness+3, esp32_secondary_length, 1.0]) cube([esp32_width-6, 5.5, 1.5]); } } generateCase(); translate([esp32_width+5,0,0]) generateLid();