HAAS CL-1 Lathe post processor request

HAAS CL-1 Lathe post processor request

Anonymous
Not applicable
1,671 Views
16 Replies
Message 1 of 17

HAAS CL-1 Lathe post processor request

Anonymous
Not applicable
 
 
C axis Programming for Haas CL-1

I have a new Hass CL_1 Chucker Lathe with live tooling, and fully syncronized c axis.

I want to engrave a part number on the out side of a diameter. in theory,although I dont have a y axis. I should be able to rotate my part on the c axis, and travel along my z axis to engrave. I am having trouble posting this. every time I do i get an error saying y axis not supported. I want to post this like on a rotary table for a mill. Can someone point me in the right direction. either for a post processor or maybe Im just camming it wrong. I dont know. I Tried the Haas CL-1 Post proccessor i downloaded from another postUntitled.jpg

Untitled.jpg

0 Likes
Accepted solutions (2)
1,672 Views
16 Replies
Replies (16)
Message 2 of 17

bob.schultz
Alumni
Alumni
Accepted solution

As long as the toolpath does not cause the Y-axis to move, this scenario is supported by the Haas CL-1 post processor.  Make sure that your engraving is wrapped around the cylinder and that the tool axis remains normal to the cylinder.  You will probably have to use a 2D-contour operation with the 'Wrap toolpath' box checked.



Bob Schultz
Sr. Post Processor Developer

Message 3 of 17

Anonymous
Not applicable
Thank you, This seems to working ok for me, but Im having to manually edit
my programs. I need to change the direction on my X axis from X (Positive)
to X- (negative) so it comes in from the back. is the anyway in fusion to
do this? that being said. The machine is pretty new to me so there may be a
way on the machine to change the feed direction of my tool. Im still
figuring it out But I sure thank you.
Patrick Burden
Sektam Of Independence
www.sektam-indy.com
0 Likes
Message 4 of 17

bob.schultz
Alumni
Alumni

Hello Patrick,

 

Yes, there could be a setting on the control to handle the X-axis direction.  It is kind of strange that it would be setup to have X+ feed into the part for the standard turret.  If necessary, you can modify the post to output the X-axis in the opposite direction by making the following changes in the post.

 

At the top of the post find the following line and add the '-' to the scaling factor of 2.

var xFormat = createFormat({decimals:(unit == MM ? 3 : 4), forceDecimal:true, scale:-2}); // diameter mode & IS SCALING POLAR COORDINATES

Now in the setPolarMode function you again will need to add the '-' to the scaling factors.

  xFormat.setScale(-1); // radius mode
...
  xFormat.setScale(-2); // diameter mode

You will want to verify that the circular interpolation and cutter compensation codes are correct for your machine.  On a typical lathe that can cut from the positive or negative directions, the negative direction will usually require that these codes to be reversed.



Bob Schultz
Sr. Post Processor Developer

0 Likes
Message 5 of 17

Anonymous
Not applicable

Thank you, Im finally getting back on this, Ive been using a work around, Using mirror at the machine, but it has its limitations. It actually needs to be Rotated like using a G68 other wise my engraving comes out backwards

What I really need is some kind of "IF, THEN, ELSE" statement: 

like-  IF - LIVE TOOL- THEN - rotate 180- ELSE CANCEL Rotate-

 

0 Likes
Message 6 of 17

bob.schultz
Alumni
Alumni

Hello Patrick,

 

So that I am clear on the situation, you were manually modifying all of the X-positions to have a '-' sign and this worked on your machine?  You then used the mirror function on the control instead and now of course the engravings are mirrored.  If changing all positive X-positions to negative X-positions worked for you when you manually modified them, then the suggested changes to the post should also work for you.  Have you tried this and if so what were the results?

 

Thanks



Bob Schultz
Sr. Post Processor Developer

0 Likes
Message 7 of 17

Anonymous
Not applicable

