What's new
What's new

Why is my new DNM5700 so SLOWWW? G5.1?

Sounds like inventor uses the same methods fusion does to drive high speed settings. Stock to leave is a terrible way to do this. I’m not sure when someone on the autodesk post team will figure it out. That’s the first thing I change when working on posts. I get rid of all the check boxes and stuff as smoothing should always be output and then setup logic based on the operation tolerance. with that being said, I set the default .0004 tolerance value to trigger an 8 on the fanuc machines. A 10 is extreme. I didn’t read your first chart carefully enough and see that you have a few 10s in there. That’s going to slow things down a lot. 1 is also extreme depending on how the MTB tuned the the setup. On the Matsuuras, it’s insanely fast and you better have left like .020 of extra material because it just chews everything up. People saying it doesn’t effect straight line accuracy but that’s not what I’ve seen, sure, maybe if the machine is going straight for long enough to find its path but with the super high speed settings it’s easy to see the wiggle in straight lines after a corner as the machine approaches its target path. This is on the machines that don’t recreate create best fit arcs like fanuc and haas.
 
Sounds like inventor uses the same methods fusion does to drive high speed settings. Stock to leave is a terrible way to do this. I’m not sure when someone on the autodesk post team will figure it out. That’s the first thing I change when working on posts. I get rid of all the check boxes and stuff as smoothing should always be output and then setup logic based on the operation tolerance. with that being said, I set the default .0004 tolerance value to trigger an 8 on the fanuc machines. A 10 is extreme. I didn’t read your first chart carefully enough and see that you have a few 10s in there. That’s going to slow things down a lot. 1 is also extreme depending on how the MTB tuned the the setup. On the Matsuuras, it’s insanely fast and you better have left like .020 of extra material because it just chews everything up. People saying it doesn’t effect straight line accuracy but that’s not what I’ve seen, sure, maybe if the machine is going straight for long enough to find its path but with the super high speed settings it’s easy to see the wiggle in straight lines after a corner as the machine approaches its target path. This is on the machines that don’t recreate create best fit arcs like fanuc and haas.
Thanks for the info.

What are the other tolerance values vs smoothing values you use if you wouldn’t mind sharing?
 
Most modern machines are tuned with G5.1 in mind because of the higher available cutting feeds available. Ours are set to have G5.1 on at all times and a certain R value is set on startup, set by parameter. Canned cycles turn off G5.1 automatically and turn it back on when finished. The accel/decel parameters for G5.1 are set at the factory but may need tweaking depending on certain factors. G5.1 is designed to slow down feeds accordingly so as not to overburden the servos and to prevent jerking and over/under shooting the desired toolpath. There is also G5.1 Q3 which turns on nano smoothing and it uses a tolerance setting that the tool will "supposedly" stay inside that tolerance when cutting large sets of toolpath lines. But if you are expecting to run toolpaths at 600IPM, good luck. Just because a machine can feed at 600IPM or even 1000IPM doesn't mean you should do it. There are a lot of things to consider.
 
Most modern machines are tuned with G5.1 in mind because of the higher available cutting feeds available. Ours are set to have G5.1 on at all times and a certain R value is set on startup, set by parameter. Canned cycles turn off G5.1 automatically and turn it back on when finished. The accel/decel parameters for G5.1 are set at the factory but may need tweaking depending on certain factors. G5.1 is designed to slow down feeds accordingly so as not to overburden the servos and to prevent jerking and over/under shooting the desired toolpath. There is also G5.1 Q3 which turns on nano smoothing and it uses a tolerance setting that the tool will "supposedly" stay inside that tolerance when cutting large sets of toolpath lines. But if you are expecting to run toolpaths at 600IPM, good luck. Just because a machine can feed at 600IPM or even 1000IPM doesn't mean you should do it. There are a lot of things to consider.
Good info. The highest feed rate in my program was only 200ipm though.
 
I had a vf2ssyt 2021 and my dnm5700 is just as fast if not faster but parts of FAR better dimensional.
my R value are 3 5/6 7 typically for rough/semi finish/finish.
 
