// -*- C -*- // print on High Detail // but adjust infill to 50% include inch = 25.4; positive_dia = inch * 3/8. - 0.375; positive_l = inch * 1/2.; negative_dia = inch * 1/4. + 0.375; negative_l = 10.0; negative_wall = 4; midsection = 4; spanner = 12; negative_tpi = 20; negative_pitch = inch/negative_tpi; negative_chamfer = negative_pitch/2; base_dia = 35; base_th_min = 1; base_th_max = 4; //$test = true; $test = false; $fs=0.1; $fa=5; module Adapter(){ translate([0,0,-0.1]) english_thread(diameter=positive_dia/inch, threads_per_inch=16, leadin=1, test=$test, length= (positive_l + 0.1) / inch); rotate([180,0,0]) { difference(){ union(){ cylinder(r= spanner/2 * 1/(0.5 * sqrt(3)), h = negative_l + midsection, $fn=6); translate([0,0, midsection+negative_l]) { mirror([0,0,1]) { hull(){ cylinder(r= base_dia/2, h = base_th_min); cylinder(r= 0.1, h = base_th_max); } } } } translate([0,0, midsection]) english_thread(diameter=negative_dia/inch, threads_per_inch=negative_tpi, leadin=0, internal=true, test=$test, length= (negative_l + inch/19) / inch); translate([0,0, midsection+negative_l]) { hull(){ translate([0,0, negative_chamfer]) cylinder(r= negative_dia/2 + negative_chamfer*2, h=1); mirror([0,0,1]) cylinder(r= negative_dia/2 - negative_chamfer*2, h= negative_chamfer*3); } } } } } Adapter();