Hey all,
I did find a way to overcome this problem.
I went into "open config" when I opened up "post process" (snapshot attached)
***BE SURE TO SAVE A NEW/DIFFERENT/TEST VERSION OF YOUR CONFIGURATION BEFORE GOING ANY FURTHER!***
I took the configuration from my old pc (which was "supposed" to be the same post processor from Autodesk) and copied every line.
I emptied the configuration on the test version I created on my new pc and pasted the entire configuration from the version that I knew worked.
Now both of my pc's spit out the same code, whilst before there were minor differences, but those differences made the code useless on our flow.
Thanks,
-I will paste the entire configuration below this line so anyone can copy it and replace their faulty version with this.
/**
Copyright (C) 2012-2017 by Autodesk, Inc.
All rights reserved.
Flow waterjet post processor configuration.
$Revision: 41945 955f691b4c25af124fd74b25bd0e8aa067b0b95a $
$Date: 2018-04-19 14:59:07 $
FORKID {F61954EF-5A29-4B93-93E7-870BC2786880}
*/
description = "Flow Waterjet ORD";
vendor = "Flow";
vendorUrl = "http://www.flowwaterjet.com";
legal = "Copyright (C) 2012-2017 by Autodesk, Inc.";
certificationLevel = 2;
minimumRevision = 39000;
longDescription = "Post for Flow Waterjets using software Version 5. The initial head position must always match the WCS XY origin specified in the CAM Setup. The initial Z head position must always be zeroed just above the top of the stock.";
extension = "ORD";
setCodePage("ascii");
// unit = IN; // only inch mode is supported
capabilities = CAPABILITY_JET;
tolerance = spatial(0.002, MM);
minimumChordLength = spatial(0.25, MM);
minimumCircularRadius = spatial(0.01, MM);
maximumCircularRadius = spatial(1000, MM);
minimumCircularSweep = toRad(0.01);
maximumCircularSweep = toRad(90);
allowHelicalMoves = false;
allowedCircularPlanes = 1 << PLANE_XY; // allow only XY circular motion
properties = {
useHSMFeedrates: false,
maximumFeedrateIPM: 700 // specifies the rapid traverse maximum
};
// user-defined property definitions
propertyDefinitions = {
useHSMFeedrates: {title:"Use HSM Feedrates", description:"Specifies whether to output the feedrates from HSM.", type:"boolean"},
maximumFeedrateIPM: {title:"Maximum feedrate(IPM)", description:"Sets the maximum feedrate in IPM.", type:"integer"}
};
// version 6 should be user selectable, but now use version 5
// version 5 does not have z moves, so it will be safer for inexperienced users
// version 5 does not have the mysterious parameter after the cutter comp value
var useVersion6 = false;
// use fixed width instead
var xyzFormat = createFormat({decimals:4, trim:false});
var integerFormat = createFormat({decimals:0});
// fixed settings
var thickness = 0;
var arcCounter = 0;
var lineCounter = 0;
// used for delaying moves
var firstPointOnContour = true;
var xTemp = 0;
var yTemp = 0;
var zTemp = 0;
var gotMove = false;
// override radius compensation
var compensationOffset = 0; // center compensation
var etchOperation = false; // though-cut unless set to true
/**
Writes the specified block.
*/
function writeBlock() {
writeWords(arguments);
}
var FIELD = " ";
/** Make sure fields are aligned. */
function f(text) {
var length = text.length;
if (length > 10) {
return text;
}
return FIELD.substr(0, 10 - length) + text;
}
/** Make sure fields are aligned. */
function fi(text, size) {
var length = text.length;
if (length > size) {
return text;
}
return FIELD.substr(0, size - length) + text;
}
function onOpen() {
redirectToBuffer(); // buffer the entire program to be able to count the linear and circular moves
setWordSeparator("");
switch (unit) {
case IN:
// Do nothing, Flow files can only be in IN
break;
case MM:
xyzFormat = createFormat({decimals:4, trim:false, scale:1/25.4}); // convert to inches
break;
}
{ // stock - workpiece
var workpiece = getWorkpiece();
var delta = Vector.diff(workpiece.upper, workpiece.lower);
if (delta.isNonZero()) {
// thickness = (workpiece.upper.z - workpiece.lower.z);
}
}
if (getNumberOfSections() > 0) {
var firstSection = getSection(0);
var remaining = firstSection.workPlane;
if (!isSameDirection(remaining.forward, new Vector(0, 0, 1))) {
error(localize("Tool orientation is not supported."));
return;
}
setRotation(remaining);
var originZ = firstSection.getGlobalZRange().getMinimum(); // the cutting depth of the first section
for (var i = 0; i < getNumberOfSections(); ++i) {
var section = getSection(i);
var z = section.getGlobalZRange().getMinimum();
if ((z + 1e-9) < originZ) {
error(localize("You are trying to machine at multiple depths which is not allowed."));
return;
}
}
}
}
function onSection() {
var remaining = currentSection.workPlane;
if (!isSameDirection(remaining.forward, new Vector(0, 0, 1))) {
error(localize("Tool orientation is not supported."));
return;
}
setRotation(remaining);
etchOperation = false;
if (currentSection.getType() == TYPE_JET) {
switch (tool.type) {
case TOOL_WATER_JET:
break;
default:
error(localize("The CNC does not support the required tool."));
return;
}
switch (currentSection.jetMode) {
case JET_MODE_THROUGH:
break;
case JET_MODE_ETCHING:
etchOperation = true;
break;
case JET_MODE_VAPORIZE:
error(localize("Vaporize is not supported by the CNC."));
return;
default:
error(localize("Unsupported cutting mode."));
return;
}
} else if (currentSection.getType() == TYPE_MILLING) {
warning(localize("Milling toolpath will be used as waterjet through-cutting toolpath."));
} else {
error(localize("CNC doesn't support the toolpath."));
return;
}
}
function onParameter(name, value) {
}
function onRapid(x, y, z) {
// last point
if (!firstPointOnContour) {
// end of shape
if (useVersion6) {
writeBlock(
f(xyzFormat.format(xTemp)), ",",
f(xyzFormat.format(yTemp)), ",",
f(xyzFormat.format(zTemp)), ",",
fi(integerFormat.format(0), 2), ",",
fi(integerFormat.format(0), 5), ",",
fi(integerFormat.format(0), 2), ",",
fi(integerFormat.format(0), 2)
);
} else {
writeBlock(
f(xyzFormat.format(xTemp)), ",",
f(xyzFormat.format(yTemp)), ",",
fi(integerFormat.format(0), 2), ",",
fi(integerFormat.format(0), 5), ",",
fi(integerFormat.format(0), 2)
);
}
++lineCounter;
}
if (useVersion6) {
writeBlock(
f(xyzFormat.format(x)), ",",
f(xyzFormat.format(y)), ",",
f(xyzFormat.format(z)), ",",
fi(integerFormat.format(0), 2), ",",
fi(integerFormat.format(99), 5), ",",
fi(integerFormat.format(0), 2), ",",
fi(integerFormat.format(2), 2)
);
} else {
writeBlock(
f(xyzFormat.format(x)), ",",
f(xyzFormat.format(y)), ",",
fi(integerFormat.format(0), 2), ",",
fi(integerFormat.format(99), 5), ",",
fi(integerFormat.format(0), 2)
);
}
xTemp = x;
yTemp = y;
zTemp = z;
gotMove = true;
++lineCounter;
}
function onLinear(x, y, z, feed) {
if (useVersion6) {
writeBlock(
f(xyzFormat.format(xTemp)), ",",
f(xyzFormat.format(yTemp)), ",",
f(xyzFormat.format(zTemp)), ",",
fi(integerFormat.format(0), 2), ",",
fi(integerFormat.format(power ? getFeedInPercent(feed) : 0), 5), ",",
fi(integerFormat.format(power ? compensationOffset : 0), 2), ",",
fi(integerFormat.format(2), 2)
);
} else {
writeBlock(
f(xyzFormat.format(xTemp)), ",",
f(xyzFormat.format(yTemp)), ",",
fi(integerFormat.format(0), 2), ",",
fi(integerFormat.format(power ? getFeedInPercent(feed) : 0), 5), ",",
fi(integerFormat.format(power ? compensationOffset : 0), 2)
);
}
xTemp = x;
yTemp = y;
zTemp = z;
gotMove = true;
firstPointOnContour = false;
++lineCounter;
}
function onPower(power) {
}
function onCircular(clockwise, cx, cy, cz, x, y, z, feed) {
// spirals are not allowed - arcs must be < 360deg
// fail if radius compensation is changed for circular move
validate(gotMove, "Move expected before circular move.");
circularICode = (clockwise ? 1 : -1);
if ((getCircularPlane() != PLANE_XY) || isHelical()) {
linearize(tolerance);
}
if (useVersion6) {
writeBlock(
f(xyzFormat.format(x)), ",",
f(xyzFormat.format(y)), ",",
f(xyzFormat.format(z)), ",",
fi(integerFormat.format(circularICode), 2), ",",
fi(integerFormat.format(power ? getFeedInPercent(feed) : 0), 5), ",",
fi(integerFormat.format(power ? compensationOffset : 0), 2), ",",
fi(integerFormat.format(2), 2), ",",
f(xyzFormat.format(cx)), ",",
f(xyzFormat.format(cy)), ",",
f(xyzFormat.format(0)) // PLANE_XY only
);
} else {
writeBlock(
f(xyzFormat.format(xTemp)), ",",
f(xyzFormat.format(yTemp)), ",",
fi(integerFormat.format(circularICode), 2), ",",
fi(integerFormat.format(power ? getFeedInPercent(feed) : 0), 5), ",",
fi(integerFormat.format(power ? compensationOffset : 0), 2), ",",
f(xyzFormat.format(cx)), ",",
f(xyzFormat.format(cy))
);
}
xTemp = x;
yTemp = y;
zTemp = z;
gotMove = true;
firstPointOnContour = false;
++arcCounter;
}
function getFeedInPercent(feed) {
var feedPercent;
if (properties.maximumFeedrateIPM > 0 && properties.useHSMFeedrates) {
// use HSM feedrates
switch (unit) {
case MM:
feed = feed * 1/ 25.4; // convert to in/min
break;
}
// 1 - 99 %
feedPercent = Math.min(Math.ceil(Math.min(properties.maximumFeedrateIPM, feed) / properties.maximumFeedrateIPM * 100), 99);
} else {
// use fixed feedrates per quality selection
switch (currentSection.quality) {
case 1:
// high quality
feedPercent = 20; // very slow, cut surface excellent
break;
case 2:
feedPercent = 40; // slow, cut surface good
break;
case 3:
feedPercent = 80; // fast, cut surface slightly rough
break;
default:
// medium quality
feedPercent = 60; // moderate, cut surface moderate
}
}
return feedPercent;
}
function onRadiusCompensation() {
switch (radiusCompensation) {
case RADIUS_COMPENSATION_LEFT:
compensationOffset = -1;
break;
case RADIUS_COMPENSATION_RIGHT:
compensationOffset = 1;
break;
default:
compensationOffset = 0; // center compensation
}
}
function onCycle() {
error(localize("Canned cycles are not supported."));
}
function onSectionEnd() {
compensationOffset = 0; // center compensation
if (useVersion6) {
writeBlock(
f(xyzFormat.format(xTemp)), ",",
f(xyzFormat.format(yTemp)), ",",
f(xyzFormat.format(zTemp)), ",",
fi(integerFormat.format(0), 2), ",",
fi(integerFormat.format(0), 5), ",",
fi(integerFormat.format(0), 2), ",",
fi(integerFormat.format(0), 2));
} else {
writeBlock(
f(xyzFormat.format(xTemp)), ",",
f(xyzFormat.format(yTemp)), ",",
fi(integerFormat.format(0), 2), ",",
fi(integerFormat.format(0), 5), ",",
fi(integerFormat.format(0), 2));
}
++lineCounter;
if (!gotMove) {
var p = getCurrentPosition();
xTemp = p.x;
yTemp = p.y;
zTemp = p.z;
gotMove = true;
}
firstPointOnContour = true;
validate(gotMove, "Move expected at end of operation to turn off waterjet.");
}
function onClose() {
if (isRedirecting()) {
var mainProgram = getRedirectionBuffer();
closeRedirection();
writeln("// This file was created by FlowMaster(R), which is proprietary to Flow International Corporation. " + (lineCounter - 1) + " " + arcCounter);
if (useVersion6) {
writeln("VER 6.00");
}
writeln("// Created by Autodesk HSM");
if (programComment) {
writeln("// " + programComment);
}
write(mainProgram);
}
}