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([0,0, guidearm_armcorelen]){
hull(){
FilamentGuideArmStop(guidearm_hookprotrflat);
- translate([0,0, guidearm_hookprotr/guidearm_hookslope])
+ translate([0,0, guidearm_slopelen])
cylinder(r=r, h=guidearm_hookprotrflat, $fn=80);
}
}
}
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),
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,