Hi Chris,
OK, I don't know about your programming skills, but I guess you are somehow skilled in OpenSCAD.
Let me point you to my threading.scad lib:
https://www.thingiverse.com/thing:1659079I tried to model it. Use this code as a starting point
use <threading.scad>
$fn = 100;
help_threading();
// outer 1.5"BSW thread with a 50mm thread length,
// inner M16x2.0
// hexhead
//
https://en.wikipedia.org/wiki/British_Standard_Whitworthd_head = 61.2; // mm from wiki
h_head = 10;
h = 50 + h_head;
bswPitch = 4.233; // mm from wiki
bswOD = 38.1; // mm from wiki
M16Pitch = 2;
M16OD = 16;
bolt();
module bolt()
difference()
{
// outer 1.5"BSW
union()
{
threading(pitch = bswPitch, full=true, d=bswOD, windings=h/bswPitch, angle = 58);
cylinder(d = d_head, h= h_head, $fn=6);
}
// inner M16
translate([0,0,-.01]) // just for F5
threading(pitch = M16Pitch, d = M16OD, windings = h/M16Pitch+1, full = true, angle = 60);
}