No, that yeilded the same results as manually editing my program, what i ended up doing was model my engaving backwards, cam my engraving path thru the part then mirroring, that made things look right.

Same thing on a mill, if you change all you x values from pos to neg youl get a mirrored part. Problem with this little lathe is all the tools on the turret come in from x pos, only the live tool come in from x neg, tends to throw everything off. Mirroring works ok for drilling holes tho

0 Likes
Message 8 of 17

bob.schultz
Alumni
Alumni

OK, this makes it clearer.  I thought that the X had to be reversed for both turning and milling and that it worked when you manually changed the X-values.  To change the X-axis direction for radial milling/engraving make the following change in the onSection function.

function onSection() {
  // Detect machine configuration
  machineConfiguration = (currentSection.spindle == SPINDLE_PRIMARY) ? machineConfigurationMainSpindle : machineConfigurationSubSpindle;
  if (!gotBAxis) {
    if (getMachiningDirection(currentSection) == MACHINING_DIRECTION_AXIAL && !currentSection.isMultiAxis()) {
      machineConfiguration.setSpindleAxis(new Vector(0, 0, 1));
    } else {
      machineConfiguration.setSpindleAxis(new Vector(-1, 0, 0)); // change this value to -1
    }
  } else {
    machineConfiguration.setSpindleAxis(new Vector(0, 0, 1)); // set the spindle axis depending on B0 orientation
  }

The X-axis positions should now be negative when radial milling and positive when turning.



Bob Schultz
Sr. Post Processor Developer

Message 9 of 17

Anonymous
Not applicable

I attached a link to my model below.

https://a360.co/2GhYDKw

 

On this 1 I didn't cam thru the part. just modeled my letters backward then mirrored my program


@Anonymous wrote:

No, that yeilded the same results as manually editing my program, what i ended up doing was model my engaving backwards, cam my engraving path thru the part then mirroring, that made things look right.

Same thing on a mill, if you change all you x values from pos to neg youl get a mirrored part. Problem with this little lathe is all the tools on the turret come in from x pos, only the live tool come in from x neg, tends to throw everything off. Mirroring works ok for drilling holes tho


 

0 Likes
Message 10 of 17

bob.schultz
Alumni
Alumni

Thanks for providing your part.  I tried it with the last suggested change and the output does look good to me in the backplot window.  Have you tried this change yet?



Bob Schultz
Sr. Post Processor Developer

0 Likes
Message 11 of 17

Anonymous
Not applicable

Thanks, I got my change made, I haven't had a chance to try it yet tho,  as soon as I do Ill get back with you.  Thanks again for your help.

0 Likes
Message 12 of 17

Anonymous
Not applicable

For milling this seems to work well, we are not quite that far yet, but on our drill cycles, i guess it reads the retract point and trys to move to a positive x position.

  
(Drill3)
M1
T808
M154
G98
G97
P3000 M133
G54
M8
G19
M15
G0 C-90.
M14

Here it needs a clearance move I.E. X-1.25 OTHERWISE IT COMES STRAIGHT IN FROM HOME POSITION
G0 Z-0.055
X-2.2
X1.4
G241 X-0.6991 Z-0.055 R1.275 F1.
G80
G0 X-2.2
M155
G53 X0.
G53 Z0.

 

Thanks

0 Likes
Message 13 of 17

bob.schultz
Alumni
Alumni
Accepted solution

For the cycle directions you can make the following change in the getCommonCycle function.

 

  } else {
    return [xOutput.format(x), yOutput.format(y),
      zOutput.format(z),
      (r !== undefined) ? ("R" + spatialFormat.format((gPlaneModal.getCurrent() == 19) ? -r*2 : r)) : ""];
  }

And the following change in the writeCycleClearance function.

 

 

    case 19:
      writeBlock(gMotionModal.format(0), xOutput.format(-cycle.clearance));
      break;

