/*
* Copyleft 2015 Sergio García-Cuevas González
*
* This work is licensed under the Creative Commons
* Attribution-ShareAlike 3.0 Unported License.
* To view a copy of this license, visit
* http://creativecommons.org/licenses/by-sa/3.0/
* or send a letter to Creative Commons,
* 444 Castro Street, Suite 900, Mountain View,
* California, 94041, USA.
*/
/*
* Dial indicator clamp for lathe turret-type tool posts.
*
* This is a simple clamping device for holding a dial indicator by its
* shaft to a turret tool post. The clamp has a C cross section, two lips
* that may be drilled for for attaching bolts to increase clamping pressure,
* and a flange that goes to the tool post.
*
* There are several geometrical parameters. All dimensions are measured
* in millimeters.
*
* - length: total length of the clamp.
* - axis_height: vertical distance from the rest face of the tool post
* to the headstock's axis.
* - inner_diameter: should be about the diameter of the dial indicator's
* shaft, if not slightly smaller to give some clamping
* pressure.
* - thickness: wall thickness of the clamp and lips.
* - apperture: distance between the lips.
* - flange_width: distance to the edge of the flange, measured from the
* line where it meets the clamp.
* - lip_width: distance to the edge of the lips, measured from the line
* where the lip meets the clamp.
*/
module clamp (length,
axis_height,
inner_diameter,
thickness,
apperture,
flange_width,
lip_width)
{
inner_radius = inner_diameter / 2;
outer_radius = inner_radius + thickness;
outer_diameter = inner_diameter + thickness * 2;
lip_angle = atan ((apperture / 2 + thickness) / outer_radius);
lip_edge = outer_radius * cos (lip_angle) + lip_width;
flange_edge = outer_radius + flange_width;
difference ()
{
union ()
{
cylinder (r = outer_radius, h = length);
translate (v = [0, -axis_height, 0])
{
cube (size = [flange_edge, axis_height, length]);
}
translate (v = [-lip_edge, -apperture / 2 - thickness, 0])
{
cube (size = [lip_edge, apperture + 2 * thickness, length]);
}
}
translate (v = [0, 0, -length])
{
union ()
{
cylinder (r = inner_radius, h = 3 * length);
translate (v = [-2 * lip_edge, -apperture / 2, 0])
{
cube (size = [2 * lip_edge, apperture, 3 * length]);
}
}
}
}
}
clamp (length = 25,
axis_height = 6,
inner_diameter = 8,
apperture = 1,
flange_width = 6,
thickness = 1,
lip_width = 8);