Dynapath Post MOD

Dynapath Post MOD

PrecisionDesign
Enthusiast Enthusiast
540 Views
1 Reply
Message 1 of 2

Dynapath Post MOD

PrecisionDesign
Enthusiast
Enthusiast

Fusion Folks,

 

I have a Dynapath post which needs a couple modifications to it.

 

1) My control only allows one G Code per Line and when changing circular reference planes for an I,J,K arc moves it writes the code

 

G(17,18,19) G(02,03) I,J,K I need it to place the G(17,18,19) above the G(02,03) I,J,K Line

 

2) My controlo requires N Sequence numbers but can not handle any N numbers Abone N9999.  I need the N numbers to restart at N1 when N9999 has been reached.

 

Thanks for your Time,

Brandon Shannon

0 Likes
541 Views
1 Reply
Reply (1)
Message 2 of 2

bob.schultz
Alumni
Alumni

Hello Brandon,

 

It is pretty straight forward to make the changes that you need.  For the single G-code on a block, you will need to break out the G17 output from the circular block.  You can do this in the onCircular function using the following method.

 

    switch (getCircularPlane()) {
    case PLANE_XY:
      writeBlock(gPlaneModal.format(17)); // remove from following line and add this line
      writeBlock(gMotionModal.format(clockwise ? 2 : 3), xOutput.format(x), yOutput.format(y), zOutput.format(z), iOutput.format(cx, 0), jOutput.format(cy, 0), getFeed(feed));
      break;
    case PLANE_ZX:
      writeBlock(gPlaneModal.format(18));
      writeBlock(gMotionModal.format(clockwise ? 2 : 3), xOutput.format(x), yOutput.format(y), zOutput.format(z), iOutput.format(cx, 0), kOutput.format(cz, 0), getFeed(feed));
      break;
    case PLANE_YZ:
      writeBlock(gPlaneModal.format(19));
      writeBlock(gMotionModal.format(clockwise ? 2 : 3), xOutput.format(x), yOutput.format(y), zOutput.format(z), jOutput.format(cy, 0), kOutput.format(cz, 0), getFeed(feed));
      break;

There are 3 places in the onCircular function that will need to be changed, for full circles, IJK output, and Radius output.  If your control supports cutter compensation, then you will also have to modify the onLinear function to break out the G4x code onto its own line.

 

switch (radiusCompensation) {
      case RADIUS_COMPENSATION_LEFT:
        dOutput.reset();
        writeBlock(gFormat.format(41));
        writeBlock(gMotionModal.format(1), x, y, z, dOutput.format(d), f);
        break;
      case RADIUS_COMPENSATION_RIGHT:
        dOutput.reset();
        writeBlock(gFormat.format(42));
        writeBlock(gMotionModal.format(1), x, y, z, dOutput.format(d), f);
        break;
      default:
        writeBlock(gFormat.format(40));
        writeBlock(gMotionModal.format(1), x, y, z, f);
      }

For the sequence number limit you can add the following code to the writeBlock and writeOptionalBlock functions.

 

    if (properties.showSequenceNumbers) {
      if (sequenceNumber > 9999) { // add this code
        sequenceNumber = properties.sequenceNumberStart;
      }

 



Bob Schultz
Sr. Post Processor Developer