Gate work. Reduce size of shelf for sprocket

This commit is contained in:
Matt McWilliams 2024-11-02 11:56:45 -04:00
parent 679fa201c2
commit 5cfec78494
1 changed files with 42 additions and 44 deletions

View File

@ -21,8 +21,9 @@ Film16mmFull = 16;
Film16mmFullZ = -1.1;
Film16mmSuper = 13.25;
Film16mmSuperZ = ((16 / 2) - (Film16mmSuper / 2) - 1.1);
Film16mmSound = Film16mmSuper - Film16mmStandard;
Film16mmSoundZ = ((16 / 2) - (Film16mmSuper - Film16mmStandard) / 2) - 1.1;
Film16mmSound = 2.5; // 2.99 //Film16mmSuper - Film16mmStandard;
echo("Soundtrack", Film16mmSound);
Film16mmSoundZ = ((16 / 2) - Film16mmSound / 2) - 1.1;
Sprockets = 18;
SprocketedRollerBevel = true;
@ -102,7 +103,7 @@ LampWireX = 25;
LampWireY = 20;
LampGateX = 11;
LampGateZ = 1.1;
LampGateZ = 1;
IdleRollerPrintX = 55;
IdleRollerPrintY = 0;
@ -400,50 +401,29 @@ module sound_gate_bracket (pos = [0, 0, 0], rot = [0, 0, 0]) {
}
}
module rectangular_pyramid(width, depth, height) {
module gate_blank_void (pos = [0, 0, 0], rot = [0, 0, 0], bottom = [1, 1], top = [1, 1], h = 1) {
translate(pos) rotate(rot) {
difference () {
cube([width, depth, 0.01]);
translate([width/2, depth/2, 0]) {
cube([width, depth, height]);
if (top[0] > bottom[0] && top[1] > bottom[1]) {
cube([top[0], top[1], h], center = true);
} else {
cube([bottom[0], bottom[1], h], center = true);
}
}
// Add the pyramid faces
for (i = [0, 1]) {
translate([i * width, 0, 0]) {
translate([width/2, depth/2, 0]) {
linear_extrude(height = height, size = [width/2, 0, 0]) {
polygon([[0, 0], [width/2, 0], [width/2, depth], [0, depth]]);
translate([0, bottom[1] - 1, 0]) rotate([30, 0, 0]) cube([bottom[0] + 1, bottom[1], h * 5], center = true);
translate([0, -bottom[1] + 1, 0]) rotate([-30, 0, 0]) cube([bottom[0] + 1, bottom[1], h * 5], center = true);
}
}
}
translate([0, i * depth, 0]) {
translate([width/2, depth/2, 0]) {
linear_extrude(height = height, size = [0, depth/2, 0]) {
polygon([[0, 0], [width, 0], [width, depth/2], [0, depth/2]]);
}
}
}
}
}
module gate_blank () {
X = 15;
Z = 18;
SidesX = 2;
SidesY = 2;
RollerVoidY = -2;
SprocketShelfZ = 4.25;
SprocketShelfZ = 1.75;
SprocketShelfD = 44.75;
RollerShelfZ = 1;
RoundedBevelD = 55;
@ -455,10 +435,11 @@ module gate_blank () {
translate([0, (RoundedBevelD / 2) + RoundedBevelY, 0]) cylinder(r = R(RoundedBevelD), h = Z + 1, center = true, $fn = 260);
}
}
gate_blank_void([0, 2, LampGateZ - 1.1], [0, 90, -90], [16, 12], [16, 2], 5);
translate([0, (-42.39 / 2) + RollerVoidY, 0]) cylinder(r = R(42.39), h = 18 + 1, center = true, $fn = 240);
//sprocket shelf
translate([0, (-42.39 / 2) + RollerVoidY, (-Z / 2) + (SprocketShelfZ / 2) - 0.01]) cylinder(r = R(47.39), h = SprocketShelfZ, center = true, $fn = 240);
translate([0, (-42.39 / 2) + RollerVoidY, (-Z / 2) + 2.9]) cylinder(r = R(SprocketShelfD), h = SprocketShelfZ, center = true, $fn = 240);
//roller shelf
translate([0, (-42.39 / 2) + RollerVoidY, (Z / 2) - (RollerShelfZ / 2) + 0.01]) cylinder(r = R(45.39), h = RollerShelfZ, center = true, $fn = 240);
@ -466,9 +447,16 @@ module gate_blank () {
translate([(X / 2) + SidesX, SidesY, 0]) rotate([0, 0, 45]) cube([5, 5, Z + 1], center = true);
translate([(-X / 2) - SidesX, SidesY, 0]) rotate([0, 0, 45]) cube([5, 5, Z + 1], center = true);
}
//top
//translate([0, -5.9, 9]) cube([X-4.2, 3, 2], center = true);
}
module picture_gate_text (pos = [0, 1.5, 7.8], label = "gate" ){
translate(pos) {
linear_extrude(height = 5) {
text(label, size = 2.5, font = "Liberation Sans", halign = "center", valign = "center", $fn = 16);
}
}
}
//standard, super, full, sound
module picture_gate (pos = [0, 0, 0], rot = [0, 0, 0], Type = "full", Width = 2) {
X = LampGateX;
@ -480,12 +468,16 @@ module picture_gate (pos = [0, 0, 0], rot = [0, 0, 0], Type = "full", Width = 2)
translate([0, 0, LampGateZ]) {
if (Type == "standard") {
translate([0, -6, Film16mmStandardZ]) cube([Width, 20, Film16mmStandard], center = true);
picture_gate_text(label = "16mm");
} else if (Type == "full") {
translate([0, -6, Film16mmFullZ]) cube([Width, 20, Film16mmFull], center = true);
picture_gate_text(label = "full");
} else if (Type == "super16") {
translate([0, -6, Film16mmSuperZ]) cube([Width, 20, Film16mmSuper], center = true);
picture_gate_text(label = "super16");
} else if (Type == "sound") {
translate([0, -6, Film16mmSoundZ]) cube([Width, 20, Film16mmSound], center = true);
picture_gate_text(label = "sound");
}
}
}
@ -1311,21 +1303,20 @@ module debug () {
panel([0, -10, PanelOffsetZ]);
color("red") translate([0, -8.5, 10.2]) cube([200, 0.1, 16], center = true);
//color("red") translate([0, -8.5, 10.2]) cube([200, 0.1, 16], center = true);
if (!FrameOnly) {
translate([0, RollerY, 18]) rotate([180, 0, 0]) difference () {
//sprocketed_roller_upright();
//translate([50, 0, 0]) cube([100, 100, 100], center = true);
}
//translate([0, RollerY, 18]) rotate([180, 0, 0]) sprocketed_roller_upright_solid();
translate([0, -30, 4]) sprocketed_roller_invert_solid();
debug_lamp();
//centered_geared_motor([0, RollerY, MotorZ], [180, 0, 90]);
//lamp
//difference () {
//lamp_dual([0, LampY, 0 + 1]);
//lamp_single([0, 10, 0 + 1]);
lamp_LEDs([0, 19, 10]);
picture_gate([0, -3.1, 10.5], Type = "super16");
// translate([45, LampY, 0 + 2]) cube([100, 100, 100], center = true);
//}
//color("green") lamp_cover([0, LampY + 5, 21]);
@ -1441,6 +1432,12 @@ module debug () {
electronics_panel([0, -100, -3]);
}
module debug_lamp () {
translate([0, -30, 4]) rotate([0, 0, 10]) sprocketed_roller_invert_solid();
lamp_LEDs([0, 19, 10.5]);
picture_gate([0, -6.5, 10.5], Type = "sound");
}
PART = "lamp_LEDsx";
LIBRARY = true;
@ -1513,5 +1510,6 @@ if (PART == "panel") {
} else if(PART=="blank") {
//
} else {
debug();
//debug();
debug_lamp();
}