This is the place where you can get
the PCB-Gcode-Wizard software.
To purchase, send an email to:
The cost is $18, payable through PayPal ONLY, to the above email address.
The files will be emailed to you.
NOTE: We no longer offer a free DEMO version here, since the 500 line limit was not enough to do any real designs.
Please review the HELP file below, and see the screenshots page also.
Please note, the version 100 demo listed on the Cadsoft ULP downloads page is obsolete and is not recommended to use.
(we'll be updating that soon)
Here are some VIDEO TUTORIALS, each one is about 5 minutes long.
Part 1-Using PCB-GCODE-WIZARD.wmv (what you'll need)
Part 2-Using PCB-GCODE-WIZARD.wmv (Eagle design tips)
Part 3-Using PCB-GCODE-WIZARD.wmv (generating gcode with pcbgcode.ulp)
Part 4-Using PCB-GCODE-WIZARD.wmv (editing the gcode file for milling and drilling)
Part 5-Using PCB-GCODE-WIZARD.wmv (viewing the files in Wizard)
Part 6-Using PCB-GCODE-WIZARD.wmv (single pass milling optimization with Wizard)
The Help File for PCB-Gcode-Wizard is shown below.
It describes what it does and how to use it.
CLICK HERE --> if you prefer the PDF version of the Help File
After you read the Help File, you need to see some of the SCREENSHOTS.
CLICK HERE --> To see PCB-Gcode-Wizard SCREENSHOTS
CLICK HERE --> Back to PCBGCODE.COM Home
2010-2012 by PCBGCODE.COM
Read Before Using!
version 101, April 2012
is software provided "AS IS". Its author makes no warranty either
stated or implied, nor any guarantee of suitablilty, for any particular
application or purpose. The author
takes no responsibility for any damage, loss, or claims resulting out of usage
of PCB-GCODE-WIZARD, or from any files generated by it, whether direct or
indirect, or used for actual CNC operations or not. CNC operations can be very
dangerous without proper knowledge, experience, procedures, and attention to
safety, and milling with small tools at high RPM is no different.
All gcode text files destined for the CNC machine should always be
inspected directly beforehand with a text editor for proper syntax, intro and
exit portions, etc.
is not freeware or shareware. Your support will allow future improvements and
features. By using PCB-GCODE-WIZARD you agree to accept these terms and to
not make or aid in distribution of unauthorized copies of this software.
is provided for Microsoft Windows only. It has been developed on WinXP, Vista,
and Window 7, but should also run OK on Win 2000 and even earlier, because it is
written in Microsoft Visual Basic 6, the best programming tool ever released by
need to have these additional VB files
(available at pcbgcode.com) copied to the C:/Windows/System32 directory
of your PC:
richtx32.ocx (rich textbox control)
comdl32.ocx (common dialog control)
the VB6 runtime version by executing the file:
DEMO mode distribution of PCB-Gcode-Wizard has all features enabled, but only
allows up to 500 lines in the input Gcode file. This will allow you to verify it
will run OK on your machine.
/ where do I get PCB-GCODE-WIZARD?
and supporting info is provided via the website:
is dedicated to promoting and sharing of techniques and projects suitable for
PCB milling. Free project contributions are welcome.
To request a
software purchase, send an email to email@example.com. After payment
through PayPal is received, the PCB-GCODE-WIZARD file(s) will be emailed to you.
improvements, or suggestions may be emailed to:
support is free but limited to the author's time available.
forum discussion at pcbgcode.org may be of interest.
updates will be announced at pcbgcode.com
a stand-alone viewer, trace outline "cleaner", rapid-movement and
drill file optimizer for Gcode files generated from a printed circuit board
(PCB) layout designed with Cadsoft’s EAGLE software. These files allow a
person to create PCBs, without using chemicals, by controlling a CNC milling
machine, using very small endmills and drills (typically 8 to 20 mils diameter)
at high RPM (>10k). "Gcode"
is the term used for standardized text files that contain machine control
commands and the XYZ coordinates for movements, often used with the .nc file
extension (i.e. Numeric Control).
files you will use should be generated by, or retain the formatting of, the
popular and fantastically useful PCB-GCODE.ULP tool ("ULP" =
User Language Program") available at www.cadsoftusa.com or at www.pcbgcode.org.
Or you can write your own Eagle ULP to generate it. It is NOT used for
viewing or manipulation of 3D Gcode files as might be generated with 3D
solid-modelling CAD software.
stable version of pcb-gcode.ulp is v188.8.131.52.
Together these allow you to create the CNC milling paths (Gcode) needed
to isolate the boards traces and pads, and also generate drill files.
Most often, it is used for 2-sided boards and generates 3 files: top
outlines, bottom outlines, and a top drill file. It is run from within Eagle, so
you must have Eagle to use it. Eagle v5.6 or later is recommended.
PCB-GCODE-WIZARD is especially targeted for the low-cost home-brew set of folks
who need the tools to create PCBs quickly and easily, especially prototypes.
is easy to use. After the board layout is designed, you simply run the ULP and
set up the parameters you want for your isolation: tool diameter, isolation
width, and step increment. A Gcode text file is generated that you can then pull
into PCB-GCODE-WIZARD for viewing, inspection, cleanup, and optimization.
does the PCB-GCODE file look like?
file should be in the output format used by pcb-gcode.ulp. However, you
may still need to edit the output files depending on the options selected during
for the input Gcode file are as follows (it may seem restrictive, but is
difficult if you are starting with the pcb-gcode.ulp output files).
INPUT FILE FORMAT REQUIREMENTS
be a pure text file format, with CR/LF to separate lines.
numbers may be used, or not, and are ignored.
can be no blank lines (check at the file end also).
moves must use either G00 or G01 commands, including drills.
format must be no leading zeros, any resolution, with decimal point intact.
“space” delimiter must be used to separate the Gcode on each line.
up and Z down must be on separate lines from XY coords.
mode (G91) and drill cycles (G8x) are not supported.
(G20) or millimeters (G21) may be specified, or set manually.
outlines must begin with a G00 rapid to the outline start position.
a Z negative (down), then XY points, finally a Z positive (up).
comments must be in the beginning of the file, before the first Zup.
other than G00 or G01 may only be used before the first Zup
M commands, and Z amounts are ignored. However,
of 1,000,000 lines in the original gcode file.
are ignored; instead the user inputs a diameter when running the program.
Here is an
actual Gcode file as output by PCB-GCODE-WIZARD showing the format:
( * * * * PCB-Gcode-Wizard
v101 * * * * )
( Copyright 2010-12 by PCBGCODE.COM )
( Date: April 15, 2012 Time:
11:53 AM )
<--- comment line
( This Output File is:
( C:\PCB Projects\PCB-Gcode-Wizard\helpdemo.txt.wiz )
( The Gcode Input File was: )
( C:\PCB Projectss\PCB-Gcode-Wizard\helpdemo.txt )
( PLEASE INSPECT OUTPUT FILE CONTENTS
BEFORE USING !!!
( Note: The original Gcode file comments have been removed.
<---- specify Inch or MM (optional)
<---- absolute coordinates only
G00 X0.0000 Y0.0000
G00 Z0.0800 <----
anything before this 1st Zup is preserved
G00 X0.0000 Y0.0000
G01 Z-.0080 F5.00
<---- 1st Zdown, milling starts here
G01 X0.0000 Y3.5000 F4.00
G01 X4.5000 Y3.5000
G01 X4.5000 Y0.0000
G01 X0.0000 Y0.0000
G00 Z0.0800 <----
Z is positive for rapids
G00 X0.5603 Y2.3053
G01 Z-0.0080 F5.00 <----
Z is negative for milling part
G01 X0.5553 Y2.3103 F4.00
G01 X0.4847 Y2.3103
G01 X0.4797 Y2.3053
G01 X0.4797 Y2.2347
G01 X0.4847 Y2.2297
G01 X0.5257 Y2.2297
G01 X0.7692 Y1.9861
G01 X0.7761 Y1.9792
G01 X0.7851 Y1.9755 <----
no comments in main body
G01 X1.8597 Y1.9755 <----
and only G00 and G01 used
G01 X1.8597 Y1.9647 <----
no blank lines anywhere
G01 X1.8647 Y1.9597
G01 X1.9353 Y1.9597
G01 X1.9403 Y1.9647
G01 X1.9403 Y2.0353
G01 X1.9353 Y2.0403
G01 X1.8647 Y2.0403
G01 X1.8597 Y2.0353
G01 X1.8597 Y2.0245
G01 X0.8001 Y2.0245
G01 X0.5603 Y2.2643
G01 X0.5603 Y2.3053
G00 X0.5321 Y2.8067 <-----|
G01 Z-0.0080 F5.00
G01 X0.5067 Y2.8321 F4.00 |
G01 X0.5067 Y2.8679
G01 X0.5321 Y2.8933
G01 X0.5679 Y2.8933
is one outline
G01 X0.5933 Y2.8679
G01 X0.5933 Y2.8321
G01 X0.5679 Y2.8067
G01 X0.5321 Y2.8067
G00 X2.4403 Y2.9047
G01 Z-0.0080 F5.00
G01 X2.4403 Y2.9753 F4.00
G01 X2.4353 Y2.9803
G01 X2.3647 Y2.9803
G01 X2.3597 Y2.9753
G01 X2.3597 Y2.9287
G01 X2.2115 Y2.7805
G01 X2.1995 Y2.7685
G01 X2.1995 Y1.8965
G01 X2.1797 Y1.8767
G01 X2.1797 Y1.8433
G01 X2.2033 Y1.8197
G01 X2.2367 Y1.8197
G01 X2.2603 Y1.8433
G01 X2.2603 Y1.8767
G01 X2.2405 Y1.8965
G01 X2.2405 Y2.7515
G01 X2.3887 Y2.8997
G01 X2.4353 Y2.8997
G01 X2.4403 Y2.9047
G00 X3.4403 Y1.6633
G01 Z-0.0080 F5.00
G01 X3.4403 Y1.6967 F4.00
G01 X3.4167 Y1.7203
G01 X3.3833 Y1.7203
G01 X3.3597 Y1.6967
G01 X3.3597 Y1.6633
G01 X3.3833 Y1.6397
G01 X3.4167 Y1.6397
G01 X3.4403 Y1.6633
G00 Z0.0800 <----
anything after this Zup is preserved
Structure of PCB-GCODE-WIZARD
structure is very simple. Only command mouse-click "buttons" are used.
One file at a
operated on. Restart the program to use a different Gcode file for input.
one steps through the process in the following order:
a) Get the Gcode file and observe its statistics.
b) Plot the trace outlines, and inspect for content and errors.
c) Remove un-needed outlines to reduce milling time, using either Select mode or Clean mode.
d) Optimize the G00 rapids for shortest path.
e) Save the new data to a ".wiz" output Gcode text file.
f) Optimize a drill file using (almost) similiar steps (see below).
Here is a
list of the mouse-click command buttons that form the user menu, in order from
left to right on the screen.
FILE Browse to select the input Gcode file.
Then open it, read it, and show its statistics, and finally plot all the
outlines. Any file syntax errors
ALL Plot the outlines. Will show milled
width if Tool Diameter has been set.
Select an outline by mouse-click and immediately deletes it.
Steps through all of the outlines and allows the user to Keep or Delete
OPTIMIZE Plots all of the G00 rapid movements, then finds
the SHORTEST path.
Lets the user DRAG a zoom area rectangle on the plot.
MEASURE Lets the user DRAG between two points on the
plot to find distance.
DIAM Set the milling tool diameter in inches
or mm. Toggle display with "T" key.
Saves the current state of the file, defaulting to the same file name and
Ends the program immediately, without saving anything.
INCH/MM Usually automatic, but can be set by user if not
defined in the input file.
Lets the user Keep the highlighted outline path during the CLEAN process.
Lets the user Delete the highlighted outline path during the CLEAN
plotting or in zoom mode, you may also use these keys:
Plot everything using current setting of Tool Diameter.
Zoom In (make larger) in steps.
Down Zoom Out (make smaller) in steps.
Keys Pan up, down, left, or right in steps.
When viewing, pressing P displays the coordinates of the Point
"T" key toggles display of Tool Diam on or off (i.e. line
Press the H
key anytime to view the Help File.
Clean Outlines mode, you may also use these keys:
Select Outlines mode, you may also use this key:
Eagle-generated Gcode files usually contain similiar stepped milling paths, or
trace OUTLINES, depending on the cutter diameter used, step size, and the amount
of isolation desired. For high power or voltage circuits, the extra isolation
passes may be required, but for low voltage digital circuits, all that is
usually needed is enough milling to electrically isolate the traces and pads
(perhaps 10 mils). If you are lucky enough to have a 60,000 RPM air spindle and
fast servo driven CNC machine, and don't mind using up a lot of expensive
carbide milling bits, then you may not need to CLEAN the file. But for slower
low-cost homebuilt machines it may cut an hour or more off board milling time.
milling time would of course be achieved with just one milling pass around each
trace. Now, if you use GROUND PLANE
FILL which is very useful for making connections (or any other plane fill type,
i.e. power), it turns out that EAGLE generates an outline around those objects
also, so at the minimum you get TWO sets of outlines.
But they are redundant, because you already have an outline to cut around
every trace, so they can be removed. This will cut milling time almost in half,
as well as tool wear (keeping in mind that even carbide bits only have hundreds
of inches of cutting life, since copper and fiberglass is very abrasive).
gcode file is the process of stepping through all of the milling paths, or
outlines, and deciding to either Keep or Delete them. The process
used by PCB-GCODE-WIZARD is entirely graphical and user driven. This was done,
quite simply put, because the computational algorithms required to determine
which outlines are not needed is very intense. However, it is very easy to see
graphically, plus it allows the user to modify the milling as desired.
tradeoff, of course, is the time it takes to look at every outline and decide.
Each outline is shown, one at a time in red (with the rest of the outlines in
blue so you can see what is nearby), and zoomed in to view that area of the
board. Then you just click KEEP (or press Esc key) or DELETE (or press Delete
key). You should CLEAN the gcode, if desired, before OPTIMIZING its G00 rapids.
Note that the plot scale is constantly changed depending on the outline size.
Very small outlines in particular may look much larger than actual size. After
running a few files, it is easy to decide which outlines are not needed.
the cleaning effort, set up the isolation parameters within the pcb-gcode.ulp
menu to achieve the mininum number of milling passes (i.e. steps) that is
needed. To generate only one pass, set the maximum isolation value to less than
the tool size, so only one outline is generated (again, if you have copper fill
areas, you will appear to have two sets of outlines, one around the trace, and
one around the fill).
Note that the Clean function skips over any outlines that have no XY movement, for example spot drills which only have a G00 followed by Zup and Zdown. So all of these Gcode segments will always show up in the output file, unless they are deleted using the Select mode.
Also note, if you exit/cancel the Clean function halfway thru the outlines, the program will just abort and won't save any changes (this may be changed in a future release). So, just re-open the file and start again.
works just like the CLEAN process (see above) except it allows you to
individually select one outline at a time by mouse-clicking on it. For larger
files with just a few outlines to remove, it is more convenient than having to
step through all of the outlines. In
Select mode all outlines are drawn with zero-width lines.
to zoom in before you select, for accurate outline selection, and you
must click near a point in the outline for best results. To reverse a single
deletion, you can press the "U" key (for Undo) immediately after the
deletion, but it must be done before another click. When you are done selecting,
press the Escape key to cancel Select mode. Note that panning and zooming are
disabled in select mode, so that you can see the outline come back if you Undo
it. Press the Esc key to exit
Select mode and re-enable pan & zoom and "T" key functionality.
You can also
delete spot drill locations this way, which is handy since they are skipped over
using the Clean cycle. Select and Clean modes always draw outlines with
zero-width lines for better visibility. Any outlines that are deleted will not
be included in optimizing later, or saved to the output file.
generates the outlines in more-or-less random order, resulting in totally random
G00 rapid movements as the CNC goes from one to the next. The OPTIMIZE command
looks at the possible paths through the outlines and determines the shortest
one. This is often MUCH less travel than it would otherwise be (typically less
than 20%). You should always CLEAN the file before OPTIMIZING it.
feature first draws a full plot showing the original G00 rapid movements, which
will look very un-organized. After doing the optimization calculations, it
reports the original and optimized total G00 path length, then replots showing
the new path, which will appear to be a squiggly line. The 1st move from the
origin is drawn in green to help see the start of the path.
function may also be used for outline files with "spot drill"
sequences included (i.e. using the same milling bit as was used for milling
trace outlines), as allowed by pcb-gcode.ulp. These are simply Zup/Zdown
movements with no XY travel. These spot drill locations will show up in plots as
red circles (if Tool Diam = 0) or filled dots (if Tool Diam >0). Spot drill
locations ARE included in the optimizing function. However, you MUST set up the
OPTIONS in pcbgcode.ulp to specify "Use Simple Drill Code" so that
each drill or spot uses normal G00/G01 commands instead of G82 (not supported
in this version, a standalone drill file cannot be read directly, but may be
partially optimized with some manual file editing. A drill file typically
uses several sized drills, or Tools. To optimize, the user must manually split
up the drilling into one Gcode file per drill size, and then merge them
back together afterwards. All you need to have in each file is to copy the drill
movements (three G00/G01 Gcode lines per hole), then use PCB-GCODE-WIZARD to
optimize and save the output, then paste it back into the original file where
that Tool portion was initially. The majority of drilling is usually done with
only one or two drill sizes that have enough holes to really benefit from
optimization, so it really may not be that much work.
temporary drill file will only contain lines like shown below (3 lines per
hole). You MUST set the OPTIONS in pcbgcode.ulp for "Use Simple Drill
Code" to get this format.
<------- start with initial Zup
|---- 3 lines per hole
end with Zup
If you want to drill all holes with just one size drill (say in case you don't have an automatic Tool changer), another way to optimize is then to setup pcb-gcode.ulp to output the "spot drills" and set the drill depth to go through the board. It will generate all of the drill movements in one section of the file (without any tool size and tool change commands), that you can cut and paste into a separate file, and then optimize. After the board is done milling/drilling, you can go back and manually drill out any other sized holes, assuming you only have a few to do. You might want to use a different pad shape for different hole sizes to make identification easier. This is much easier and works fine for many designs.
Notes and Tips
THE BEST RESULTS START WITH THE RIGHT INPUT FILE FORMAT! So take the time
to look at it in a file editor (Notepad etc). Standard output from pcbgcode.ulp
should work without modification.
reason for the format requirements is that the cleaning and optimization process
might modify the body of the file in ways that would affect the meaning of
comments and commands (other than G00/G01). So .... keep it simple.
plotting, the X and Y axis are drawn with a red line, and the (0,0) origin
marked with a small red circle. Screen orientation is always positive X up,
positive Y to the right.
must press the Zoom or Measure button EACH TIME before attempting to do a
rectangle zoom, or measure. But the pan/zoom/home/page up/page down keys can be
can use the Tool Diam button setting to see how the finished board would look
with different diameter milling tools, perhaps in case you don't have the
exactly right size.
doing a CLEAN, the entire file is stepped through. If you click on QUIT before
finishing, you will have to start over from the beginning. You cannot go
backwards through the outlines (and undo is not yet supported) so be sure
when you DELETE. If you aren't sure, click KEEP, and view the file again first.
(remember also, Esc key = Keep, Delete key = Delete)
original input gcode file is left intact, with no changes. You can use any file
extension for either input or output file, as long as its contents use plain
text format with CR/LF.
SAVING the output file you are given the opportunity to keep or discard the
original comment lines, and whether or not to add the "N" line
numbers, re-numbered in order, in increments of 10. Any original N numbers are always removed. Having line
numbers is very helpful in locating file format errors. If you have a file
that doesn't have line numbers, simply load it, then Save it, and click Yes when
asked if you want to add line numbers.
output file will contain all lines in the input file up to "the first Zup
just before the first Zdown", and from "the first Zup after the last
Zdown" to the end. Except for comments if you choose not to keep them when
is not meant to read 3D Gcode files, or all sorts of other Gcode machine
formats. Only the file format as stated above is valid.
v100 Dec 2010 Initial release. View, Clean, and Optimize rapids and single Drills.
v101 Apr 2012 Fixed mininize screen bug and increased max gcode file size to 1 million lines.
END OF HELP FILE