49 lines
1.9 KiB
OpenSCAD
49 lines
1.9 KiB
OpenSCAD
|
// Bag hanger
|
||
|
// length units are millimeters
|
||
|
|
||
|
rodDiameter = 32;//31.74;
|
||
|
rodRadius = rodDiameter / 2;
|
||
|
hangerThickness = 6.00;
|
||
|
outerHangerRadius = rodRadius + hangerThickness;
|
||
|
fullHeight = 50.00;
|
||
|
hookThickness = 15.00;
|
||
|
hookStemLength = rodRadius * 2;
|
||
|
hookStopperRadius = hangerThickness + 1;
|
||
|
|
||
|
circleResolution=360*4; // faces per rotation
|
||
|
|
||
|
include <ng_common/hollow_cylinder.scad>;
|
||
|
|
||
|
// hanger pole wrapper
|
||
|
difference() {
|
||
|
hollowCylinder(rodRadius, outerHangerRadius, fullHeight);
|
||
|
translate([-rodRadius, 0, -0.01])
|
||
|
cube([rodRadius * 2, outerHangerRadius + 0.01, fullHeight + 0.02]);
|
||
|
translate([-outerHangerRadius, rodRadius - (hangerThickness * 1.5), -0.01])
|
||
|
cube([outerHangerRadius * 2, outerHangerRadius + 0.01, fullHeight + 0.02]);
|
||
|
}
|
||
|
|
||
|
// connector from hanger cylinder to hook
|
||
|
translate([rodRadius, 0, 0])
|
||
|
cube([hangerThickness, hookStemLength + outerHangerRadius, hookThickness]);
|
||
|
|
||
|
// quarter cylinder for hook
|
||
|
translate([0, hookStemLength + outerHangerRadius, 0]) difference() {
|
||
|
hollowCylinder(rodRadius, outerHangerRadius, hookThickness);
|
||
|
translate([-(outerHangerRadius + 0.01),-(outerHangerRadius + 0.01),-0.01])
|
||
|
cube([outerHangerRadius + 0.01, (outerHangerRadius * 2) + 0.02, hookThickness + 0.02]);
|
||
|
translate([-(outerHangerRadius + 0.01),-(outerHangerRadius + 0.01),-0.01])
|
||
|
cube([(outerHangerRadius * 2) + 0.02, outerHangerRadius + 0.02, hookThickness + 0.02]);
|
||
|
}
|
||
|
|
||
|
// hook
|
||
|
translate([0, outerHangerRadius + hookStemLength + outerHangerRadius - (hangerThickness/2)]) {
|
||
|
cylinder(h=fullHeight, r=hangerThickness, $fn=circleResolution);
|
||
|
translate([0,0,fullHeight])
|
||
|
difference() {
|
||
|
cylinder(h=hangerThickness / 2, r=hookStopperRadius, $fn=circleResolution);
|
||
|
translate([- (hookStopperRadius + 0.01),-0.01,-0.01])
|
||
|
cube([(hookStopperRadius * 2) + 0.02, hookStopperRadius + 0.02, hangerThickness / 2+ 0.02]);
|
||
|
}
|
||
|
}
|