Doosan MX2100ST Fanuc 31i Model A

Doosan MX2100ST Fanuc 31i Model A

ubi.james13
Enthusiast Enthusiast
5,262 Views
25 Replies
Message 1 of 26

Doosan MX2100ST Fanuc 31i Model A

ubi.james13
Enthusiast
Enthusiast

Hi ,

I'm using the latest post and have selected Puma MX from properties list & also adjusted machine configuration to reflect the machines two turrets & sub-spindle however I cant seem to stop post outputting V and Y values when using lower turret that has no Y axis without those values disappearing for the top turret that needs them !

Any help would be very much appreciated 

0 Likes
Accepted solutions (3)
5,263 Views
25 Replies
Replies (25)
Message 2 of 26

ubi.james13
Enthusiast
Enthusiast
Accepted solution

Ok, for now I have a solution ! as the machine runs with duel channel programmes I've configured  another post processor to run lower turret, not great but gets machine going !

0 Likes
Message 3 of 26

serge.quiblier
Autodesk
Autodesk

Hello @ubi.james13 

 

If turret 2 on all the machine does not support Y axis, then you could have grouped into one post doing the following changes.

In the global section add the following variable

var turret1GotYAxis = false;

 

then in the onOpen function

  machineConfigurationMainSpindle = gotBAxis ? new MachineConfiguration(bAxisMain, cAxisMain) : new   MachineConfiguration(cAxisMain);
  machineConfigurationSubSpindle = gotBAxis ? new MachineConfiguration(bAxisSub, cAxisSub) : new MachineConfiguration(cAxisSub);
  machineConfigurationMainTurret2 = new MachineConfiguration(cAxisMain);
  machineConfigurationSubTurret2 = new MachineConfiguration(cAxisSub);
}

  machineConfiguration = new MachineConfiguration(); // creates an empty configuration to be able to set eg vendor information

  turret1GotYAxis = gotYAxis; // add this line

  if (!gotYAxis) {
    yOutput.disable();
  }
  aOutput.disable();
  if (!gotBAxis) {
    bOutput.disable();
  }

 

finally in the onSection function

// Detect machine configuration
if (activeTurret == 2) {
  machineConfiguration = (currentSection.spindle == SPINDLE_PRIMARY) ? machineConfigurationMainTurret2 : machineConfigurationSubTurret2;
  gotYAxis = false; // addition
  yOutput.disable(); // addition
} else {
  machineConfiguration = (currentSection.spindle == SPINDLE_PRIMARY) ? machineConfigurationMainSpindle : machineConfigurationSubSpindle;
  gotYAxis = turret1GotYAxis; // addition
  if (!gotYAxis) { // addition
    yOutput.disable(); // addition
  } // addition
}

 

If you test  this solution, please provide feddback.

 

Have a pleasant day.

 

Cheers


______________________________________________________________

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
Message 4 of 26

ubi.james13
Enthusiast
Enthusiast

Hi @serge.quiblier 

 

Great ! this does seem to work on initial testing, I'm surprised this hasn't come up before as as far as I know all Puma MX's with two turret do not have a Y axis on turret two and maybe this should be put in to standard post processor ! 

I do have another issue with  turret two also in that it doesn't out-put tool offset correctly example :- T02002 instead of T0202 ! Only turret one has the extended offset numbers  (edit:- should I put this in another post ?)

0 Likes
Message 5 of 26

serge.quiblier
Autodesk
Autodesk

Hello @ubi.james13 

 

we can use a similar trick for this issue.

In the global section add the following variable

var turret1ToolFormat;

 

then in the onOpen function

  machineConfiguration = new MachineConfiguration(); // creates an empty configuration to be able to set eg vendor information

  turret1GotYAxis = gotYAxis;

  turret1ToolFormat = toolFormat;  // new addition

  if (!gotYAxis) {
    yOutput.disable();
  }
 

after in the onSection function

