@@ -2029,26 +2029,29 @@ module generic_threaded_rod(
20292029 assert(r1adj+ pmax- clip_bev1> 0 , "bevel1 is too large to fit screw diameter" )
20302030 assert(r2adj+ pmax- clip_bev2> 0 , "bevel2 is too large to fit screw diameter" )
20312031 assert(abs (clip_bev1)+ abs (clip_bev2)< len, "Combined bevel size exceeds length of screw" );
2032+
20322033 attachable(anchor,spin,orient, r1= r1adj, r2= r2adj, l= len) {
20332034 union (){
20342035 difference () {
2035- vnf_polyhedron(thread_vnf,convexity= 10 );
2036- if (clip_bev1> 0 )
2037- rotate_extrude()
2038- polygon([[ 0 ,- len/2 ],
2039- [r1adj+ pmax- clip_bev1 ,- len/2 ],
2040- [r1adj+ pmax- slope* clip_bev1,- len/2 + clip_bev1],
2041- [ rmax+ 1 ,- len/2 + clip_bev1],
2042- [ rmax+ 1 , len1- 1 ],
2043- [ 0 , len1- 1 ]]);
2044- if (clip_bev2> 0 )
2045- rotate_extrude()
2046- polygon([[ 0 , len/2 ],
2047- [r2adj+ pmax- clip_bev2 , len/2 ],
2048- [r2adj+ pmax+ slope* clip_bev2, len/2 - clip_bev2],
2049- [ rmax+ 1 , len/2 - clip_bev2],
2050- [ rmax+ 1 , len2+ 1 ],
2051- [ 0 , len2+ 1 ]]);
2036+ vnf_polyhedron(thread_vnf,convexity= 10 );
2037+ __rot_if_old(){ // works around change in rotate_extrude starting point
2038+ if (clip_bev1> 0 )
2039+ rotate_extrude(angle= 360 )
2040+ polygon([[ 0 ,- len/2 ],
2041+ [r1adj+ pmax- clip_bev1 ,- len/2 ],
2042+ [r1adj+ pmax- slope* clip_bev1,- len/2 + clip_bev1],
2043+ [ rmax+ 1 ,- len/2 + clip_bev1],
2044+ [ rmax+ 1 , len1- 1 ],
2045+ [ 0 , len1- 1 ]]);
2046+ if (clip_bev2> 0 )
2047+ rotate_extrude(angle= 360 )
2048+ polygon([[ 0 , len/2 ],
2049+ [r2adj+ pmax- clip_bev2 , len/2 ],
2050+ [r2adj+ pmax+ slope* clip_bev2, len/2 - clip_bev2],
2051+ [ rmax+ 1 , len/2 - clip_bev2],
2052+ [ rmax+ 1 , len2+ 1 ],
2053+ [ 0 , len2+ 1 ]]);
2054+ }
20522055 if (! blunt_start1 && clip_bev1<= 0 )
20532056 down(len/2 ) cuboid([2 * rmax+ 1 ,2 * rmax+ 1 , - len1+ 1 ], anchor= TOP);
20542057 if (! blunt_start2 && clip_bev2<= 0 )
@@ -2094,6 +2097,13 @@ module generic_threaded_rod(
20942097
20952098
20962099
2100+ module __rot_if_old()
2101+ {
2102+ if (version_num()>= 20250314 ) children();
2103+ else zrot(180 ) children();
2104+ }
2105+
2106+
20972107// Module: generic_threaded_nut()
20982108// Synopsis: Creates a generic threaded nut.
20992109// SynTags: Geom
0 commit comments