Root/
| 1 | ############################################################################## |
| 2 | ##**************************************************************************## |
| 3 | ##** **## |
| 4 | ##** Eeshow has moved ! **## |
| 5 | ##** **## |
| 6 | ##** It now has its on repository, at **## |
| 7 | ##* http://neo900.org/git/eeshow **## |
| 8 | ##** **## |
| 9 | ##**************************************************************************## |
| 10 | ############################################################################## |
| 11 | |
| 12 | |
| 13 | eeshow - Eeschema schematics renderer and viewer |
| 14 | ================================================ |
| 15 | |
| 16 | Eeshow renders schematics made by KiCad Eeschema to FIG, PDF, or PNG, |
| 17 | and generates graphical differences between different versions of |
| 18 | schematics sheets. It can work in plain files but it can also |
| 19 | retrieve design files directly from a git repository. Furthermore, |
| 20 | eeshow has an interactive mode for viewing schematics and differences. |
| 21 | |
| 22 | This work is distributed under the terms of the GNU GENERAL PUBLIC |
| 23 | LICENSE, Version 2: |
| 24 | |
| 25 | This program is free software; you can redistribute it and/or modify |
| 26 | it under the terms of the GNU General Public License as published by |
| 27 | the Free Software Foundation; either version 2 of the License, or |
| 28 | (at your option) any later version. |
| 29 | |
| 30 | For your convenience, a copy of the complete license has been included |
| 31 | in the file COPYING.GPLv2. |
| 32 | |
| 33 | |
| 34 | Prerequisites |
| 35 | ------------- |
| 36 | |
| 37 | libcairo2-dev |
| 38 | libgit2-dev |
| 39 | libgtk-3-dev |
| 40 | transfig |
| 41 | imagemagick |
| 42 | |
| 43 | If building with USE_WEBKIT=y: |
| 44 | |
| 45 | ibwebkit2gtk-4.0-dev |
| 46 | |
| 47 | |
| 48 | Development status |
| 49 | ------------------ |
| 50 | |
| 51 | Eeshow is still incomplete. It should generally be usable, but still has |
| 52 | many limitations, especially in the following areas: |
| 53 | |
| 54 | - not all details are rendered, e.g., pin attributes such as "clock input" |
| 55 | |
| 56 | - rendering isn't always exactly the same as in KiCad, e.g., text size may |
| 57 | differ significantly |
| 58 | |
| 59 | - interactive use is not streamlined yet, e.g., revision selection |
| 60 | |
| 61 | - there may be unknown bugs |
| 62 | |
| 63 | More details on pending items can be found in the file TODO. |
| 64 | |
| 65 | |
| 66 | Non-interactive rendering |
| 67 | ========================= |
| 68 | |
| 69 | Eeshow can be invoked from the command line to render KiCad schematics |
| 70 | to FIG, PDF, and PNG. |
| 71 | |
| 72 | |
| 73 | Invocation |
| 74 | ---------- |
| 75 | |
| 76 | The general form of invocation for rendering is as follows: |
| 77 | |
| 78 | eeshow [-r] file.lib ... file.sch -- format [options] |
| 79 | |
| 80 | Common if using PDF, the option -r can be used (after "eeshow") to |
| 81 | recursively process sub-sheets. For PDF and PNG, the options -s scale |
| 82 | and -o output-file can be used to control the size of the output and |
| 83 | the output file. By default, eeshow writes to standard output. |
| 84 | |
| 85 | Examples: |
| 86 | |
| 87 | eeshow test.lib test.sch -- png -s 2 -o test.png |
| 88 | |
| 89 | eeshow -r neo900.lib kicad-libs/components/powered.lib neo900.sch \ |
| 90 | -- pdf -o neo900.pdf |
| 91 | |
| 92 | More details on the above example can be found in the file DEMO. |
| 93 | |
| 94 | |
| 95 | Revision access |
| 96 | --------------- |
| 97 | |
| 98 | If the files are stored in a git repository, a revisions can be selected |
| 99 | by prefixing file names with the commit ID, e.g., |
| 100 | |
| 101 | eeshow neo900.lib kicad-libs/components/powered.lib 6a9f71:neo900_SS_5.sch \ |
| 102 | -- png -s 2 -o old.png |
| 103 | |
| 104 | Revision selection propagates to dependent files, unless explicitly |
| 105 | overridden. E.g., the above example selects also revision 6a9f71 of |
| 106 | neo900.lib. |
| 107 | |
| 108 | |
| 109 | Using the component library cache |
| 110 | --------------------------------- |
| 111 | |
| 112 | Eeschema copies all components it uses to a file named <project>-cache.lib |
| 113 | When operating on files, this library can be used as a convenient |
| 114 | alternative to listing all the libraries that contributed content. |
| 115 | |
| 116 | However, when using eeshow with a revision history, the library cache |
| 117 | should only be used if it is also kept in the repository. Otherwise, |
| 118 | library changes in older revisions may get unnoticed. |
| 119 | |
| 120 | |
| 121 | Non-interactive differences |
| 122 | =========================== |
| 123 | |
| 124 | Eeshow can render two versions of a sheet to a bitmap and then compare them |
| 125 | pixel by pixel, highlighting areas where differences are found. The output |
| 126 | is written to a PNG file. |
| 127 | |
| 128 | |
| 129 | Invocation |
| 130 | ---------- |
| 131 | |
| 132 | The general form of invocation for rendering is as follows: |
| 133 | |
| 134 | eeshow file.lib ... file.sch -- diff [options] file.lib ... file.sch |
| 135 | |
| 136 | The usual options and revision selection can be used here as well. |
| 137 | |
| 138 | Example: |
| 139 | |
| 140 | LIBS="neo900.lib kicad-libs/components/powered.lib" |
| 141 | eeshow $LIBS 6a9f71:neo900_SS_5.sch \ |
| 142 | -- diff -s 2 -o diff.png $LIBS neo900_SS_5.sch |
| 143 | |
| 144 | |
| 145 | GUI mode |
| 146 | ======== |
| 147 | |
| 148 | GUI mode allows exploration of schematics and the comparison of different |
| 149 | git revisions. Compared to eeschema, eeshow currently offers the following |
| 150 | additional features: |
| 151 | |
| 152 | - access to the git revision history with visual differences between |
| 153 | versions. |
| 154 | |
| 155 | - on hover, global labels show on which other sheets the label is used. |
| 156 | Clicking on a name jumps to that sheet. |
| 157 | |
| 158 | - fast sheet change with PgUp/PgDn |
| 159 | |
| 160 | |
| 161 | Invocation |
| 162 | ---------- |
| 163 | |
| 164 | The basic invocation of GUI mode is as follows: |
| 165 | |
| 166 | eeshow file.lib ... file.sch |
| 167 | |
| 168 | Add the option -r to recursively load sub-sheets of file.sch |
| 169 | |
| 170 | If file.sch is in a git repository, eeshow automatically loads the |
| 171 | revision history. The depth of the history can be limited with the |
| 172 | option -N number-of-commits |
| 173 | |
| 174 | Examples: |
| 175 | |
| 176 | eeshow -N 30 -r neo900.lib kicad-libs/components/powered.lib neo900.sch |
| 177 | |
| 178 | eeshow `sed -n '/pcbnew/q;/^LibName[0-9]*=/{s///;s/$/.lib/p;};d' anelok.pro` \ |
| 179 | anelok.sch |
| 180 | |
| 181 | |
| 182 | Mouse function in GUI mode |
| 183 | -------------------------- |
| 184 | |
| 185 | Eeshow uses only the left mouse button and the scroll wheel. |
| 186 | |
| 187 | Hover show additional details on revisions, sheets, global |
| 188 | labels |
| 189 | Click jump to sheet (on sub-sheet, sheet stack, global |
| 190 | label hover box), open history, select revision |
| 191 | Click and drag pan sheet, scroll history |
| 192 | Scroll wheel zoom in or out |
| 193 | |
| 194 | |
| 195 | Key functions in GUI mode |
| 196 | ------------------------- |
| 197 | |
| 198 | + or = zoom in |
| 199 | - zoom out |
| 200 | * zoom to extents |
| 201 | Home go to the top sheet |
| 202 | Delete or Backspace go to the next higher sheet in hierarchy |
| 203 | PgUp go to the previous sheet in sequence |
| 204 | PgDn go to the next sheet in sequence |
| 205 | Up or Down invoke the revision history (WIP) |
| 206 | Tab toggle between old and new revision |
| 207 | Esc cancel current action (exit history, close pop-up, |
| 208 | de-highlight glabel, close help) |
| 209 | H show/hide help window |
| 210 | D when comparing revisions, show difference (default) |
| 211 | N show newer sheet |
| 212 | O show older sheet |
| 213 | Q quit the viewer |
| 214 |
Branches:
master
