I'm having issues with the standard Fusion 360 postprocessor Sinumerik 840D (siemens-840D inspection.cps) for our DMU80 eVo. The postprocessor has been adapted for our DMU80.
The problem is that during 5-axis machining, the machine positions itself simultaneously in all 5 axes (see video), which leads to crashes.
I want the machine to first preposition with the B and C axes, and only then execute the Traori command.
The challenge lies in the tilted B-axis of the machine.
I would greatly appreciate any assistance.
What i have:
; %_N_1001_MPF
WORKPIECE(,,,"BOX",112,0,-60,80,120,120,-120,-120)
G90 G94
G71
G64
G17
G0 SUPA Z-1 D0
CYCLE800()
; 2D-Kontur1
T="NCBO_D10" D1
M6
S4775 M3
G17 G90 G94
G55
CYCLE800()
TRAORI
G0 X4.602 Y184.943 Z-43.283 A3=0.024874 B3=0.999691 C3=0
M8
What i want
; %_N_1001_MPF
WORKPIECE(,,,"BOX",112,0,-60,80,120,120,-120,-120)
G90 G94
G71
G64
G17
G0 SUPA Z-1 D0
CYCLE800()
; 2D-Kontur1
T="NCBO_D10" D1
M6
S4775 M3
G17 G90 G94
G55
G0 B119.347 C87.441 ;<-------------Prepositting
CYCLE800()
TRAORI
G0 X4.602 Y184.943 Z-43.283 A3=0.024874 B3=0.999691 C3=0
M8
Yes I have a customized postprocessor with machine configuration. I did not want to post it here.
But it doesn't do that either.
Here is my machine config
function defineMachine() {
var useTCP = true;
if (false) { // note: setup your machine here
var bAxis = createAxis({coordinate:1, table:true, axis:[0.584968, -0.573504, 0.573504], range:[-6.5, 180.5], preference:1, tcp:useTCP});
var cAxis = createAxis({coordinate:2, table:true, axis:[0, 0, -1], range:[0, 360], preference:0, tcp:useTCP});
machineConfiguration = new MachineConfiguration(bAxis, cAxis);
setMachineConfiguration(machineConfiguration);
if (receivedMachineConfiguration) {
warning(localize("The provided CAM machine configuration is overwritten by the postprocessor."));
receivedMachineConfiguration = false; // CAM provided machine configuration is overwritten
}
}
if (!receivedMachineConfiguration) {
// multiaxis settings
if (machineConfiguration.isHeadConfiguration()) {
machineConfiguration.setVirtualTooltip(false); // translate the pivot point to the virtual tool tip for nonTCP rotary heads
}
// retract / reconfigure
var performRewinds = false; // set to true to enable the rewind/reconfigure logic
if (performRewinds) {
machineConfiguration.enableMachineRewinds(); // enables the retract/reconfigure logic
safeRetractDistance = (unit == IN) ? 1 : 25; // additional distance to retract out of stock, can be overridden with a property
safeRetractFeed = (unit == IN) ? 20 : 500; // retract feed rate
safePlungeFeed = (unit == IN) ? 10 : 250; // plunge feed rate
machineConfiguration.setSafeRetractDistance(safeRetractDistance);
machineConfiguration.setSafeRetractFeedrate(safeRetractFeed);
machineConfiguration.setSafePlungeFeedrate(safePlungeFeed);
var stockExpansion = new Vector(toPreciseUnit(0.1, IN), toPreciseUnit(0.1, IN), toPreciseUnit(0.1, IN)); // expand stock XYZ values
machineConfiguration.setRewindStockExpansion(stockExpansion);
}
// multi-axis feedrates
if (machineConfiguration.isMultiAxisConfiguration()) {
machineConfiguration.setMultiAxisFeedrate(
useTCP ? FEED_FPM : getProperty("useDPMFeeds") ? FEED_DPM : FEED_INVERSE_TIME,
9999.99, // maximum output value for inverse time feed rates
getProperty("useDPMFeeds") ? DPM_COMBINATION : INVERSE_MINUTES, // INVERSE_MINUTES/INVERSE_SECONDS or DPM_COMBINATION/DPM_STANDARD
0.5, // tolerance to determine when the DPM feed has changed
1.0 // ratio of rotary accuracy to linear accuracy for DPM calculations
);
setMachineConfiguration(machineConfiguration);
}
/* home positions */
//
machineConfiguration.setHomePositionX(toPreciseUnit(-1, MM));
machineConfiguration.setHomePositionY(toPreciseUnit(-1, MM));
machineConfiguration.setRetractPlane(toPreciseUnit(-1, MM));
}
}
@iros102
I offer post processor development as a service and can definitely help with this! Email me at: lee@cnclee.com if still needing assistance.
Can't find what you're looking for? Ask the community or share your knowledge.