$fa=4; $fs=.6; module connectorj1772() { swtwlock(); // shellwithtabs(); centerPlug(); } module swtwlock() { union() { difference() { translate([-5.45,24.2,-40]) cube([10.9,5.8,40]); translate([-5.55,34.2,-20]) rotate([45,0,0]) cube([11.1,15.8,40]); translate([-5.55,34.2,-40]) rotate([80,0,0]) cube([11.1,15.8,40]); } shellwithtabs(); } } module shell() { difference() { // pinless shell translate([0,0,-40]) cylinder(h=40,r=25.2); // outside translate([0,0,-35]) cylinder(h=35.02,r=22.1); // open area + 0.2 for clearance } } module shellwithtabs() { difference() { // thing with bottom keyhole union() { // thing with bottom bump intersection() { // bottom outer bump translate([0,0,-40]) cylinder(h=40,r=30.7); // outside radius translate([-9.35,-30.8,-40]) cube([18.7,8.6,40]); // ### plus .1 on both sides } shell(); } intersection() { translate([0,0,-35.]) cylinder(h=35.2,r=25.6); // bottom keyway cyl +.2 for clearance translate([-4.25,-25.7,-35.]) cube([8.5,4.5,35.2]); // boundary +.2 for clearance } } } module centerPlug() { difference() { union() { // center pin barrel difference() { // center plug union() { // center plug solid translate([0,0,-35]) cylinder(h=12,r=17.4); // plug base translate([0,0,-23]) cylinder(h=5,r1=17.4,r2=16.9); // plug middle translate([0,0,-18]) cylinder(h=18,r=16.9); // plug top } translate([0,0,-25]) cylinder(h=25.2,r=14.9); // center plug solid open area + 0.2 for clearance ### WARNING? bad spec Modified to 2mm wall } intersection() { union() { // all pin sleeves translate([0,-10.8,-25]) cylinder(h=25,r=6.9); // sleeve chassis ground ### Modified to 2mm wall translate([-7.8,6.8,-25]) cylinder(h=25,r=7.3); // sleeve L1 ### Modified to 2mm wall translate([7.8,6.8,-25]) cylinder(h=25,r=7.3); // sleeve L2 ### Modified to 2mm wall translate([-10.65,-5.6,-25]) cylinder(h=25.,r=5.65); // sleeve control pilot ### Modified to 2mm wall translate([10.65,-5.6,-25]) cylinder(h=25,r=5.65); // sleeve prox detect ### Modified to 2mm wall } translate([0,0,-25.1]) cylinder(h=25.2,r=15); // to get rid of excess } } translate([0,-10.8,-28]) cylinder(h=28.1,r=4.9); // pinhole chassis ground + 0.1 for clearance translate([-7.8,6.8,-24]) cylinder(h=24.1,r=5.3); // pinhole L1 + 0.1 for clearance translate([7.8,6.8,-24]) cylinder(h=24.1,r=5.3); // pinhole L2 + 0.1 for clearance translate([-10.65,-5.6,-24.5]) cylinder(h=24.6,r=3.65); // pinhole control pilot + 0.1 for clearance translate([10.65,-5.6,-24.5]) cylinder(h=24.6,r=3.65); // pinhole prox detect + 0.1 for clearance } } connectorj1772(); /* translate([0,0,40]) { cube([1,1,1]); // dummy difference() { // for cross section translate([-30,0,-60]) // cube([60,30,120]); // for cross section cube([1,1,1]); //dummy */