guidearm_armslop = 0.25;
guidearm_armlenslop = 0.25;
-guidearm_hookprotr = 4;
+guidearm_hookprotr = 3;
guidearm_hookprotrflat = 1;
guidearm_hookslope = 0.3;
guidearm_screwplatesz = 12;
guidearm_screwplateth = 4;
-guidearm_screwhole = 4 + 0.5;
+guidearm_screwplatewd = 15;
+guidearm_screwhole = 5 + 0.5;
-guidearm_bendlen = 50;
-guidearm_bendslot = 5;
+guidearm_bendlen = 40;
+guidearm_bendslot = 4.5;
guidearm_stopthick = 4;
+guidearm_protrslop = 1.0;
// calculated
guidearm_realbendlen = min(guidearm_bendlen,
guidearm_totallen - guidearm_screwplateth - 0.1);
+guidearm_slopelen = guidearm_hookprotr/guidearm_hookslope;
module FilamentGuideArmStop(h){
for (ts=[-1,+1]) {
translate([ts * guidearm_hookprotr, 0,0])
- cylinder(r=guidearm_armdia/2, h);
+ cylinder(r=guidearm_armdia/2, h, $fn=80);
}
}
r = guidearm_armdia/2;
translate([0,0, guidearm_base_z0+1])
- cylinder(r=r, h= guidearm_totallen);
+ cylinder(r=r, h= guidearm_totallen, $fn=80);
translate([0,0, guidearm_armcorelen]){
hull(){
FilamentGuideArmStop(guidearm_hookprotrflat);
- translate([0,0, guidearm_hookprotr/guidearm_hookslope])
- cylinder(r=r, h=guidearm_hookprotrflat);
+ translate([0,0, guidearm_slopelen])
+ cylinder(r=r, h=guidearm_hookprotrflat, $fn=80);
}
}
mirror([0,0,1])
}
module FilamentGuideArmBase(){
- translate([0,0, guidearm_base_z0]){
+ translate([0,
+ (guidearm_screwplatewd - guidearm_armwidth)/2,
+ guidearm_base_z0]){
difference(){
translate([0,0, guidearm_screwplateth/2])
cube(center=true,
[guidearm_armdia + guidearm_screwplatesz*2,
- guidearm_armwidth,
+ guidearm_screwplatewd,
guidearm_screwplateth]);
for (ts=[-1,+1]) {
translate([ts * (guidearm_armdia/2 + guidearm_screwplatesz/2),
0,
-20])
- cylinder(r= guidearm_screwhole/2, h=40);
+ cylinder(r= guidearm_screwhole/2, h=40, $fn=20);
}
}
}
cube([guidearm_bendslot,
100,
guidearm_realbendlen + 100]);
+ hull(){
+ for (zx=[ [ 0, guidearm_bendslot ],
+ [ guidearm_armcorelen + guidearm_slopelen,
+ guidearm_hookprotr*2 + guidearm_protrslop ]
+ ]) {
+ translate([-zx[1]/2, -50, zx[0]])
+ cube([zx[1], 100, 1]);
+ }
+ }
}
cube(center=true,
[guidearm_armdia*2,
FilamentGuideArmBase();
}
+module FilamentGuideArmPrint(){ ////toplevel
+ rotate([90,0,0])
+ FilamentGuideArm();
+}
module Demo(){
translate([-hubeffrad-30,50,0]) Hub();
//StorArmHoleTest();
//FilamentGuideSpacer();
//FilamentGuideArm();
+//FilamentGuideArmPrint();
//Demo();