gerbv - A Free Gerber Viewer
Gerbv is a viewer for Gerber (RS-274X) files. It is one of the utilities
affiliated with the gEDA project.
Gerber files
are generated from PCB CAD systems and sent to PCB manufacturers
as the basis for the manufacturing process. The standard supported
by gerbv is
RS-274X. Note that gerbv will
not display RS-274D files!
The basic difference between RS-274D (the old standard) and RS-274X is
the addition of apertures in RS-274X. If you have an RS-274D file,
you need to convert it to RS-274X before viewing it with gerbv.
Fortunately, almost all PCB layout programs output RS-274X nowadays.
Gerbv also supports drill files. The format supported is known under
such names as NC-drill or Excellon. The format is a bit undefined, and
different EDA-vendors implement it differently. But basically you need
to have the tools definition in the file, then the parser is quite
tolerant. The different holes are shown as dots in the (scaled) correct
size.
Finally, gerbv will also display many pick-and-place files. To
view a pick-and-place file with gerbv, the file should hold X, Y, rotation,
and placement side data (XYRS), as well as the refdes of
each component to be placed.
The data should be held in a comma-separated ASCII (.csv) file.
The different layers of the PCB are separated into different files.
gerbv can load all files at the same time and display them "on top
of each other". You can independently turn them on and off. Other features
include the ability to change the displayed stackup (i.e. move layers
up and down), save a project file that lists a collection of gerber files
and associated color setup for later use, and a measurement tool.
Finally, you may export your files to .pdf, .ps, .png, and .svg format.
General Resources
Packaging and porting
System Requirements
gerbv is dependent on a couple of different external libraries:
- GTK+, the graphical toolkit (required).
- GDK-Pixbuf, export of images (optional).
- libpng, needed by GDK-Pixbuf to generate PNGs (optional).
- getopt_long from the GNU project. gerbv can do without getopt_long
long options to the program will hence not be available (optional).
- Cairo, the graphics library (optional).
Earlier gerbv was known to use Guile. Since release 0.0.9 this has been
removed. The batch feature and Guile support is removed.
gerbv is known to compile on all system which the above
mentioned libraries compile on, basically all flavors of *ix. It
has been tested on:
- Linux (2.2/2.4/2.6)
- NetBSD/i386 (1.4.1) (getopt_long not available)
- NetBSD/Alpha (1.5.1)
- Solaris (5.7 and 5.8) (getopt_long not available)
Support
An attempt to gather information on different CAD-programs and how
to use them with gerbv:
- Cadsoft's Eagle doesn't generate Excellon/drill files that gerbv likes.
Here's
how to solve it with a Perl script.
Update 2004-09-07 This is not true with later releases of Eagle.
Uwe Bonnes reports that since about release 4.11r12 (2004-03-15) things
seems to have been implemented properly.
- To convert an RS274D with an external aperture list to an RS274X Larry Doolittle
described
a short perl script in an email. Ormund Williams
tried to use it, but had to do some
slight modifications
to make it work for him.
Competition?
This is a list of programs for *ix that can view and manipulate Gerber
files:
- Gerber2eps.
Generates Encapsulated PostScript from Gerber files.
- gerb2tif.
Generated TIFF from Gerber files. Also includes a win32 binary for the interested (new URL 20031231).
- Gerber RS-274D/X file viewer in Java.
Doesn't seem to work too well. Maybe a start if someone likes to hack Java.
- gerber2pdf.
A Python script that converts a gerber file 2 pdf. Seems quite advanced.
- GBTiler. Not actually a
viewer, but a panelizer as I understand it. Takes several gerber files
and puts them together next to each other. Written in Perl.
-
GerbMerge is also a panelizer, but written in Python.
Is there going to be windows version?
The reason I started this project was the lack of Gerber viewers for
Linux. But now Juergen Haas has actually made a port of gerbv that is
available here.
Please note that this is a beta and there might be quirks and problems, but
it is useable.
I have actually got several indications that the regular Windows Gerber
viewers are actually too complicated to use. So this might be an alternative
for you to try out if you find the other programs too complicated to use.
If you don't like gerbv there is a list of gerber viewers
here. They are
free as in free beer.
License
gerbv and all associated files is placed under the GNU Public
License (GPL) version 2.0. See the toplevel COPYING file for
more information.
Programs and associated files are:
Copyright © 2001, 2002, 2003, 2004, 2005, 2006 by Stefan Petersen
and the respective original authors (which are listed in respective files).
Status
What's there:
- Parses (and draws of course) a lot of Gerbers, including aperture macros.
- Drill file support(NC drill/Excellon).
- Pick-and-place file support (.csv format).
- Autodetection of Gerber, drill, or pick-place file type upon readin.
- Panning and zooming (both stepwise and outline).
- Autoscale. Zoom and pan to fit window.
- Several files can be loaded and be shown "on top of each other".
- Different files have different colors.
- Explicit setting of color on layer.
- Acknowledge layer polarity (paint/scratch/paint).
- A measurement tool so you can make measurements on the image.
- Export image to PNG, .ps, .pdf, .svg (cairo version only).
- Complex layer operations (e.g. knockout).
- Possible to reload files which reloads all loaded files. Good when hacking
Gerber files.
- Project files where you can store the names of a set of loaded files
and color of resp. layer so you easily can reload all Gerber files
of a project.
What is missing:
Install
By downloading a release
- Download tarballs from here.
- Expand source by running
gzip -dc <filename> | tar xf -
- Change to newly expanded directory
- Type
./configure <switches>.
The following (gerbv) switches are available to configure:
--help: Lists all configure options.
--enable-debug: Program will output lots of debug spew while running.
(default = no -> no debug output by default.)
--disable-exportpng: Disable compilation of export of PNGs.
(default = no -> exportpng on by default.)
--enable-unit-mm: Set default unit for coordinates in status bar to mm
(default = no -> units = inches by default.)
--disable-cairo: Use GDK only for graphics rendering.
(default = no -> both GDK and cairo used by default.)
--enable-efence: Link with ElectricFence for malloc debugging
(default = no -> efence off by default.)
--disable-update-desktop-database:
Update desktop icon database after installation
(default = no -> desktop icon installed by default.)
- Type
make
- Type
make install. Please note that if you want to
install it in a system directory you have to su first.
- Test by typing
gerbv
By using anonymous CVS
- Login on anonymous CVS (only needed the first time):
cvs -d:pserver:anonymous@gerbv.cvs.sourceforge.net:/cvsroot/gerbv login .
Press Enter when CVS asks for a password.
- Check out the source tree:
cvs -z3 -d:pserver:anonymous@gerbv.cvs.sourceforge.net:/cvsroot/gerbv co gerbv
- Recreate all build system files:
aclocal
autoheader
automake --copy --add-missing
autoconf
I have also made a simple script which is called with
./rebuild_conf which does all the auto* stuff.
- Type
./configure <switches>.
The following (gerbv) switches are available to configure:
--help: Lists all configure options.
--enable-debug: Program will output lots of debug spew while running.
(default = no -> no debug output by default.)
--disable-exportpng: Disable compilation of export of PNGs.
(default = no -> exportpng on by default.)
--enable-unit-mm: Set default unit for coordinates in status bar to mm
(default = no -> units = inches by default.)
--disable-cairo: Use GDK only for graphics rendering.
(default = no -> both GDK and cairo used by default.)
--enable-efence: Link with ElectricFence for malloc debugging
(default = no -> efence off by default.)
--disable-update-desktop-database:
Update desktop icon database after installation
(default = no -> desktop icon installed by default.)
- Type
make
- Type
make install. Please note that if you want to
install it in a system directory you have to su first.
- Test by typing
gerbv
- Run
cvs update in the checked out gerbv directory to get the latest changes.
Submitting a patch or addition to gerbv
-
We are interested in all ideas and suggestions regarding gerbv. We also
reserve us the right to reject them though. Ideas implemented in source
code always has a greater chance to make it into the release in a near
future.
-
If you want to implement something for gerbv there is a certain "code
standard" we try to maintain. That is described in a text file in the
distribution HACKING. Please read it. And check that your code doesn't
stand out too much from the rest regarding naming of functions and
variables.
-
If you send in a patch diff is a very good tool. Before you
start hacking, make a copy of the original file:
cp <file> <file.orig> for example like
cp gerbv.c gerbv.c.orig.
Then use diff as:
diff -Naur <file.orig> <file> > <file.diff>
and send us the diff file.
-
Important! Please base your patch against the latest
version of the trunk held in CVS! Do not
base your patch against the released branch since the project maintainers
do not have lots of time to merge your patch into the trunk if it does not
apply cleanly to the trunk. If you have questions about submitting patches,
post them to the geda-dev
mailing list.
gEDA and gerbv Internet resources
- gerbv Homepage:
http://gerbv.sourceforge.net/
- gEDA Homepage:
http://www.geda.seul.org/
- Mailing list:
Gerber Viewer uses the ordinary gEDA mailing list, hosted by
Simple End User Linux, SEUL
To subscribe send an email to majordomo (AT) geda (DOT) seul (DOT) org
with subscribe geda-dev in the body.
To unsubscribe send an email to majordomo (AT) geda (DOT) seul (DOT) org
with unsubscribe geda-dev in the body.
To send email to the list use the address:
geda-dev (AT) geda (DOT) seul (DOT) org
Remember, geda-dev (AT) geda (DOT) seul (DOT) org is for the actual traffic.
For administrative commands, use majordomo (AT) geda (DOT) seul
(DOT) org.
The mailing list archive is at:
http://www.geda.seul.org/mailinglist
Many thanks to the SEUL project for hosting gEDA!
Contact information
Archives
- 2008-02-09 : 2.0.1 general release available
here.
Announcement is readable here.
- 2008-01-13 : 2.0.0 general release available
here.
Announcement is readable here.
- 2008-01-9 : 2.0.0-beta release available
here.
Announcement is readable here.
- 2007-12-01 : 1.0.3 release available
here.
Announcement is readable here.
- 2006-07-28 : 1.0.2 release available
here.
Announcement is readable here.
- 2005-01-22 : 1.0.1 release available
here.
Announcement is readable here.
- 2004-12-28 : 1.0.0 release available
here.
Announcement is readable here.
- 2004-10-19 : Another beta of a windows version is released and available
here.
- 2004-10-07 : A beta of a windows version is available
here.
There is no particular announcement, but please read the release notes.
- 2004-05-27 : 0.16 release available
here.
Announcement is readable here.
- 2003-10-19 : 0.15 release available
here.
Announcement is readable here.
- 2003-09-16 : 0.14 release available
here.
Announcement is readable here.
- 2003-07-30 : Michael Ihde updated the ebuild script for Gentoo Linux.
- 2003-07-17 : Michael Ihde contributed an ebuild script for Gentoo Linux.
- 2003-03-19 : 0.13 release available
here.
Announcement is readable here.
- 2003-02-12 : The batch backend can't get compiled in release 0.12
(usually not compiled in by default). If you have an immediate need
for it to work, please contact me.
- 2003-02-10 : 0.12 release available
here.
Announcement is readable here.
- 2002-11-20 : 0.11 release available
here.
Announcement is readable here.
- 2002-10-19 : Release 0.0.10 didn't build proper on architecture other
than i386, as discovered by Debians autobuilder. If you get a load of
warnings saying "comparison is always false due to limited range of data
type" you should use
this patch.
Copy the file into gerbv-0.0.10 directory and run
gzip -dc gerbv-0.0.10_to_2.diff.gz | patch -p0 and recompile.
- 2002-10-13 : 0.0.10 release available
here.
Announcement is readable here.
- 2002-07-06 : 0.0.9 release available
here.
Announcement is readable here.
- 2002-05-06 : 0.0.8 release available
here.
Announcement is readable here.
- 2002-02-10 : 0.0.7 release available
here.
Announcement is readable here.
- 2001-12-15 : 0.0.6 release available
here.
Announcement is readable here.
- 2001-11-21 : 0.0.5 had some "fixes" which broke displaying some pads.
So if you miss a bunch of pads when displaying your Gerbers, try
this patch. Copy the file into
the src directory, run
patch < gerber.c.diff and rerun
make and make install.
- 2001-11-14 : Fifth relase (0.0.5) Available
here.
Announcement is readable here.
- 2001-10-27 : Fourth release (0.0.4). Available
here.
Announcement is readable here.
- 2001-09-17 : Hamish Moffatt has made 0.0.3 in Debian packages. See
here.
- 2001-09-09 : Third release (0.0.3). Available
here.
Announcement is readable here.
- 2001-09-02 : The 0.0.2 release missed some files. You can download them here:
- 2001-08-30 : Second release (0.0.2). Available
here.
Announcement is readable here.
- 2001-08-25 : First release (0.0.1) of source. Available
here.
Announcement is readable here.
$Id: index.html,v 1.76 2008/04/14 20:13:06 spetm Exp $