"A G-code command implicitly or explicitly requires XYZ axis words in the block, but none were detected." My post processor puts the X,Y,Z coordinates on the line before using a G0 for the move. This works fine on several of the commercial mills I work with (Hitachi,Mori, Fadel....) but creates an error on GRBL forcing me to edit all NC files to repeat the coordinates yet again in the arc move. Was there a reason for this and any suggestions on how to deal with this?
The correct solution it to edit your post processor, correct Gcode, as I know it, is: G0 X1 Y6 Y7 hmmm, reading some docs like G-Code Tutorial: Basic Program Structure and G Code Overview shows that the words can indeed be in any order. But GRBL requires the G word to be before the corresponding XYZ words. So, edit that post. (-: (keep in mind that the processor GRBL is running on has very little memory so the internal structure has had to be optimized in many ways to fit, and it seems that this includes 'limiting the word order').
Sorry, I see I fat fingered my post.....should be G3 not G0. Here is an example of 12 circles. What my post processor sends: G21 G0 G17 G40 G49 G80 G90 G0 G90 G54 X204.9491 Y-18.6559 S1069 M3 G3 I7.5 J0. F6.42 G0 X224.9491 G2 I7.5 J0. G0 X244.9491 G3 I7.5 J0. G0 X264.9491 G2 I7.5 J0. G0 X204.9491 Y-38.6559 G3 I7.5 J0. G0 X224.9491 G2 I7.5 J0. G0 X244.9491 G3 I7.5 J0. G0 X264.9491 G2 I7.5 J0. G0 X204.9491 Y-58.6559 G3 I7.5 J0. G0 X224.9491 G2 I7.5 J0. G0 X244.9491 G3 I7.5 J0. G0 X264.9491 G2 I7.5 J0. M5 G90 G28 X0. Y0. A0. M30 Here is the same program written for GRBL. Much of the XY information must be repeated even though the machine has not moved: G21 G17 G40 G49 G80 G90 G0 G90 G54 X204.9491 Y-18.6559 S1000 M3 G3 I7.5 J0. X204.9491 Y-18.6559 F300 G0 X224.9491 Y-18.6559 X224.9491 Y-18.6559 G2 I7.5 J0. G0 X244.9491 Y-18.6559 X244.9491 Y-18.6559 G3 I7.5 J0. G0 X264.9491 Y-18.6559 X264.9491 Y-18.6559 G2 I7.5 J0. G0 X204.9491 Y-38.6559 X204.9491 Y-38.6559 G3 I7.5 J0. G0 X224.9491 Y-38.6559 X224.9491 Y-38.6559 G2 I7.5 J0. G0 X244.9491 Y-38.6559 X244.9491 Y-38.6559 G3 I7.5 J0. G0 X264.9491 Y-38.6559 X264.9491 Y-38.6559 G2 I7.5 J0. G0 X204.9491 Y-58.6559 X204.9491 Y-58.6559 G3 I7.5 J0. G0 X224.9491 Y-58.6559 X224.9491 Y-58.6559 G2 I7.5 J0. G0 X244.9491 Y-58.6559 X244.9491 Y-58.6559 G3 I7.5 J0. G0 X264.9491 Y-58.6559 X264.9491 Y-58.6559 G2 I7.5 J0. X264.9491 Y-58.6559 G2 I7.5 J0. M5 G90 G28 X0 Y0 M30
Here is what I have learned so far with my laser engraver. I this part of the example: G21 G17 G40 G49 G80 G90 G0 G90 G54 X204.9491 Y-18.6559 S1000 M3 G3 I7.5 J0. X204.9491 Y-18.6559 F300 G0 X224.9491 Y-18.6559 Put the F300 up top Put M3 on its own line Circle commands need to be G3 X-- Y-- I-- J--
Thank you for the response Dale. No need to move the M3 and F300. That version of code works just fine on GRBL. The point of my post was to identify a variation between GRBL and most commercial milling machines. I have 15 of them in my shop and four different brands. I have worked on many more during my years as a machinist. Of the major brands, only HAAS requires the X and Y repeated. Those values are persistent on most interpretations of the G code language such that the values from the last move would be used by default in the G2/G3 instructions and need not be repeated thereby cutting down on the amount of memory used by the program. I realise this is a holdover from the early days of CNC when 8k of memory would set you back several thousands. But the result is that many CAD/CAM programs format G code compatible with this protocol. The result is sending instructions from one of these upscale programs requires translation via a custom "post processor". Those start at prices around 8-10k. I have editors that are able to convert standard code into something GRBL can munch on. I am only trying to help GRBL be a easier for new users and beginners. I am currently using GRBL on my little imported laser engraver and am thankful to the author of GRBL, they have saved me the time of creating a program for the Arduino on my own. Cheers
I don't get this high cost (-: At least for Fusion360 the post processors are written in Java and are user modifiable. There is at least one pretty good one for GRBL on the web, just google it. So, check your post processor files, they may just be a scripting language you can modify yourself or have a college student modify for you (-: