mirror of
git://projects.qi-hardware.com/eda-tools.git
synced 2024-12-23 17:55:31 +02:00
547e7059ae
We had input state scattered all over the place. This cleans things up. We also merge the functions of left and (previously) middle button. This breaks history panning.
178 lines
4.8 KiB
Plaintext
178 lines
4.8 KiB
Plaintext
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
|
|
|
|
|
|
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
|
|
|
|
- there may be bugs
|
|
|
|
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.
|
|
|
|
|
|
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
|
|
--------------------------
|
|
|
|
Eeshow uses only the left mouse button and the scroll wheel.
|
|
|
|
Hover show additional details on revisions, sheets, global
|
|
labels
|
|
Click jump to sheet (on sub-sheet, sheet stack, global
|
|
label hover box), open history, select revision
|
|
Click and drag pan sheet, scroll history
|
|
Scroll wheel zoom in or out
|
|
|
|
|
|
Key functions in GUI mode
|
|
-------------------------
|
|
|
|
+ or = zoom in
|
|
- zoom out
|
|
* zoom to extents
|
|
Home go to the top sheet
|
|
Delete or Backspace go to the next higher sheet in hierarchy
|
|
PgUp go to the previous sheet in sequence
|
|
PgDn go to the next sheet in sequence
|
|
Up or Down invoke the revision history (WIP)
|
|
Q quit the viewer
|