For the output of the initial position, you will have to determine how you want it output.  The code that outputs the initial position in Z and then in X is in the onSection function.

 

 

  if (insertToolCall || retracted || machineState.useXZCMode || (tool.getSpindleMode() == SPINDLE_CONSTANT_SURFACE_SPEED)) {
    gMotionModal.reset();
    if (machineState.useXZCMode) {
      writeBlock(gMotionModal.format(0), zOutput.format(initialPosition.z));
      writeBlock(
        gMotionModal.format(0),
        xOutput.format(getModulus(initialPosition.x, initialPosition.y)),
        conditional(gotYAxis, yOutput.format(0)),
        cOutput.format(getCWithinRange(initialPosition.x, initialPosition.y, cOutput.getCurrent()))
      );
      previousABC.setZ(cOutput.getCurrent());
    } else {
      writeBlock(gMotionModal.format(0), zOutput.format(initialPosition.z));
      writeBlock(gMotionModal.format(0), xOutput.format(initialPosition.x), yOutput.format(initialPosition.y));
    }
  }

You need to decide on how you want the initial position of the operation to be output.  For example, if you want the X and Z output in the same block, you can change the code to look like this.

 

    } else {
      writeBlock(gMotionModal.format(0), xOutput.format(initialPosition.x), yOutput.format(initialPosition.y), zOutput.format(initialPosition.z));
    }


Bob Schultz
Sr. Post Processor Developer

0 Likes
Message 14 of 17

Anonymous
Not applicable

This seem to be running well now, but I got another question. I am trying to do a 3d parallel cut on a part, i can set my tool orientation to get the tool path I want but it throws out a y axis error when I go to post it.  I tried making a different setup for mill work andusing the same post processor it posts out ok, how can I get my tool rotated around to the side and get the same result?1.JPG2.JPG

 

 

 

0 Likes
Message 15 of 17

bob.schultz
Alumni
Alumni

It is interesting that it works when you create a new setup.  What is the difference between the setups?  Can you provide the part you are working on?

 

For 4-axis contouring it is recommended that you use a 2D operation with the Wrap Toolpath box checked.  This is really the only mode that guarantees you will get a 4-axis toolpath, without the 5th axis being engaged.

 

Wrapped.png

Pick the inner radius for the cylinder.



Bob Schultz
Sr. Post Processor Developer

0 Likes
Message 16 of 17

Anonymous
Not applicable

Thank You;

In the first example above, I used 2d pocket and wrapped my tool path for my roughing operations, but as it rotates, it doesn't cut the sides of my part square like they should be, so I added a parallel cut to finish which cuts it properly, and I have my tools coming in from the side  like it outta. but it doesn't post. in the second example above. I just made a straight on mill cut and it posts perfect using my cl-1 post but of course now my z axis is the wrong direction

i have attached my file below.

Seems like it should work fine.I have used the same thing for cutting flats on a hex but had to fake in my z axis direction ( made it think its coming in from the end of the part instead of the side)

0 Likes
Message 17 of 17

bob.schultz
Alumni
Alumni

Thanks for supplying the part and the post.  There are a few issues here.

  1. The walls do not go through the center of the cylinder, which is why a wrapped tool path does not work.
  2. Your machine does not have a Y-axis, so it is not possible to machine this contour using the parallel tool path.  This is a 3-axis mode that does not control the C-axis.
  3. Setup2 works because you defined it as if the part was mounted sideways in the chuck, with the cylinder normal pointing straight up in Y, instead of Z as it is mounted on the machine.  The post then converts this to XZC-mode, where the C-axis is substituted for the Y-axis.  This mode is used for axial milling, but cannot be used for radial milling.
  4. The best strategy to use is a Multi-Axis Swarf operation.  Unfortunately, this tool path contains slight variations in the 5th axis that causes the post to fail (since it is only a 4-axis post).

The post can be "hacked" to allow for and ignore small deviations in the 5th axis.  You can try a Swarf tool path and see if it looks correct and if so I can show you how to "hack" the post.



Bob Schultz
Sr. Post Processor Developer