After searching the autodesk forum and a few other forums I've discovered that there are an array of post processors in HSM / Fusion 360 that support machine controllers that rely on the NIST / LinuxCNC Gcode standard set of commands. A small set of examples of the posts and machines that I am talking about are listed here
• Tormach
• GRBL / Carbide 3d / X carve
• Shopbot
• Othermill / Bantam / TinyG
• LinuxCNC
When it comes to probing, these machines are typically doing capacitive touch using the G38x set of codes. On other machines such as Fanuc based controllers, probing is done on G65 through a canned cycle. Currently Fusion 360 / HSM posts that support the NIST / LinuxCNC instruction set encounter an error that disables one from post processing the probing operations in Fusion 360 / HSM
That Error shown here......
############################################################################### Error: Spindle speed out of range. Error at line: 480 Error in operation: 'Probe1' Failed while processing onSection() for record 261. ############################################################################### Error: Failed to invoke function 'onSection'. Error: Failed to invoke 'onSection' in the post configuration. Error: Failed to execute configuration. Stop time: Wednesday, July 10, 2019 6:49:28 PM Post processing failed.
Just for reference.......
I've commented on a few post on this subject
I've also found some posts on the autodesk forums (and other forums) from folks characterizing what I believe to be the same issue.
Here is the current Othermill post processor I am looking at from HSM in verbose form
I believe that the issue is on line 480 and that the probing function gets checked by this function called "onSection()" which likely checks all of the operations to make sure that the tools have a spindle speed before posting correctly (as a safety measure). I have attempted a solution in green below but this did not work.
if (insertToolCall || isFirstSection() || (rpmFormat.areDifferent(spindleSpeed, sOutput.getCurrent())) || (tool.clockwise != getPreviousSection().getTool().clockwise)) { if ((spindleSpeed < 1) && !isProbeOperation()) { error(localize("Spindle speed out of range.")); return; } if (spindleSpeed > 99999) { warning(localize("Spindle speed exceeds maximum value.")); } if (properties.useActiveSpindle) { writeBlock( sOutput.format(spindleSpeed), mFormat.format(tool.clockwise ? 3 : 4) ); onDwell(4); } else { sOutput.format(spindleSpeed); writeComment( "S" + rpmFormat.format(spindleSpeed) + " " + mFormat.format(tool.clockwise ? 3 : 4) ); wait = true; } }
If anyone has any ideas about this issue or would like to congregate around post processor support for G38x codes please do chime in.
@fonsecr @Steinwerks @GeorgeRoberts @LibertyMachine @etfrench @daniel_lyall @Anonymous @RyanWeber@xNerdius.MaximusX
Grab some of the G38 and G38.x macros people have a working and post them so the post guys have something to use to update the post if they want to.
Also, you can use a pass-through, call program so on, to get the info into the Gcode.
Can't find what you're looking for? Ask the community or share your knowledge.