Community
Fusion Manufacture
Talk shop with the Fusion (formerly Fusion 360) Manufacture Community. Share tool strategies, tips, get advice and solve problems together with the best minds in the industry.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

generic fanuc turning post g76 modification needed

11 REPLIES 11
SOLVED
Reply
Message 1 of 12
empiremachinenc
482 Views, 11 Replies

generic fanuc turning post g76 modification needed

Good morning, I am trying to start using fusion on my lathe. I have downloaded the generic post and it seems to work but would rather post out g76. I have gotten g92, g32 g78 but no g76. I have changed post where it said use simple threading enable =g92 disable=g76 and made it false but it did not work. any help would bee appreciated.

  useSimpleThread: {
    title      : "Use simple threading cycle",
    description: "Enable to output G92 simple threading cycle, disable to output G76 standard threading cycle.",
    type       : "boolean",
    value      : false,
    scope      : "post"

 

11 REPLIES 11
Message 2 of 12

Are you certain about that?

N19 G97 S1500 M3
N20 G0 X1.7874 Z0.1969
N21 G0 Z0.2083
N22 G76 P001000 Q79 R0
N23 G76 X0.9213 Z-2.4583 P394 Q79 F0.041667
N24 G0 X1.7874 Z0.1969

 Can you share your .cps file and a Fusion model that you were trying to work with? 


Seth Madore
Customer Advocacy Manager - Manufacturing
Message 3 of 12

Hello @empiremachinenc 

 

you need to set the property Simple Thread to false, but you must also set the check box in the toolpath.

sergequiblier_0-1642521873275.png

 

Have a nice day.

 

Regards.



Serge.Q
Technical Consultant
cam.autodesk.com
Message 4 of 12

I thought I did, please advise. 

 

empiremachinenc_0-1642523993730.png

 

 

Message 5 of 12

In your image above, you did not check the "Use Cycle" box. This must also be done 😉


Seth Madore
Customer Advocacy Manager - Manufacturing
Message 6 of 12

Screenshot 2022-01-18 124149.png

Screenshot 2022-01-18 124101.png

Screenshot 2022-01-18 123919.png

Message 7 of 12

Try saving the post processor to your desktop, somewhere different from the generic location. I've seen some odd cases where something is being held in the cache. Selecting it from a different location may be all that's needed.


Seth Madore
Customer Advocacy Manager - Manufacturing
Message 8 of 12

Message 9 of 12

It's your use of Alternating Flank Infeed. You need to set it to Reduced or Constant Infeed


Seth Madore
Customer Advocacy Manager - Manufacturing
Message 10 of 12

it worked, thank you very much for taking time to help.

Message 11 of 12
xrayguts
in reply to: empiremachinenc

hi i came across this post because i was having the same issue. I am using Flashcut CNC for my controller, i was abled to get the generic fanuc turn pp to output G76 as this is what is needed for Flashcut. the controller does not like G92 for some reason. it will post multiple passes but the controller takes them all in one pass. i have adjusted the controllers Max and Min depths of cuts to no avail. 

the G76 command uses a one line output and the not 2 lines that are output by the pp

From the flashcut manual the following parameters are needed

The general command syntax is as follows:
G76 Xx Zz Kk Dd Ff [Aa] [Ii] [Pp]
where the parameters are
x: Final diameter (minor diameter for external threads, major diameter for
internal threads)
z: Z Coordinate at end of thread
k: Height of thread
196 FlashCut CNC Section 4 System Programming
d: Depth of first pass specified as an integral number of ten-thousandths of an
inch or mm, e.g. „2000‟ means 0.2000 inches or mm (depending on the units
you‟re using)
f: Thread pitch
a: (Optional) Tool angle (determines lead-in angle, default is zero)
i: (Optional) Amount of taper (difference between initial radius and ending
radius, default is zero)
p: (Optional) Cutting method (values 1-4, sets strategy for successive plunges,
default is „1‟)

Is there a Fanuc PP that outputs the above 1 line?

Message 12 of 12
serge.quiblier
in reply to: xrayguts

Hello @xrayguts 

 

as you are not using a fanuc post, creating a separate thread would have been a better move.

But let's see what is needed to "convert" a Fanuc post into a FlashCut post.

Edit the post in a pure text editor. (Not word, not openoffice, or....)

Search for the onCyclePoint function.

The actual code generating the threading consist of these particular lines

      if (isLastCyclePoint()) {
        // thread height and depth of cut
        var threadHeight = getParameter("operation:threadDepth");
        var firstDepthOfCut = threadHeight - Math.abs(getCyclePoint(0).x - x);
        var minimumDepthOfCut = Math.abs(getCurrentPosition().x - x);
        var cuttingAngle = getParameter("operation:infeedAngle", 30) * 2; // Angle is not stored with tool. toDeg(tool.getTaperAngle());

        // first G76 block
        var repeatPass = hasParameter("operation:nullPass") ? getParameter("operation:nullPass") : 0;
        var chamferWidth = 10; // Pullout-width is 1*thread-lead in 1/10's;
        var materialAllowance = 0; // Material allowance for finishing pass

        var pcode = repeatPass * 10000 + chamferWidth * 100 + cuttingAngle;
        gCycleModal.reset();
        var codes = {A:76, B:76, C:78};
        writeBlock(
          gCycleModal.format(codes[getProperty("type")]),
          threadP1Output.format(pcode),
          threadQOutput.format(minimumDepthOfCut),
          threadROutput.format(materialAllowance)
        );

        // second G76 block
        var r = -cycle.incrementalX * inverted; // positive if taper goes down - delta radius
        gCycleModal.reset();
        writeBlock(
          gCycleModal.format(codes[getProperty("type")]),
          xOutput.format(x),
          zOutput.format(z),
          conditional(zFormat.isSignificant(r), threadROutput.format(r)),
          threadP2Output.format(threadHeight),
          threadQOutput.format(firstDepthOfCut),
          pitchOutput.format(cycle.pitch)
        );
        gMotionModal.reset();
        forceFeed();
      }

 

We can replace these lines by another code, specific to the Flashcut controller.

Some elements will be kept, but other need to be added.

Some formatting is needed for the thousand multiplier for example.

 

      if (isLastCyclePoint()) {
        // thread height and depth of cut
        var threadHeight = getParameter("operation:threadDepth");
        var firstDepthOfCut = threadHeight - Math.abs(getCyclePoint(0).x - x);
        var cuttingAngle = getParameter("operation:infeedAngle", 30) * 2; // Angle is not stored with tool. toDeg(tool.getTaperAngle());
        var threadPQFormat = createFormat({decimals:0, forceDecimal:false, trim:true, scale:10000});

        gCycleModal.reset();
        
        var i = -cycle.incrementalX;
        writeBlock(
          gCycleModal.format(76),
          xOutput.format(x),
          zOutput.format(z),
          "K" + spatialFormat.format(threadHeight),
          "D" + threadPQFormat.format(firstDepthOfCut),
          "A" + spatialFormat.format(cuttingAngle),
          "I" + zFormat.format(i),
          pitchOutput.format(cycle.pitch)
        );
        gMotionModal.reset();
        forceFeed();
      }

 

Regards.


______________________________________________________________

If my post answers your question, please click the "Accept Solution" button. This helps everyone find answers more quickly!

 

 



Serge.Q
Technical Consultant
cam.autodesk.com

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums