Servo notch puller progress
This commit is contained in:
parent
37d4f50ef4
commit
d2c7781d79
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"version": "1.8.33",
|
"version": "1.8.34",
|
||||||
"ext_port": 1111,
|
"ext_port": 1111,
|
||||||
"profiles": {
|
"profiles": {
|
||||||
"mcopy": {
|
"mcopy": {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "mcopy-app",
|
"name": "mcopy-app",
|
||||||
"version": "1.8.33",
|
"version": "1.8.34",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "mcopy-app",
|
"name": "mcopy-app",
|
||||||
"version": "1.8.33",
|
"version": "1.8.34",
|
||||||
"description": "GUI for the mcopy small gauge film optical printer platform",
|
"description": "GUI for the mcopy small gauge film optical printer platform",
|
||||||
"main": "main.js",
|
"main": "main.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"version": "1.8.33",
|
"version": "1.8.34",
|
||||||
"ext_port": 1111,
|
"ext_port": 1111,
|
||||||
"profiles": {
|
"profiles": {
|
||||||
"mcopy": {
|
"mcopy": {
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "mcopy",
|
"name": "mcopy",
|
||||||
"version": "1.8.33",
|
"version": "1.8.34",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "mcopy",
|
"name": "mcopy",
|
||||||
"version": "1.8.33",
|
"version": "1.8.34",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"arduino": "file:app/lib/arduino",
|
"arduino": "file:app/lib/arduino",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "mcopy",
|
"name": "mcopy",
|
||||||
"version": "1.8.33",
|
"version": "1.8.34",
|
||||||
"description": "Small gauge film optical printer platform",
|
"description": "Small gauge film optical printer platform",
|
||||||
"main": "build.js",
|
"main": "build.js",
|
||||||
"directories": {
|
"directories": {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"version": "1.8.33",
|
"version": "1.8.34",
|
||||||
"ext_port": 1111,
|
"ext_port": 1111,
|
||||||
"profiles": {
|
"profiles": {
|
||||||
"mcopy": {
|
"mcopy": {
|
||||||
|
|
|
@ -19,6 +19,7 @@ KeyVoidD2 = 14.2;
|
||||||
KeyWidth = 2.25;
|
KeyWidth = 2.25;
|
||||||
|
|
||||||
StepperMountZ = 20;
|
StepperMountZ = 20;
|
||||||
|
StepperMountInnerD = 30;
|
||||||
|
|
||||||
GateBoltX = (-PanelX / 2) + 54;
|
GateBoltX = (-PanelX / 2) + 54;
|
||||||
GateBoltY = 105 / 2;
|
GateBoltY = 105 / 2;
|
||||||
|
@ -32,6 +33,14 @@ LEDPin = 0.6;
|
||||||
LEDPinSpacing = 2.54;
|
LEDPinSpacing = 2.54;
|
||||||
LEDH = 8.6;
|
LEDH = 8.6;
|
||||||
|
|
||||||
|
ServoX = 55;
|
||||||
|
ServoY = 7;
|
||||||
|
ServoBoltD = 4.5;
|
||||||
|
ServoZ = 20;
|
||||||
|
ServoSpaceZ = 9.5;
|
||||||
|
ServoSpaceX = 48;
|
||||||
|
ServoVoidX = 40.5;
|
||||||
|
|
||||||
module bearing_void (pos = [0, 0, 0], width= 8) {
|
module bearing_void (pos = [0, 0, 0], width= 8) {
|
||||||
fuzz = 0.3;
|
fuzz = 0.3;
|
||||||
translate (pos) {
|
translate (pos) {
|
||||||
|
@ -99,6 +108,7 @@ module LED_void (pos = [0, 0, 0], rot = [0, 0, 0], flip = false) {
|
||||||
translate(pos) rotate(rot) {
|
translate(pos) rotate(rot) {
|
||||||
rotate([0, -90, 0]) {
|
rotate([0, -90, 0]) {
|
||||||
cylinder(r = R(LightVoidD), h = 80, center = true, $fn = 40);
|
cylinder(r = R(LightVoidD), h = 80, center = true, $fn = 40);
|
||||||
|
/*
|
||||||
if (flip) {
|
if (flip) {
|
||||||
translate([0, 0, -EmitterZ]) cylinder(r = R(LEDVoidD), h = 80, center = true, $fn = 40);
|
translate([0, 0, -EmitterZ]) cylinder(r = R(LEDVoidD), h = 80, center = true, $fn = 40);
|
||||||
translate([0, 0, ReceiverZ]) cylinder(r = R(LEDVoidD), h = 80, center = true, $fn = 40);
|
translate([0, 0, ReceiverZ]) cylinder(r = R(LEDVoidD), h = 80, center = true, $fn = 40);
|
||||||
|
@ -106,6 +116,7 @@ module LED_void (pos = [0, 0, 0], rot = [0, 0, 0], flip = false) {
|
||||||
translate([0, 0, EmitterZ]) cylinder(r = R(LEDVoidD), h = 80, center = true, $fn = 40);
|
translate([0, 0, EmitterZ]) cylinder(r = R(LEDVoidD), h = 80, center = true, $fn = 40);
|
||||||
translate([0, 0, -ReceiverZ]) cylinder(r = R(LEDVoidD), h = 80, center = true, $fn = 40);
|
translate([0, 0, -ReceiverZ]) cylinder(r = R(LEDVoidD), h = 80, center = true, $fn = 40);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -136,18 +147,20 @@ module LED (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module LED_housing (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
module LED_housing (pos = [0, 0, 0], rot = [0, 0, 0], OffsetZ = 0, Void = true) {
|
||||||
$fn = 90;
|
$fn = 90;
|
||||||
D = LEDD + 0.2;
|
D = LEDD + 0.2;
|
||||||
H = LEDH;
|
H = LEDH;
|
||||||
Opening = 3;
|
Opening = 3;
|
||||||
translate(pos) rotate(rot) {
|
translate(pos) rotate(rot) {
|
||||||
|
translate([0, 0, OffsetZ]) {
|
||||||
difference () {
|
difference () {
|
||||||
union() {
|
union() {
|
||||||
cube([D + 3, D + 3, 10], center = true);
|
cube([D + 3, D + 3, 10], center = true);
|
||||||
translate([0, 0, -4]) cube([D + 3, D + 3, 10], center = true);
|
translate([0, 0, -4]) cube([D + 3, D + 3, 10], center = true);
|
||||||
translate([0, 5, -6]) cube([D + 3, 15, 6], center = true);
|
translate([0, 5, -6]) cube([D + 3, 15, 6], center = true);
|
||||||
}
|
}
|
||||||
|
if (Void) {
|
||||||
translate([0, 0, -(10 / 2) + (H / 2) - 1.301]) union () {
|
translate([0, 0, -(10 / 2) + (H / 2) - 1.301]) union () {
|
||||||
cylinder(r = (D / 2), h = H - (D / 2), center = true);
|
cylinder(r = (D / 2), h = H - (D / 2), center = true);
|
||||||
translate([0, 0, (H / 2) - (D / 4)]) sphere(r = D / 2);
|
translate([0, 0, (H / 2) - (D / 4)]) sphere(r = D / 2);
|
||||||
|
@ -160,6 +173,8 @@ module LED_housing (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module nub_void (pos = [0, 0, 0]) {
|
module nub_void (pos = [0, 0, 0]) {
|
||||||
|
@ -185,17 +200,24 @@ module stepper_mount_block (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||||
BoltY = NEMA17BoltSpacing / 2;
|
BoltY = NEMA17BoltSpacing / 2;
|
||||||
BoltCapZ = 11;
|
BoltCapZ = 11;
|
||||||
H = 30;
|
H = 30;
|
||||||
InnerD = 30;
|
InnerD = StepperMountInnerD;
|
||||||
|
|
||||||
translate(pos) rotate(rot) {
|
translate(pos) rotate(rot) {
|
||||||
difference () {
|
difference () {
|
||||||
union () {
|
union () {
|
||||||
stepper_mount_block_positive([0, 0, -5], H);
|
stepper_mount_block_positive([0, 0, -5], H);
|
||||||
LED_prop([0, -19, -4.5 + 7.5], [0, 0, 45], flip = false);
|
//top
|
||||||
|
//LED_prop([0, -19, -4.5 + 7.5], [0, 0, 45], flip = false);
|
||||||
|
//bottom
|
||||||
//LED_prop([0, -19, -4.5 + 11.5], [0, 0, 45], H = 9, flip = false);
|
//LED_prop([0, -19, -4.5 + 11.5], [0, 0, 45], H = 9, flip = false);
|
||||||
}
|
}
|
||||||
|
|
||||||
translate([0, 0, -5])cylinder(r = R(InnerD), h = H + 1, center = true, $fn = 120);
|
translate([0, 0, -5]) cylinder(r = R(InnerD), h = H + 1, center = true, $fn = 120);
|
||||||
|
|
||||||
|
LED_housing([0, -17.25, -4.5], [90, -90, 134], Void = false);
|
||||||
|
LED_housing([0, -17.25, -4.5], [-90, 90, 134], OffsetZ = -24.25, Void = false);
|
||||||
|
|
||||||
|
|
||||||
bolt_void([BoltX, BoltY, -5], H);
|
bolt_void([BoltX, BoltY, -5], H);
|
||||||
bolt_void([-BoltX, BoltY, -5], H);
|
bolt_void([-BoltX, BoltY, -5], H);
|
||||||
bolt_void([BoltX, -BoltY, -5], H);
|
bolt_void([BoltX, -BoltY, -5], H);
|
||||||
|
@ -205,10 +227,13 @@ module stepper_mount_block (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||||
bolt_and_cap_void([-BoltX, BoltY, BoltCapZ], cap = H, bolt = H);
|
bolt_and_cap_void([-BoltX, BoltY, BoltCapZ], cap = H, bolt = H);
|
||||||
bolt_and_cap_void([BoltX, -BoltY, BoltCapZ], cap = H, bolt = H);
|
bolt_and_cap_void([BoltX, -BoltY, BoltCapZ], cap = H, bolt = H);
|
||||||
bolt_and_cap_void([-BoltX, -BoltY, BoltCapZ], cap = H, bolt =H);
|
bolt_and_cap_void([-BoltX, -BoltY, BoltCapZ], cap = H, bolt =H);
|
||||||
//
|
//top
|
||||||
LED_void([0, -17.25, -4.5], [0, 0, 45]);
|
LED_void([0, -17.25, -4.5], [0, 0, 45]);
|
||||||
|
//bottom
|
||||||
//LED_void([0, -17.25, 2.5], [0, 0, 45], true);
|
//LED_void([0, -17.25, 2.5], [0, 0, 45], true);
|
||||||
}
|
}
|
||||||
|
color("blue") LED_housing([0, -17.25, -4.5], [90, -90, 134], Void = true);
|
||||||
|
color("blue") LED_housing([0, -17.25, -4.5], [-90, 90, 134], OffsetZ = -24.25, Void = true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -380,12 +405,55 @@ module orbital_mount (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||||
for (i = [0 : Notches - 1]) {
|
for (i = [0 : Notches - 1]) {
|
||||||
rotate([0, 0, i * (360 / Notches)]) translate([OuterD / 2, 0, 0]) rotate([0, 0, 45]) cube([Notch, Notch, BottomZ + TopZ + 1], center = true);
|
rotate([0, 0, i * (360 / Notches)]) translate([OuterD / 2, 0, 0]) rotate([0, 0, 45]) cube([Notch, Notch, BottomZ + TopZ + 1], center = true);
|
||||||
}
|
}
|
||||||
|
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([BoltsX, -BoltsY, -4], [180, 0, 0]);
|
bolt_and_cap_void([BoltsX, -BoltsY, -4], [180, 0, 0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module servo_mount_bolt_void (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||||
|
translate (pos) rotate (rot) {
|
||||||
|
cylinder(r = ServoBoltD / 2, h = ServoY + 1, center = true, $fn = 60);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module servo_mount_old (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||||
|
translate (pos) rotate (rot) {
|
||||||
|
difference () {
|
||||||
|
translate([1.5, 0, 0]) rotate([90, 0, 0]) rounded_cube([ServoX + 3, ServoZ+20, ServoY ], d = 4, 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_bolt_void ([ServoSpaceX / 2, 0, ServoSpaceZ / 2], [90, 90, 0]);
|
||||||
|
servo_mount_bolt_void([-ServoSpaceX / 2, 0, ServoSpaceZ / 2], [90, 90, 0]);
|
||||||
|
servo_mount_bolt_void ([ServoSpaceX / 2, 0, -ServoSpaceZ / 2], [90, 90, 0]);
|
||||||
|
servo_mount_bolt_void ([-ServoSpaceX / 2, 0, -ServoSpaceZ / 2], [90, 90, 0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//debug
|
||||||
|
//translate([(55 / 2)-17.5, 0, 0]) sphere(r = 6 / 2, $fn = 60);
|
||||||
|
}
|
||||||
|
|
||||||
|
module servo_mount (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||||
|
translate (pos) rotate (rot) {
|
||||||
|
//difference () {
|
||||||
|
//translate([1.5, 0, 0]) rotate([90, 0, 0]) rounded_cube([ServoX + 3, ServoZ+20, ServoY ], d = 4, center = true, $fn = 40);
|
||||||
|
cube([ServoVoidX, ServoY + 1, ServoZ + 1], center = true);
|
||||||
|
translate([0, ServoY - 1, 0]) cube([ServoX + 1, ServoY, 1], center = true);
|
||||||
|
|
||||||
|
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);
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
//debug
|
||||||
|
//translate([(55 / 2)-17.5, 0, 0]) sphere(r = 6 / 2, $fn = 60);
|
||||||
|
}
|
||||||
|
|
||||||
module projector () {
|
module projector () {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -410,10 +478,11 @@ module debug () {
|
||||||
}
|
}
|
||||||
color("red") translate([(-PanelX / 2) + 10, 0, (-PanelZ / 2) -10]) rotate([90, 0, 0]) 2020_tslot(PanelY);
|
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]);
|
orbital_mount([(-PanelX / 2) - 4.5, 0, 40], [0, 90, 0]);
|
||||||
|
color("green") servo_mount([40, 0, -30], [90, 0, 0]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PART = "panel";
|
PART = "panelx";
|
||||||
|
|
||||||
if (PART == "gate_key") {
|
if (PART == "gate_key") {
|
||||||
gate_key(KeyRot = 90);
|
gate_key(KeyRot = 90);
|
||||||
|
|
Loading…
Reference in New Issue