56 lines
1.6 KiB
OpenSCAD
56 lines
1.6 KiB
OpenSCAD
// hook designed to hook knots on small diameter cord and be as snagless as possible
|
|
|
|
// closed hole diameter
|
|
cdLoop = 3.1;
|
|
// hook slot width
|
|
cdHook = 2;
|
|
// slot section od
|
|
bigD = 20;
|
|
// closed hole section od
|
|
smallD = 9;
|
|
// slot angle
|
|
degSlot = 40;
|
|
// thickness
|
|
thick = 5;
|
|
// minkowski sphere radius, fillet rad sort of
|
|
filletRad = 2;
|
|
// sets side bulge. adds strength and beauty. low value will cause failed print. tested at 0.4
|
|
bulbousness = 0.4;
|
|
// 40+ faces for print but it makes minkowski very slow in editing
|
|
$fn = 45;
|
|
|
|
// diff for slicing off top bottom and loop hole
|
|
difference(){
|
|
//trace sphere for chamfering around union of two cylinders with slot
|
|
minkowski(){
|
|
//two cylinders with a slot cut at around ? degrees
|
|
difference(){
|
|
union(){
|
|
cylinder(d = bigD, thick * bulbousness, center = true);
|
|
// center starts origin, so translate up sin30 and right cos30
|
|
translate([cos(degSlot) * bigD/2, sin(degSlot) * bigD/2, 0]){
|
|
cylinder(d = smallD, thick * bulbousness, center = true);
|
|
}
|
|
}
|
|
// slot:
|
|
translate([50, 0, 0]){
|
|
cube([100, cdHook + 2 * filletRad, 2], center = true);
|
|
}
|
|
// rounded slot pocket:
|
|
cylinder(d = cdHook + 2 * filletRad, 2, center = true);
|
|
} // diff
|
|
|
|
sphere(r = filletRad);
|
|
|
|
}
|
|
|
|
// minus:
|
|
translate([cos(degSlot) * bigD/2, sin(degSlot) * bigD/2, 0]){
|
|
cylinder(d = cdLoop, 55, center = true);
|
|
}
|
|
for (dir = [-1, 1]) translate([0, 0, dir * (thick / 2 + 1)]){
|
|
cube([99, 99, 2], center = true);
|
|
}
|
|
}
|
|
|