All projector work from today

This commit is contained in:
Matt McWilliams 2023-10-05 17:28:01 -04:00
parent 6f68081dc5
commit e6b9628746
8 changed files with 95 additions and 34 deletions

View File

@ -1,5 +1,5 @@
{
"version": "1.8.41",
"version": "1.8.42",
"ext_port": 1111,
"profiles": {
"mcopy": {

2
app/package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "mcopy-app",
"version": "1.8.41",
"version": "1.8.42",
"lockfileVersion": 2,
"requires": true,
"packages": {

View File

@ -1,6 +1,6 @@
{
"name": "mcopy-app",
"version": "1.8.41",
"version": "1.8.42",
"description": "GUI for the mcopy small gauge film optical printer platform",
"main": "main.js",
"scripts": {

View File

@ -1,5 +1,5 @@
{
"version": "1.8.41",
"version": "1.8.42",
"ext_port": 1111,
"profiles": {
"mcopy": {

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "mcopy",
"version": "1.8.41",
"version": "1.8.42",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "mcopy",
"version": "1.8.41",
"version": "1.8.42",
"license": "MIT",
"dependencies": {
"arduino": "file:app/lib/arduino",

View File

@ -1,6 +1,6 @@
{
"name": "mcopy",
"version": "1.8.41",
"version": "1.8.42",
"description": "Small gauge film optical printer platform",
"main": "build.js",
"directories": {

View File

@ -1,5 +1,5 @@
{
"version": "1.8.41",
"version": "1.8.42",
"ext_port": 1111,
"profiles": {
"mcopy": {

View File

@ -17,7 +17,7 @@ FrameBoltD = 9;
KeyDistance = 57.4 - .2;
KeyVoidD = BearingInnerDiameter + 0.3;
KeyVoidD2 = 14.2;
KeyWidth = 2.25;
KeyWidth = 2.5; //2.25;
StepperMountZ = 20;
StepperMountInnerD = 30;
@ -36,7 +36,7 @@ LEDH = 8.6;
ServoX = 55;
ServoY = 7;
ServoBoltD = 4.5;
ServoBoltD = 3.5;
ServoZ = 20;
ServoSpaceZ = 9.5;
ServoSpaceX = 48;
@ -76,10 +76,10 @@ module cap_void (pos = [0, 0, 0], cap = 20) {
}
}
module bolt_and_cap_void (pos = [0, 0, 0], rot = [0, 0, 0], cap = 10, bolt = 10) {
module bolt_and_cap_void (pos = [0, 0, 0], rot = [0, 0, 0], cap = 10, bolt = 10, pad = 0) {
translate(pos) rotate(rot) {
cylinder(r = R(6.25), h = cap, center = true, $fn = 30);
translate([0, 0, -(cap / 2) - (bolt / 2) + 0.1]) cylinder(r = R(3.5), h = bolt, center = true, $fn = 30);
cylinder(r = R(6.25) + pad, h = cap, center = true, $fn = 30);
translate([0, 0, -(cap / 2) - (bolt / 2) + 0.1]) cylinder(r = R(3.5) + pad, h = bolt, center = true, $fn = 30);
}
}
@ -365,6 +365,8 @@ module gate_key (pos = [0, 0, 0], rot = [0, 0, 0], KeyRot = 0) {
}
module panel (pos = [0, 0, 0], rot = [0, 0, 0], Mounts = "2020") {
RegistrationBoltsX = -52;
RegistrationBoltsY = 15;
MountBoltsX = (-PanelX / 2) + 10;
translate(pos) rotate(rot) {
difference () {
@ -381,7 +383,13 @@ module panel (pos = [0, 0, 0], rot = [0, 0, 0], Mounts = "2020") {
bolt_and_cap_void([MountBoltsX, 0, 4.5]);
bolt_and_cap_void([MountBoltsX, (PanelY / 2) - 10, 4.5]);
bolt_and_cap_void([MountBoltsX, (-PanelY / 2) + 10, 4.5]);
bolt_and_cap_void([RegistrationBoltsX, RegistrationBoltsY, -1.15], [0, -90, 0], pad = -0.3);
bolt_and_cap_void([RegistrationBoltsX, -RegistrationBoltsY, -1.15], [0, -90, 0], pad = -0.3);
}
//registration line
translate([-50, 0, 3]) rotate([45, 0, 0]) cube([20, 1, 1], center = true);
//key + bearing voids
bearing_void([0, KeyDistance / 2, (PanelZ / 2) - (8 / 2) - 2], 8.01);
bearing_void([0, -KeyDistance / 2, (PanelZ / 2) - (8 / 2) - 2], 8.01);
@ -407,7 +415,7 @@ module panel (pos = [0, 0, 0], rot = [0, 0, 0], Mounts = "2020") {
translate([GateBoltX, GateBoltY, -20]) hex(9.2, 50);
translate([GateBoltX, -GateBoltY, -20]) hex(9.2, 50);
}
color("red") cube([30, 8.8, 10], center = true);
//color("red") cube([30, 8.8, 10], center = true);
}
}
@ -419,13 +427,20 @@ module orbital_mount (pos = [0, 0, 0], rot = [0, 0, 0]) {
TopZ = 4;
Notch = 0.5;
Notches = 60;
BoltsX = 53;
BoltsY = 25;
ExtrusionBoltsX = 53;
ExtrusionBoltsY = 25;
RegistrationBoltsX = 41;
RegistrationBoltsY = 15;
$fn = 300;
translate(pos) rotate(rot) {
difference () {
cylinder(r = R(OuterD), h = BottomZ + TopZ, center = true);
difference () {
cylinder(r = R(VoidD), h = BottomZ + TopZ + 1, center = true);
translate([105, 0, 0]) cube([OuterD, OuterD, BottomZ + TopZ + 1 + 1], center = true);
}
translate([0, 0, BottomZ - (TopZ / 2) - 0.49]) difference () {
cylinder(r = R(OuterD) + 1, h = TopZ, center = true);
cylinder(r = R(InnerD), h = TopZ + 1, center = true);
@ -436,9 +451,14 @@ module orbital_mount (pos = [0, 0, 0], rot = [0, 0, 0]) {
for (i = [0 : 3]) {
rotate([0, 0, i * (360 / 4)]) translate([OuterD / 2, 0, 0]) rotate([0, 0, 45]) cube([1, 1, BottomZ + TopZ + 1], center = true);
}
bolt_and_cap_void([BoltsX, BoltsY, -4], [180, 0, 0]);
bolt_and_cap_void([BoltsX, -BoltsY, -4], [180, 0, 0]);
bolt_and_cap_void([ExtrusionBoltsX, ExtrusionBoltsY, -4], [180, 0, 0]);
bolt_and_cap_void([ExtrusionBoltsX, -ExtrusionBoltsY, -4], [180, 0, 0]);
bolt_and_cap_void([RegistrationBoltsX, RegistrationBoltsY, -4], [180, 0, 0]);
bolt_and_cap_void([RegistrationBoltsX, -RegistrationBoltsY, -4], [180, 0, 0]);
//registration line
translate([37, 0, 0]) rotate([0, 0, 45]) cube([1, 1, 20], center = true);
}
}
}
@ -448,6 +468,24 @@ module servo_mount_bolt_void (pos = [0, 0, 0], rot = [0, 0, 0]) {
}
}
module servo_mount_bolts_void () {
X = ServoSpaceX / 2;
Z = ServoSpaceZ / 2;
translate([ X, 0, Z]) rotate([90, 90, 0]) cylinder(r = R(ServoBoltD), h = ServoY + 1, center = true, $fn = 60);
translate([-X, 0, Z]) rotate([90, 90, 0]) cylinder(r = R(ServoBoltD), h = ServoY + 1, center = true, $fn = 60);
translate([ X, 0, -Z]) rotate([90, 90, 0]) cylinder(r = R(ServoBoltD), h = ServoY + 1, center = true, $fn = 60);
translate([-X, 0, -Z]) rotate([90, 90, 0]) cylinder(r = R(ServoBoltD), h = ServoY + 1, center = true, $fn = 60);
translate([-X, -7, -Z]) rotate([90, 90, 0]) cylinder(r = R(6), h = 10, center = true, $fn = 60);
translate([-X, -7, Z]) rotate([90, 90, 0]) cylinder(r = R(6), h = 10, center = true, $fn = 60);
}
module servo_mount_void () {
cube([ServoVoidX, ServoY, ServoZ + 1], center = true);
translate([0, ServoY - 1, 0]) cube([ServoX + 1, ServoY, 1], center = true);
servo_mount_bolts_void();
}
//MG995
module servo_mount (pos = [0, 0, 0], rot = [0, 0, 0]) {
translate (pos) rotate (rot) {
@ -459,27 +497,48 @@ module servo_mount (pos = [0, 0, 0], rot = [0, 0, 0]) {
translate([-19, 0, 0]) cube([17, ServoY + 1, 20 ], center = true, $fn = 40);
}
}
cube([ServoVoidX, ServoY + 1, ServoZ + 1], center = true);
translate([0, ServoY - 1, 0]) cube([ServoX + 1, ServoY, 1], center = true);
servo_mount_void();
translate([ServoSpaceX / 2, 0, ServoSpaceZ / 2]) rotate([90, 90, 0]) cylinder(r = R(ServoBoltD), h = ServoY + 1, center = true, $fn = 60);
translate([-ServoSpaceX / 2, 0, ServoSpaceZ / 2]) rotate([90, 90, 0]) cylinder(r = R(ServoBoltD), h = ServoY + 1, center = true, $fn = 60);
translate([ServoSpaceX / 2, 0, -ServoSpaceZ / 2]) rotate([90, 90, 0]) cylinder(r = R(ServoBoltD), h = ServoY + 1, center = true, $fn = 60);
translate([-ServoSpaceX / 2, 0, -ServoSpaceZ / 2]) rotate([90, 90, 0]) cylinder(r = R(ServoBoltD), h = ServoY + 1, center = true, $fn = 60);
//void for motor
//angled void for motor
translate([0, 7.5, -15]) rotate([45, 0, 0]) cube([ServoX+20, 10, 10], center = true);
//cut off end
translate([0, 0, 15.4]) cube([ServoX+30, 10, 10], center = true);
//cut off top
translate([30, 0, 0]) cube([20, 10, 40], center = true);
bolt_and_cap_void([-35, 0, 20], [0, 0, 0], bolt = 15);
translate([-35, 0, 6]) m3_nut(2.5);
translate([-35, 5, 6]) cube([6.75, 10, 2.5], center = true);
}
}
//debug
//translate([(55 / 2)-17.5, 0, 0]) sphere(r = 6 / 2, $fn = 60);
}
module servo_mount_cover (pos = [0, 0, 0], rot = [0, 0, 0]) {
translate (pos) rotate (rot) {
difference () {
union () {
translate([1.5, 0, -1.5]) rotate([90, 0, 0]) rounded_cube([ServoX + 3, ServoZ + 10 + 3, ServoY ], d = 4, center = true, $fn = 40);
difference () {
translate([-34, 0, 0]) cube([17, ServoY, ServoZ + 10 ], center = true, $fn = 40);
translate([-19, 0, 0]) cube([17, ServoY + 1, 20 ], center = true, $fn = 40);
}
difference () {
translate([1.5, -3, -1.5]) rotate([90, 0, 0]) rounded_cube([ServoX + 3, ServoZ + 10 + 3, ServoY ], d = 4, center = true, $fn = 40);
translate([-13.25, -3, 0]) cube([ServoX + 3 + 1, ServoY + 1, ServoZ + 10 + 7], center = true);
translate([0, -3, 5]) cube([ServoX + 3 + 5, ServoY + 1, ServoZ + 10], center = true);
}
}
servo_mount_void();
servo_mount();
translate([-22.25 - 4, 0, -15.4]) cube([ServoX+30, 10, 10], center = true);
bolt_and_cap_void([-35, 0, 20], [0, 0, 0]);
translate([-35, 0, 0]) cube([20, 20, 20], center = true);
}
}
}
module projector () {
}
@ -490,11 +549,11 @@ module debug () {
//NEMA17([0, -KeyDistance / 2, -50]);
//gate_key([0, KeyDistance / 2, -14], [0, 0, -90 + 45], KeyRot=90);
//gate_key([0, -KeyDistance / 2, -14], [0, 0, 180 + 45 ]);
translate([0, -KeyDistance / 2, 0]) {
/*translate([0, -KeyDistance / 2, 0]) {
color("blue") LED_housing([0, -17.25, -4.5 - 13], [90, -90, 134], Void = true);
color("green") LED_housing([0, -17.25, -4.5 - 13], [-90, 90, 134], OffsetZ = -24.25, Void = true);
LED_enclosure([0, 0, -15]);
}
}*/
/*translate([0, KeyDistance / 2, 0]) {
color("blue") LED_housing([0, -17.25, -4.5 - 13], [90, -90, 134], Void = true);
color("green") LED_housing([0, -17.25, -4.5 - 13], [-90, 90, 134], OffsetZ = -24.25, Void = true);
@ -507,7 +566,7 @@ module debug () {
//one mount
//translate([0, -50, 0]) cube([60, 100, 150], center = true);
//
//translate([35, 5, 0]) cube([60, 25, 150], center = true);
translate([35, 5, 0]) cube([60, 25, 150], center = true);
}
}
@ -516,15 +575,17 @@ module debug () {
}
//color("red") translate([(-PanelX / 2) + 10, 0, (-PanelZ / 2) -10]) rotate([90, 0, 0]) 2020_tslot(PanelY);
//orbital_mount([(-PanelX / 2) - 4.5, 0, 40], [0, 90, 0]);
color("red") servo_mount_cover([33, 8+10, -45], [0, 90, 0]);
}
PART = "led_enclosure";
PART = "panel";
if (PART == "gate_key") {
gate_key(KeyRot = 90);
gate_key(KeyRot = 0);
} else if (PART == "panel") {
rotate([180, 0, 0]) panel();
} else if (PART == "servo_mount_cover"){
servo_mount_cover([0, 0, 0], [0, 90, 0]);
} else if (PART == "led_housing"){
LED_housing();
} else if (PART == "led_enclosure"){