@Anonymous the issue is into your post processor. I assume this is a custom post?
The reason why it will not output the required coordinates is that in onLinear the xyz output format gets called twice:
var x = xOutput.format(_x);
var y = yOutput.format(_y);
var z = zOutput.format(_z);
var f = feedOutput.format(feed);
var xx = xOutput.format(getCurrentPosition().x);
var yy = yOutput.format(getCurrentPosition().y);
Since XYZ output are modal formats, the post will not output the needed Y-coordinate in this example since it did get assigned wrong.
Here is the updated onLinear() function, please replace that into your post:
function onLinear(_x, _y, _z, feed) {
if(properties.decelerationOverride) {
writeBlock(gNineModal.format(9));
}
// at least one axis is required
if (pendingRadiusCompensation >= 0) {
// ensure that we end at desired position when compensation is turned off
xOutput.reset();
yOutput.reset();
}
var x = xOutput.format(_x);
var y = yOutput.format(_y);
var z = zOutput.format(_z);
var f = feedOutput.format(feed);
var xx = getCurrentPosition().x;
var yy = getCurrentPosition().y;
if (hasParameter("operation:makeSharpCorners")) {
var makeSharpCorners = getParameter("operation:makeSharpCorners");
} else {
var makeSharpCorners = 0;
}
if (x || y || z) {
if (pendingRadiusCompensation >= 0) {
pendingRadiusCompensation = -1;
var d = tool.diameterOffset;
if (d > numberOfToolSlots) {
warning(localize("The diameter offset exceeds the maximum value."));
}
switch (radiusCompensation) {
case RADIUS_COMPENSATION_LEFT:
writeBlock(gPlaneModal.format(17), gFormat.format(1), xOutput.format(xx), yOutput.format(yy));
xOutput.reset();
yOutput.reset();
if (makeSharpCorners) {
writeBlock(gCycleModal.format(48));
} else {
writeBlock(gCycleModal.format(49));
}
writeBlock(gFormat.format(41), xOutput.format(xx), yOutput.format(yy));
writeBlock(gFormat.format(1), x, y, z, f);
break;
case RADIUS_COMPENSATION_RIGHT:
writeBlock(gPlaneModal.format(17), gFormat.format(1), xOutput.format(xx), yOutput.format(yy));
xOutput.reset();
yOutput.reset();
if (makeSharpCorners) {
writeBlock(gCycleModal.format(48));
} else {
writeBlock(gCycleModal.format(49));
}
writeBlock(gFormat.format(42), xOutput.format(xx), yOutput.format(yy));
writeBlock(gFormat.format(1), x, y, z, f);
break;
default:
writeBlock(gFormat.format(1), x, y, z, f);
writeBlock(gFormat.format(40));
}
} else {
writeBlock(gMotionModal.format(1), x, y, z, f);
}
} else if (f) {
if (getNextRecord().isMotion()) { // try not to output feed without motion
feedOutput.reset(); // force feed on next line
} else {
writeBlock(gMotionModal.format(1), f);
}
}
}
In general you should maybe have a look at this post where the issue is fixed as well.
http://cam.autodesk.com/posts?p=bridgeport_dx32
Achim.N
Principal Technology Consultant