Thanks but...
Isn't G76 for threading on a lathe and G33.1 for rigid tapping? I'm doing
thread milling.

> -----Original Message-----
> From: Gene Heskett [mailto:[email protected]]
> Sent: Wednesday, March 21, 2018 2:07 PM
> To: [email protected]
> Subject: Re: [Emc-users] Tapered Helix
>
> On Wednesday 21 March 2018 10:47:31 Ken Strauss wrote:
>
> > I need to thread mill some tapered threads (similar to normal pipe
> > threads -- NPT). I am considering using polar coordinates in
> > incremental mode to approximate a tapered helix. Is that reasonable?
> > Is there a better way? Will cumulative errors bite me after hundreds
> > of incremental moves?
> >
> How big, Ken? Inside I assume... I have used both the G76 and G33.1 for
low
> angle stuffs by setting the entrance or exit paper length to
> 1 pitch less than the length of the thread.  The man page is wrong when
says
> the taper limit is 1/2 the thread length. I think that could be extended
by
> doing the first using that rule of one pitch less than the total stroke,
and if
> thats not deep enough, advance the z a multiple of the pitch, I've not
proved
> it, might need some adjusting, and reduce the starting r by the height
> difference used in the first pass.
>
> I have used this code to make a socket in the end of a shaft, that with a
> matching taper threaded nut, and making 4 petals out of the walls with
edm,
> to compress an A2 shaft onto a smallish ball screw, by tightening the nut.
Its
> driving the x axis of my Sheldon 11x36 right now. With some green
> threadlocker in the socket, I don't expect it to slip until I loosen the
nut.
>
> Here is that file, quite complex because I tend to make a one trip
Bumstead
> out of projects like this, so it can be switched from boreing to turning
yadda
> yadda.
>
> Setup ATM for making the nut described above. load it into LinuxCNC, and
> expand the backplot to get a good view of what it does.  Reading the code
will
> show you where and what to modify for your project, if its usable at all.
> ===================cut here>
> %
> ( this is to make use of the g33 routine to carve a thread in the format )
( of a
> pipe thread, in this case an odd size that would resemble a 3/16" ) ( pipe
> thread is indeed there ever was such a thing. :) ( because that seems to
be a
> Merican only thing, all starting dimensions are in inch) ( there is a BS
spec,
> looks a lot like ASTME to me :) ( since everything is converted to metric
below,
> make sure its in metric mode) ( We start not with a Merican fractonal, but
at
> any arbitrary size ) ( and tpi, and degrees of taper desired if desired. )
( length
> of taper will be based on the thickness of the nut, which will determine )
(
> that the stated angle will be true for the length of the nut ) ( however,
the
> actual Z travel will be longer since the initial Z should be a ) ( couple
mm's
> from first contact.)
> (logopen,/home/gene/linuxcnc/g33debug.txt)
> G21 (metric)
> G8 (lathe radius mode)
> G61
> S350
> ( set straight, like g76 by bypassing the G33 stuff)
> #<_do_taper>          = 0.000000
> #<_taper_deg>         = 7 ( degrees here, translates to sin[7]  later)
> #<_bore_turn>                 = 0.00000000 ( 1 for bore, zero for an
external
> profile)
> #<_input_is_inch>     = 1.00000000 ( zero for all metric inputs)
> #<_tpi>                       =       50 (adjustable. If input is inches,
use inch, else
> PUT mm's here)
> #<_mkmmfctr>          =       25.4 (inch <-> metric conversion)
> ( constants from Cecils images )
> #<_e_xz_fctr>         =       0.7082000000 ( external -x +z combined feed
> factor)
> #<_e_doc_fctr>                =       0.6134000000 ( external thread
d.o.c. external
> cuts deeper)
> #<_i_xz_fctr>         =       0.6250000000 ( internal +x +z combined feed
> factor)
> #<_i_doc_fctr>                =       0.5427000000 ( internal thread
d.o.c. internal
> is shallower)
> (edit these)
> #<_start_OD>          =       0.75500000 ( this is inches at the min/max
OD
> of thread it fits)
> #<_thread_len>                =       0.56000000 (is inches, thickness of
nut I
> started with )
> #<_passes>            = 25.00000000 (easy on the tool, constant advance)
> #<_spring_passes>     = 5.00000000
>
>
> (z advance derived from Cecils images IS NOT 100% CORRECT YET)
> #<_e_z_advance>               = [[#<_e_xz_fctr> - #<_e_doc_fctr>] /
#<_passes>]
> #<_i_z_advance>               = [[#<_i_xz_fctr> - #<_i_doc_fctr>] /
#<_passes>]
> (log,38 e z advance per pass=#<_e_z_advance>)
> (log,39 i z advance per pass=#<_i_z_advance>) ( now the x increments)
> #<_e_x_advance>               = [#<_e_doc_fctr> / #<_passes>]
> #<_i_x_advance>               = [#<_i_doc_fctr> / #<_passes>]
> (log,43 e x advance per pass=#<_e_x_advance>)
> (log,44 i x advance per pass=#<_i_x_advance>) ( these figures s/b very
small )
>
> o005 IF [#<_input_is_inch> gt 0.50000000]
>
> #<_tpmm>              = [#<_mkmmfctr> / #<_tpi>] (mm's! - is correct )
> #<_start_OD>          = [#<_start_OD> * 0.5000000 * #<_mkmmfctr>]
> #<_thread_len>                = [#<_thread_len> * #<_mkmmfctr>]
>
> o005 ELSE
>
> #<_tpmm>              = #<_tpi>
>
> o005 ENDIF
> (log,57 tpmm=#<_tpmm>)
> (log,58 start OD in mm=#<_start_OD>)
> (log,59 thread length in mm=#<_thread_len>)
>
> ( now we have the Major radius start_OD that everything else references
one
> way or another )
> #<_e_x_mnr_R>         =       [#<_start_OD> + [#<_e_doc_fctr> *
> #<_tpmm>]] ( final d.o.c. )
> #<_e_x_mjr_R>         =       [#<_start_OD> + #<_tpmm>]
> #<_i_x_mjr_R>         =       #<_start_OD> ( final size of thread s/b
correct
> )
> ( s/b reasonable mm's?  below )
> (log,65 i_x_mjr_R=#<_i_x_mjr_R>)
> #<_i_x_mnr_R>         =       [#<_i_x_mjr_R> - [#<_i_doc_fctr>*
> #<_tpmm>]] ( starting bore size for the nut )
>
> (log,68 tpmm=#<_tpmm>)
> (log,69 e_mjr_R=#<_e_x_mjr_R>)
> (log,70 e_mnr_R=#<_e_x_mnr_R>)
> (log,71 i_mjr_R=#<_i_x_mjr_R>)
> (log,72 i_mnr_R=#<_i_x_mnr_R>)
>
> #<_e_pass>    =       [#<_e_x_advance> / #<_passes>]
> (log,75 e_pass=#<_e_pass>)
> #<_i_pass>    =       [#<_i_x_advance> / #<_passes>]
> (log,77 i_pass=#<_i_pass>)
>
> ( now 4 more things that will be needed, P/8 will be assumed as ) ( real
tip flat
> + 0.000, but real tip flat width has yet TBD. So ) ( assume it has a
finite value =
> pdiv8 with the sign made negative ) ( so pdiv8=0.00, pdiv6 and pdiv4
reduced
> accordingly.  This DOES NOT ) ( change with the thread being cut, but with
the
> chip doing the cutting ) ( So P/6 will be P/6 - real tip flat ) ( and P/4
will be P/4
> - real tip flat )
> #<_realtipflat>       =       -0.1175930000 (will make pdiv8=0.0000 until
I know
> better )
> #<_pdiv8>             =       [[#<_tpmm> / 8.00000000 ] + #<_realtipflat>]
> #<_pdiv6>             =       [[#<_tpmm> / 6.00000000 ] + #<_realtipflat>]
> #<_pdiv4>             =       [[#<_tpmm> / 4.00000000 ] + #<_realtipflat>]
> (log,90 realtipflat=#<_realtipflat>)
> (log,91 pdiv8=#<_pdiv8>)
> (log,92 pdiv6=#<_pdiv6>)
> (log,93 pdiv4=#<_pdiv4>)
> ( now we can adjust realtipflat until its correct, but my machine ) ( is
not THAT
> accurate. Time to make that tapered front gib. ) ( 2 months later!) (
done,
> made both, turned out to be hell with a twisted file!) ( looks like I
might be
> ready to state the premise of what we do with ) ( all this data. )
>
> o100 IF [#<_bore_turn> gt 0.500000]
> (we're making a nut)
> #<_start_rad>         = #<_i_x_mjr_R>
> #<_end_rad>   = #<_i_x_mnr_R>
> #<_x_advance> = #<_i_x_advance>
> #<_z_advance> = -#<_i_z_advance>
> #<_back_clear>        = [#<_end_rad> - [#<_tpmm> * 0.50000000]]
> #<_z_end>     = -#<_thread_len>
> #<_x_taper>   = -[0.50000000 * #<_thread_len> * SIN[#<_taper_deg>]]
>
> o100 ELSE
> ( we are turning a shaft)
> #<_e_x_mnr_R> =       [#<_start_OD> - [#<_e_doc_fctr> * #<_tpmm>]] (
> final d.o.c. )
> #<_e_x_mjr_R> =       [#<_start_OD> + #<_tpmm>]
> (we're cutting an external taper)
> #<_start_rad> = #<_e_x_mnr_R>
> #<_end_rad>   = #<_e_x_mjr_R>
> #<_x_advance> = #<_e_x_advance>
> #<_z_advance> = #<_e_z_advance>
> #<_back_clear>        = [#<_start_rad> + 1]
> #<_z_end>     = -#<_thread_len>
> #<_x_taper>   = [0.50000000 * #<_thread_len> * SIN[#<_taper_deg>]]
> o100 ENDIF
> (log,115 start rad=#<_start_rad>)
> (log,116 end rad=#<_end_rad>)
> (log,117 x advance per pass=#<_x_advance>)
> (log,118 z advance per pass=#<_z_advance>)
> (logclose)
> (m6t6)
> m3
> #<_z_tmp> = 0.00000000
> #<_x_tmp> = 0.00000000
> (G1 f650 Z2)
> (G1 X#<_start_rad>)
>
> o600 IF [#<_do_taper> gt .5000000]
>
> o500 WHILE [#<_passes> gt 0.0000000]
> (G1f400 Z#<_z_tmp>)
> G1 F500 X[#<_start_rad> - #<_x_tmp>]
> G1 Z#<_z_tmp>
> (G33 x z k)
> G33 Z[#<_z_end> + #<_z_tmp>] X[#<_end_rad> - #<_x_tmp>] K#<_tpmm>
> G1 F800 x#<_back_clear>
> G1 F950 z#<_z_tmp>
> #<_z_tmp>     = [#<_z_tmp> + [-#<_z_advance> * 4.0000000]]
> #<_x_tmp>     = [#<_x_tmp> + #<_x_advance>]
> #<_passes>    = [#<_passes> - 1.00000000]
> o500 ENDWHILE
> #<_count>     = #<_spring_passes>
> o550 WHILE    [#<_count> ge 0.00000]
> g1 x#<_back_clear>
> g1 F750 z#<_z_tmp>
> G1 F600 X[#<_start_rad> - #<_x_tmp>]
> G33 Z[#<_z_end> + #<_z_tmp>] X[#<_end_rad> - #<_x_tmp>] K#<_tpmm>
> #<_count>     =       [#<_count> - 1.000000]
>
> o550 ENDWHILE
>
> G1 F500 Z0.0000 (back at starting Z)
> #<_z_tmp>     = 0.00000
> #<_x_tmp>     = 0.00000
>
> G1 F50 x[#<_start_OD> + 2.355000000] (in mm's folks, shrink to cut deeper)
> G1 z#<_z_tmp>
> (debug,start_od=#<_start_OD>)
> #<_thread_len>        =       [#<_thread_len> + 0.25000]
> (debug,thread_len=#<_thread_len>)
> #<_i_tmp>     =       -1.75000
> (debug,_tpmm=#<_tpmm>)
> #<_k_tmp>     =       [#<_tpmm> * 1.95000]
> (debug,k_tmp=#<_k_tmp>)
>
> o600 ENDIF
> #<_k_tmp>     =       [#<_tpmm> * 1.95000]
> #<_i_tmp>     =       0.90000
> G1 F400 x[#<_start_OD> - 2.400]
> G1 F400 z0.0000       ( and back to the starting z)
> ( one line added to cut rear tapered nut)
> #<_e_taper>   = ABS[#<_thread_len> - #<_tpmm>]
> G76 Z-#<_thread_len> I#<_i_tmp> j.150 P#<_tpmm> K#<_k_tmp> Q29.9 R1.7
> H10 E#<_e_taper> L2
>
> G1 x[#<_start_OD> - 2.000]
> G1 F950 z200
> m5
> m2
> <cut here==================
>
> --
> Cheers, Gene Heskett
> --
> "There are four boxes to be used in defense of liberty:
>  soap, ballot, jury, and ammo. Please use in that order."
> -Ed Howdershelt (Author)
> Genes Web page <http://geneslinuxbox.net:6309/gene>
>
>
----------------------------------------------------------------------------
--
> Check out the vibrant tech community on one of the world's most engaging
> tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Emc-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/emc-users



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to