Bolex rewind key handle
Handle is broken into 2 pieces, knurled for grip. As seen here: https://www.shapeways.com/product/PQMJJS9NF/bolex-rewind-key-handle
This commit is contained in:
parent
038572839e
commit
dcca1b0182
|
@ -0,0 +1,29 @@
|
||||||
|
$fn = 90;
|
||||||
|
include <./knurledFinishLib_v2.scad>;
|
||||||
|
|
||||||
|
module bolex_rewind_knurled_handle () {
|
||||||
|
difference () {
|
||||||
|
knurled_cyl(13, 13, 2, 2, .3, 0, 0);
|
||||||
|
cylinder(r = 5.6 / 2, h = 40, center = true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module bolex_rewind_knurled_handle_SPLIT (piece = 0) {
|
||||||
|
difference () {
|
||||||
|
bolex_rewind_knurled_handle();
|
||||||
|
if (piece == 0) {
|
||||||
|
translate([50, 0, 0]) cube([100, 100, 100], center = true);
|
||||||
|
translate([0, 3.7, 13.75 / 2]) cube([2, 2, 5], center = true);
|
||||||
|
translate([0, -3.7, 13.75 / 2]) cube([2, 2, 5], center = true);
|
||||||
|
} else if (piece == 1) {
|
||||||
|
difference () {
|
||||||
|
translate([-50, 0, 0]) cube([100, 100, 100], center = true);
|
||||||
|
translate([0, 3.7, 13.75 / 2]) cube([1.8, 1.8, 4.8], center = true);
|
||||||
|
translate([0, -3.7, 13.75 / 2]) cube([1.8, 1.8, 4.8], center = true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bolex_rewind_knurled_handle_SPLIT(0);
|
||||||
|
translate([10, 0, 0]) bolex_rewind_knurled_handle_SPLIT(1);
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,181 @@
|
||||||
|
/*
|
||||||
|
* knurledFinishLib_v2.scad
|
||||||
|
*
|
||||||
|
* Written by aubenc @ Thingiverse
|
||||||
|
*
|
||||||
|
* This script is licensed under the Public Domain license.
|
||||||
|
*
|
||||||
|
* http://www.thingiverse.com/thing:31122
|
||||||
|
*
|
||||||
|
* Derived from knurledFinishLib.scad (also Public Domain license) available at
|
||||||
|
*
|
||||||
|
* http://www.thingiverse.com/thing:9095
|
||||||
|
*
|
||||||
|
* Usage:
|
||||||
|
*
|
||||||
|
* Drop this script somewhere where OpenSCAD can find it (your current project's
|
||||||
|
* working directory/folder or your OpenSCAD libraries directory/folder).
|
||||||
|
*
|
||||||
|
* Add the line:
|
||||||
|
*
|
||||||
|
* use <knurledFinishLib_v2.scad>
|
||||||
|
*
|
||||||
|
* in your OpenSCAD script and call either...
|
||||||
|
*
|
||||||
|
* knurled_cyl( Knurled cylinder height,
|
||||||
|
* Knurled cylinder outer diameter,
|
||||||
|
* Knurl polyhedron width,
|
||||||
|
* Knurl polyhedron height,
|
||||||
|
* Knurl polyhedron depth,
|
||||||
|
* Cylinder ends smoothed height,
|
||||||
|
* Knurled surface smoothing amount );
|
||||||
|
*
|
||||||
|
* ...or...
|
||||||
|
*
|
||||||
|
* knurl();
|
||||||
|
*
|
||||||
|
* If you use knurled_cyl() module, you need to specify the values for all and
|
||||||
|
*
|
||||||
|
* Call the module ' help(); ' for a little bit more of detail
|
||||||
|
* and/or take a look to the PDF available at http://www.thingiverse.com/thing:9095
|
||||||
|
* for a in depth descrition of the knurl properties.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
module knurl( k_cyl_hg = 12,
|
||||||
|
k_cyl_od = 25,
|
||||||
|
knurl_wd = 3,
|
||||||
|
knurl_hg = 4,
|
||||||
|
knurl_dp = 1.5,
|
||||||
|
e_smooth = 2,
|
||||||
|
s_smooth = 0)
|
||||||
|
{
|
||||||
|
knurled_cyl(k_cyl_hg, k_cyl_od,
|
||||||
|
knurl_wd, knurl_hg, knurl_dp,
|
||||||
|
e_smooth, s_smooth);
|
||||||
|
}
|
||||||
|
|
||||||
|
module knurled_cyl(chg, cod, cwd, csh, cdp, fsh, smt)
|
||||||
|
{
|
||||||
|
cord=(cod+cdp+cdp*smt/100)/2;
|
||||||
|
cird=cord-cdp;
|
||||||
|
cfn=round(2*cird*PI/cwd);
|
||||||
|
clf=360/cfn;
|
||||||
|
crn=ceil(chg/csh);
|
||||||
|
|
||||||
|
echo("knurled cylinder max diameter: ", 2*cord);
|
||||||
|
echo("knurled cylinder min diameter: ", 2*cird);
|
||||||
|
|
||||||
|
if( fsh < 0 )
|
||||||
|
{
|
||||||
|
union()
|
||||||
|
{
|
||||||
|
shape(fsh, cird+cdp*smt/100, cord, cfn*4, chg);
|
||||||
|
|
||||||
|
translate([0,0,-(crn*csh-chg)/2])
|
||||||
|
knurled_finish(cord, cird, clf, csh, cfn, crn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ( fsh == 0 )
|
||||||
|
{
|
||||||
|
intersection()
|
||||||
|
{
|
||||||
|
cylinder(h=chg, r=cord-cdp*smt/100, $fn=2*cfn, center=false);
|
||||||
|
|
||||||
|
translate([0,0,-(crn*csh-chg)/2])
|
||||||
|
knurled_finish(cord, cird, clf, csh, cfn, crn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
intersection()
|
||||||
|
{
|
||||||
|
shape(fsh, cird, cord-cdp*smt/100, cfn*4, chg);
|
||||||
|
|
||||||
|
translate([0,0,-(crn*csh-chg)/2])
|
||||||
|
knurled_finish(cord, cird, clf, csh, cfn, crn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module shape(hsh, ird, ord, fn4, hg)
|
||||||
|
{
|
||||||
|
x0= 0; x1 = hsh > 0 ? ird : ord; x2 = hsh > 0 ? ord : ird;
|
||||||
|
y0=-0.1; y1=0; y2=abs(hsh); y3=hg-abs(hsh); y4=hg; y5=hg+0.1;
|
||||||
|
|
||||||
|
if ( hsh >= 0 )
|
||||||
|
{
|
||||||
|
rotate_extrude(convexity=10, $fn=fn4)
|
||||||
|
polygon(points=[ [x0,y1],[x1,y1],[x2,y2],[x2,y3],[x1,y4],[x0,y4] ],
|
||||||
|
paths=[ [0,1,2,3,4,5] ]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rotate_extrude(convexity=10, $fn=fn4)
|
||||||
|
polygon(points=[ [x0,y0],[x1,y0],[x1,y1],[x2,y2],
|
||||||
|
[x2,y3],[x1,y4],[x1,y5],[x0,y5] ],
|
||||||
|
paths=[ [0,1,2,3,4,5,6,7] ]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module knurled_finish(ord, ird, lf, sh, fn, rn)
|
||||||
|
{
|
||||||
|
for(j=[0:rn-1])
|
||||||
|
assign(h0=sh*j, h1=sh*(j+1/2), h2=sh*(j+1))
|
||||||
|
{
|
||||||
|
for(i=[0:fn-1])
|
||||||
|
assign(lf0=lf*i, lf1=lf*(i+1/2), lf2=lf*(i+1))
|
||||||
|
{
|
||||||
|
polyhedron(
|
||||||
|
points=[
|
||||||
|
[ 0,0,h0],
|
||||||
|
[ ord*cos(lf0), ord*sin(lf0), h0],
|
||||||
|
[ ird*cos(lf1), ird*sin(lf1), h0],
|
||||||
|
[ ord*cos(lf2), ord*sin(lf2), h0],
|
||||||
|
|
||||||
|
[ ird*cos(lf0), ird*sin(lf0), h1],
|
||||||
|
[ ord*cos(lf1), ord*sin(lf1), h1],
|
||||||
|
[ ird*cos(lf2), ird*sin(lf2), h1],
|
||||||
|
|
||||||
|
[ 0,0,h2],
|
||||||
|
[ ord*cos(lf0), ord*sin(lf0), h2],
|
||||||
|
[ ird*cos(lf1), ird*sin(lf1), h2],
|
||||||
|
[ ord*cos(lf2), ord*sin(lf2), h2]
|
||||||
|
],
|
||||||
|
triangles=[
|
||||||
|
[0,1,2],[2,3,0],
|
||||||
|
[1,0,4],[4,0,7],[7,8,4],
|
||||||
|
[8,7,9],[10,9,7],
|
||||||
|
[10,7,6],[6,7,0],[3,6,0],
|
||||||
|
[2,1,4],[3,2,6],[10,6,9],[8,9,4],
|
||||||
|
[4,5,2],[2,5,6],[6,5,9],[9,5,4]
|
||||||
|
],
|
||||||
|
convexity=5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module knurl_help()
|
||||||
|
{
|
||||||
|
echo();
|
||||||
|
echo(" Knurled Surface Library v2 ");
|
||||||
|
echo("");
|
||||||
|
echo(" Modules: ");
|
||||||
|
echo("");
|
||||||
|
echo(" knurled_cyl(parameters... ); - Requires a value for each an every expected parameter (see bellow) ");
|
||||||
|
echo("");
|
||||||
|
echo(" knurl(); - Call to the previous module with a set of default parameters, ");
|
||||||
|
echo(" values may be changed by adding 'parameter_name=value' i.e. knurl(s_smooth=40); ");
|
||||||
|
echo("");
|
||||||
|
echo(" Parameters, all of them in mm but the last one. ");
|
||||||
|
echo("");
|
||||||
|
echo(" k_cyl_hg - [ 12 ] ,, Height for the knurled cylinder ");
|
||||||
|
echo(" k_cyl_od - [ 25 ] ,, Cylinder's Outer Diameter before applying the knurled surfacefinishing. ");
|
||||||
|
echo(" knurl_wd - [ 3 ] ,, Knurl's Width. ");
|
||||||
|
echo(" knurl_hg - [ 4 ] ,, Knurl's Height. ");
|
||||||
|
echo(" knurl_dp - [ 1.5 ] ,, Knurl's Depth. ");
|
||||||
|
echo(" e_smooth - [ 2 ] ,, Bevel's Height at the bottom and the top of the cylinder ");
|
||||||
|
echo(" s_smooth - [ 0 ] ,, Knurl's Surface Smoothing : File donwn the top of the knurl this value, i.e. 40 will snooth it a 40%. ");
|
||||||
|
echo("");
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue