Here is a video of our G33 knurling routine running.  Pretty cool.  I’m sure we 
aren’t the first to do this, but since I haven’t seen it before I will pretend 
like it :-)  BTW, this knurl is only about 5 thou deep, deeper ones will follow.

https://youtu.be/zdCQ0X7b2uo

Here is the code:

G8
G53 G0 X0
G53 G0 Z0
M6 T3 G43

#<workpieceDia> = 0.700
#<workpieceRad> = [#<workpieceDia>/2]
#<safeXOffset> = 0.025
#<safeX> = [#<workpieceRad> + #<safeXOffset>]

#<knurlStartZ> = 0.000
#<knurlLen> = 0.25
#<knurlLeadIn> = 0.010
#<knurlDepth> = 0.002
#<knurlPerDia> = 28
#<knurlAngle> = 30
#<knurlEndZ> = [#<knurlStartZ> - #<knurlLen>]

#<rpm> = 100

#<pi> = 3.142

; The surface is the circumference of the workpiece
#<workSurface> = [#<pi> * #<workpieceDia>]

; Given a knurl angle, calculate Z feed given <workSurface>
#<feedPerRev> = [TAN[#<knurlAngle>] * #<workSurface>]
#<feedPerMin> = [#<feedPerRev> * #<rpm>]
(debug, feed per revolution: #<feedPerRev>; per min: #<feedPerMin>)

; thread _width_ is equal to distance traveled in one rev, i.e. <feedPerRev>
#<threadWidth> = #<feedPerRev>
; Thus, TPI will be 1/<threadWidth>
#<tpi> = [1/#<threadWidth>]

; To do a n-start thread, we need to start each thread
; <threadWidth>/n further back (Z+) than the prior thread
#<nStartZOffset> = [#<threadWidth>/#<knurlPerDia>]


M3 S#<rpm>

#100 = #<knurlPerDia>
#110 = [[#<knurlPerDia> * #<nStartZOffset>] + #<knurlStartZ> + #<knurlLeadIn>]
(debug, knurl lead in: #110)

G0 Z#110
G0 X[#<workpieceRad> - #<knurlDepth>]

O100 WHILE [#100 GT 0]
   (debug, start Z: #110; feed: #<feedPerRev>)
   (calculate the lead in for the knurl AFTER this one)
   #105 = #110
   #110 = [#110 - #<nStartZOffset>]

   ;G33 Z#110 K#<feedPerRev>
   ;G1 Z#<knurlEndZ> F#<feedPerMin>
   ;G1 Z#105 F#<feedPerMin>
   G33 Z#<knurlEndZ> K#<feedPerRev>
   G33 Z#105 K#<feedPerRev>
   ;G0 X#<safeX>
   G0 Z#110
   ;G0 X[#<workpieceRad> - #<knurlDepth>]

   #100 = [#100 - 1]
O100 ENDWHILE
------------------------------------------------------------------------------
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to