For Fusion 360 - Siemens 828d Post Processor

// Post processor entry point function onOpen() // Write program header writeBlock("% N " + getProgramName() + "_MPF"); writeBlock("; Generated by Fusion 360 Siemens 828D Post Processor"); writeBlock("; Date: " + new Date());

// Main execution function main() onOpen(); onSetup(); onToolpath(); onClose();

// Siemens 828D post processor for Fusion 360 // Description: Siemens Sinumerik 828D milling post processor // Version: 1.0 // Date: 2024 // Requirements: Fusion 360 with manufacturing extension // Post processor configuration var properties = vendor: "Siemens", product: "828D Milling", version: "1.0", supportsMultipleSpindle: false, supportsSpindleDirection: true, supportsCoolant: true, supportsToolpathRadiusCompensation: true, supportsToolDiameter: true, supportsRadialCompensation: false, supportsLiveTool: false, isLibrary: false, codePage: "windows-1252" ;

// Spindle speed and direction var spindleSpeed = tool.spindleSpeed; var spindleDirection = tool.clockwise ? "M3" : "M4"; siemens 828d post processor for fusion 360

// Canned cycles function onCycle(section) var cycleType = section.getCycleType();

// Set safe units and modes writeBlock("G90 G71 G40 G17 G64"); // Absolute, Metric, Cutter comp cancel, XY plane, continuous path mode writeBlock("G0 G60"); // Exact stop mode

// Boring cycle (CYCLE86) function onBoringCycle(section) // Post processor entry point function onOpen() //

// Retract spindle writeBlock("G0 G53 Z0 D0"); // Retract to machine Z zero

// Global variables var xOutput = createVariable(prefix:"X", force:true); var yOutput = createVariable(prefix:"Y", force:true); var zOutput = createVariable(prefix:"Z", force:true); var iOutput = createVariable(prefix:"I"); var jOutput = createVariable(prefix:"J"); var kOutput = createVariable(prefix:"K"); var fOutput = createVariable(prefix:"F"); var sOutput = createVariable(prefix:"S"); var tOutput = createVariable(prefix:"T"); var dOutput = createVariable(prefix:"D"); var mOutput = createVariable(prefix:"M"); var rOutput = createVariable(prefix:"R");

writeBlock("MCALL CYCLE84(" + rtp + "," + rfp + "," + sdis + "," + dp + "," + dpr + "," + dtb + "," + sdt + "," + sdir + "," + tac + ")"); writeBlock("S" + spindleSpeed); writeBlock("X" + xOutput.format(x) + " Y" + yOutput.format(y)); writeBlock("MCALL"); Date: " + new Date())

function processOperations() var toolpath = getToolpath();

if (spindleSpeed != currentSpindleSpeed) writeBlock(sOutput.format(spindleSpeed) + " " + spindleDirection); currentSpindleSpeed = spindleSpeed; else writeBlock(spindleDirection);

function onToolpath() // Process operations processOperations();

function onSetup() // Write setup information var programName = getProgramName(); writeBlock("; PROGRAM: " + programName); writeBlock("; UNITS: " + (getParameter("unit") == "mm" ? "MILLIMETERS" : "INCHES"));