include $fa = 1; $fs = 0.4; module right_half_components() { cube([1,1,1]); } module right_half_orig() { translate(BASE_MODEL_TRANSLATE) scale(BASE_MODEL_SCALE) import(file = "right-half.3mf"); } // #right_half_orig(); module right_half_door_only() { translate(BASE_MODEL_TRANSLATE+[11.3, -85, -17]) scale(BASE_MODEL_SCALE) import(file = "right-half_door-only.stl"); } // #right_half_door_only(); module battery_spacer(cable_cube_additional_length=0) { length = 106; rotate([0, 90, 90]) cylinder(d=18.5, h=length); cable_cube = 8.25; translate([0, 0, -cable_cube]) cube([cable_cube, length+cable_cube_additional_length, cable_cube]); } // !battery_spacer(); module battery_contact() { base_height = 4; silver_wire_d = 1.15; module base_body() { rotate([90, 0, 0]) resize([0, base_height, 0], auto=[false, true, false]) scale(0.99) battery_spacer(); } module contact_spring() { spring_width = 11; translate([-2, -spring_width/2, 0]) difference() { scale([1.75, 1, 1]) rotate([-90, 0, 0]) cylinder(d=10, h=spring_width); scale([1.75, 1, 1.5]) rotate([-90, 0, 0]) cylinder(d=6, h=spring_width); translate([-100, 0, -50]) cube(100); translate([-50, 0, -100]) cube(100); translate([0, spring_width/3-silver_wire_d, 0]) cube([silver_wire_d, silver_wire_d, 50]); translate([0, spring_width*2/3, 0]) cube([silver_wire_d, silver_wire_d, 50]); } } module silver_wire_channels() { translate([7.3, 0, -6]) rotate([-15, 0, 0]) cylinder(d=silver_wire_d, h=15); translate([7.3, 0, -6]) rotate([15, 0, 0]) cylinder(d=silver_wire_d, h=15); } translate([0, 0, base_height]) rotate([0, 0, 45]) contact_spring(); difference() { base_body(); translate([0, 0, base_height]) rotate([0, 0, 45]) silver_wire_channels(); } } // !battery_contact(); module right_half_hinge_only() { module original() { translate(BASE_MODEL_TRANSLATE+[0.34, -12.3, -6]) scale(BASE_MODEL_SCALE) import(file = "right-half_hinge-only.3mf", convexity=3); translate(BASE_MODEL_TRANSLATE+[5.92, -12.3, -11.48]) scale(BASE_MODEL_SCALE) import(file = "right-half_connector.3mf", convexity=3); } module cable_room() { translate([3.5, 0, -3.5]) rotate([-10, 80, 90]) cylinder(d=8, h=20); translate([0, 18, 0]) rotate([0, 90, 90]) cylinder(d=8, h=20); translate([0, 0, -9.5]) cube([20, 16.5, 4]); } module base_model() { difference() { original(); translate([-20, -108.3, -10]) cube(40); translate([0, -85, 11]) battery_spacer(18); translate([0, 22.5, 11]) cable_room(); } } base_model(); // translate([0, -40, 11]) rotate([0, 0, 90]) battery(); } // right_half_hinge_only(); module right_half() { right_half_door_only(); right_half_hinge_only(); } right_half(); // #right_half_components();