diff --git a/app/data/cfg.json b/app/data/cfg.json index ca73069..a823beb 100644 --- a/app/data/cfg.json +++ b/app/data/cfg.json @@ -1,5 +1,5 @@ { - "version": "1.8.61", + "version": "1.8.62", "ext_port": 1111, "profiles": { "mcopy": { diff --git a/app/package-lock.json b/app/package-lock.json index a6ed4d4..df26b19 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -1,6 +1,6 @@ { "name": "mcopy-app", - "version": "1.8.61", + "version": "1.8.62", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/app/package.json b/app/package.json index 6c235f2..1f03848 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "mcopy-app", - "version": "1.8.61", + "version": "1.8.62", "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 a40dc3f..3ba13f3 100644 --- a/data/cfg.json +++ b/data/cfg.json @@ -1,5 +1,5 @@ { - "version": "1.8.61", + "version": "1.8.62", "ext_port": 1111, "profiles": { "mcopy": { diff --git a/package-lock.json b/package-lock.json index fa5b179..3c9f14d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mcopy", - "version": "1.8.61", + "version": "1.8.62", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "mcopy", - "version": "1.8.61", + "version": "1.8.62", "license": "MIT", "dependencies": { "arduino": "file:app/lib/arduino", diff --git a/package.json b/package.json index f0df775..f51bc2d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mcopy", - "version": "1.8.61", + "version": "1.8.62", "description": "Small gauge film optical printer platform", "main": "build.js", "directories": { diff --git a/processing/mcopy/cfg.json b/processing/mcopy/cfg.json index ca73069..a823beb 100644 --- a/processing/mcopy/cfg.json +++ b/processing/mcopy/cfg.json @@ -1,5 +1,5 @@ { - "version": "1.8.61", + "version": "1.8.62", "ext_port": 1111, "profiles": { "mcopy": { diff --git a/scad/mcopy_rails.scad b/scad/mcopy_rails.scad index 638b5ad..46f813a 100644 --- a/scad/mcopy_rails.scad +++ b/scad/mcopy_rails.scad @@ -19,6 +19,7 @@ TNutVoid = 17; BoltSpacingX = RailSpacing - 30; LensFrameSpacingX = 100; +LensRodsOffsetZ = -15; module rail_debug (H = 175) { color("lime") linear_extrude(height=H) { @@ -231,7 +232,6 @@ module lens_sled (pos = [0, 0, 0], rot = [90, 0, 0]) { LensFrameBlockY = (60 / 2) + (40 / 2) - 5; LensFrameM3VoidsZ = (60 / 2) + (40 / 2) - 12.5 + 5 + 6; LensFrameOffsetZ = 20; - LensRodsOffsetZ = -15; BearingsSpacing = 28; BearingM5Spacing = 62; @@ -313,7 +313,7 @@ module side_lens_sled_bearing_plate (pos = [0, 0, 0], rot = [0, 0, 0]) { translate(pos) rotate(rot) { difference () { cube([25, Y, 15.9], center = true); - + //sides translate([-9, 52, 0]) cube([25, Y, 15.9 + 1], center = true); translate([-9, -52, 0]) cube([25, Y, 15.9 + 1], center = true); @@ -419,13 +419,13 @@ module corner_outer_bracket (pos = [0, 0, 0], rot = [0, 0, 0], Rotate = false, S translate([-(W / 2) - (T / 2) - 0.2 + 1, 0, (H / 2) - 4.5]) cube([T, 5.5, H], center = true); // if (!Rotate || Side == "right") { - translate([8.3, (W / 2) + (T / 2), (40 / 2) - T])difference () { + translate([8.35, (W / 2) + (T / 2), (40 / 2) - T])difference () { cube([H + 0.4, T, H], center = true); translate([0, 0, 33.5]) rotate([0, 45, 0]) cube([H * 3, T + 1, H], center = true); } } if (!Rotate || Side == "left") { - translate([8.3, -(W / 2) - (T / 2), (40 / 2) - T])difference () { + translate([8.35, -(W / 2) - (T / 2) , (40 / 2) - T])difference () { cube([H + 0.4, T, H], center = true); translate([0, 0, 33.5]) rotate([0, 45, 0]) cube([H * 3, T + 1, H], center = true); } @@ -444,8 +444,58 @@ module corner_outer_bracket (pos = [0, 0, 0], rot = [0, 0, 0], Rotate = false, S } module lens_frame_top_gantry (pos = [0, 0, 0], rot = [0, 0, 0]) { - corner_outer_bracket([75, -20, 260], [180, 90, 0], Rotate = false); - corner_outer_bracket([-75, -20, 260], [0, 90, 0], Rotate = false); + translate(pos) rotate(rot) { + difference() { + union () { + corner_outer_bracket([(LensFrameSpacingX / 2) + 14.65, 0, 8.85], [180, 0, 180], Rotate = false); + corner_outer_bracket([(-LensFrameSpacingX / 2) - 14.65, 0, 8.85], [180, 0, 0], Rotate = false); + + translate([0, 0, 11.85]) cube([71, 26.3, 3], center = true); + translate([0, 0, 11.85-1]) cube([71, 5.5, 3], center = true); + + translate([0, -11.65, 11.85 - 10]) cube([120, 3, 20], center = true); + translate([0, 11.65, 11.85 - 5]) cube([120, 3, 10], center = true); + + //threaded rod + translate([53, 31, 8.35]) difference() { + cube([50, 40, 10], center = true); + translate([-20, 20, 0]) rotate([0, 0, 45]) cube([70, 40, 10 + 1], center = true); + } + translate([LensFrameSpacingX - 35, -LensRodsOffsetZ + 20, -3]) cylinder(r = R(22), h = 25, center = true, $fn = 120); + + //linear rod + translate([-53, 31, 8.35]) difference() { + cube([50, 40, 10], center = true); + translate([20, 20, 0]) rotate([0, 0, -45]) cube([70, 40, 10 + 1], center = true); + } + translate([-LensFrameSpacingX + 35 - 2, -LensRodsOffsetZ + 20, -3]) cube([22, 19, 15], center = true); + } + + translate([LensFrameSpacingX - 35, -LensRodsOffsetZ + 20, -5]) { + linear_bearing(padD = 0.2); + translate([0, 0, 2]) linear_bearing(padD = 0.2); + cylinder(r = R(ThreadDiameter + 1), h = 40, center = true, $fn = 60); + } + + translate([-LensFrameSpacingX + 35, -LensRodsOffsetZ + 20, -5]) { + cylinder(r = R(ThreadDiameter + 0.1), h = 40, center = true, $fn = 60); + } + + //center bolt + m3_bolt_void([0, 0, 12.75]); + translate([0, 0, 6.35]) cube([7, 7, 8], center = true); + + //linear rod m4 bolt void + translate([-73, 35, -3]) { + translate([0, 0, -10]) cube([3.1, 8.25, 20], center = true); + rotate([90, 0, 90]) { + m4_nut(); + cylinder(r = R(4), h = 15, center = true, $fn = 30); + } + } + } + } + } module debug () { @@ -460,10 +510,14 @@ module debug () { color("green") translate([(LensFrameSpacingX / 2) + 15, -20, 50]) rotate([0, 0, 0]) linear_extrude(height=200) 2020_profile(); color("green") translate([-(LensFrameSpacingX / 2) - 15, -20, 50]) rotate([0, 0, 0]) linear_extrude(height=200) 2020_profile(); - color("green") translate([-(LensFrameSpacingX + 30 + 20) / 2, -20, 260]) rotate([0, 90, 0]) linear_extrude(height = LensFrameSpacingX + 30 + 20) 2020_profile(); + //color("green") translate([-(LensFrameSpacingX + 30 + 20) / 2, -20, 260]) rotate([0, 90, 0]) linear_extrude(height = LensFrameSpacingX + 30 + 20) 2020_profile(); + + color("blue") translate([LensFrameSpacingX - 35, -LensRodsOffsetZ, 140]) cylinder(r = R(9), h = 300, center = true, $fn = 60); + color("blue") translate([-LensFrameSpacingX + 35, -LensRodsOffsetZ, 140]) cylinder(r = R(9), h = 300, center = true, $fn = 60); + //difference () { //intersection() { - lens_sled([0, 0, 0]); + //lens_sled([0, 0, 0]); //cube([132, 1, 100], center = true); //translate([-30, -90 + 30 - 1, 10]) cube([90, 60, 45], center = true); //translate([150, -90, 50]) cube([200, 100, 100], center = true); @@ -482,6 +536,7 @@ module debug () { */ color("blue") side_lens_sled_bearing_plate([(RailSpacing / 2) + 23.5 + 20, 0, 0]); + lens_frame_top_gantry([0, -20, 260]); //bearing_roller(); @@ -499,14 +554,14 @@ module debug () { } -PART = "side_lens_sled_bearing_plate"; +PART = "lens_frame_top_gantry"; if (PART == "rail_end") { rail_end(); } else if (PART == "rail_end_idle") { rail_end(Motors = false, Projector = true); } else if (PART == "lens_sled") { - rotate([-90, 0, 0]) lens_sled(); + rotate([90, 0, 0]) lens_sled(); } else if (PART == "bearing_roller") { bearing_roller(); } else if (PART == "bearing_roller_inner") { @@ -519,6 +574,8 @@ if (PART == "rail_end") { corner_outer_bracket(); } else if (PART == "corner_outer_bracket_rotated") { corner_outer_bracket(Rotate = true); +} else if (PART == "lens_frame_top_gantry") { + lens_frame_top_gantry(rot = [180, 0, 0]); } else { debug(); } \ No newline at end of file