From 3c5e31a961290e20feb90bfac9b5b986638bc372 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sun, 10 Dec 2023 22:48:12 -0500 Subject: [PATCH] Work on CPC Connector plug --- app/data/cfg.json | 2 +- app/package-lock.json | 2 +- app/package.json | 2 +- data/cfg.json | 2 +- package-lock.json | 4 +- package.json | 2 +- processing/mcopy/cfg.json | 2 +- scad/cpc_connectors.scad | 101 ++++++++++++++++++++++++++++---------- 8 files changed, 82 insertions(+), 35 deletions(-) diff --git a/app/data/cfg.json b/app/data/cfg.json index 0ffe6fd..25345c5 100644 --- a/app/data/cfg.json +++ b/app/data/cfg.json @@ -1,5 +1,5 @@ { - "version": "1.8.81", + "version": "1.8.82", "ext_port": 1111, "profiles": { "mcopy": { diff --git a/app/package-lock.json b/app/package-lock.json index 4212838..c38a0d7 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -1,6 +1,6 @@ { "name": "mcopy-app", - "version": "1.8.81", + "version": "1.8.82", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/app/package.json b/app/package.json index 034d0b0..79bdee8 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "mcopy-app", - "version": "1.8.81", + "version": "1.8.82", "description": "GUI for the mcopy small gauge film optical printer platform", "main": "main.js", "scripts": { diff --git a/data/cfg.json b/data/cfg.json index 6807c2d..3febfdf 100644 --- a/data/cfg.json +++ b/data/cfg.json @@ -1,5 +1,5 @@ { - "version": "1.8.81", + "version": "1.8.82", "ext_port": 1111, "profiles": { "mcopy": { diff --git a/package-lock.json b/package-lock.json index a6cee0f..2d15a06 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mcopy", - "version": "1.8.81", + "version": "1.8.82", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "mcopy", - "version": "1.8.81", + "version": "1.8.82", "license": "MIT", "dependencies": { "arduino": "file:app/lib/arduino", diff --git a/package.json b/package.json index e91b6b0..60fd26a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mcopy", - "version": "1.8.81", + "version": "1.8.82", "description": "Small gauge film optical printer platform", "main": "build.js", "directories": { diff --git a/processing/mcopy/cfg.json b/processing/mcopy/cfg.json index 0ffe6fd..25345c5 100644 --- a/processing/mcopy/cfg.json +++ b/processing/mcopy/cfg.json @@ -1,5 +1,5 @@ { - "version": "1.8.81", + "version": "1.8.82", "ext_port": 1111, "profiles": { "mcopy": { diff --git a/scad/cpc_connectors.scad b/scad/cpc_connectors.scad index e36975d..1648c2a 100644 --- a/scad/cpc_connectors.scad +++ b/scad/cpc_connectors.scad @@ -11,7 +11,9 @@ FN = 120; PlugD = 16.15 - 0.6; PlugH = 11.65; PlugGuideD = 17 - 0.6; -PlugPinD = 3.1; +PlugPinD1 = 1.9; +PlugPinD2 = 2.9; +PlugPinD3 = 3.9; PlugGuideRetraction = 1.25; @@ -19,31 +21,44 @@ PinSpacing = 3.85; SocketD = 16.15; SocketGuideD = 17.5; - SocketOuterD = 20; SocketH = 10.5; +SocketPinD = 3.1; CollarD = 22; GuideAngles = [0, 100, 140, 215, 260]; GuideWidths = [3.2, 1.5, 1.5, 1.5, 1.5]; +DEBUG = false; + function arc_angle (D, W) = W / ((PI/180) * (D/2)); module guide (Diameter, Height, Angle, Width) { A = arc_angle(Diameter, Width); echo(A); - rotate([0, 0, Angle]) difference () { - cylinder(r = R(Diameter), h = Height, center = true, $fn = FN); - rotate([0, 0, -A/2]) translate([Diameter / 2, 0, 0]) cube([Diameter, Diameter * 2, Height + 1], center = true); - rotate([0, 0, A/2]) translate([-Diameter / 2, 0, 0]) cube([Diameter, Diameter * 2, Height + 1], center = true); + if (!DEBUG) { + rotate([0, 0, Angle]) difference () { + cylinder(r = R(Diameter), h = Height, center = true, $fn = FN); + rotate([0, 0, -A/2]) translate([Diameter / 2, 0, 0]) cube([Diameter, Diameter * 2, Height + 1], center = true); + rotate([0, 0, A/2]) translate([-Diameter / 2, 0, 0]) cube([Diameter, Diameter * 2, Height + 1], center = true); + } } } // -module plug_pin (X, Y, H) { +module plug_pin (X = 0, Y = 0, H = 10) { + translate([X, Y, 0]) rotate([180, 0, 0]) { + cylinder(r = R(PlugPinD3), h = H, center = true, $fn = 40); + translate([0, 0, -(H / 2) - (3.1 / 2)]) cylinder(r = R(PlugPinD2), h = 3.11, center = true, $fn = 40); + translate([0, 0, -(H / 2) - 3.1 - (0.7 / 2)]) cylinder(r1 = R(PlugPinD1), r2 = R(PlugPinD2), h = 0.72, center = true, $fn = 40); + translate([0, 0, -(H / 2) - 3.1 - 0.7 - (8 / 2)]) cylinder(r = R(PlugPinD1), h = 8.01, center = true, $fn = 40); + } +} + +module socket_pin (X = 0, Y = 0, H = 10) { translate([X, Y, 0]) { - cylinder(r = R(PlugPinD), h = H, center = true, $fn = 40); + cylinder(r = R(SocketPinD), h = H, center = true, $fn = 40); } } @@ -66,33 +81,60 @@ module plug_pin_voids (PinH) { plug_pin(PinSpacing, -PinSpacing, PinH); //7 } +module socket_pin_voids (PinH) { + socket_pin(0, 0, PinH); //5 + socket_pin(PinSpacing, 0, PinH); //4 + socket_pin(-PinSpacing, 0, PinH); //6 + socket_pin(0, PinSpacing, PinH); //2 + socket_pin(0, -PinSpacing, PinH); //8 + socket_pin(PinSpacing, PinSpacing, PinH); //1 + socket_pin(-PinSpacing, PinSpacing, PinH); //3 + socket_pin(-PinSpacing, -PinSpacing, PinH); //9 + socket_pin(PinSpacing, -PinSpacing, PinH); //7 +} + module cpc_9pin_plug () { $fn = FN; PinH = PlugH + 1; difference () { union () { cylinder(r = R(PlugD), h = PlugH, center = true); - translate([0, 0, -(PlugH/2)+(2/2)]) cylinder(r = R(PlugD + 2), h = 2, center = true); + //translate([0, 0, -(PlugH/2)+(2/2)]) cylinder(r = R(PlugD + 2), h = 2, center = true); translate([0, 0, -PlugGuideRetraction/2]) { for (i = [0 : len(GuideAngles) - 1]) { guide(PlugGuideD, PlugH - PlugGuideRetraction, GuideAngles[i], GuideWidths[i]); } } } - plug_pin_voids(PinH); + translate([0, 0, -7]) cylinder(r = R(PlugD) - 0.5, h = PlugH, center = true); + translate([0, 0, -5]) plug_pin_voids(PinH); } +} +module cpc_9pin_plug_insert () { + $fn = FN; + BaseH = 3; + translate([0, 0, -5.75]) difference () { + union () { + cylinder(r = R(PlugD - 1.2), h = 6, center = true); + translate([0, 0, -1]) cylinder(r = R(PlugD + 2.5), h = 2, center = true); + color("green") translate([0, 0, -7]) cylinder(r = R(PlugD + 1.2), h = 10, center = true); + } + cylinder(r = R(PlugD - 2.2), h = 30, center = true); + } } module cpc_9pin_plug_collar () { $fn = FN; - H = 25; + H = 10; difference () { union () { - cylinder(r = R(CollarD), h = H, center = true); + cylinder(r = R(23), h = H, center = true); } - cylinder(r = R(SocketD), h = H, center = true); + cylinder(r = R(17), h = H + 1, center = true); + cylinder(r = R(21), h = H - 4, center = true); + translate([0, 0, H / 2]) cylinder(r = R(19), h = H, center = true); } } @@ -103,16 +145,18 @@ module cpc_9pin_plug_back () { module flange_guide_void (pos = [0, 0, 0], Z = 8) { OD = 24; ID = 19; - translate(pos) { - intersection () { - difference () { - cylinder(r = R(OD), h = Z, center = true); - cylinder(r = R(ID), h = Z + 1, center = true); - } - union () { - translate([0, 0, 1]) cube([5, 25, Z], center = true); - translate([0, 0, -3]) rotate([7, 0, 0]) translate([(OD/2)-(5/2), OD/4, 0]) cube([OD, OD/2, 3], center = true); - translate([0, 0, -3]) rotate([-7, 0, 0]) translate([-(OD/2)+(5/2), -OD/4, 0]) cube([OD, OD/2, 3], center = true); + if (!DEBUG) { + translate(pos) { + intersection () { + difference () { + cylinder(r = R(OD), h = Z, center = true); + cylinder(r = R(ID), h = Z + 1, center = true); + } + union () { + translate([0, 0, 1]) cube([5, 25, Z], center = true); + translate([0, 0, -3]) rotate([7, 0, 0]) translate([(OD/2)-(5/2), OD/4, 0]) cube([OD, OD/2, 3], center = true); + translate([0, 0, -3]) rotate([-7, 0, 0]) translate([-(OD/2)+(5/2), -OD/4, 0]) cube([OD, OD/2, 3], center = true); + } } } } @@ -141,7 +185,7 @@ module cpc_9pin_socket () { } } - plug_pin_voids(PinH); + socket_pin_voids(PinH); translate([0, 0, 3]) rotate([0,0, 37]) flange_guide_void([0, 0, (PlugH / 2) - (8 / 2) + 0.01], 8); translate([0, 0, -((SocketH + BaseH) / 2) + (BaseH / 2)]) { m3_bolt_void([BoltVoid/2, BoltVoid/2, 0], BaseH + 1); @@ -150,14 +194,15 @@ module cpc_9pin_socket () { m3_bolt_void([-BoltVoid/2, -BoltVoid/2, 0], BaseH + 1); } } - } module debug () { + //cpc_9pin_plug(); difference () { union () { - cpc_9pin_plug(); - translate([0, 0, 13]) cpc_9pin_socket(); + color("green") translate([0, 0, 2.1]) rotate([180, 0, 0]) cpc_9pin_socket(); + cpc_9pin_plug_insert(); + translate([0, 0, -5]) cpc_9pin_plug_collar(); } translate([25, 0, 0]) cube([50, 50, 100], center = true); } @@ -165,6 +210,8 @@ module debug () { if (PART == "9pin_plug") { cpc_9pin_plug(); +} else if (PART == "9pin_plug_insert") { + cpc_9pin_plug_insert(); } else if (PART == "9pin_plug_collar") { cpc_9pin_plug_collar(); } else if (PART == "9pin_socket") {