Add M4 as a reinforcement bolt that allows for a screw-on nut to hold a reel in place

This commit is contained in:
Matt McWilliams 2022-10-28 19:45:25 -04:00
parent 3e2b57f066
commit a5907409ca
3 changed files with 73 additions and 10 deletions

View File

@ -1,3 +1,5 @@
IN = 25.4;
echo("common.scad - rounded_cube()");
module rounded_cube (cube_arr = [1, 1, 1], d = 0, center = false) {

View File

@ -1,26 +1,29 @@
SQUARE_INNER = 7.8;
time = 0;
module reel_holder (top = true, base = true) {
module reel_holder (top = true, base = true, height = 18.5) {
$fn = 60;
topHeight = 3.5;
difference(){
translate([0, 0, -1.5]) cube([SQUARE_INNER, SQUARE_INNER, 21.5], center= true);
for (i = [0:4]) {
rotate([0, 0, (i * 90)]){
translate([(SQUARE_INNER / 2) + .4, (SQUARE_INNER / 2) + .4, 18.5 / 2]) rotate([0, -15, 45]) cube([2.5, SQUARE_INNER, SQUARE_INNER], center = true);
translate([(SQUARE_INNER / 2) + .4, (SQUARE_INNER / 2) + .4, height / 2]) rotate([0, -15, 45]) cube([2.5, SQUARE_INNER, SQUARE_INNER], center = true);
}
}
}
difference () {
union() {
translate([0, 0, (18.5 / 2) + (3.5 / 2)]) cylinder(r = SQUARE_INNER / 2, h = 3.5, center = true);
translate([0, 0, (18.5 / 2) + (7.5 / 2)]) sphere(SQUARE_INNER / 2);
if (top) {
difference () {
union() {
translate([0, 0, (height / 2) + (topHeight / 2)]) cylinder(r = SQUARE_INNER / 2, h = topHeight, center = true);
translate([0, 0, (height / 2) + (7.5 / 2)]) sphere(SQUARE_INNER / 2);
}
translate ([0, 0, (height / 2) + 7.5]) cube([10, 10, 2], center = true);
}
translate ([0, 0, (18.5 / 2) + 7.5]) cube([10, 10, 2], center = true);
}
if (base) {
difference () {
translate([0, 0, -(18.5/ 2) - (3 / 2) - 3]) cylinder(r = 16 /2, h = 3, center = true);
translate([0, 0, -(height / 2) - (3 / 2) - 3]) cylinder(r = 16 /2, h = 3, center = true);
//translate([0, 0, -14.3]) cube([4, 4, 2], center = true); //notch
difference() {
translate([0, 0, -14.3]) cylinder(r = 8 / 2, h = 2, center = true);

View File

@ -13,6 +13,8 @@ MOTOR_SHAFT_HOBBLE = 1;
MOTOR_MOUNT_X = 32.5;
MOTOR_MOUNT_Y = 17.5;
M4 = 4.1;
module hex (diag = 10, h = 1) {
cylinder(r = diag / 2, h = h, center = true, $fn = 6);
}
@ -96,7 +98,8 @@ module slip_coupling (MAGNET_H = 2.5) {
}
module daylight_spool_insert () {
translate([0, 0, 14]) reel_holder(true, false);
translate([0, 0, 15.9]) reel_holder(false, false);
translate([0, 0, 3.25]) cylinder(r = R(18), h = 1.5, center = true, $fn = 240);
union () {
cube([25 - .4, 10 - .4, 5], center = true);
cube([10 - .4, 25 - .4, 5], center = true);
@ -185,6 +188,57 @@ module minimal_mount () {
}
}
module m4_nut (H = 3.1) {
cylinder(r = R(8.1), h = 3.1, center = true, $fn = 6);
}
module daylight_spool_insert_reinforced () {
//internally Hex M4 40mm
difference () {
daylight_spool_insert();
cylinder(r = R(M4), h = 100, center = true, $fn = 60);
translate([0, 0, -1]) m4_nut();
}
}
module daylight_spool_insert_reinforced_nut () {
D = 30;
H = 6;
BUMPS = 60;
BUMP_D = 1.2;
difference() {
union () {
cylinder(r = R(D), h = H, center = true, $fn = 120);
for (i = [0 : BUMPS - 1]) {
rotate([0, 0, i * (360 / BUMPS)]) {
translate([R(D) - .1, 0, 0]) cylinder(r = R(BUMP_D), h = H, center = true, $fn = 20);
}
}
}
//m4
translate([0 , 0, (H / 2) - (3.1 / 2) + 0.01]) m4_nut();
cylinder(r = R(M4), h = 100, center = true, $fn = 60);
//under void
translate([0, 0, -4]) cylinder(r = R(15), h = H, center = true, $fn = 120);
//top void
translate([0, 0, 4]) difference () {
cylinder(r = R(25), h = H, center = true, $fn = 120);
cylinder(r = R(12), h = H, center = true, $fn = 120);
}
//bevels
translate([0, 0, (H / 2) - (1 / 2)]) difference () {
cylinder(r = R(D) + 5, h = 1, center = true, $fn = 240);
cylinder(r2 = R(D), r1 = R(D) + 1, h = 1, center = true, $fn = 240);
}
translate([0, 0, (H / 2) - (1 / 2)]) difference () {
cylinder(r = R(D) + 5, h = 1, center = true, $fn = 240);
cylinder(r2 = R(D), r1 = R(D) + 1, h = 1, center = true, $fn = 240);
}
}
}
module debug_assembled () {
translate([(46 / 2) - 14.5, 0, 0]) rotate([180, 0, 0]) geared_motor();
color("green") translate([0, 0, 11]) mount_plate();
@ -196,7 +250,7 @@ module debug_assembled () {
color("red") translate([0, 0, 34]) daylight_spool_insert();
}
PART = "mount_plate";
PART = "daylight_spool_insert_reinforced_nut";
if (PART == "slip_coupling") {
slip_coupling();
@ -209,6 +263,10 @@ if (PART == "slip_coupling") {
daylight_spool_insert();
} else if (PART == "minimal_mount") {
minimal_mount();
} else if (PART == "daylight_spool_insert_reinforced") {
daylight_spool_insert_reinforced();
} else if (PART == "daylight_spool_insert_reinforced_nut") {
daylight_spool_insert_reinforced_nut();
} else if (PART == "debug") {
debug_assembled();
}