// Detect machine configuration
if (activeTurret == 2) {
  machineConfiguration = (currentSection.spindle == SPINDLE_PRIMARY) ? machineConfigurationMainTurret2 : machineConfigurationSubTurret2;
  gotYAxis = false;
  yOutput.disable();

  toolFormat = CreateFormat({decimals:0, width:4, zeropad:true});  // new addition
} else {
  machineConfiguration = (currentSection.spindle == SPINDLE_PRIMARY) ? machineConfigurationMainSpindle : machineConfigurationSubSpindle;

  toolFormat = turret1ToolFormat;  // new addition
  gotYAxis = turret1GotYAxis;

 

Finally still inside onSection, at the toolchange output:

      } else {

        // preload first tool

        var section = getSection(0);

        var firstToolNumber = section.getTool().number;

        if ((tool.number != firstToolNumber) && (section.getTool().turret != 2)) {

          writeBlock("T" + toolFormat.format(firstToolNumber * 1000), formatComment("NEXT TOOL"));

        }

      }

      if (activeTurret == 2) {  // addition

        writeBlock("T" + toolFormat.format(tool.number * 1000 + compensationOffset));

      } else {  // addition

        writeBlock("T" + toolFormat.format(tool.number * 100 + compensationOffset));  // addition

      }  // addition

    } else {

 

As previously, test with care, and don't hesitate to provide feedback.

 

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
0 Likes
Message 6 of 26

ubi.james13
Enthusiast
Enthusiast

Hi @serge.quiblier 

 

I have added changes but post will not run, I've probably made an error but for the life of me I can't find it. Have attached post in the hope you can spot the problem.

You help is very must apricated  

0 Likes
Message 7 of 26

serge.quiblier
Autodesk
Autodesk
Accepted solution

Hi @ubi.james13 

 

my fix had been created from brain cells brewing, but not completely tested.

Here is a revised post with the following changes:

I removed some extra empty lines, because we use eslint and it's done automatically when saving the file.
I added a missing semi colon at the end of a line.
I added a constant on the warningOnce command.
The main issue was probably the CreateFormat, instead of a createFormat.
And i may i have forgottent to change the multiplying factor on the tool number (100 instead of 1000 for turret 2)

 

Cheers

 

PS the file is zipped just to please the file uploader script of the forum.
______________________________________________________________

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
Message 8 of 26

ubi.james13
Enthusiast
Enthusiast

All seems good on first test @serge.quiblier thank you for that, I will let you know if any issue's pops up on  further testing 👍

0 Likes
Message 9 of 26

ubi.james13
Enthusiast
Enthusiast

Hi @serge.quiblier , On further testing I do have a problem when using the lower turret on sub-spindle ! the post is still out-putting a Y position code which stop's the program running. Have given it a go but issue is beyond my skill set 😁

0 Likes
Message 10 of 26

serge.quiblier
Autodesk
Autodesk

Hi @ubi.james13 

 

You can either share a link to your Fusion file. See:
https://knowledge.autodesk.com/support/fusion-360/learn-explore/caas/sfdcarticles/sfdcarticles/How-t...
or you can save an archive (f3d, or f3z) and share it on the forum
https://knowledge.autodesk.com/support/fusion-360/troubleshooting/caas/sfdcarticles/sfdcarticles/How...

 

Because i have no idea, about the strategy being used, where this code is generated and why.

If it's written as pure test (i doubt) it will not use the yOuput variable.

Or it is using something else with a Y prefix, it's impossible to tell just from this picture of the code.

 



Serge.Q
Technical Consultant
cam.autodesk.com
0 Likes
Message 11 of 26

ubi.james13
Enthusiast
Enthusiast

Hi @serge.quiblier 

 

Sorry about that please find link to my template I'm working on, the problem appears to be isolated to lower sub-spindle operation's

 

Link : https://a360.co/3hE2T7S

 

p.s. is there away to change default turret in post so that I can use fusion post extension in visual studio to see where code's are coming from as only outputs upper turret code ?

0 Likes
Message 12 of 26

ubi.james13
Enthusiast
Enthusiast

On further test I have found the following issue's with lower turret on Sub spindle

1: when live tool is used the wrong  work plane is used G17 XY plane instead of G18

2: Wrong lower turret live tool spindle code P12 instead of P22

I could easily change them in post but suspect if I change these in the post they will then effect Upper turret's code ! For the moment maybe my original solution of running two post's one for upper and one for lower would be a better solution until Autodesk take a proper look at this post processor as it looks to me this one is not fit for purpose with regard to the MX !!

0 Likes
Message 13 of 26

ubi.james13
Enthusiast
Enthusiast

Hi, small update for anyone who cares, have made headway with having two posts one for Upper Turret and other for Lower turret this works ok as I'm able to modify post to suit the needs of each turret. I'm manually putting in timing M code for running duel channel, not quite there yet but along way ahead of unworkable stock post !! 

0 Likes
Message 14 of 26

serge.quiblier
Autodesk
Autodesk

Hello @ubi.james13 

 

As a reply to the post #9, to solve the Y axis issue, some codes need to be moved further down.

This piece of code should be placed much below than i first suggested
In the onSection function

// Detect machine configuration
if (activeTurret == 2) {
  machineConfiguration = (currentSection.spindle == SPINDLE_PRIMARY) ? machineConfigurationMainTurret2 : machineConfigurationSubTurret2;
  gotYAxis = false; // addition, we will move somewhere else, can be deleted here
  yOutput.disable(); // addition, we will move somewhere else, can be deleted here
} else {
  machineConfiguration = (currentSection.spindle == SPINDLE_PRIMARY) ? machineConfigurationMainSpindle : machineConfigurationSubSpindle;
  gotYAxis = turret1GotYAxis; // addition, can be deleted here
  if (!gotYAxis) { // addition, we will move somewhere else, can be deleted here
    yOutput.disable(); // addition, we will move somewhere else, can be deleted here
  } // addition, we will move somewhere else, can be deleted here
}

Scrolling down in the function, seach for the invertAxes function call.

// invert axes for secondary spindle
  if (getSpindle(PART) == SPINDLE_SUB) {
    invertAxes(true, false); // polar mode has not been enabled yet
  }

if (activeTurret == 2) { // addition
  gotYAxis = false; // addition
  yOutput.disable();  // addition
} else { // addition
  gotYAxis = turret1GotYAxis; // addition
  if (!gotYAxis) {  // addition
    yOutput.disable();  // addition
  } // addition
} // addition

  // Position all axes at home
  if (insertToolCall && !machineState.stockTransferIsActive) {
    moveSubSpindle(HOME, 0, 0, true, "SUB SPINDLE RETURN", false);

 

Regards.



Serge.Q
Technical Consultant
cam.autodesk.com
Message 15 of 26

ubi.james13
Enthusiast
Enthusiast

Hi @serge.quiblier , have implemented your changes and this so seems to work fine 🤞 Do you have any ideas on my Post #12 re the spindle codes and work plane issues with lower turret ?

0 Likes
Message 16 of 26

serge.quiblier
Autodesk
Autodesk

Hi @ubi.james13 

 

to fix the issue with the spindle code, you can proceed as follow:

search for the getCode function, then inside the function, find the code below, and add the commented lines (// change)

  case "SELECT_SPINDLE":
    switch (spindle) {
    case SPINDLE_MAIN:
      machineState.mainSpindleIsActive = true;
      machineState.subSpindleIsActive = false;
      machineState.liveToolIsActive = false;
      return 11;
    case SPINDLE_LIVE:
      machineState.mainSpindleIsActive = false;
      machineState.subSpindleIsActive = false;
      machineState.liveToolIsActive = true;
      if  (currentSection.getTool().getTurret()> 1) {;	// change
        return 22;;	// change
      } else {;	// change
        return 12;;	// change
      };	// change
    case SPINDLE_SUB:

 

For the G17 issue, is this for drilling operations, or for alll milling operation?

Because circular interpolations may be incorrect, if we don't use the correct plane.

What is the toolpath involved, machining on the part front, or outer diameter?

 

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
Message 17 of 26

ubi.james13
Enthusiast
Enthusiast

Hi @serge.quiblier , unfortunately that solution doesn't seem to work for me ! post is still out-putting P12 for lower turret live tool spindle commands instead of P22

Attached  Post 

0 Likes
Message 18 of 26

serge.quiblier
Autodesk
Autodesk
Accepted solution

Hi @ubi.james13 ,

 

apparently when i copy and pasted the code, additional semicolon where inserted after the {, ] and ;

This was not intended. But that not the issue.

Actually i only switch to 22 when using the lower turrey, detected by this information.

sergequiblier_0-1648043066879.png

 

So i find it strange that you added the code to your upper turret post.

Are you using the turret number in Fusion?

 

Regards.

 



Serge.Q
Technical Consultant
cam.autodesk.com
0 Likes
Message 19 of 26

ubi.james13
Enthusiast
Enthusiast

@serge.quiblier , found the problem at my end ! I was not using the updated post but another from a different location DOH! all is working ok  

Thank you very much 😁

 

0 Likes
Message 20 of 26

serge.quiblier
Autodesk
Autodesk

Regarding the G19/G17 issue, is this for drilling operations, or for all milling operations?

Because circular interpolations may be incorrect, if we don't use the correct plane.

What is the toolpath involved, machining on the part front, or outer diameter?

 

Regards.



Serge.Q
Technical Consultant
cam.autodesk.com
0 Likes