Fixed blue gear stop & added rounded case

Rounded case is much more elegant.
Blue gear had a spike into its axis. Fixed.
This commit is contained in:
2021-01-08 00:37:44 -05:00
committed by sjc
parent 873f94387a
commit 897668a442

View File

@@ -29,7 +29,7 @@ SideW=tol+BackW;
echo("Reference Diameter (MeshD): ", MeshD); echo("Reference Diameter (MeshD): ", MeshD);
//rot=360/N1*$t; //rot=360/N1*$t;
// rot=90-90*$t; // rot=90-90*$t;
rot=0; rot=45;
//axis_angle = -50; //axis_angle = -50;
//meshed(rot=rot); //meshed(rot=rot);
@@ -38,7 +38,7 @@ $fa = ($preview) ? 12 : .01;
$fs = ($preview) ? 2 : .01; $fs = ($preview) ? 2 : .01;
$incolor = false; $incolor = false;
gear_hinge(rot=rot, box=true, box_top=true); gear_hinge(rot=rot, box=false, rounded_case=true, box_top=true);
//translate([50,0,0]) gear_hinge(rot=rot, box=false, box_top=true); //translate([50,0,0]) gear_hinge(rot=rot, box=false, box_top=true);
@@ -49,6 +49,7 @@ module gear_sector() {
module gear_hinge( module gear_hinge(
box=true, box=true,
rounded_case=false,
box_top=true, box_top=true,
box_color="green", box_color="green",
left_gear_color="blue", left_gear_color="blue",
@@ -63,14 +64,16 @@ module gear_hinge(
color(lgc) translate([-MeshD/2 - offex,0]) rotate([0,0,rot]) blue_gear(); color(lgc) translate([-MeshD/2 - offex,0]) rotate([0,0,rot]) blue_gear();
color (rgc) translate([offex + MeshD/2,0]) rotate([0,0,-rot]) red_gear(); color (rgc) translate([offex + MeshD/2,0]) rotate([0,0,-rot]) red_gear();
if (box) { if (box) {
color(bgc) box(full = true, top=box_top, tol=tol); color(bc) box(full = true, top=box_top, tol=tol);
} else if (rounded_case) {
round_case(full=true, tol=tol);
} }
} }
module gear_track_block() { module gear_track_block() {
difference() { difference() {
CyS(r=MeshD/2 + Module/2, h=width/2, w1=245, w2=250); CyS(r=MeshD/2 + Module/2, h=width/2, w1=245, w2=250);
CyS(r=ShaftD+1, h=width, w1=259, w2=271); CyS(r=ShaftD+1, h=width, w1=244, w2=271);
} }
} }
@@ -133,6 +136,57 @@ module leaf_arm() {
} }
} }
module round_case(
d=ShaftD,
tol=.25,
top=true,
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;
difference() {
intersection() {
hull() {
for (x = [-MeshD/2, MeshD/2] )
translate([x,0])
cylinder(d=18.5, h=width+4, center=true);
}
translate([-15,-11.3,-15]) cube([30,12,30]);
}
hull() {
for (xi = [-1, 1] )
translate([xi*MeshD/2,0]) difference() {
cylinder(d=16.5, h=width+2, center=true);
cylinder(d=d-2*tol, h=width+2, center=true);
}
}
// translate([-7,5,-10]) cube([14,5,20]);
}
for (xi = [-1, 1]) {
translate([xi*MeshD/2,0]) {
// Shaft
cylinder(d=d-2*tol, h=width+2, center=true);
// Shaft Bottom/top
for (s = [-1,1]) {
translate([0,0,s*(width/2 + WallD/2 + 1.5*tol)])
cylinder(d=d+3*tol, h=WallD+tol, center=true);
}
translate([xi*(BackW/2 - SideW +4),-.05]) cube([SideW+1+tol,WallD,width+3+2*tol], center=true);
}
}
}
module box( module box(
d=ShaftD, d=ShaftD,
tol=.25, tol=.25,