HI @JustinEllis4LFCU
There many Fanuc based Mill/Turn post in Fusion 360 library, you can try any one of those.

You have to edit the M and G codes as per the SMART NL 2000.
You can look into getCode() function and change the spindle ON OFF codes , Spindle direction codes etc..
function getCode(code, spindle) {
switch (code) {
case "PART_CATCHER_ON":
return (spindle == SPINDLE_MAIN) ? 73 : 273;
case "PART_CATCHER_OFF":
return (spindle == SPINDLE_MAIN) ? 74 : 274;
case "TAILSTOCK_ON":
machineState.tailstockIsActive = true;
return 25;
case "TAILSTOCK_OFF":
machineState.tailstockIsActive = false;
return 26;
/*
case "SET_SPINDLE_FRAME":
return (spindle == SPINDLE_MAIN) ? 80 : 83;
*/
case "ENABLE_C_AXIS":
machineState.cAxisIsEngaged = true;
return (spindle == SPINDLE_MAIN) ? 45 : 245;
case "DISABLE_C_AXIS":
machineState.cAxisIsEngaged = false;
return (spindle == SPINDLE_MAIN) ? 46 : 246;
case "POLAR_INTERPOLATION_ON":
return 12.1;
case "POLAR_INTERPOLATION_OFF":
return 13.1;
case "STOP_SPINDLE":
machineState.mainSpindleIsActive = false;
machineState.subSpindleIsActive = false;
machineState.liveToolIsActive = false;
return 5;
case "ORIENT_SPINDLE":
return (spindle == SPINDLE_MAIN) ? 19 : 219;
case "START_SPINDLE_CW":
switch (spindle) {
case SPINDLE_MAIN:
machineState.mainSpindleIsActive = true;
return 3;
case SPINDLE_SUB:
machineState.subSpindleIsActive = true;
return 203;
case SPINDLE_LIVE:
machineState.liveToolIsActive = true;
return 13;
}
break;
case "START_SPINDLE_CCW":
switch (spindle) {
case SPINDLE_MAIN:
machineState.mainSpindleIsActive = true;
return 4;
case SPINDLE_SUB:
machineState.subSpindleIsActive = true;
return 204;
case SPINDLE_LIVE:
machineState.liveToolIsActive = true;
return 14;
}
break;
case "FEED_MODE_MM_REV":
return 99;
case "FEED_MODE_MM_MIN":
return 98;
case "CONSTANT_SURFACE_SPEED_ON":
return 96;
case "CONSTANT_SURFACE_SPEED_OFF":
return 97;
case "AUTO_AIR_ON":
return 53;
case "AUTO_AIR_OFF":
return 58;
case "LOCK_MULTI_AXIS":
return (spindle == SPINDLE_MAIN) ? 68 : 268;
case "UNLOCK_MULTI_AXIS":
return (spindle == SPINDLE_MAIN) ? 69 : 269;
case "CLAMP_CHUCK":
return (spindle == SPINDLE_MAIN) ? 10 : 210;
case "UNCLAMP_CHUCK":
return (spindle == SPINDLE_MAIN) ? 11 : 211;
case "SPINDLE_SYNCHRONIZATION_PHASE":
return 34;
case "SPINDLE_SYNCHRONIZATION_SPEED":
return 35;
case "SPINDLE_SYNCHRONIZATION_OFF":
return 36;
case "TORQUE_SKIP_ON":
return 598;
case "TORQUE_SKIP_OFF":
return 599;
case "RIGID_TAPPING":
return 329;
/*
case "INTERLOCK_BYPASS":
return (spindle == SPINDLE_MAIN) ? 31 : 131;
*/
/*
case "INTERFERENCE_CHECK_OFF":
return 110;
case "INTERFERENCE_CHECK_ON":
return 111;
*/
case "CYCLE_PART_EJECTOR":
return 47;
case "AIR_BLAST_ON":
return (spindle == SPINDLE_MAIN) ? 51 : 251;
case "AIR_BLAST_OFF":
return (spindle == SPINDLE_MAIN) ? 59 : 259;
default:
error(localize("Command " + code + " is not defined."));
return 0;
}
return 0;
}
For detail info about the post editing please refer the FAQ link
If you got any doubts please let me know.
Regards
If my post answers your question, please click the 'Accept Solution' button. This helps everyone find answers more quickly!
Arun.RS
Senior Technology Consultant