Turn off "Spin probe on/off" every cycle

Turn off "Spin probe on/off" every cycle

Eric_Evans_a_GiroDisc_com
Advocate Advocate
1,413 Views
3 Replies
Message 1 of 4

Turn off "Spin probe on/off" every cycle

Eric_Evans_a_GiroDisc_com
Advocate
Advocate

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.

Girodyno_0-1674766487118.png

Girodyno_1-1674766575453.png

 

Using the Haas pre-NGC post, BTW.

0 Likes
Accepted solutions (1)
1,414 Views
3 Replies
Replies (3)
Message 2 of 4

AchimN
Community Manager
Community Manager
Accepted solution

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.

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

with:

setProbeOnOff(true);

 

and replace:

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

with:

setProbeOnOff(false);

 

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) {
  forceFeed();
}
and replace:
writeBlock(gFeedModeModal.format(94), gMotionModal.format(1), x, y, z, f);

with:

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

 

3) In the onSection function

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

with:
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.



Achim.N
Principal Technology Consultant
0 Likes
Message 3 of 4

Eric_Evans_a_GiroDisc_com
Advocate
Advocate

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.

0 Likes
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!

0 Likes