$fn = 32; set_screw_dia = 3.05; rod_size = 7.85; rod_length = 170; //spacing between rods rod_distance = 0; //diameter of race ball_bearing_race_dia = 32.75; //individual ball bearing size ball_bearing_size = 6.4; probe_shaft = 17; //ball feet diameter feet_dia = 12.7; encoder_shaft_dia = 6.0; //counter bore diameter cb_dia = 7; //counter bore height cb_height = 5; //rotary encoder bolt hold circle radius enc_bolt_r = 15; /* rotate([90,90,0]) translate([0,0,-50]) cylinder( d = 60, h = 60, center = true); */ connector_encoder(); //translate([0,45,0]) //encoder(); test_rod_holder(); module test_rod_holder(){ difference(){ union(){ //arm side rod holder translate([0,-1,0]) rotate([90,0,0]) cylinder(d1 = 60, d2 = 35, h = 30, center = true); } //rod connection through hole translate([0,rod_distance,46]) cylinder(d = rod_size, h = 81, center = true); //encoder through hole translate([0,-1,0]) rotate([90,0,0]) cylinder(d = encoder_shaft_dia + .12, h = 40, center = true); //carbon arrow shaft hole translate([0,-9,0]) rotate([90,0,0]) cylinder(d = rod_size, h = 20, center = true); //side rod set screw hole 2 translate([0,0,0]) rotate([90,0,90]) cylinder(d = set_screw_dia, h = 70, center = true); //side rod set screw hole 2 translate([0,-10,0]) rotate([90,0,90]) cylinder(d = set_screw_dia, h = 70, center = true); //side rod set screw for encoder shaft translate([0,8,0]) rotate([90,0,90]) cylinder(d = set_screw_dia, h = 70, center = true); } } module connector_encoder(){ difference(){ union(){ //arm rotary //translate([0,0,0]) //rotate([90,0,0]) //cylinder(d = 40, h = 35, center = true); //arm rotary holder translate([0,31,0]) rotate([90,0,0]) cylinder(d = 60, h = 30, center = true); //big body translate([0,55,0]) rotate([90,0,0]) cylinder(d1 = 80, d2 = 60, h = 30, center = true); //translate([0,15,-48]) //cube([38,62,50], center = true); } //bolt clearance for( i = [0:2]){ translate([0,20,0]) rotate([90,i*120+30,0]) translate([enc_bolt_r,0,0]) cylinder(d = 4, h = 20, center = true); } //bolt counterbore for( i = [0:2]){ translate([0,17,0]) rotate([90,i*120+30,0]) translate([enc_bolt_r,0,0]) cylinder(d = cb_dia, h = cb_height, center = true); } //clearance for encoder shaft translate([0,10,0]) rotate([0,90,90]) cylinder(d = 7.5, h = 60, center = true); //clearance for encoder small part translate([0,23,0]) rotate([0,90,90]) cylinder(d = 22, h = 11, center = true); //clearance for encoder body translate([0,37,0]) rotate([0,90,90]) cylinder(d = 45, h = 26, center = true); //clearance for encoder body translate([0,77,0]) rotate([0,90,90]) cylinder(d1 = 45, d2 = 75, h = 76, center = true); //cable out hull(){ translate([0,53,0]) cylinder(d = 18, h = 90, center = true); translate([0,73,0]) cylinder(d = 18, h = 90, center = true); } } } //Omron Encoder module encoder(){ difference(){ union(){ //body color("BurlyWood", 1.0){ rotate([0,90,90]) cylinder(d = 40, h = 39, center = true); //top of encoder (20mm) translate([0,-22,0]) rotate([0,90,90]) cylinder(d = 20, h = 5, center = true); //cable support translate([0,7.5,25]) rotate([0,0,90]) cylinder(d = 10, h = 12, center = true); } //cable stub color("black", 1.0){ translate([0,7.5,37]) rotate([0,0,90]) cylinder(d = 8, h = 12, center = true); } //shaft color("silver", 1.0){ translate([0,-32,0]) rotate([0,90,90]) cylinder(d = 6, h = 15, center = true); } } //bolt holes for( i = [0:2]){ translate([0,-16,0]) rotate([90,i*120,0]) translate([enc_bolt_r,0,0]) cylinder(d = 3, h = 8, center = true); } } }