From 3ea8a73f40da3d238b248db1a88d0a460d331002 Mon Sep 17 00:00:00 2001 From: Stephen Carpenter Date: Tue, 7 Jan 2020 15:14:09 -0500 Subject: [PATCH] Second test, bigger, badder Module is now parametric, as are most values. Larger leafs Larger gears Thicker walls. --- gears.scad | 95 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 62 insertions(+), 33 deletions(-) diff --git a/gears.scad b/gears.scad index 8d0b888..dd00103 100644 --- a/gears.scad +++ b/gears.scad @@ -1,39 +1,46 @@ use use -width = 5; -N1 = 9; -N2 = 9; -axis_angle = -0; +width = 8; +N = 9; +// Force same number of teeth +N1=N; +N2=N; +axis_angle = 0; +Module=1.3; -// RefD = M/N ; Default M=1 +ShaftD=4.5; +MeshD=Module*(N1+N2)/2; -MeshD=(N1+N2)/2; +SwingAdd = 1; +Swing = MeshD/2 + Module + SwingAdd; + +// RefD = M*N ; Default M=1 +tol=.2; +BackW=Swing+Module; +SideW=tol+BackW; echo("Reference Diameter (MeshD): ", MeshD); //rot=360/N1*$t; -rot=90-5*$t; -//rot=90; +//rot=90-90*$t; +rot=90; //axis_angle = -50; color("blue") translate([-MeshD/2,0]) rotate([0,0,rot]) { render() intersection() { - spur_gear(n=N1, w=width, helix_angle=constant(axis_angle/2)); + spur_gear(n=N1, w=width, m=Module,helix_angle=constant(axis_angle/2)); difference() { CyS(r=MeshD, h=width, w1=215, w2=20); // Shaft Hole - cylinder(d=4, h=12, center=true, $fn=16); + cylinder(d=ShaftD, h=12, center=true, $fn=16); + + // Block limit + translate([-BackW+2*tol,-MeshD/2,0]) cube([MeshD,MeshD,width], center=true); } } // leaf arm - translate([MeshD/2 - 1.75,4,0]) cube([1.25,8,5], center=true); - - // Block - //difference() { - // translate([-MeshD/2 + 1.75,-3,0]) cube([1.25,3,5], center=true); - // translate([-4.125,-4.5,0]) rotate([0,0,45]) cube([1.5,3,6], center=true); - //} + translate([MeshD/2 - 2.5,4,0]) cube([2,8,5], center=true); } @@ -42,12 +49,12 @@ color ("red") translate([MeshD/2,0]) rotate([0,0,-rot]){ difference() { union() { intersection() { - spur_gear(n=N2, w=width, helix_angle=constant(axis_angle/2)); + spur_gear(n=N2, w=width, m=Module, helix_angle=constant(axis_angle/2)); CyS(r=MeshD, h=width, w1=150, w2=-30); } // leaf arm - translate([-MeshD/2 + 1.75,4,0]) cube([1.25,8,5], center=true); + translate([-MeshD/2 + 2.5,4,0]) cube([2,8,5], center=true); // Block //translate([+MeshD/2 - 1,-1,0]) cube([1.5,6,5], center=true); @@ -55,30 +62,52 @@ color ("red") translate([MeshD/2,0]) rotate([0,0,-rot]){ CyS(r=MeshD - 3, h=width, w1=-55, w2=-30); } // Shaft Hole - cylinder(d=4, h=12, center=true, $fn=16); + cylinder(d=ShaftD, h=12, center=true, $fn=16); // Block limit - translate([5.75,-3,0]) cube([5,5,5], center=true); + translate([BackW-2*tol,-MeshD/2,0]) cube([MeshD,MeshD,width+1], center=true); } } } -module box() { +module box( + d=ShaftD, + tol=.3, + ShaftFN=$fn, + MeshD=MeshD, + Module=Module, + SwingAdd=1, + WallD=1.5, + full=true) +{ + Swing = MeshD/2 + Module + SwingAdd; + BackW=WallD/2 + Swing+Module+1; + SideW=tol -1 + BackW-MeshD/2; + if (full == true) { + mirror([1,0,0]) box(d=d, tol=tol, ShaftFN=ShaftFN, full=false); + } + translate([MeshD/2,0]) { - cylinder(d=4-.2, h=width+1,$fn=16, center=true); - translate([2,0]) cube([5,1,width+1], center=true); - translate([4.5,-3]) cube([1,7,width+1], center=true); + // Shaft + cylinder(d=d-tol, h=width+1,$fn=ShaftFN, center=true); + // Front Wall + translate([BackW/2 - SideW +1,0]) cube([SideW+tol,WallD,width+1], center=true); + // Side Wall + translate([SideW,-Swing/2]) cube([WallD,Swing+WallD,width+1], center=true); } - translate([-MeshD/2,0]) { - cylinder(d=4-.2, h=width+1,$fn=16, center=true); - translate([-2,0]) cube([5,1,width+1], center=true); - translate([-4.5,-3]) cube([1,7,width+1], center=true); + // Back Wall + translate([BackW/2,-Swing,0]) cube([BackW,WallD,width+1],center=true); + // Bottom/Top + translate([BackW/2,-(Swing)/2,-width/2 - WallD/2 - tol]) + cube([BackW,Swing+WallD,WallD], center=true); + translate([BackW/2,-(Swing)/2,width/2 + WallD/2 + tol]) + difference() { + cube([BackW,Swing+WallD,WallD], center=true); + translate([-Swing/2,0,0]) cube([BackW/2, Swing/2,4],center=true); } - translate([0,-6.5,0]) cube([19,1,width+1],center=true); - translate([0,-3.5,-width/2 - .75]) cube([19,6.5,1], center=true); - translate([0,-3.5,width/2 + .75]) cube([19,6.5,1], center=true); + } color("green") { - //box(); + box(full = true, ShaftFN=16); }