//////////////////////////////////////////////////////// // Created by Paul Tibble - 11/5/18 // // https://www.thingiverse.com/Paul_Tibble/about // // Please consider tipping, if you find this useful. // //////////////////////////////////////////////////////// //use the outer diameter of pipe //inner_diameter = 33.40; //33.4 pipe AM too small. 33.23 as printed bumat black robust profile (0.5% error) inner_diameter = 33.51; //33.5 AM ID of commercial adapter + 0.005% ZFactorH = 1.005; //Width percent on the H plane (XY plane features IE a tube straight up) //this worked well in the XY plane but the Z plane legs were too small on both XY and Z. //XY(width) = 32.88 SB 33.51 (as designed was Zfactored in so additional 0.005 needed) = 1.88% + 0.5% from as designed Z increase //Z(height) = 32.9 SB 33.51 (as designed was Zfactored in so additional 0.005 needed)= 1.82% + 0.5% from as designed Z increase //XYFactorV = 1.0188+.005; //Width percent on V plane (XZ or YZ plane features IE a tube laying along the bed) //ZFactorV = 1.0182+.005; //Height percent on V plane (XZ or YZ plane features IE a tube laying along the bed) //came out too loose, maybe the .005 wasn't the right way to do it? XYFactorV = 1.0188; //Width percent on V plane (XZ or YZ plane features IE a tube laying along the bed) ZFactorV = 1.0182; //Height percent on V plane (XZ or YZ plane features IE a tube laying along the bed) // wall_thickness = 4; //from center of fitting to end of port length = 45; //use the wall thickness of the pipe recess_thickness = 2; //how far the pipe enters into the fitting recess_depth = 30; //do not change these $fn = 100*1; inner_radius = inner_diameter/2; outer_diameter = inner_diameter + (wall_thickness*2); outer_radius = outer_diameter/2; fillet_radius = wall_thickness/2; module create_center_bore() { sphere(inner_radius+0.001); } module create_center(){ sphere(outer_radius+0.001); } module create_center_recess_bore() { sphere((inner_radius-recess_thickness)+0.001); } module create_center_recess(){ sphere(inner_radius+0.001); } module create_arm_recess(){ rotate([0,90,0])translate([0,0,(length-recess_depth)/2])cylinder(length-recess_depth,inner_radius+0.001,inner_radius+0.001,true); } module create_arm_recess_bore(){ rotate([0,90,0])translate([0,0,length/2])cylinder(length,(inner_radius-recess_thickness),(inner_radius-recess_thickness),true); } module create_arm_bore(){ rotate([0,90,0])translate([0,0,length])cylinder(length*2,inner_radius,inner_radius,true); } module create_arm_outer(){ rotate([0,90,0]){ rotate_extrude(angle=360,convexity=10){ square([outer_radius,length-fillet_radius]); translate([outer_radius-fillet_radius,length-fillet_radius,0])circle(fillet_radius); translate([0,length-fillet_radius,0])square([outer_radius-fillet_radius,fillet_radius]); } } } module create_Arm1_recess(){ rotate([0,0,0]) scale([1,XYFactorV,ZFactorV]) create_arm_recess(); } module create_Arm1_recess_bore(){ rotate([0,0,0]) scale([1,XYFactorV,ZFactorV]) create_arm_recess_bore(); } module create_Arm1_bore(){ rotate([0,0,0]) scale([1,XYFactorV,ZFactorV]) create_arm_bore(); } module create_Arm1_outer(){ rotate([0,0,0]) scale([1,XYFactorV,ZFactorV]) create_arm_outer(); } module create_Arm2_recess(){ rotate([0,0,90]) scale([1,XYFactorV,ZFactorV]) create_arm_recess(); } module create_Arm2_recess_bore(){ rotate([0,0,90]) scale([1,XYFactorV,ZFactorV]) create_arm_recess_bore(); } module create_Arm2_bore(){ rotate([0,0,90]) scale([1,XYFactorV,ZFactorV]) create_arm_bore(); } module create_Arm2_outer(){ rotate([0,0,90]) scale([1,XYFactorV,ZFactorV]) create_arm_outer(); } module create_Arm3_recess(){ rotate([0,0,-90]) scale([1,XYFactorV,ZFactorV]) create_arm_recess(); } module create_Arm3_recess_bore(){ rotate([0,0,-90]) scale([1,XYFactorV,ZFactorV]) create_arm_recess_bore(); } module create_Arm3_bore(){ rotate([0,0,-90]) scale([1,XYFactorV,ZFactorV]) create_arm_bore(); } module create_Arm3_outer(){ rotate([0,0,-90]) scale([1,XYFactorV,ZFactorV]) create_arm_outer(); } module create_Arm4_recess(){ rotate([0,0,180]) scale([1,XYFactorV,ZFactorV]) create_arm_recess(); } module create_Arm4_recess_bore(){ rotate([0,0,180]) scale([1,XYFactorV,ZFactorV]) create_arm_recess_bore(); } module create_Arm4_bore(){ rotate([0,0,180]) scale([1,XYFactorV,ZFactorV]) create_arm_bore(); } module create_Arm4_outer(){ rotate([0,0,180]) scale([1,XYFactorV,ZFactorV]) create_arm_outer(); } module create_Stem_recess(){ rotate([0,-90,0]) scale([1,ZFactorH,ZFactorH]) create_arm_recess(); } module create_Stem_recess_bore(){ rotate([0,-90,0]) scale([1,ZFactorH,ZFactorH]) create_arm_recess_bore(); } module create_Stem_bore(){ rotate([0,-90,0]) scale([1,ZFactorH,ZFactorH]) create_arm_bore(); } module create_Stem_outer(){ rotate([0,-90,0]) scale([1,ZFactorH,ZFactorH]) create_arm_outer(); } module create_Thru_recess(){ rotate([0,90,0])create_arm_recess(); } module create_Thru_recess_bore(){ rotate([0,90,0])create_arm_recess_bore(); } module create_Thru_bore(){ rotate([0,90,0])create_arm_bore(); } module create_Thru_outer(){ rotate([0,90,0])create_arm_outer(); } //difference(){ union(){ difference(){ union(){ create_center(); //create_arm_outer(); create_Arm1_outer(); create_Arm2_outer(); create_Arm3_outer(); create_Arm4_outer(); create_Stem_outer(); //create_Thru_outer(); } create_center_bore(); //create_arm_bore(); create_Arm1_bore(); create_Arm2_bore(); create_Arm3_bore(); create_Arm4_bore(); create_Stem_bore(); //create_Thru_bore(); } difference(){ union(){ create_center_recess(); //create_arm_recess(); create_Arm1_recess(); create_Arm2_recess(); create_Arm3_recess(); create_Arm4_recess(); create_Stem_recess(); //create_Thru_recess(); } create_center_recess_bore(); //create_arm_recess_bore(); create_Arm1_recess_bore(); create_Arm2_recess_bore(); create_Arm3_recess_bore(); create_Arm4_recess_bore(); create_Stem_recess_bore(); //create_Thru_recess_bore(); } } //translate([0,0,-100])cube([200,200,200],true); //}