Compare commits

...

2 Commits

8 changed files with 36561 additions and 28479 deletions

View File

@ -1,15 +1,17 @@
#!/bin/bash #!/bin/bash
SCAD="./takeup.scad"
PARTS=( PARTS=(
"slip_coupling" "slip_coupling"
"magnetic_coupling" "magnetic_coupling"
"mount_plate" "mount_plate"
"daylight_spool_insert"
) )
for part in "${PARTS[@]}" for part in "${PARTS[@]}"
do do
stl="./stl/takeup_${part}.stl" stl="./stl/takeup_${part}.stl"
openscad -o "${stl}" -D "PART=\"${part}\";" "./takeup.scad" openscad -o "${stl}" -D "PART=\"${part}\";" "${SCAD}"
done done
openscad --preview -o debug.png -D "PART=\"preview\";" "./takeup.scad" openscad --preview -o debug.png -D "PART=\"preview\";" "${SCAD}"

View File

@ -1,7 +1,7 @@
SQUARE_INNER = 8; SQUARE_INNER = 8;
time = 0; time = 0;
module reel_holder (top = true) { module reel_holder (top = true, base = true) {
$fn = 60; $fn = 60;
difference(){ difference(){
translate([0, 0, -1.5]) cube([SQUARE_INNER, SQUARE_INNER, 21.5], center= true); translate([0, 0, -1.5]) cube([SQUARE_INNER, SQUARE_INNER, 21.5], center= true);
@ -18,14 +18,16 @@ module reel_holder (top = true) {
} }
translate ([0, 0, (18.5 / 2) + 7.5]) cube([10, 10, 2], center = true); translate ([0, 0, (18.5 / 2) + 7.5]) cube([10, 10, 2], center = true);
} }
difference () { if (base) {
translate([0, 0, -(18.5/ 2) - (3 / 2) - 3]) cylinder(r = 16 /2, h = 3, center = true); difference () {
//translate([0, 0, -14.3]) cube([4, 4, 2], center = true); //notch translate([0, 0, -(18.5/ 2) - (3 / 2) - 3]) cylinder(r = 16 /2, h = 3, center = true);
difference() { //translate([0, 0, -14.3]) cube([4, 4, 2], center = true); //notch
translate([0, 0, -14.3]) cylinder(r = 8 / 2, h = 2, center = true); difference() {
translate([0, 6, -14.3]) cube([8, 8, 2], center = true); translate([0, 0, -14.3]) cylinder(r = 8 / 2, h = 2, center = true);
} translate([0, 6, -14.3]) cube([8, 8, 2], center = true);
} }
}
}
} }
//rotate([0, 0, time]) reel_holder(); //rotate([0, 0, time]) reel_holder();

