Great work! I wondered how well that would work. (files that video away under 'linuxcnc is awesome')
sam On 09/11/2015 06:52 PM, Tom Easterday wrote: > 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 ------------------------------------------------------------------------------ _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users