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.
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Turn off "Spin probe on/off" every cycle

Message 1 of 4
252 Views, 3 Replies

Turn off "Spin probe on/off" every cycle

Every probing operation posts a G65 P9832 at the beginning and G65 P9833 at the end.  This is causes my machine to freeze as the probe fails to either turn off/on between cycles about 50% of the time (probably more) and even if/when it works it is still a big dumb waste of time.


Is there a way to turn off the redundant lines between cycles?


All I see in the post are some checks for whether the current operation is a probe cycle or not, what I'm requesting would also need to check if the operations before/after the current operation were probe cycles as well.




Using the Haas pre-NGC post, BTW.

Tags (3)
Message 2 of 4

Thanks for your feedback, we are looking into this.


One of the reasons why the probe gets turned off/on between operations are the G0/G1 movements which will likely trigger the probe when the machine accelerates/decelerates for these moves.

You can get around the undesired output you mentioned when you add this function to your post:


var probeIsEnabled = false;
var savehighFeedMapping;
var savehighFeedrate;
function setProbeOnOff(enable) {
  if (enable) {
    if (!probeIsEnabled || operationNeedsSafeStart) {
      skipBlock = operationNeedsSafeStart;
      writeBlock(gFormat.format(65), "P" + 9832); // spin the probe on
      // save current highfeed and mapping mode
      saveHighFeedMapping = highFeedMapping;
      saveHighFeedrate = highFeedrate;

      // set highFeedrate to probe linking feedrate and map all rapid travesals to high feed.
      highFeedMapping = HIGH_FEED_MAP_ANY;
      highFeedrate = getParameter("operation:tool_feedProbeLink", (unit == IN) ? 100 : 2500);
      probeIsEnabled = true;
  } else {
    if ((hasNextSection() && !isProbeOperation(getNextSection())) || isLastSection()) {
      writeBlock(gFormat.format(65), "P" + 9833); // spin the probe off
      probeIsEnabled = false;
      // restore highFeedrate and mapping mode
      highFeedrate = saveHighFeedrate;
      highFeedMapping = saveHighFeedMapping;



And replace the lines you highlighted in your screenshots with the call to the function you just added.

writeBlock(gFormat.format(65), "P" + 9832);




and replace:

writeBlock(gFormat.format(65), "P" + 9833);




Be aware that this might cause the issues which I mentioned initially.




There is possibly a better solution which would be the usage of the G31 feature on the Haas.

This is a bit more complex to implement into the post, but I will describe the required changes below:

1) Do all steps mentioned in the first suggestion

2) In the onLinear function, add this code at the beginning:

if (probeIsEnabled) {
and replace:
writeBlock(gFeedModeModal.format(94), gMotionModal.format(1), x, y, z, f);


writeBlock(gFeedModeModal.format(94), gMotionModal.format(probeIsEnabled ? 31 : 1), x, y, z, f);


3) In the onSection function

var G = ((highFeedMapping != HIGH_FEED_NO_MAPPING) || !getProperty("useG0")) ? 1 : 0;

var G = probeIsEnabled ? 31 : ((highFeedMapping != HIGH_FEED_NO_MAPPING) || !getProperty("useG0")) ? 1 : 0;



Note that this is not tested yet on a machine, so please test carefully.

We will do internal testing as well and when successful we will make the changes into the library Haas post.

Principal Technology Consultant
Message 3 of 4

This worked great!

I added the G31 skip functionality just to see what it looked like but I do not believe it is necessary...

I "handwrite" all of our high production probing routines to cut out extra time and moves and have never had an issue with a rapid move erroneously triggering the probe, but this is a great tweak to make for when I'm generating cycles straight out of Fusion for one-offs.

Message 4 of 4

Just wanted to leave some feedback after using this for a while:


Skip function actually trips up the graphic preview, my solution was to force the post to put a block delete character before each G31 and then run graphic with block delete on.  There might be a setting change that would fix this but I couldn't find one.

Because the skip function didn't actually help the cycles run I ended up removing that from my post and sticking with the first fix posted, which has been working great for me!

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

Post to forums