BIN
debug.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@ include <daylight_spool_mount.scad>;
COUPLING_D = 37; COUPLING_D = 37;
WASHER_D = 35.; WASHER_D = 35.7;
WASHER_H = 2.4; WASHER_H = 2.4;
MOTOR_SHAFT_D = 6; MOTOR_SHAFT_D = 6;
@ -12,6 +12,10 @@ MOTOR_SHAFT_HOBBLE = 1;
MOTOR_MOUNT_X = 32.5; MOTOR_MOUNT_X = 32.5;
MOTOR_MOUNT_Y = 17.5; MOTOR_MOUNT_Y = 17.5;
module hex (diag = 10, h = 1) {
cylinder(r = diag / 2, h = h, center = true, $fn = 6);
}
//Geartisan Worm Gear Motor - JSX40-370 //Geartisan Worm Gear Motor - JSX40-370
module motor () { module motor () {
cube([46, 32, 21], center = true); cube([46, 32, 21], center = true);
@ -66,13 +70,43 @@ module magnetic_coupling (MAGNETS = 4, MAGNET_D = 8.1, MAGNET_H = 2.5) {
} }
module slip_coupling (MAGNET_H = 2.5) { module slip_coupling (MAGNET_H = 2.5) {
H = 12; H = 16;
difference () { difference () {
cylinder(r = 45 / 2, h = H, center = true, $fn = 100); translate([0, 0, 2]) cylinder(r = 45 / 2, h = H, center = true, $fn = 100);
translate([0, 0, -(H / 2) + (MAGNET_H + 3) / 2]) cylinder(r = (COUPLING_D + 0.7) / 2, h = MAGNET_H + 3.01, center = true, $fn = 160); translate([0, 0, 2 -(H / 2) + (MAGNET_H + 3) / 2]) cylinder(r = (COUPLING_D + 0.7) / 2, h = MAGNET_H + 3.01, center = true, $fn = 160);
translate([0, 0, -(H / 2) + (MAGNET_H + 3) + (WASHER_H / 2)]) cylinder(r = WASHER_D / 2, h = WASHER_H, center = true, $fn = 160); translate([0, 0, 2 -(H / 2) + (MAGNET_H + 3) + (WASHER_H / 2)]) cylinder(r = WASHER_D / 2, h = WASHER_H, center = true, $fn = 160);
translate([0, 0, 2 + (H / 2) - (5 / 2)]) cube([25, 10, 5.01], center = true);
translate([0, 0, 2 + (H / 2) - (5 / 2)]) cube([10, 25, 5.01], center = true);
//corners with voids for M3
translate([-8.75, -8.75, 2 + (H / 2) - (5 / 2)]) {
translate([0, 0, 1]) cube([(25 - 10) / 2, (25 - 10) / 2, 5.01], center = true);
cylinder(r = 3.25 / 2, h = 20, center = true, $fn = 40);
translate([0, 0, -4.25]) hex(6, 2.75);
}
translate([8.75, 8.75, 2 + (H / 2) - (5 / 2)]) {
translate([0, 0, 1]) cube([(25 - 10) / 2, (25 - 10) / 2, 5.01], center = true);
cylinder(r = 3.25 / 2, h = 20, center = true, $fn = 40);
translate([0, 0, -4.25]) hex(6, 2.75);
}
}
}
module daylight_spool_insert () {
translate([0, 0, 14]) reel_holder(true, false);
union () {
cube([25 - .4, 10 - .4, 5], center = true);
cube([10 - .4, 25 - .4, 5], center = true);
translate([-8.75, -8.75, 0]) difference () {
translate([.2, .2, 1/2]) cube([(25 - 10) / 2, (25 - 10) / 2, 4], center = true);
cylinder(r = 3.25 / 2, h = 20, center = true, $fn = 40);
translate([0, 0, 2]) cylinder(r = 5.75 / 2, h = 3.5, center = true, $fn = 40);
}
translate([8.75, 8.75, 0]) difference () {
translate([ -.2, -.2, 1/2]) cube([(25 - 10) / 2, (25 - 10) / 2, 4], center = true);
cylinder(r = 3.25 / 2, h = 20, center = true, $fn = 40);
translate([0, 0, 2]) cylinder(r = 5.75 / 2, h = 3.5, center = true, $fn = 40);
}
} }
translate([0, 0, 18.25]) reel_holder();
} }
module motor_mount_void (D, Z) { module motor_mount_void (D, Z) {
@ -123,9 +157,13 @@ module mount_plate () {
module debug_assembled () { module debug_assembled () {
translate([(46 / 2) - 14.5, 0, 0]) rotate([180, 0, 0]) motor(); translate([(46 / 2) - 14.5, 0, 0]) rotate([180, 0, 0]) motor();
color("blue") translate([0, 0, 23]) rotate([0, 0, -90]) magnetic_coupling();
color("green") translate([8, 0, 11]) mount_plate(); color("green") translate([8, 0, 11]) mount_plate();
translate([0, 0, 26.5]) slip_coupling(); color("blue") translate([0, 0, 23]) rotate([0, 0, -90]) magnetic_coupling();
difference () {
translate([0, 0, 26.5]) slip_coupling();
translate([-50, 0, 0]) cube([100, 100, 150], center = true);
}
color("red") translate([0, 0, 34]) daylight_spool_insert();
} }
// //
@ -138,6 +176,8 @@ if (PART == "slip_coupling") {
magnetic_coupling(); magnetic_coupling();
} else if (PART == "mount_plate") { } else if (PART == "mount_plate") {
mount_plate(); mount_plate();
} else if (PART == "daylight_spool_insert") {
daylight_spool_insert();
} else if (PART == "debug") { } else if (PART == "debug") {
debug_assembled(); debug_assembled();
} }