diff --git a/examples/JK_projector_takeup.scad b/examples/JK_projector_takeup.scad index eb65cf3..9fc58d0 100644 --- a/examples/JK_projector_takeup.scad +++ b/examples/JK_projector_takeup.scad @@ -7,14 +7,40 @@ ARM_WIDTH = 15; ARM_HEIGHT = 7; ARM_CUTOFF = 101.25; +ARM_REINFORCEMENT_OFFSET_X = 20; +ARM_REINFORCEMENT_Y = 5; +ARM_REINFORCEMENT_Z = 4.1; + ARMS_ANGLE = 40; -module original_takeup () { - module block () { - cube([105, 26.8, 5.9], center = true); - cube([105, 36.6, 5.9], center = true); - } +AX = 105; +AY = 26.85; +AZ = 6.1; +BX = 105; +BY = 34.4; +BZ = 5; + +BOLTSX = 77; + +M5 = 5; + +module block () { + cube([AX, AY, AZ], center = true); + translate([0, -(AY - BY) / 2, (AZ / 2) + (BZ / 2)]) { + difference () { + cube([BX, BY, BZ], center = true); + translate([0, BY - 5.44, 0]) cube([53.2, BY, BZ + 1], center = true); + //bolts + translate([0, (BY / 2) - 3.5, 0]) { + translate([BOLTSX / 2, 0, 0]) cylinder(r = 4 / 2, h = BZ + 1, center = true, $fn = 50); + translate([-BOLTSX / 2, 0, 0]) cylinder(r = 4 / 2, h = BZ + 1, center = true, $fn = 50); + } + } + } +} + +module original_takeup () { block(); } @@ -25,12 +51,12 @@ module projector_mount () { rotate([0, 180, 0]) minimal_mount(); translate([-10, 0, 0]) rounded_cube([50, 30, 20], d = 12, center = true); } - translate([-8.5, 0, 12]) rotate([0, 0, 180]) geared_motor(); + //translate([-8.5, 0, 12]) rotate([0, 0, 180]) geared_motor(); //translate([0, 0, -34]) rotate([180, 0, 0]) daylight_spool_insert(); } module projector_arm () { - + difference () { union () { cube([ARM_LENGTH, ARM_WIDTH, ARM_HEIGHT], center = true); @@ -38,16 +64,42 @@ module projector_arm () { } translate([ARM_CUTOFF, 0, 0]) cube([ARM_LENGTH, 52, ARM_HEIGHT + 1], center = true); } + translate([-ARM_REINFORCEMENT_OFFSET_X / 2, 0, -ARM_REINFORCEMENT_Z / 2]) difference() { + cube([ARM_LENGTH - ARM_REINFORCEMENT_OFFSET_X, ARM_REINFORCEMENT_Y, ARM_HEIGHT + ARM_REINFORCEMENT_Z], center = true); + translate([0, 0, -ARM_HEIGHT - ARM_REINFORCEMENT_Z + 2]) rotate([0, -5, 0]) cube([ARM_LENGTH - ARM_REINFORCEMENT_OFFSET_X + 20, ARM_REINFORCEMENT_Y + 1, ARM_HEIGHT + ARM_REINFORCEMENT_Z], center = true); + } } -rotate([0, 0, ARMS_ANGLE]) { - translate([-ARM_LENGTH/2, 0, 2.75]) rotate([0, 0, 180]) projector_arm(); - translate([-ARM_LENGTH, 0, 5.5]) rotate([0, 0, 180]) projector_mount(); +module jk_takeup () { + block(); + translate([0, 0, 1.8]) { + translate([-30, 0, 0]) rotate([0, 0, ARMS_ANGLE]) { + translate([-ARM_LENGTH/2, 0, 2.75]) rotate([0, 0, 180]) projector_arm(); + translate([-ARM_LENGTH, 0, 5.5]) rotate([0, 0, 180]) projector_mount(); + } + translate([30, 0, 0]) rotate([0, 0, -ARMS_ANGLE]) { + translate([ARM_LENGTH/2, 0, 2.75]) projector_arm(); + translate([ARM_LENGTH, 0, 5.5]) projector_mount(); + } + } } -rotate([0, 0, -ARMS_ANGLE]) { - translate([ARM_LENGTH/2, 0, 2.75]) projector_arm(); - translate([ARM_LENGTH, 0, 5.5]) projector_mount(); -} +module jk_takeup_halves (HALF = "A") { + difference () { + jk_takeup(); + translate([0, 7, 0]) cylinder(r = R(M5), h = 40, center = true, $fn = 60); + translate([0, -7, 0]) cylinder(r = R(M5), h = 40, center = true, $fn = 60); + if (HALF == "A") { + translate([(ARM_LENGTH) + 10, 0, 0]) cube([ARM_LENGTH * 2, ARM_LENGTH * 2, ARM_LENGTH], center = true); + translate([0, 0, 10 + 2]) cube([20, BY + 1, 20], center = true); + } else if (HALF == "B") { + translate([-(ARM_LENGTH) - 10, 0, 0]) cube([ARM_LENGTH * 2, ARM_LENGTH * 2, ARM_LENGTH], center = true); + translate([0, 0, -10 + 2]) cube([20, BY + 1, 20], center = true); + } + } -color("red") original_takeup(); \ No newline at end of file +} + +//translate([0, 0, 40]) color("red") original_takeup(); +jk_takeup_halves(); +//color("blue") jk_takeup_halves("B"); \ No newline at end of file