-
Notifications
You must be signed in to change notification settings - Fork 18
Hirth Joint
Gilles Bouissac edited this page May 23, 2021
·
16 revisions
The center hole diameter is computed to be the minimal diameter printable with a 3D printer with 0.4 nozzle. On this minimal diameter each tooth is 3 nozzle wide.
To avoid this constraint we can set the special variable $nozzle=0
to reduce the diameter to 0. Then we can make a difference with a cylinder to get a center hole with any diameter:
$nozzle=0;
difference() {
hirthJointSinus( ... );
cylinder( ... );
}
or
difference() {
hirthJointSinus( ..., $nozzle=0 );
cylinder( ... );
}
Step | Code | Result |
---|---|---|
Sinusoidal | use <agentscad/hirth-joint.scad> $fn=100; // Sinusoidal profile // Radius: 10 mm // Nb tooth: 21 // Tooth height: 1.2 mm hirthJointSinus( 10, 21, 1.2 ); |
|
Shoulder | use <agentscad/hirth-joint.scad> $fn=100; // Sinusoidal profile with shoulder // Radius: 10 mm // Nb tooth: 21 // Tooth height: 1.2 mm // Shoulder height: 2 mm hirthJointSinus( 10, 21, 1.2, 2 ); |
|
Inlay | use <agentscad/hirth-joint.scad> $fn=100; // Sinusoidal profile with shoulder and inlay // Radius: 10 mm // Nb tooth: 21 // Tooth height: 1.2 mm // Shoulder height: 2 mm // Inlay height: 1 mm hirthJointSinus( 10, 21, 1.2, 2, 1 ); |
|
Triangle | use <agentscad/hirth-joint.scad> $fn=100; // Triangle profile // Radius: 10 mm // Nb tooth: 21 // Tooth height: 1.2 mm // Shoulder height: 1 mm // Inlay height: 1 mm hirthJointTriangle( 10, 21, 1.2, 1, 1 ); |
|
Rectangle | use <agentscad/hirth-joint.scad> $fn=100; // Rectangle profile // Radius: 10 mm // Nb tooth: 21 // Tooth height: 1.2 mm // Shoulder height: 1 mm // Inlay height: 1 mm hirthJointRectangle( 10, 21, 1.2, 1, 1 ); |
|
rmin | use <agentscad/hirth-joint.scad> $fn=100; // Rectangle profile // Radius: 10 mm // Nb tooth: 21 // Tooth height: 1.2 mm // Shoulder height: 1 mm // Inlay height: 1 mm // Override minimal radius: 0 hirthJointRectangle( 10, 21, 1.2, 1, 1, rmin=0 ); |
|
Passage | use <agentscad/hirth-joint.scad> $fn=100; // Inlay passage // Radius: 10 mm // Inlay height: 1 mm difference() { translate( [0,0,-2] ) cylinder( r=15, h=4, center=true ); hirthJointPassage( 10, 1.2, 1, 1 ); } |