G-Wizard Editor has canned posts that allow it to simulate g-code from all of the following CNC Controls:
Bridgeport DX32
Centroid Lathe
Centroid Mill
FADAL Mill
Fanuc Metric Lathe
Fanuc Mill
Fanuc Metric Mill
Haas Lathe
Haas Mill
Heidenhain ISO Mill
ISO Lathe
ISO Lathe Metric
ISO Mill
ISO Mill Metric
LinuxCNC Lathe
LinuxCNC Mill
Mach3 Lathe
Mach3 Metric Lathe
Mach3 Mill
Mach3 Metric Mill
Tormach Mill: Mach3 + Tormach M998 for toolchanges
Roland MDX Series Mills (use RolandMill post for MDX-540, MDX-40A, MD-15, MDX-20, iModela, JWX-30, DWX-50, and DWX-30)
You can modify any of these posts to come up with posts for most other controls.
It's extremely simple, for example, to create a metric version of any post.
Notes on the FADAL Post
FADAL’s were extremely popular entry-level VMC’s in their day and there are still tons of them out there. The FADAL controllers had 2 g-code dialects, and this new post is for their Fanuc-compatible dialect. It includes a number of interesting labor-saving features not found in Fanuc’s g-code.
Here are my three favorite additions that this new GW Editor Post Handles:
“E” Syntax for Work Offsets
The FADAL guys realized that the single letters being used in g-code left a lot of available candidates, and they took advantage of that with their “E” and “L” words.
The “E” was used to select a work offset. Instead of writing “G54.1 Pxx” (where xx could be 1..48), you’d write “Exx”. It’s a lot shorter and more concise.
“L” Syntax for Subroutines plus M17 for Subroutine return
Likewise, for defining and calling subroutines, FADAL offered the “L” syntax. Basically, “L” is followed by 4 digits. The first two digits tell which subroutine, from 1..99. The second two digits are a repeat factor telling how many times to call the subroutine before moving on. For example, “L1008” would call subroutine “10” eight times. If the repeat value was “00”, it meant that the line was going to define the subroutine, like this:
L0101 (Call subroutine 1 once)
M30
L0100 (Define subroutine 1)
G00 Z12
X0Y0
M17 ( Return from subroutine )
G05: Non-Modal Rapids
Most of the time in a g-code program is spent moving the cutter at feedrate, whether in a line (G01), arc (G02/03), or canned cycle. In between there are brief calls to Rapids (G00) to move from one place to the next. G05 switches to rapids for just the line its on. When that line has finished, it automatically goes back to whatever mode the program was using before it executed the G05. That saves having to set it back and is a nice convenience.
Conclusion
FADAL has been our most popular request for a new post that GW Editor did not have–it has gotten 67% of the votes. Oddly, I am not aware of another GCode Editor/Simulator that has a good FADAL post. Given how large the community is, hopefully GW Editor can help some of them out with their FADAL GCode.
If you’d like to try it, sign up for our free 30-day trial of GW Editor.
If you already have GWE, make sure you’re on the latest release (v1.98 or later for FADAL support). Click the “Download Latest Posts” buttons on the Setup page to bring down the new post. Then use the “Browse” button to select “FadalMill” as the post for your machine.
Notes on the Bridgeport DX-32 Post
People tell me they love their Bridgeport DX32 controls. There’s a small but vocal minority of folks still using them, and the DX32 topped the list of requested Post upgrades on our recent G-Wizard G-Code Editor Survey. So, I rolled up my sleeves and over the last 2 releases of G-Wizard Editor, I added a bunch of things to the post that deal with the unique g-code dialect of the DX32. In case you thought g-code is just g-code, here are some of the “big ticket” items I tackled:
Triple Z’s
The DX32 uses what I call “Triple Z’s” on the drilling cycles. In other words, there are three Z-words in the block that specify:
– Hole depth
– First peck amount
– Remaining peck amounts
For most controls, repeating a word on a line is an error. Not so the DX32 and its “Triple Z’s”.
Subprogram Syntax
Fanucs and many other controls use a subprogram syntax most g-code programmers are familiar with. But the DX32 does something completely different:
“#” is used to identify subprogram numbers. So “#32” is like “O32” on most controls.
“=#” calls the subprogram. “#=32” is the same as “M98 P32”.
“$” signifies return from the subprogram just as “M99” does on Fanucs.
I’m sure there’ll be more things from my DX32 users, but this moves the ball considerably closer.
FWIW, here’s what the actual post looks like in the file:
#include = postFanucMill.pst;
Comment = “Bridgeport DX-32”;
Name = BridgeportDX32; Word.A = ->5.>3;
ArcOptions.AutoIJK = false;
ArcOptions.IncrementalIJ = false;
Cycles.CycleROptional = true;
Cycles.DrillDepthStyle = 1;
Cycles.CycleIncrZ = true;
FullLineComment = “%;'”;
Macros.SetVN = false;
Word.F = >3>1;
Word.G = >3 0;
Word.M = >2 0;
Word.N = >8 0;
Word.O = >4 0;
Word.R = ->3>4;
Word.S = >5 0;
Word.T = >2 0;
Word.X = ->3>4;
Word.# = >2 0;
MCodes.M20.Hint = ‘Spindle Orient OFF’;
MCodes.M20.Parameters = ”;
MCodes.M20.Enabled = ‘ignore’;
MCodes.M20.Uses = ”;
MCodes.M20.CodeType = ‘M-Code’;
MCodes.M20.Notes = ”;
MCodes.M98.DX32Replace = true;
This is not too hard to read. You can see the various “Word.
You can see we have one specialized M-code definition for “M20”. It’s an M-code that was in some sample code that was sent to me that was showing an error message. It’s very easy in GW Editor to simply ignore either a G-code or an M-code but still give it a useful Hint. In this case, “Spindle Orient OFF” doesn’t affect the backplot in any way so this is a good way to handle the “M20” code for this post.
Just wanted to give an idea of how the Posts work.
Be the first to know about updates at CNC Cookbook
Join our newsletter to get updates on what's next at CNC Cookbook.