From aab4cc78c237590a2e3821e5fe65682c3422070e Mon Sep 17 00:00:00 2001 From: mattmcw Date: Wed, 26 Apr 2023 20:58:59 -0400 Subject: [PATCH] Move sprocketed roller into its own module. --- .gitmodules | 3 + scad/16mm_sprocketed_roller.scad | 70 ---------- scad/16mm_sprocketed_roller_var.scad | 199 --------------------------- scad/contact_printer.scad | 3 +- scad/sprocketed_roller | 1 + 5 files changed, 6 insertions(+), 270 deletions(-) delete mode 100644 scad/16mm_sprocketed_roller.scad delete mode 100644 scad/16mm_sprocketed_roller_var.scad create mode 160000 scad/sprocketed_roller diff --git a/.gitmodules b/.gitmodules index d9c9b85..6aaa4ba 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "scad/takeup"] path = scad/takeup url = https://git.sixteenmillimeter.com/modules/takeup.git +[submodule "scad/sprocketed_roller"] + path = scad/sprocketed_roller + url = https://git.sixteenmillimeter.com/modules/sprocketed_roller.git diff --git a/scad/16mm_sprocketed_roller.scad b/scad/16mm_sprocketed_roller.scad deleted file mode 100644 index eb671d4..0000000 --- a/scad/16mm_sprocketed_roller.scad +++ /dev/null @@ -1,70 +0,0 @@ -include <./common/common.scad>; - -SprocketBaseD = 19.05; //8 frames -SprocketBaseH = 2.7; - - -SprocketH = 10; -SprocketW = 0.79; -SprocketL = 1.3; - -InnerD = 13.98; -InnerH = 10.6; - -TopBaseD = 18.47; -TopBaseH = 2.96; - - -LipD = 18.84; -LipH = 0.33; - - -TopD = 21.66; -TopH = 1.4; - - -HollowD = 4.7; -HollowBaseD = 12.01; -HollowBaseH = 6.09; - -$fn = 100; - -module sprocket (pos = [0, 0, 0], rot = [0, 0, 0], bevel = false) { - //cube([SprocketL, SprocketW, SprocketH], center = true); - translate (pos) rotate(rot) { - difference () { - translate([0, 0, 0]) scale([1, 1, 2.25]) rotate([90, 0, 90]) cylinder(r = SprocketW/2, h = SprocketL, center = true); - translate([0, 0, -1]) cube([2, 2, 2], center = true); - if (bevel) { - translate([1.5, 0, 0]) rotate([0, -5, 0]) cube([2, 2, 3], center = true); - translate([-1.5, 0, 0]) rotate([0, 5, 0]) cube([2, 2, 3], center = true); - } - } - } -} - -module sprocketed_roller (pos = [0, 0, 0], bevel = false) { - SoundtrackH = (TopBaseH / 2) + InnerH + (SprocketBaseH / 2); - translate(pos) { - difference () { - union () { - //sprocket base - cylinder(r = R(SprocketBaseD), h = SprocketBaseH, center = true); - //center - translate([0, 0, (InnerH / 2) + (SprocketBaseH / 2)]) cylinder(r = R(InnerD), h = InnerH, center = true); - //soundtrack area - translate([0, 0, SoundtrackH]) cylinder(r = R(TopBaseD), h = TopBaseH, center = true); - translate([0, 0, SoundtrackH - (TopBaseH / 2) + (LipH / 2)]) cylinder(r = R(LipD), h = LipH, center = true); - translate([0, 0, SoundtrackH + (TopBaseH / 2) - (LipH / 2)]) cylinder(r = R(LipD), h = LipH, center = true); - translate([0, 0, SoundtrackH + (TopH / 2) + (TopBaseH / 2) - (LipH / 2)]) cylinder(r = R(TopD), h = TopH, center = true); - } - cylinder(r = HollowD / 2, h = 100, center = true); - translate([0, 0, (HollowBaseH / 2) - (SprocketBaseH / 2)]) cylinder(r = R(HollowBaseD), h = HollowBaseH + 0.1, center = true); - } - for (i = [0: 8]) { - rotate([0, 0, i * 360 / 8]) sprocket([(SprocketBaseD / 2) -.01, 0, (SprocketBaseH / 2) - (SprocketL / 2)], [0, 90, 0], bevel); - } - } -} - -sprocketed_roller( bevel = true); diff --git a/scad/16mm_sprocketed_roller_var.scad b/scad/16mm_sprocketed_roller_var.scad deleted file mode 100644 index 9d8b3b9..0000000 --- a/scad/16mm_sprocketed_roller_var.scad +++ /dev/null @@ -1,199 +0,0 @@ -include <./common/common.scad>; - -SprocketBaseD = 19.05; //8 frames -SprocketBaseH = 2.7; -FrameC = (SprocketBaseD * PI) / 8; - -SprocketH = 10; -SprocketW = 1; -SprocketL = 1.5; - -InnerH = 10.6; - - -TopBaseD = 18.47; -TopBaseC = (TopBaseD * PI) / 8; -TopBaseH = 2.96; - -LipD = 18.84; -LipH = 0.33; -LipC = (LipD * PI) / 8; - -TopD = 21.66; -TopC = (TopD * PI) / 8; -TopH = 1.4; - -motorShaftD = 6; -motorShaftHobble = 0.8; - -echo(FrameC); - -$fn = 100; - -module sprocket (pos = [0, 0, 0], rot = [0, 0, 0], bevel = false) { - - translate (pos) rotate(rot) { - difference () { - translate([0, 0, 0]) scale([1, 1, 2.25]) rotate([90, 0, 90]) cylinder(r = SprocketW/2, h = SprocketL, center = true); - translate([0, 0, -1]) cube([2, 2, 2], center = true); - if (bevel) { - translate([1.5, 0, 0]) rotate([0, -5, 0]) cube([2, 2, 3], center = true); - translate([-1.5, 0, 0]) rotate([0, 5, 0]) cube([2, 2, 3], center = true); - } - } - } -} - -module gearbox_motor_shaft (H = 16, pad = 0) { - difference () { - cylinder(r = R(motorShaftD) + pad, h = H, center = true, $fn = 60); - translate([motorShaftD - motorShaftHobble + pad, 0, 0]) cube([motorShaftD, motorShaftD, H + 1], center = true); - } -} - -module gearbox_motor_shaft_void (H = 16) { - pad = 0.2; - gearbox_motor_shaft(H, pad); -} - -module bearing_laser_void (x, y, z, width= 8, hole = true) { - innerD = 8.05; - outerD = 22.1 - .4; - fuzz = 0.3; - translate ([x, y, z]) { - difference () { - cylinder(r = (outerD / 2) + fuzz, h = width, center = true); - if (hole) { - cylinder(r = innerD / 2 - fuzz, h = width, center = true); - } - } - } -} - -module m3_nut_void (pos = [0, 0, 0], rot = [0, 0, 0], H = 20) { - translate(pos) rotate(rot) { - translate([0, 6, -4.25 + (2.75/2)]) cube([6, 12, 2.75], center = true); - cylinder(r = R(3.25), h = H, center = true, $fn = 30); - translate([0, 0, -4.25]) hex(6, 2.75); - translate([0, 0, (H/2)-4.5]) cylinder(r = R(6), h = 5, center = true, $fn = 40); - } -} - -module m3_bolt_void (pos = [0, 0, 0]) { - translate(pos) { - cylinder(r = R(3.25), h = 40, center = true, $fn = 30); - translate([0, 0, 14]) cylinder(r = R(6), h = 5, center = true, $fn = 40); - } -} - -module sprocketed_wheel_m3_nut_void (pos = [0, 0, 0]) { - translate(pos) { - cylinder(r = R(3.25), h = 40, center = true, $fn = 30); - hex(6.3, 4); - } -} - -module sprocketed_roller_sprocket_wheel (pos = [0, 0, 0], rot = [0, 0, 0], sprockets = 8, D, bevel = false, bolts = false) { - translate(pos) rotate(rot) { - cylinder(r = R(D), h = SprocketBaseH, center = true); - for (i = [0: sprockets]) { - rotate([0, 0, i * 360 / sprockets]) sprocket([(D / 2) - .01, 0, (SprocketBaseH / 2) - (SprocketL / 2)], [0, 90, 0], bevel); - } - } -} - -module sprocketed_roller_body (pos = [0, 0, 0], rot = [0, 0, 0], sprockets = 8, bevel = false, reinforced = false, bolts = false) { - D = (FrameC * sprockets) / PI; - LipD = (LipC * sprockets) / PI; - TopD = (TopC * sprockets) / PI; - TopBaseD = (TopBaseC * sprockets) / PI; - InnerD = D - 5.07; - ReinforcedRegistration = (InnerD - 5) / 2; - ReinforcedRegistrationCorner = sqrt(pow(2.5, 2) + pow(2.5, 2)); - BoltsY = ReinforcedRegistration + 12.5; - - echo("D", D); - echo("LipD", LipD); - echo("InnerD", InnerD); - - translate(pos) rotate(rot) difference() { - //top - union () { - if (!reinforced) { - sprocketed_roller_sprocket_wheel(sprockets = sprockets, D = D, bevel = bevel); - } else { - cube([ReinforcedRegistration + 5, ReinforcedRegistration, SprocketBaseH], center = true); - cube([ReinforcedRegistration, ReinforcedRegistration + 5, SprocketBaseH], center = true); - translate([(ReinforcedRegistration/2), (ReinforcedRegistration/2), 0]) rotate([0, 0, 45]) cube([ReinforcedRegistrationCorner, ReinforcedRegistrationCorner, SprocketBaseH], center = true); - } - - //center - translate([0, 0, (InnerH / 2) + (SprocketBaseH / 2)]) { - cylinder(r = R(InnerD), h = InnerH, center = true); - } - - //lip - translate([0, 0, (TopBaseH / 2) + InnerH + (SprocketBaseH / 2) - (TopBaseH / 2) + (LipH / 2)]) { - cylinder(r = R(LipD), h = LipH, center = true); - } - - //bottom - translate([0, 0, (TopH / 2) + (TopBaseH / 2) + InnerH + (SprocketBaseH / 2) + (TopBaseH / 2) - (LipH / 2)]) { - cylinder(r = R(TopD), h = TopH, center = true); - } - - //bottom base - translate([0, 0, (TopBaseH / 2) + InnerH + (SprocketBaseH / 2)]) { - cylinder(r = R(TopBaseD), h = TopBaseH, center = true); - } - } - if (reinforced && bolts) { - m3_bolt_void([0, BoltsY/2, 0]); - m3_bolt_void([0, -BoltsY/2, 0]); - } - } -} - -module sprocketed_roller (pos = [0, 0, 0], rot = [0, 0, 0], sprockets = 8, bevel = false, reinforced = false, bolts = false, model = "", set_screw_top = false) { - D = (FrameC * sprockets) / PI; - difference () { - union () { - sprocketed_roller_body(pos = pos, rot = rot, sprockets = sprockets, bevel = bevel, reinforced = reinforced, bolts = bolts); - //translate(pos) rotate(rot) addition(); - } - if (model == "gearbox_motor") { - translate(pos) rotate(rot) translate([0, 0, 10]) gearbox_motor_shaft_void(); - if (set_screw_top) { - translate(pos) rotate(rot) rotate([180, 0, 0]) m3_bolt_void([0, 0, -11]); - } else { - translate(pos) rotate(rot) m3_nut_void(pos=[D/4, 0, 8.5], rot = [90, 0, 90], H = D/2); - } - } - } - -} - -module sprocketed_roller_reinforced (pos = [0, 0, 0], rot = [0, 0, 0], sprockets = 8, bevel = true, model = "", bolts = true) { - D = (FrameC * sprockets) / PI; - InnerD = D - 5.07; - ReinforcedRegistration = (InnerD - 5) / 2; - BoltsY = ReinforcedRegistration + 12; - difference () { - sprocketed_roller_sprocket_wheel (pos = pos, rot = rot, sprockets = sprockets, D = D, bevel = bevel); - scale([1.01, 1.01, 1]) sprocketed_roller (pos = pos, rot = rot, sprockets = sprockets, bevel = bevel, reinforced = true, model = model); - if (bolts) { - sprocketed_wheel_m3_nut_void([0, BoltsY/2, -4]); - sprocketed_wheel_m3_nut_void([0, -BoltsY/2, -4]); - } - } -} - -LIBRARY = false; -PART = "sprocketed_roller_reinforced"; -if (!LIBRARY && PART == "sprocketed_roller_reinforced") { - rotate([180, 0, 0]) sprocketed_roller(sprockets = 18, bevel = false, model = "gearbox_motor", reinforced = true, bolts = true, set_screw_top = true); -} else if (!LIBRARY && PART == "sprocketed_wheel") { - rotate([180, 0, 0]) color("red") sprocketed_roller_reinforced(sprockets = 18, bevel = false, model = "gearbox_motor", bolts = true); -} - - diff --git a/scad/contact_printer.scad b/scad/contact_printer.scad index 6c7a7c4..465e6b1 100644 --- a/scad/contact_printer.scad +++ b/scad/contact_printer.scad @@ -1,10 +1,11 @@ -include <./16mm_sprocketed_roller_var.scad>; + include <./lamp.scad>; include <./box_laser.scad>; include <./common/common.scad>; include <./common/motors.scad>; include <./common/2020_tslot.scad>; include <./takeup/takeup.scad>; +include <./sprocketed_roller/sprocketed_roller_var.scad>; IN = 25.4; diff --git a/scad/sprocketed_roller b/scad/sprocketed_roller new file mode 160000 index 0000000..e053ac5 --- /dev/null +++ b/scad/sprocketed_roller @@ -0,0 +1 @@ +Subproject commit e053ac5a2aa428248d6041a88e304c25df656bc0