diff --git a/examples/JK_projector_takeup.scad b/examples/JK_projector_takeup.scad index 8f1d322..e0528e0 100644 --- a/examples/JK_projector_takeup.scad +++ b/examples/JK_projector_takeup.scad @@ -14,7 +14,7 @@ ARM_REINFORCEMENT_Z = 4.1; ARMS_ANGLE = 40; AX = 105; -AY = 26.85; +AY = 26.85 - 2; AZ = 6.1; BX = 105; @@ -35,6 +35,19 @@ module m5_nut (pos = [0, 0, 0]) { translate(pos) hex(9.4, 4); } +module block_bolt_voids (pos = [0, 0, 0]) { + translate(pos) { + translate([BOLTSX / 2, 0, 0]) { + cylinder(r = 4.95 / 2, h = BZ + 1, center = true, $fn = 50); + m5_nut([0, 0, 3]); + } + translate([-BOLTSX / 2, 0, 0]) { + cylinder(r = 4.95 / 2, h = BZ + 1, center = true, $fn = 50); + m5_nut([0, 0, 3]); + } + } +} + module block () { cube([AX, AY, AZ], center = true); translate([0, -(AY - BY) / 2, (AZ / 2) + (BZ / 2)]) { @@ -48,18 +61,10 @@ module block () { cylinder(r= R(13), h = BZ, center = true, $fn = 60); } } + //void for motor parts 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.95 / 2, h = BZ + 1, center = true, $fn = 50); - m5_nut([0, 0, 3]); - } - translate([-BOLTSX / 2, 0, 0]) { - cylinder(r = 4.95 / 2, h = BZ + 1, center = true, $fn = 50); - m5_nut([0, 0, 3]); - } - } + block_bolt_voids([0, (BY / 2) - 3.5, 0]); } } } @@ -68,33 +73,37 @@ module original_takeup () { block(); } -module projector_mount () { +module projector_mount (pos = [0, 0, 0], rot = [0, 0, 0]) { //intersection () {} $fn = 60; - intersection () { - rotate([0, 180, 0]) minimal_mount(); - translate([-10, 0, 0]) rounded_cube([50, 30, 20], d = 12, center = true); - } + translate(pos) rotate(rot) { + intersection () { + 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([0, 0, -34]) rotate([180, 0, 0]) daylight_spool_insert(); } -module projector_arm () { - difference () { - union () { - cube([ARM_LENGTH, ARM_WIDTH, ARM_HEIGHT], center = true); - translate([(ARM_CUTOFF/2) - 2.1, 0, 0]) scale([2, 1, 1]) rotate([0, 0, 45]) cube([30, 30, ARM_HEIGHT], center = true); - } - 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); +module projector_arm (pos = [0, 0, 0], rot = [0, 0, 0]) { + translate(pos) rotate(rot) { + difference () { + union () { + cube([ARM_LENGTH, ARM_WIDTH, ARM_HEIGHT], center = true); + translate([(ARM_CUTOFF/2) - 2.1, 0, 0]) scale([2, 1, 1]) rotate([0, 0, 45]) cube([30, 30, ARM_HEIGHT], center = true); + } + 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); + } } } -module filter_holder () { - difference () { +module filter_holder (pos = [0, 0, 0]) { + translate(pos) difference () { cube([FILTER_X, 13.25, 50.5], center = true); //center void cube([42.4, 13.25 + 1, 50.5 + 1], center = true); @@ -103,10 +112,10 @@ module filter_holder () { } } -module filter_reinforcement () { +module filter_reinforcement (pos = [0, 0, 0]) { Z = 19.5 + 7.83-5.75; X = AX; - difference () { + translate(pos) difference () { cube([X, 15.5, Z], center = true); cube([FILTER_X - 0.1, 15.5 + 1, Z + 1], center = true); translate([X - 19.5, -9, 0]) cube([X, 15.5, Z + 1], center = true); @@ -129,19 +138,19 @@ module jk_takeup () { difference () { union () { block(); - translate([0, 0, -27.5]) filter_holder(); - translate([0, -1.1, -16+(5.75/2)]) filter_reinforcement(); + filter_holder([0, 0, -27.5]); + filter_reinforcement([0, -1.1, -16+(5.75/2)]); } roller_bolts(); } 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(); + projector_arm([-ARM_LENGTH/2, 0, 2.75], [0, 0, 180]); + projector_mount([-ARM_LENGTH, 0, 5.5], [0, 0, 180]); } 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(); + projector_arm([ARM_LENGTH/2, 0, 2.75]); + projector_mount([ARM_LENGTH, 0, 5.5]); } } } @@ -200,8 +209,8 @@ module idle_roller_cap () { //translate([0, 0, 40]) color("red") original_takeup(); //jk_takeup(); -//jk_takeup_halves(); +jk_takeup_halves(); //color("blue") jk_takeup_halves("B"); //m5_nut(); -idle_roller(); +//idle_roller(); //translate([0, 0, (20.2 / 2) - (5 / 2)]) idle_roller_cap(); \ No newline at end of file