Fixed Chamfer for clean print
Used chamfer and shift to make sure gears print clean without supports. Print angle is now 92 degrees; much closer and the gear block fuses the gears in the back.
This commit is contained in:
@@ -8,7 +8,7 @@ use <PolyGear/PolyGear.scad>
|
|||||||
include <PolyGear/PolyGearBasics.scad>
|
include <PolyGear/PolyGearBasics.scad>
|
||||||
use <PolyGear/shortcuts.scad>
|
use <PolyGear/shortcuts.scad>
|
||||||
|
|
||||||
chamfer=40;
|
chamfer=30;
|
||||||
axis_angle=0;
|
axis_angle=0;
|
||||||
//helix_angle = [ for (x=linspace(-1,1,11)) exp(-abs(x))*10*sign(x) ];
|
//helix_angle = [ for (x=linspace(-1,1,11)) exp(-abs(x))*10*sign(x) ];
|
||||||
helix_turns = 3;
|
helix_turns = 3;
|
||||||
@@ -50,14 +50,19 @@ $fa = ($preview) ? 17 : .1;
|
|||||||
$fs = ($preview) ? 3 : .1;
|
$fs = ($preview) ? 3 : .1;
|
||||||
$incolor = true;
|
$incolor = true;
|
||||||
|
|
||||||
plate_hinge();
|
plate_print();
|
||||||
|
//plate_full_open();
|
||||||
|
|
||||||
//gear_hinge(rot=rot, box=false, rounded_case=true);
|
//gear_hinge(rot=rot, box=false, rounded_case=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);
|
||||||
|
|
||||||
module plate_hinge() {
|
module plate_full_open(rot=90) {
|
||||||
rot = 90 - 5;
|
rot = 90;
|
||||||
gear_hinge(rot=rot, box=false, rounded_case=true);
|
gear_hinge(rot=rot, box=false, rounded_case=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
module plate_print(rot=90-8, door=false) {
|
||||||
|
gear_hinge(rot=rot, box=false, rounded_case=true, door=door);
|
||||||
}
|
}
|
||||||
|
|
||||||
module gear_hinge(
|
module gear_hinge(
|
||||||
@@ -67,6 +72,7 @@ module gear_hinge(
|
|||||||
box_color="green",
|
box_color="green",
|
||||||
left_gear_color="blue",
|
left_gear_color="blue",
|
||||||
right_gear_color="red",
|
right_gear_color="red",
|
||||||
|
door = false,
|
||||||
rot=0) {
|
rot=0) {
|
||||||
//offex=tol;
|
//offex=tol;
|
||||||
bc = $incolor ? box_color : undef;
|
bc = $incolor ? box_color : undef;
|
||||||
@@ -75,7 +81,7 @@ module gear_hinge(
|
|||||||
|
|
||||||
offex=0;
|
offex=0;
|
||||||
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(door=door);
|
||||||
if (box) {
|
if (box) {
|
||||||
color(bc) box(full = true, top=box_top, tol=tol);
|
color(bc) box(full = true, top=box_top, tol=tol);
|
||||||
} else if (rounded_case) {
|
} else if (rounded_case) {
|
||||||
@@ -89,8 +95,8 @@ module gear_hinge(
|
|||||||
|
|
||||||
module gear_track_block() {
|
module gear_track_block() {
|
||||||
difference() {
|
difference() {
|
||||||
CyS(r=MeshD/2 +.5, h=width, w1=275, w2=310);
|
CyS(r=MeshD/2 +.5, h=width/2, w1=275, w2=310);
|
||||||
CyS(r=ShaftD+.5, h=width, w1=275, w2=310);
|
CyS(r=ShaftD+.5, h=width/2, w1=275, w2=310);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,7 +112,7 @@ module gear_sector(meshd, width) {
|
|||||||
// blue_gear - Gear on the left with the track block built into its back side.
|
// blue_gear - Gear on the left with the track block built into its back side.
|
||||||
module blue_gear() {
|
module blue_gear() {
|
||||||
intersection() {
|
intersection() {
|
||||||
spur_gear(n=N1, w=width, m=Module, chamfer=30, helix_angle = helix_angle, add=-tol/4 );
|
spur_gear(n=N1, w=width, m=Module, chamfer=chamfer, chamfer_shift=-2,helix_angle = helix_angle, add=-tol/4 );
|
||||||
difference() {
|
difference() {
|
||||||
gear_sector(meshd=MeshD, width=width);
|
gear_sector(meshd=MeshD, width=width);
|
||||||
|
|
||||||
@@ -129,21 +135,36 @@ module blue_gear() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Red Gear - Gear on the right.
|
// Red Gear - Gear on the right.
|
||||||
module red_gear()
|
module red_gear(door=false)
|
||||||
{
|
{
|
||||||
difference() {
|
difference() {
|
||||||
union() {
|
union() {
|
||||||
CyS(r=MeshD/2 - 2, h=width, w1=90, w2=190);
|
CyS(r=MeshD/2 - 2, h=width, w1=90, w2=190);
|
||||||
intersection() {
|
intersection() {
|
||||||
spur_gear(n=N2, w=width, m=Module, chamfer=30, helix_angle=-helix_angle, add=-tol/4);
|
spur_gear(n=N2, w=width, m=Module, chamfer=chamfer, chamfer_shift=-2, helix_angle=-helix_angle, add=-tol/4);
|
||||||
CyS(r=MeshD, h=width, w1=181, w2=-30);
|
CyS(r=MeshD, h=width, w1=181, w2=-30);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// leaf arm
|
// leaf arm
|
||||||
translate([-2,11.6,0]) leaf_arm(left=false, h=width+3.2)
|
translate([-2,11.6]) {
|
||||||
translate([0,-4+tol,0]) cube([4,10,width+3.2], center=true);
|
if (door) leaf_arm(left=false, h=width+3.2)
|
||||||
|
translate([0,-4+tol]) {
|
||||||
|
translate([0,-1.6]) cube([4,5+2,width+3.2], center=true);
|
||||||
|
difference() {
|
||||||
|
translate([7,7]) cube([18,14,width+3.2], center=true);
|
||||||
|
translate([10,7]) cube([14,6.5,width+4], center=true);
|
||||||
|
translate([10,15]) rotate([90,0,0]) {
|
||||||
|
cylinder(d=2.1, h=10);
|
||||||
|
translate([0,0,5]) cylinder(d=2.8, h=12);
|
||||||
|
translate([0,0,12]) cylinder(d=4, h=5);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else leaf_arm(left=false, h=width+3.2);
|
||||||
|
}
|
||||||
// Rear Block
|
// Rear Block
|
||||||
gear_track_block();
|
gear_track_block();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user