Single-point knurling on a Lathe?
Close
Login to Your Account
Results 1 to 19 of 19
  1. #1
    Join Date
    Jan 2013
    Country
    AUSTRALIA
    Posts
    168
    Post Thanks / Like
    Likes (Given)
    15
    Likes (Received)
    9

    Default Single-point knurling on a Lathe?

    Hi All,

    I am trying to work out how to do Single-point knurling on my lathe. I have watched a few videos on the subject but they didn't really help. Does anyone have a sample of some G-code to do it?

  2. #2
    Join Date
    Oct 2010
    Location
    Dewees Texas
    Posts
    3,259
    Post Thanks / Like
    Likes (Given)
    35
    Likes (Received)
    1088

    Default

    I think it would be time consuming and abusive to the machine, but I have never attempted it or watched a video attempt.
    Cut knurls can look super and the tools for the job are not that expensive.

  3. #3
    Join Date
    Jun 2012
    Country
    UNITED STATES
    State/Province
    Michigan
    Posts
    13,862
    Post Thanks / Like
    Likes (Given)
    4725
    Likes (Received)
    4988

    Default

    Perhaps use the side of a tap for a tool bit, run at a very course TPI, flip the bit(tap side), and reverse direction with considering the distance between cuts.

    Or

    Single point at 5 TPI for .200 between cuts but only go .025 deep.
    then come back from right to left cutting the other way, with .100 spacing.

    Good for a PM lathe guy to play with and report back.

  4. #4
    Join Date
    Jul 2013
    Location
    Indiana
    Posts
    3,429
    Post Thanks / Like
    Likes (Given)
    5037
    Likes (Received)
    1760

    Default

    Quote Originally Posted by rick-b View Post
    Hi All,

    I am trying to work out how to do Single-point knurling on my lathe. I have watched a few videos on the subject but they didn't really help. Does anyone have a sample of some G-code to do it?
    What control do you have? I jacked around with this once. Ended up with a diamond shaped pattern, if refined could it could resemble a knurled surface. I can post the code later tonight when I get in if I can find it in my mess of a file system. Lol..

    I kinda agree with the guy ^ up there, keep the R's on the low side or you'll get a surprise on the first pass, probably beat up the machine too. Basically what I did is in the thread below.

    Single Point Knurling on CNC Lathe - Can it be done?

    Brent

    20140725_201058-1-.jpg
    20140726_191213-1-.jpg

  5. Likes michiganbuck, rick-b liked this post
  6. #5
    Join Date
    Jul 2013
    Location
    Indiana
    Posts
    3,429
    Post Thanks / Like
    Likes (Given)
    5037
    Likes (Received)
    1760

    Default

    Another thing, if you have a machine with a Fanuc control that uses the two line G76 cycle I'd switch it over to FS15 and use the one line format for the ease of programming, especially if you're just jacking around testing to see what makes you happy.

    I think the Q variable is the number of starts? Maybe Bill will show up with how to switch back and forth between the two Fanuc programming systems.

    Brent

  7. #6
    Join Date
    Jan 2013
    Country
    AUSTRALIA
    Posts
    168
    Post Thanks / Like
    Likes (Given)
    15
    Likes (Received)
    9

    Default

    Quote Originally Posted by yardbird View Post
    What control do you have? I jacked around with this once. Ended up with a diamond shaped pattern, if refined could it could resemble a knurled surface. I can post the code later tonight when I get in if I can find it in my mess of a file system. Lol..

    I kinda agree with the guy ^ up there, keep the R's on the low side or you'll get a surprise on the first pass, probably beat up the machine too. Basically what I did is in the thread below.

    Single Point Knurling on CNC Lathe - Can it be done?

    Brent

    20140725_201058-1-.jpg
    20140726_191213-1-.jpg

    yardbird,

    That's the type of finish I am looking for maybe slightly deeper. The part is a one-off and the knurl is more for decoration than use so buying a tool just for it at this stage is really out of the question.

    The controller is an SZGH it uses Fanuc G-code and it has G76 and G33 if that helps.

  8. #7
    Join Date
    Sep 2010
    Location
    Victoria Australia
    Posts
    4,140
    Post Thanks / Like
    Likes (Given)
    0
    Likes (Received)
    1757

    Default

    Quote Originally Posted by rick-b View Post
    yardbird,

    That's the type of finish I am looking for maybe slightly deeper. The part is a one-off and the knurl is more for decoration than use so buying a tool just for it at this stage is really out of the question.

    The controller is an SZGH it uses Fanuc G-code and it has G76 and G33 if that helps.
    Hello Rick,
    Does that control use a single, or two block format for the G76 cycle?

    What you need to do is cut a Multi Start left and right hand thread on the one part. To achieve this, you need to either move the Z Start position of the Threading Tool the pitch of the thread, for each Thread Start being cut, or use an Indexing address with the Threading Cycle to index the Start of each Thread Start. If your control faithfully mimics Fanuc Format, it will use a Q address, which will be available with G33 and G76, but only with the Single Line Format of the G76 Cycle.

    With a Fanuc Control, Single or two Block Format for the G76 Cycle can be set via parameter, but I'm not sure if that's possible with your control, or what the parameter number might be. If your control uses a Single Line G76 Cycle Format, then its probable that the Q address can be used for indexing the Thread Starts. Failing that, G33 with a Q indexing address can be used but the program will be considerably longer.

    Regards,

    Bill

  9. #8
    Join Date
    Jan 2013
    Country
    AUSTRALIA
    Posts
    168
    Post Thanks / Like
    Likes (Given)
    15
    Likes (Received)
    9

    Default

    Quote Originally Posted by angelw View Post
    Hello Rick,
    Does that control use a single, or two block format for the G76 cycle?

    What you need to do is cut a Multi Start left and right hand thread on the one part. To achieve this, you need to either move the Z Start position of the Threading Tool the pitch of the thread, for each Thread Start being cut, or use an Indexing address with the Threading Cycle to index the Start of each Thread Start. If your control faithfully mimics Fanuc Format, it will use a Q address, which will be available with G33 and G76, but only with the Single Line Format of the G76 Cycle.

    With a Fanuc Control, Single or two Block Format for the G76 Cycle can be set via parameter, but I'm not sure if that's possible with your control, or what the parameter number might be. If your control uses a Single Line G76 Cycle Format, then its probable that the Q address can be used for indexing the Thread Starts. Failing that, G33 with a Q indexing address can be used but the program will be considerably longer.

    Regards,

    Bill
    Bill,

    Thanks for that. I am not 100% sure about the G76 I have never use it I will have a look and see. I do know the G33 uses a Q address I was using it the other day.

  10. #9
    Join Date
    Jul 2013
    Location
    Indiana
    Posts
    3,429
    Post Thanks / Like
    Likes (Given)
    5037
    Likes (Received)
    1760

    Default

    I did this just messing around back in 2014. Code wise this is what I did. Something to look at anyway?

    N50(RIGHT HAND)
    G0G40G54X14.Z3.T0
    T0707
    G97S300M3
    G0X7.Z.2
    G0X.925Z.1M8

    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    M9
    G0X7.
    G0G40X14.Z3.T0
    M1

    N60(OTHER HAND)
    (THD BAR UPSIDE DOWN)
    G0G40G54X14.Z3.T0
    T0808
    G97S300M4
    G0Z.2
    G0X.925Z.1M8

    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    M9
    G0X8.
    G0G40X14.Z3.T0
    M0(LOOK SHIT OVER)

    Brent

  11. #10
    Join Date
    Jan 2013
    Country
    AUSTRALIA
    Posts
    168
    Post Thanks / Like
    Likes (Given)
    15
    Likes (Received)
    9

    Default

    Quote Originally Posted by yardbird View Post
    I did this just messing around back in 2014. Code wise this is what I did. Something to look at anyway?

    N50(RIGHT HAND)
    G0G40G54X14.Z3.T0
    T0707
    G97S300M3
    G0X7.Z.2
    G0X.925Z.1M8

    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    M9
    G0X7.
    G0G40X14.Z3.T0
    M1

    N60(OTHER HAND)
    (THD BAR UPSIDE DOWN)
    G0G40G54X14.Z3.T0
    T0808
    G97S300M4
    G0Z.2
    G0X.925Z.1M8

    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    M9
    G0X8.
    G0G40X14.Z3.T0
    M0(LOOK SHIT OVER)

    Brent
    Brent,

    I will give that a try thanks.

    Rick

  12. #11
    Join Date
    Jan 2013
    Country
    AUSTRALIA
    Posts
    168
    Post Thanks / Like
    Likes (Given)
    15
    Likes (Received)
    9

    Default

    Bill,

    It looks to be a two-block format for my G76 cycle. This is out of my manual.
    Attached Thumbnails Attached Thumbnails g76.jpg  

  13. #12
    Join Date
    Jul 2013
    Location
    Indiana
    Posts
    3,429
    Post Thanks / Like
    Likes (Given)
    5037
    Likes (Received)
    1760

    Default

    Quote Originally Posted by rick-b View Post
    Brent,

    I will give that a try thanks.

    Rick
    "Give that a try"?

    I was just posting a example to look at but if you are literally going to try to reproduce what I did here is the rest of the program. G76 programs just skims the .875" OD, I moved the depth deeper with the wear. OD tools 55° diamonds...

    Brent

    %
    :1111(SINGLE POINT KNURL)
    (1" VISCOUNT OUT 2")

    (WORK G54 Z3.9)

    N20(ROUGH OD)
    G0G99G40G54X14.Z3.T0
    T0303
    G97S150M4
    G0X7.Z.1
    G0X1.M8
    G50S1200
    G96S250
    G71U.05R.025
    G71P21Q22U.02W0F.01
    N21G1X.7750Z.0000
    G1X.8750Z-.0500
    G1X.8750Z-1.4500
    G1X.7750Z-1.5366
    G1X.7750Z-1.7000
    N22G1X1.
    M9
    G0X6.
    G0G40X14.Z3.T0
    M1

    N30(FINISH OD)
    G0G99G40G54X14.Z3.T0
    T0505
    G97S150M4
    G0X7.Z.05
    G0X.9M8
    G50S1600
    G96S300
    G1G42X.7750Z.0000F.006
    G1X.8750Z-.0500
    G1X.8750Z-1.4500
    G1X.7750Z-1.5366
    G1X.7750Z-1.7000
    G1X1.1
    G0G40X6.Z.1M9
    G0G40X14.Z3.T0
    M1

    N40(CHAMFER BACK SIDE)
    (.125" PARTING TOOL, TIP 4)
    G0G99G40G54X14.Z3.T0
    T0909
    G97S250M4
    G0X7.Z-1.5366
    G0X1.M8
    G50S1000
    G96S300
    G1X.775F.002
    G0X.925
    G0G42Z-1.45
    G1X.875
    G1X.775Z-1.5
    G1Z-1.5366F.006
    G0G40X6.M9
    G0X14.Z3.T0
    M1

    ** Insert thread programs here **

    N70(CUT OFF)
    (.125" PARTING TOOL, TIP 4)
    G0G40G54X14.Z3.T0
    T0909
    G97S250M4
    G0X7.Z-1.5
    M8
    G0X1.
    G50S1000
    G96S300
    G1X.1F.0015
    G0X6.M9
    G0G40X14.Z3.T0
    M0(BREAK OFF PART)

    N100(FRONT STOP)
    M5
    G0G40G54X14.Z3.T0
    T0606
    G0X1.Z0
    M30
    %

  14. Likes rick-b liked this post
  15. #13
    Join Date
    Jan 2013
    Country
    AUSTRALIA
    Posts
    168
    Post Thanks / Like
    Likes (Given)
    15
    Likes (Received)
    9

    Default

    Brent,

    I should have said "look at it" but thank you for the rest of the program. I am not great at hand-coding on the lathe as yet, I can do small stuff but nothing like your program. So I will sit down with it and work on understanding the code before I try to run it or try to adapt it to my part which is 2"OD.

    Rick

  16. #14
    Join Date
    Sep 2010
    Location
    Victoria Australia
    Posts
    4,140
    Post Thanks / Like
    Likes (Given)
    0
    Likes (Received)
    1757

    Default

    Quote Originally Posted by yardbird View Post
    I did this just messing around back in 2014. Code wise this is what I did. Something to look at anyway?

    N50(RIGHT HAND)
    G0G40G54X14.Z3.T0
    T0707
    G97S300M3
    G0X7.Z.2
    G0X.925Z.1M8

    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    M9
    G0X7.
    G0G40X14.Z3.T0
    M1

    N60(OTHER HAND)
    (THD BAR UPSIDE DOWN)
    G0G40G54X14.Z3.T0
    T0808
    G97S300M4
    G0Z.2
    G0X.925Z.1M8

    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    G0W.075
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6

    M9
    G0X8.
    G0G40X14.Z3.T0
    M0(LOOK SHIT OVER)

    Brent
    Hello Brent,
    Another approach:

    N50(RIGHT HAND)
    G0G40G54X14.Z3.T0
    T0707
    G97S300M3
    G0X7.Z.2
    G0X.925Z.1M8
    #3=1
    WHILE [#3 LE 8] DO1
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6
    #3=#3+1
    G0W.075
    END1
    M9
    G0X7.
    G0G40X14.Z3.T0
    M1

    N60(OTHER HAND)
    (THD BAR UPSIDE DOWN)
    G0G40G54X14.Z3.T0
    T0808
    G97S300M4
    G0Z.2
    G0X.925Z.1M8
    #3=1
    WHILE [#3 LE 8] DO1
    G76P010060Q0050R0
    G76X.87Z-1.6P0050Q0050F.6
    #3=#3+1
    G0W.075
    END1
    M9
    G0X8.
    G0G40X14.Z3.T0
    M0(LOOK SHIT OVER)

    Regards,

    Bill

  17. Likes rick-b liked this post
  18. #15
    Join Date
    Jan 2013
    Country
    AUSTRALIA
    Posts
    168
    Post Thanks / Like
    Likes (Given)
    15
    Likes (Received)
    9

    Default

    Bill,

    Is this a macro? I have not seen #3=1 #3=#3+1 before?

    Rick

  19. #16
    Join Date
    Sep 2010
    Location
    Victoria Australia
    Posts
    4,140
    Post Thanks / Like
    Likes (Given)
    0
    Likes (Received)
    1757

    Default

    Quote Originally Posted by rick-b View Post
    Bill,

    Is this a macro? I have not seen #3=1 #3=#3+1 before?

    Rick
    Hello Rick,
    #3 is a Macro Local Variable (#1 to #33 are Local Variables).

    In this example, #3 is simply used as a counter and I used #3 because, if you were to expand on this and write a full Macro program to single point cut the knurl, #3 would be passed as an argument to the Macro by the Address "C". Accordingly, in the Call Block for the Macro, the "C" address would relate to Counter, but any address could be use; it need not be the "C" address.

    The example is not a Macro program per se, but just a few Macro statements to create a Loop and therefore, cut down on the amount of program code to write. You could easily expand on this basic concept and allocate a Macro Variable for the number 8 in the following Macro statement:

    WHILE [#3 LE 8] DO1

    The 8 in the above Macro statement is the number of Thread Starts in the Knurl. Variables could also be used to represent the Feed Rate in the G76 Cycle (the Lead of the Thread) and the Pitch of the Knurl. When designing the Macro, you could then decide which two of the following to specify:

    1. The number of Starts
    2. The Pitch of the Thread
    3. The Lead of the Thread

    If 1 and 2, the Macro would calculate the Feed/Rev (Lead of the Thread) to use with the G76 Cycle (The number of Starts x Pitch).

    If 2 and 3, the Macro would calculate the Number of Starts, which is used as the Counter in the Macro. (Lead of the Thread / Pitch).

    If 1 and 3, the Macro would calculate the Pitch of the Knurl, which is used as the Z Offset for each successive Thread Start to cut (Lead of the Thread / The number of Starts).

    I suspect that the Lead and Pitch would be best specified (the most likely known aspects of the knurl)and the Macro would calculate the number of repeats (number of Starts) of the G76 Cycle.

    Regards,

    Bill

  20. #17
    Join Date
    Jan 2013
    Country
    AUSTRALIA
    Posts
    168
    Post Thanks / Like
    Likes (Given)
    15
    Likes (Received)
    9

    Default

    Bill,

    Thank you for that.

    Rick

  21. #18
    Join Date
    Jan 2013
    Country
    AUSTRALIA
    Posts
    168
    Post Thanks / Like
    Likes (Given)
    15
    Likes (Received)
    9

    Default

    Brent or bill

    What would be the best way to calculate the number of starts and pitch you would need?

    Rick

  22. #19
    Join Date
    Sep 2010
    Location
    Victoria Australia
    Posts
    4,140
    Post Thanks / Like
    Likes (Given)
    0
    Likes (Received)
    1757

    Default

    Quote Originally Posted by rick-b View Post
    Brent or bill

    What would be the best way to calculate the number of starts and pitch you would need?

    Rick
    Hello Rick,
    The size of the diamond in Z will be governed by the Pitch and the size around the circumference by the number of starts. Accordingly, at first glance I'd suggest dividing the circumference by the length of the diamond you want in that direction to get the number of starts; round to the closest integer.

    The Lead of the Thread would then be calculated by multiplying the length of the diamond in Z you want (the Pitch) by the Number of Starts. My suggestion of using a Macro and Macro Variables was to allow easy manipulation of the program so as to dial in the result you want. Then you could have a Call Block something like the following, to pass the required arguments to the Macro where the calculations would be made and the RH/LH Threads cut the number of Leads calculated.

    G65 C120.0 X2.0 Z1.5

    Where:
    C = The Circumference
    X = The Length of the Diamond around the Circumference.
    Z = The Length of the Diamond in Z

    Regards,

    Bill
    Last edited by angelw; 06-23-2021 at 04:05 AM.


Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •