Hurco Post G0 High Feed & G53 Home Location

Hurco Post G0 High Feed & G53 Home Location

haggismaximus
Participant Participant
1,318 Views
7 Replies
Message 1 of 8

Hurco Post G0 High Feed & G53 Home Location

haggismaximus
Participant
Participant

I have a 2005 Hurco VM2 with the Ultimax 4 control.  The default Hurco post converts multi-axis (x & y) rapids to high feed moves incorrectly.  The machine will do simultaneous rapids without issue so I am not sure why this is the default.  Perhaps very old machines are not able to accomplish this but this is not the case for machines even 15 years old.  The following was what their applications department sent me:

 

ISNC should have x and y synced in rapid, I will double check on this maybe an early ultimax might have had something like this, maybe older like a hurco hawk but as far as I’m aware this shouldn’t be an issue

 

I was able to edit the post so that it will Post G0 vs G1 high feeds moves (see below).  It would be nice if there was a correct option, or a way to override the conversion of G0 to G1 XY moves for machines that can do simultaneous movement.  I feel what I did was more of a hack than the correct way.

 

if (getProperty("isnc") && (((x ? 1 : 0) + (y ? 1 : 0) + (z ? 1 : 0)) > 1)) {
// axes are not synchronized

 

to

 

if (getProperty() && (((x ? 1 : 0) + (y ? 1 : 0) + (z ? 1 : 0)) > 1)) {
// axes are not synchronized

 

Additionally, how do I go about setting the home position when a program is complete so the Z will retract before it moves the table to the home position I defined in the Machine Library? (X20, Y18 in my case).  I set Z home to 0 under Z linear but it only retracts the retract height (.06 above the part), not all the way to Z 0

 

Here is the output I currently get with the post at the end of the program to move the table center, but it's not moving Z to home first.

 

N273 G0 Z0.6
N274 G17
N275 M9
N276 G0 M140
N277 G53 G0 X0. Y0.

 

I am looking for something like

 

G53 G0 Z0.
G53 G0 X20. Y18.

 

0 Likes
Accepted solutions (1)
1,319 Views
7 Replies
Replies (7)
Message 2 of 8

boopathi.sivakumar
Autodesk
Autodesk

Hi @haggismaximus 

I referred couple of hurco manuals there is a possibility it could use non-linear rapid transverse modes. It would be safe to make the highfeed as default option so that we can avoid beautiful surprises.

 

G0.pngG0.png

But I agree lot of people don't have issues with two axes are in rapid moves. So I think it would be better the user should have control over this via post properties. I will make a ticket for this.

 

Coming to the changes, what you did was not correct. you should make changes something like below

var forceG0 = true; // add this line
function onRapid(_x, _y, _z) {
  var x = xOutput.format(_x);
  var y = yOutput.format(_y);
  var z = zOutput.format(_z);
  if (x || y || z) {
    if (pendingRadiusCompensation >= 0) {
      error(localize("Radius compensation mode cannot be changed at rapid traversal."));
      return;
    }
    if (getProperty("isnc") && (((x ? 1 : 0) + (y ? 1 : 0) + (z ? 1 : 0)) > 1) && !forceG0) {         // <<< add && !forceG0 to this line
      // axes are not synchronized
      writeBlock(gMotionModal.format(1), x, y, z, feedOutput.format(highFeedrate));
    } else {

likewise you have to add it in function onRapid5D as well

  if (x || y || z || a || b || c) {
    if (getProperty("isnc") && !forceG0) {  // << add && !forceG0
      // axes are not synchronized

This changes should always force the G0 for rapids

 

For the second issue i think you found an issue with the post!! M140 doesn't not physically move the Zaxis to home pls let me know if this is the case i will fix this issue as well. to output G53 G0 Z0 just add the lines as mentioned

 case "G53":
      gMotionModal.reset();
      if (retractAxes[2] && useMultiAxisFeatures) {
        writeBlock(gFormat.format(0), mFormat.format(140));
        writeBlock(gAbsIncModal.format(90), gFormat.format(53), gMotionModal.format(0), words); // add this line
      } else {

 Let me know the feedback


Boopathi Sivakumar
Principal Technology Consultant

0 Likes
Message 3 of 8

haggismaximus
Participant
Participant

Boopathi,

 

Thank you for the response, I will implement those changes and try them tonight to see if they work. 

 

I did find that page in the Winmax Hurco manual regarding non-linear rapids.  The page directly preceding the one you reference indicates that simultaneous rapid movement of X,Y,Z is the default under ISNC and that the user can modify to non-linear in the control (though who would do this I don't know).  BNC mode appears to break rapids into X,Y simultaneous and then a separate Z rapid.   Please see the screenshot below. 

 

Hurco.pngHurco.png

0 Likes
Message 4 of 8

haggismaximus
Participant
Participant

Ran a program tonight and everything worked great accept it did not generate XY home position that I defined for the machine in the machine library. Had to add those in manually.  Default post will give me my desired table location but it will not post the G53 G0 Z0 I need beforehand to retract the tool before the table moves.  Seems like it is still not reading all the home attributes as defined in the Machine Library.  In my case home for has been entered as follows:

 

Z 0

X 20

Y 18

 

Default post gets me

G53 G0 X20 Y18 (defined in the Machine Library)

 

Modified post gets me

 

G53 G0 Z0

 

Ideally I would get

 

G53 G0 Z0

G53 G0 X20 Y18

 

It seems like the modified post replaced the G53 G0 X20 Y18 with G53 G0 Z0.

0 Likes
Message 5 of 8

boopathi.sivakumar
Autodesk
Autodesk

That's good to hear! Could you share your modified post I can take a look into it.

also I got a friend who has hurco, yesterday I tested with M140 command it does retract the z to the home position. Could you conform its the same behavior in your machine as well?

 


Boopathi Sivakumar
Principal Technology Consultant

0 Likes
Message 6 of 8

haggismaximus
Participant
Participant

Yes, it did retract to Z 0 properly, just didn't position the table unless I added the line after. 

 

 

0 Likes
Message 7 of 8

boopathi.sivakumar
Autodesk
Autodesk
Accepted solution

You should not remove the other stuffs in the else part. It should look something like below 

case "G53":
      gMotionModal.reset();
      if (retractAxes[2] && useMultiAxisFeatures) {
        writeBlock(gFormat.format(0), mFormat.format(140));
        writeBlock(gAbsIncModal.format(90), gFormat.format(53), gMotionModal.format(0), words);
      } else {
     writeBlock(gAbsIncModal.format(90), gFormat.format(53), gMotionModal.format(0), words);
      }
      break;

Boopathi Sivakumar
Principal Technology Consultant

0 Likes
Message 8 of 8

haggismaximus
Participant
Participant

Thank you, I did not realize that I had deleted that by mistake. 

 

This output just what I needed.  Thank you!

0 Likes