XCircuit is a UNIX/X11 program for drawing publishable-quality electrical circuit schematic diagrams and related figures, and producing circuit netlists through schematic capture.

XCircuit regards circuits as inherently hierarchical, and writes both hierarchical PostScript output and hierarchical SPICE netlists. Circuit components are saved in and retrieved from libraries which are fully editable.

XCircuit does not separate artistic expression from circuit drawing; XCircuit maintains flexiblity in style without compromising the power of schematic capture.

What's New in This Release:

· XCircuit-3.3 is considered the current, stable, official release version. XCircuit-3.3 is the also development version of XCircuit. Current work includes the integration of automatic schematic capture (ASG) with Stephen Frezza of Gannon University. This should keep us occupied for a while. The Automatic Schematic Capture (ASG) is currently disabled by default until it becomes stable enough to be considered usable. The first function to be added is an hspice parser that reads hspice files and generates schematics from the netlist. Future work includes automatically rerouting in response to moving objects around on the screen, and reading Verilog netlists. The ASG module can be enabled by specifying "--enable-asg" at configuration time. The ASG package is incorporated into revision 3.2.7 and later. XCircuit version 3.3 changed from the original C++ SPICE parser to a simpler but more stable parser by Conrad Ziesler.

· Revision 7 changes the way selections are handled, getting rid of the cumbersome and oddball "click to accept/reject" method. The new method makes use of the recursive selection routine developed for selecting networks anywhere in the (visible) hierarchy of a schematic. This allows limiting selection of object instances to avoid selecting where the object instance has large amounts of whitespace, such as a border or frame object. Consequently, ambiguity about what element was intended to be selected occurs less often. The new method selects exactly one element on a button-1 press or button-2 click. If this is not the intended element to select, just select again and XCircuit will cycle to the next element found near the pointer.

· Note: Those who downloaded revisions 7 or 8 will almost certainly want to update to revision 9. The new selection mechanism was introduced in revision 7 and fixed for bugs in revision 8. However, in spite of the better underlying code, the algorithm ended up, if anything, even more cumbersome than the original. Quite a bit of optimization of the selection heuristics went into revision 9. In particular, XCircuit is now better at picking the "intended" element. Also, pointer warps to line endpoints are reverted back to the original position on a cancelation, and element edits can be undone with the "undo" command (an important part of the undo mechanism that I left uncoded for much too long).