Guys thanks for all the help. I rewrote my postprocessor (clumsily, I might add... I don't know how to code) to use the tolerance value to set the smoothing level

I'll post it below in case other people want to change their Fusion/Inventor Posts. Not responsible if you fuck your shit up, remember that I'm a moron, bolded my changes:

// "OPERATION:TOLERANCE" CONTROLS SMOOTHNESS
// .002<=X == SMOOTHING LEVEL 1
// .001<=X<.002 == SMOOTHING LEVEL 4
// .0004<=X<.001 = SMOOTHING LEVEL 7
// X<.0004 = SMOOTHING LEVEL 10


// Start of smoothing logic
var smoothingSettings = {
roughing : 1, // roughing level for smoothing in automatic mode
semi : 4, // semi-roughing level for smoothing in automatic mode CTN ADDED 01/12/24 4 was 6
semifinishing : 7, // semi-finishing level for smoothing in automatic mode
finishing : 10, // finishing level for smoothing in automatic mode
thresholdRoughing : toPreciseUnit(0.5, MM), // operations with stock/tolerance above that threshold will use roughing level in automatic mode
thresholdFinishing : toPreciseUnit(0.05, MM), // operations with stock/tolerance below that threshold will use finishing level in automatic mode
thresholdSemiFinishing: toPreciseUnit(0.1, MM), // operations with stock/tolerance above finishing and below threshold roughing that threshold will use semi finishing level in automatic mode

differenceCriteria: "level", // options: "level", "tolerance", "both". Specifies criteria when output smoothing codes
autoLevelCriteria : "stock", // use "stock" or "tolerance" to determine levels in automatic mode
cancelCompensation: true // tool length compensation must be canceled prior to changing the smoothing level
};

// collected state below, do not edit
var smoothing = {
cancel : false, // cancel tool length prior to update smoothing for this operation
isActive : false, // the current state of smoothing
isAllowed : false, // smoothing is allowed for this operation
isDifferent: false, // tells if smoothing levels/tolerances/both are different between operations
level : -1, // the active level of smoothing
tolerance : -1, // the current operation tolerance
force : false // smoothing needs to be forced out in this operation
};

function initializeSmoothing() {
var previousLevel = smoothing.level;
var previousTolerance = smoothing.tolerance;

// determine new smoothing levels and tolerances
smoothing.level = parseInt(getProperty("useSmoothing"), 10);
smoothing.level = isNaN(smoothing.level) ? -1 : smoothing.level;
smoothing.tolerance = Math.max(getParameter("operation:tolerance", smoothingSettings.thresholdFinishing), 0);

// automatically determine smoothing level

if (smoothing.level == 9999) {
//CTN ADDED 01/12/2024 STARTING HERE
var smoothingFilterTolerance = xyzFormat.getResultingValue(getParameter("operation:tolerance",0)); //was "operation:smothingfiltertolerance"
if (smoothingFilterTolerance >= 0.00195) {
smoothing.level = smoothingSettings.roughing;
}
else if ((smoothingFilterTolerance >= 0.00095) && (smoothingFilterTolerance < 0.00195)) {
smoothing.level = smoothingSettings.semi;
}

else if ((smoothingFilterTolerance >= 0.00035) && (smoothingFilterTolerance < 0.00095)) {
smoothing.level = smoothingSettings.semifinishing;
}

else if (smoothingFilterTolerance < 0.00035) {
smoothing.level = smoothingSettings.finishing;
}

else{//CTN ADDED 01/12/2024 ENDING HERE

if (smoothingSettings.autoLevelCriteria == "stock") { // determine auto smoothing level based on stockToLeave
var stockToLeave = xyzFormat.getResultingValue(getParameter("operation:stockToLeave", 0));
var verticalStockToLeave = xyzFormat.getResultingValue(getParameter("operation:verticalStockToLeave", 0));
if (((stockToLeave >= smoothingSettings.thresholdRoughing) && (verticalStockToLeave >= smoothingSettings.thresholdRoughing)) ||
getParameter("operation:strategy", "") == "face") {
smoothing.level = smoothingSettings.roughing; // set roughing level
} else {
if (((stockToLeave >= smoothingSettings.thresholdSemiFinishing) && (stockToLeave < smoothingSettings.thresholdRoughing)) &&
((verticalStockToLeave >= smoothingSettings.thresholdSemiFinishing) && (verticalStockToLeave < smoothingSettings.thresholdRoughing))) {
smoothing.level = smoothingSettings.semi; // set semi level
} else if (((stockToLeave >= smoothingSettings.thresholdFinishing) && (stockToLeave < smoothingSettings.thresholdSemiFinishing)) &&
((verticalStockToLeave >= smoothingSettings.thresholdFinishing) && (verticalStockToLeave < smoothingSettings.thresholdSemiFinishing))) {
smoothing.level = smoothingSettings.semifinishing; // set semi-finishing level
} else {
smoothing.level = smoothingSettings.finishing; // set finishing level
}
}
} else { // detemine auto smoothing level based on operation tolerance instead of stockToLeave
if (smoothing.tolerance >= smoothingSettings.thresholdRoughing ||
getParameter("operation:strategy", "") == "face") {
smoothing.level = smoothingSettings.roughing; // set roughing level
} else {
if (((smoothing.tolerance >= smoothingSettings.thresholdSemiFinishing) && (smoothing.tolerance < smoothingSettings.thresholdRoughing))) {
smoothing.level = smoothingSettings.semi; // set semi level
} else if (((smoothing.tolerance >= smoothingSettings.thresholdFinishing) && (smoothing.tolerance < smoothingSettings.thresholdSemiFinishing))) {
smoothing.level = smoothingSettings.semifinishing; // set semi-finishing level
} else {
smoothing.level = smoothingSettings.finishing; // set finishing level
}
}
}
}
}//CTN ADDED 01/02/2024
 
Looks like a fusion post. If so you only have to change level and the 3 lines (threshold) under it. Change units to in.
 








 
Back
Top