Difference between revisions of "Schematic Capture for publishing"

From MKRD.info Wiki
Line 11: Line 11:


Creating diagrams using this template is slightly slower than in specialised programs, but it is very flexible and produces nice vector output.
Creating diagrams using this template is slightly slower than in specialised programs, but it is very flexible and produces nice vector output.
{{clear}}
===[[Xcircuit]]===
[[Image:Negative impedance converter.svg|thumb|100px|Negative impedance converter drawn with Xcircuit]]
Xcircuit [http://opencircuitdesign.com/xcircuit/] is meant to be used only for drawing circuits for professional publications. It is very powerful, with a huge standard library and very easy to use. It saves by default in [[PostScript|PostScript]], and it can be converted to [[SVG]]  using [http://www.pstoedit.net/pstoedit Pstoedit]. It can optionally export with any quality in [[Portable Network Graphics|PNG]]. It is not natively [[multi-platform]] (it is developed mainly for [[linux]]), but it is possible to make stand-alone executables for both Windows and Mac OS X (there is <s>[http://www.geocities.com/sw286000/ a beta for Windows]</s> and [http://opencircuitdesign.com/xcircuit/download.html Mac OS X]) adding some libraries in it.  Some of the symbols are kind of ugly.
For more info about creating [[SVG]] circuits with it see [[Wikipedia:WikiProject Electronics/How to draw SVG circuits using Xcircuit|How to draw SVG circuits using Xcircuit]].


{{clear}}
{{clear}}

Revision as of 12:30, 8 October 2011

Programs for drawing circuits

Inkscape

File:Transistor amplifier blocked emitor.svg
Example of Inkscape's SVG output

Inkscape [1] has a pretty good interface and nice output, but it is specifically meant for artistic drawing and not diagramming. There is a plan to introduce some more diagramming features in the future, but the developers don't want to go too far in that direction for fear of bloating past their primary art focus. They've just added the ability to create program extensions, though, which could be useful for writing some kind of circuit drawing extension. As of January 2006, Inkscape supports drawing connections (wires) between anchors on objects, which makes it much nicer for circuits, but still not a complete solution.

There is a (small but extensible) library of symbols available.

File:Electrical symbols library.svg
Library of electrical symbols for diagramming

Creating diagrams using this template is slightly slower than in specialised programs, but it is very flexible and produces nice vector output.

Template:Clear

Dia

File:Star-Triangle transformation.png
Star-triangle transformation drawn with Dia

Somewhat of a compromise between the previous two, Dia [2] exports in SVG, has a small library of electronic components, and a grid (snap feature located in the bottom left corner of the diagram window). While Dia cannot rotate objects, it can flip them horizontally or vertically. This option is found in the properties for each object (right click->properties). To access the circuit object library, you change the category selector in the main window.

Template:Clear

GIMP

GIMP [3] is a programme for raster image processing, so it is not meant to be used for any kind of schematics. It does not support SVG and everything has be drawn from scratch. Anyway it is multi-platform and several people used it on Commons to draw circuits. It could be useful for some post-processing, but the output will not be in SVG.

Template:Clear

Klunky

File:Opamptransistorlevel.png
An example op-amp circuit drawn with Klunky and GIMP

Klunky [4] can be used to draw basic circuits, and then a raster editing program like GIMP to modify the screenshots. The Klunky program is public domain, and he has enhanced it with additional components, etc. (See User:Omegatron#Electronics_diagrams. Enhanced version is here.)

Advantages

  • Relatively quick, at least compared to drawing components by hand
  • No install — runs in web-browser
  • Public domain
  • Can be enhanced even further with better-drawn components

Disadvantages

  • Outputs a raster format
  • Everything is restricted to blocks and some compacting to save space is sometimes needed in the image editor afterwards
  • Can't save / transfer drawings (unless you edit browser cookies)
  • Style changes between creators. Even the style has changed for the same creator somewhat, since he switched to GIMP which has different fonts and smoothing.

Beats drawing it by hand, though, and drawing simple circuits is pretty fast.

User:Poccil has been working on an update to Klunky that generates SVGs directly. This would be the ideal solution if not for the limitation of putting everything in square blocks.

Template:Clear

Microsoft drawings

File:Common Base amplifier.png
Common base amplifier drawn with Microsoft's Autoshapes

Advantages:

  • Nice-looking output
  • Meant for creating diagrams
    • Autorouting of connectors
    • Snap to grid

Disadvantages:

  • Non-free
  • Raster output
  • Requires drawing each component by hand at least once.

See commons:User talk:Peo#Diagrams for discussion.

Template:Clear

SIMetrix

File:Simetrix sample.PNG
Common emitter amplifier drawn using SIMetrix.

SIMetrix [5], as of version 5.40b (Jan 2008):

Advantages:

  • Nice looking output.
  • Schematic editor with SPICE simulator.
  • Free version with unlimited schematic drawing and editing.
    • Hierarchical schematics
  • Selection of colours for components, wires, etc. for easy identification.
  • Zooming facility, auto-routing and snap-to-grid.
  • Simple placement of components — select and click-to-place with mouse.
  • Automatic repeat placement of last component.
  • Can save a schematic as an SVG or other graphic file.
  • Can save schematics in an ASCII or binary format — documentation for the ASCII format is provided with the installation.
  • Free version for Windows or Linux may be used indefinitely; program may be freely shared (per SIMetrix 5.40b splash screen)

Disadvantages:

  • Free version has limited simulation capability (not applicable for drawing schematics).
  • Not open source
  • Email registration required to receive download link (no password or user account needed)

Template:Clear

WikiTeX and gschem

File:Wikitexschem.png
An example of WikiTex schem output

See [6] and [7]. This is a proposal to add schematics directly into the wiki using code and gschem output. The code is incredibly ugly and the graphical output is not great, either.

Template:Clear

PSTricks

File:Sallen key filter generic.png
Sallen–Key filter drawn with pst-circ

pst-circ [8] is a circuit drawing package implemented with PSTricks [9], which allows TeX users to "code" figures with the aid of PostScript. Packages like pst-eps or preview allow for easy production of images with tight bounding boxes.

Advantages:

  • Nice looking output.
  • Free version with unlimited schematic drawing and editing.
  • Transparent source that is diffable.
  • Full use of PostScript (e.g., colors, bitmaps, vectors, etc.).
  • Full use of TeX (e.g., mathematical formulas and nicely typeset text).
  • Many symbols available (e.g., zigzag and chemical dipole symbols, transistors, FETs, analog, digital).
    • Symbols that are not available can easily be drawn with drawing primitives (lines, boxes, etc.).
  • 3D images and effects available.

Disadvantages:

  • Have to know how to use TeX (or LaTeX).
  • No analysis features (i.e., it is just a drawing tool).

Template:Clear

KiCad

File:Kicad SVG Output Sample.svg
Unbalanced Splitter drawn with KiCAD

Having recently moved to SourceForge, KiCAD KiCAD is an open source suite of tools including schematic design. It has some nice features:

  • Snap to grid
  • Component libraries with built-in editor
  • Rotate components
  • Moving a component moves attached traces when pressing CTRL while clicking the group to move.
  • Outputs in SVG (which works with OOo's SVG import tool)
  • Open source and actively maintained

But isn't perfect:

  • Doesn't route around components
  • SVG output includes page border, title, etc (can be cropped with something like InkScape)
  • Part labels and values in SVG output are rendered as lines (thus the letter "M") is 4 line segments... making them very difficult to change later.
  • Can't use Greek in labels, which means no Ω on resistor values.

Template:Clear

Qucs

File:Qucs Sample Circuit Screenshot.png
Practice problem for node equations

Qucs [10] (Quite Universal Circuit Simulator) is an open source (GPL) circuit simulator. It is very easy to work with for drawing schematics. It is close to being an ideal tool for drawing schematics for use in documentation, but lacks SVG support.

Template:Clear

gnu Electric

The Electric VLSI Design System [11] is an EDA tool written by Steven M. Rubin. Electric is used to draw schematics and to do integrated circuit layout. It can also handle hardware description languages such as VHDL and Verilog.

Electric has been open-source for many years, and is currently available through the Free Software Foundation (Gnu).

Advantages:

  • No install — a single Java .jar contains the program and all help files
  • Exceptionally powerful
  • Very easy to draw schematics
  • Moving objects moves and reroutes wires fairly intelligently

Disadvantages

  • Overly powerful for simply drawing schematics — some will find it too much to learn (or ignore)
  • Limited electronic objects in library
  • Not clear how to add to the library (create your own schematic objects -- it may be there)

Template:Clear

gEDA

File:Gschem.png
gEDA gschem screenshot

gEDA is a suite of collaborative software used for electronic design automation. The project's name stands for GPL’d suite of Electronic Design Automation tools.

The gEDA project offers a mature suite of free software applications for electronics design, including schematic capture using gschem, attribute management gattrib, bill of materials (BOM) generation, netlisting into over 20 netlist formats (gnetlist), analog and digital simulation (ngspice, gnucap, Icarus Verilog, and GTKWave, and Printed circuit board (PCB) layout (pcb).

gEDA may be run under MS Windows using http://geda.seul.org/wiki/geda:cygwin.

Advantages

  • Snap to grid
  • Component libraries with built-in editor
  • Rotate components
  • Mature Open source and actively maintained
  • Attached traces move with objects

Disadvantages

  • Extra effort to run under MS Windows

Template:Clear

Feature Comparison

The Electronics Project has a list of desirable features for a circuit drawing program. This table attempts to summarize which of the features each of the above programs has.

The "Easy circuits" column is specifically answering the question: "Is it easy to use this program to draw circuit layouts?" This is to help clarify that while programs like Inkscape and Dia may pass all the criteria, they are not good choices for drawing circuits. They are easy to use for other tasks, but this chart is specifically geared toward finding a good circuit drawing program.

The "Attach wires" column answers the question: "Once I have a schematic, if I move some component, do the wires that were attached to it move so that they stay attached?"

Note that WikiTeX + gschem is left out of the chart as it is a server-side solution, not a client-side application. To make it a practical solution, one would need a GUI to create the schematics that could export them into the proper format for processing by the server.

Program Free Cross Platform SVG Library Grid Attach wires Drawing Bezier curves Easy circuits
Inkscape yes yes yes partial yes yes yes yes no
Xcircuit yes yes with help yes yes yes
Dia yes yes yes yes yes yes yes yes no
Gimp yes yes no no no yes no
Klunky yes yes no yes yes no no no yes
Microsoft drawings no no no no no yes no
SIMetrix no yes yes yes yes yes yes yes
pst-circ yes yes yes (with help) yes yes yes yes yes yes
KiCAD yes yes yes yes yes yes(*1) yes no yes
Qucs yes yes no yes yes yes yes no yes
gnu Electric yes yes partial yes yes partial yes
gEDA gschem yes with Cygwin with help (PNG) yes yes yes yes yes

(*1) Use the "g" key (instead of "m") to "Grab" a component and drag it with all connections.


Rejected

  • XCircuit. Not for Windows, GUI ugly as hell.