guidearm_hookprotrflat = 1;
guidearm_hookslope = 0.3;
+guidearm_totallen = 60;
+
+guidearm_screwplatesz = 12;
+guidearm_screwplateth = 4;
+guidearm_screwhole = 4 + 0.5;
+
+guidearm_bendlen = 50;
+
// calculated
guidearm_armdia = guide_armdia - guidearm_armslop;
guidearm_armwidth = guide_armwidth - guidearm_armslop;
guidearm_armcorelen = guide_armcorelen + guidearm_armlenslop;
+guidearm_base_z0 = -(guidearm_totallen - guidearm_armcorelen);
+
+guidearm_realbendlen = max(guidearm_bendlen,
+ guidearm_totallen - guidearm_screwplateth - 0.1);
+
module FilamentGuideArmShaftPositive(){
r = guidearm_armdia/2;
- translate([0,0,-1])
- cylinder(r=r, h= guidearm_armcorelen+2);
+ translate([0,0, guidearm_base_z0+1])
+ cylinder(r=r, h= guidearm_totallen);
translate([0,0, guidearm_armcorelen]){
hull(){
for (ts=[-1,+1]) {
}
}
+module FilamentGuideArmBase(){
+ translate([0,0, guidearm_base_z0]){
+ difference(){
+ translate([0,0, guidearm_screwplateth/2])
+ cube(center=true,
+ [guidearm_armdia + guidearm_screwplatesz*2,
+ guidearm_armwidth,
+ guidearm_screwplateth]);
+ for (ts=[-1,+1]) {
+ translate([ts * (guidearm_armdia/2 + guidearm_screwplatesz/2),
+ 0,
+ -20])
+ cylinder(r= guidearm_screwhole/2, h=40);
+ }
+ }
+ }
+}
+
module FilamentGuideArm(){ ///toplevel
- FilamentGuideArmShaftPositive();
+ intersection(){
+ FilamentGuideArmShaftPositive();
+ cube(center=true,
+ [guidearm_armdia*2,
+ guidearm_armwidth,
+ guidearm_totallen*3]);
+ }
+ FilamentGuideArmBase();
}