2016-08-04 14:11:36 +03:00
|
|
|
eeshow - Eeschema schematics renderer and viewer
|
|
|
|
================================================
|
|
|
|
|
|
|
|
Eeshow renders schematics made by KiCad Eeschema to FIG, PDF, or PNG,
|
|
|
|
and generates graphical differences between different versions of
|
|
|
|
schematics sheets. It can work in plain files but it can also
|
|
|
|
retrieve design files directly from a git repository. Furthermore,
|
|
|
|
eeshow has an interactive mode for viewing schematics and differences.
|
|
|
|
|
|
|
|
This work is distributed under the terms of the GNU GENERAL PUBLIC
|
|
|
|
LICENSE, Version 2:
|
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
For your convenience, a copy of the complete license has been included
|
|
|
|
in the file COPYING.GPLv2.
|
|
|
|
|
|
|
|
|
|
|
|
Prerequisites
|
|
|
|
-------------
|
|
|
|
|
|
|
|
libcairo2-dev
|
|
|
|
libgit2-dev
|
|
|
|
libgtk-3-dev
|
2016-08-21 07:28:52 +03:00
|
|
|
transfig
|
|
|
|
imagemagick
|
|
|
|
|
|
|
|
If building with USE_WEBKIT=y:
|
|
|
|
|
2016-08-19 21:58:28 +03:00
|
|
|
ibwebkit2gtk-4.0-dev
|
2016-08-04 14:11:36 +03:00
|
|
|
|
|
|
|
|
2016-08-16 06:21:33 +03:00
|
|
|
Development status
|
|
|
|
------------------
|
|
|
|
|
|
|
|
Eeshow is still incomplete. It should generally be usable, but still has
|
|
|
|
many limitations, especially in the following areas:
|
|
|
|
|
|
|
|
- not all details are rendered, e.g., pin attributes such as "clock input"
|
|
|
|
|
|
|
|
- rendering isn't always exactly the same as in KiCad, e.g., text size may
|
|
|
|
differ significantly
|
|
|
|
|
|
|
|
- interactive use is not streamlined yet, e.g., revision selection
|
|
|
|
|
2016-08-22 19:15:27 +03:00
|
|
|
- there may be unknown bugs
|
2016-08-16 06:21:33 +03:00
|
|
|
|
|
|
|
More details on pending items can be found in the file TODO.
|
|
|
|
|
|
|
|
|
|
|
|
Non-interactive rendering
|
|
|
|
=========================
|
|
|
|
|
|
|
|
Eeshow can be invoked from the command line to render KiCad schematics
|
|
|
|
to FIG, PDF, and PNG.
|
|
|
|
|
|
|
|
|
|
|
|
Invocation
|
|
|
|
----------
|
|
|
|
|
|
|
|
The general form of invocation for rendering is as follows:
|
|
|
|
|
|
|
|
eeshow [-r] file.lib ... file.sch -- format [options]
|
|
|
|
|
|
|
|
Common if using PDF, the option -r can be used (after "eeshow") to
|
|
|
|
recursively process sub-sheets. For PDF and PNG, the options -s scale
|
|
|
|
and -o output-file can be used to control the size of the output and
|
|
|
|
the output file. By default, eeshow writes to standard output.
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
|
|
|
eeshow test.lib test.sch -- png -s 2 -o test.png
|
|
|
|
|
|
|
|
eeshow -r neo900.lib kicad-libs/components/powered.lib neo900.sch \
|
|
|
|
-- pdf -o neo900.pdf
|
|
|
|
|
|
|
|
More details on the above example can be found in the file DEMO.
|
|
|
|
|
|
|
|
|
|
|
|
Revision access
|
|
|
|
---------------
|
|
|
|
|
|
|
|
If the files are stored in a git repository, a revisions can be selected
|
|
|
|
by prefixing file names with the commit ID, e.g.,
|
|
|
|
|
|
|
|
eeshow neo900.lib kicad-libs/components/powered.lib 6a9f71:neo900_SS_5.sch \
|
|
|
|
-- png -s 2 -o old.png
|
|
|
|
|
|
|
|
Revision selection propagates to dependent files, unless explicitly
|
|
|
|
overridden. E.g., the above example selects also revision 6a9f71 of
|
|
|
|
neo900.lib.
|
|
|
|
|
|
|
|
|
2016-08-22 19:15:27 +03:00
|
|
|
Using the component library cache
|
|
|
|
---------------------------------
|
|
|
|
|
|
|
|
Eeschema copies all components it uses to a file named <project>-cache.lib
|
|
|
|
When operating on files, this library can be used as a convenient
|
|
|
|
alternative to listing all the libraries that contributed content.
|
|
|
|
|
|
|
|
However, when using eeshow with a revision history, the library cache
|
|
|
|
should only be used if it is also kept in the repository. Otherwise,
|
|
|
|
library changes in older revisions may get unnoticed.
|
|
|
|
|
|
|
|
|
2016-08-16 06:21:33 +03:00
|
|
|
Non-interactive differences
|
|
|
|
===========================
|
|
|
|
|
|
|
|
Eeshow can render two versions of a sheet to a bitmap and then compare them
|
|
|
|
pixel by pixel, highlighting areas where differences are found. The output
|
|
|
|
is written to a PNG file.
|
|
|
|
|
|
|
|
|
|
|
|
Invocation
|
|
|
|
----------
|
|
|
|
|
|
|
|
The general form of invocation for rendering is as follows:
|
|
|
|
|
|
|
|
eeshow file.lib ... file.sch -- diff [options] file.lib ... file.sch
|
|
|
|
|
|
|
|
The usual options and revision selection can be used here as well.
|
|
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
LIBS="neo900.lib kicad-libs/components/powered.lib"
|
|
|
|
eeshow $LIBS 6a9f71:neo900_SS_5.sch \
|
|
|
|
-- diff -s 2 -o diff.png $LIBS neo900_SS_5.sch
|
|
|
|
|
|
|
|
|
|
|
|
GUI mode
|
|
|
|
========
|
|
|
|
|
|
|
|
GUI mode allows exploration of schematics and the comparison of different
|
|
|
|
git revisions. Compared to eeschema, eeshow currently offers the following
|
|
|
|
additional features:
|
|
|
|
|
|
|
|
- access to the git revision history with visual differences between
|
|
|
|
versions.
|
|
|
|
|
|
|
|
- on hover, global labels show on which other sheets the label is used.
|
|
|
|
Clicking on a name jumps to that sheet.
|
|
|
|
|
|
|
|
- fast sheet change with PgUp/PgDn
|
|
|
|
|
|
|
|
|
|
|
|
Invocation
|
|
|
|
----------
|
|
|
|
|
|
|
|
The basic invocation of GUI mode is as follows:
|
|
|
|
|
|
|
|
eeshow file.lib ... file.sch
|
|
|
|
|
|
|
|
Add the option -r to recursively load sub-sheets of file.sch
|
|
|
|
|
|
|
|
If file.sch is in a git repository, eeshow automatically loads the
|
|
|
|
revision history. The depth of the history can be limited with the
|
|
|
|
option -N number-of-commits
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
|
|
|
eeshow -N 30 -r neo900.lib kicad-libs/components/powered.lib neo900.sch
|
|
|
|
|
|
|
|
eeshow `sed -n '/pcbnew/q;/^LibName[0-9]*=/{s///;s/$/.lib/p;};d' anelok.pro` \
|
|
|
|
anelok.sch
|
|
|
|
|
|
|
|
|
|
|
|
Mouse function in GUI mode
|
|
|
|
--------------------------
|
|
|
|
|
2016-08-18 07:45:24 +03:00
|
|
|
Eeshow uses only the left mouse button and the scroll wheel.
|
|
|
|
|
2016-08-16 06:21:33 +03:00
|
|
|
Hover show additional details on revisions, sheets, global
|
|
|
|
labels
|
2016-08-18 07:45:24 +03:00
|
|
|
Click jump to sheet (on sub-sheet, sheet stack, global
|
2016-08-16 06:21:33 +03:00
|
|
|
label hover box), open history, select revision
|
2016-08-18 07:45:24 +03:00
|
|
|
Click and drag pan sheet, scroll history
|
2016-08-16 06:21:33 +03:00
|
|
|
Scroll wheel zoom in or out
|
|
|
|
|
|
|
|
|
2016-08-04 14:11:36 +03:00
|
|
|
Key functions in GUI mode
|
|
|
|
-------------------------
|
|
|
|
|
|
|
|
+ or = zoom in
|
|
|
|
- zoom out
|
|
|
|
* zoom to extents
|
|
|
|
Home go to the top sheet
|
2016-08-16 06:21:33 +03:00
|
|
|
Delete or Backspace go to the next higher sheet in hierarchy
|
2016-08-04 15:02:33 +03:00
|
|
|
PgUp go to the previous sheet in sequence
|
|
|
|
PgDn go to the next sheet in sequence
|
2016-08-05 02:35:41 +03:00
|
|
|
Up or Down invoke the revision history (WIP)
|
2016-08-19 18:34:37 +03:00
|
|
|
Tab toggle between old and new revision
|
2016-08-20 13:50:15 +03:00
|
|
|
Esc cancel current action (exit history, close pop-up,
|
|
|
|
de-highlight glabel, close help)
|
2016-08-20 13:01:42 +03:00
|
|
|
H show/hide help window
|
2016-08-19 13:05:50 +03:00
|
|
|
D when comparing revisions, show difference (default)
|
|
|
|
N show newer sheet
|
|
|
|
O show older sheet
|
2016-08-04 14:11:36 +03:00
|
|
|
Q quit the viewer
|