+// -*- C -*-
+//
+// cliphook.scad
+//
+// 3D design for a small clippy hook
+// Copyright 2012,2016 Ian Jackson
+//
+// This work is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This work is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this work. If not, see <http://www.gnu.org/licenses/>.
function ClipHook_r2(w,g,l,ye,k) = w/2 + g + w/2;
function ClipHook_r3(w,g,l,ye,k) = k * (ClipHook_r2(w,g,l,ye,k) + w + g);
difference() {
circle(r=r2);
translate([0,0,-1])
- circle(r=r1, h=h+2);
+ circle(r=r1);
}
scale(size) {
for (ai=[0:4]) {
- echo(" jarc ", a1,a2, astep, ai, a1 + astep*ai );
+ //echo(" jarc ", a1,a2, astep, ai, a1 + astep*ai );
rotate(a1 + astep*ai) {
polygon([ [0,0], [1,0],
[cos(astep*2),sin(astep*2)] ]);
linear_extrude(height=h)
ClipHook_2D(w,g,l,ye,k);
if (cupcapg != 0) {
- translate([0,-(w+g),h-cupcaph])
+ translate([-g+0.01,-(w+g),h-cupcapg])
cube([w,(w+g),cupcaph+1]);
}
}
if (cupcaph != 0) {
translate([-l/2, g/2+w/2, h-0.01])
intersection() {
- cylinder(r=ClipHook_r2(w,g,l,ye,k)+w/2, h=cupcaph, $fn=16);
+ cylinder(r=ClipHook_r2(w,g,l,ye,k)+w*0.4, h=cupcaph, $fn=16);
translate([-50-g,-50,-1]) cube([50,100,h+2]);
}
}