Files
creaturedex/model/right-half.scad
2026-07-26 18:07:29 +02:00

116 lines
3.2 KiB
OpenSCAD

include <common.scad>
$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();