====== gEDA/gaf ====== Here is a list of programs, libraries and other things that are part of gEDA/gaf (gschem and friends). ===== Schematic capture ===== **gschem**(1) is the schematic capture program/tool which is part of gEDA. Its sole purpose is to facilitate the graphical input of components/circuits. See the [[geda:gschem_ug|gschem User Guide]] for more information on the program. ===== Netlisting ===== **gnetlist**(1) is a netlist generation program. It takes as input gEDA/gaf .sch (schematic) files and the required .sym (symbol) files and converts them into netlists. See the [[geda:gnetlist_ug|gnetlist User Guide]] for more information on the program. ===== Attribute editing ===== **gattrib**(1) is gEDA's attribute editor. It reads a set of gschem .sch files (schematic files), and creates a spreadsheet showing all components in rows, with the associated component attributes listed in the columns. See also the [[gEDA:master_attributes_list|Master Attributes List]] document for more information on attributes used in gEDA/gaf. ===== Utilities ===== There are many utilities included as part of gEDA/gaf. See their manual pages and READMEs in the source distribution for more information on them: * **gaf**(1) is a multipurpose command line utility implementing setting up the above programs, exporting schematics and symbols into various formats, and shell for command line processing of their data. See also [[gEDA:gaf_utility|this page on the utility]]. ==== Utilities for schematics ==== * **refdes_renum**(1) is a utility for renumbering reference designators in gschem schematic files. * **grenum**(1) is an advanced refdes renumber utility. * **garchive**(1) is a utility written in Python used to create and extract gEDA design archives. In archive mode it creates a project archive from a bunch of project files, and in extract mode it extracts the files from the archive and places them in the local directory. * **gschlas**(1) is a utility which can embed the in-use schematic symbols and pictures into a schematic or set of schematics to put them, for instance, on a website or in an email without the recipient needing to download lots of custom symbols for the design. It can also unembed symbol references from a schematic. ==== Utilities for symbols ==== * **gsymcheck**(1) is the symbol checker for the gEDA/gaf system. Give it a symbol file and it will go through and verify that the symbol will work in gschem and friends. * **gsymfix**(1) is the utility to automatically fix common cut-and-paste issues with gEDA symbols and fix up the symbols so that they will pass gsymcheck with no errors or warnings. * **gmk_sym**(1) is a program to create rectangular symbols for gschem from a file composed of comma separated lines. * **tragesym**(1) is a small python script that creates gschem symbols out of structured textfiles. The aim of this script is to make it easier (and faster) to create symbols for gschem. See the [[gEDA:tragesym tutorial]] and README in the distribution. ==== Tools to facilitate netlisting ==== * **gsch2pcb**(1) is a frontend to gnetlist(1) which aids in creating and updating pcb(1) printed circuit board layouts based on a set of electronic schematics created with gschem(1). See also [[gEDA:gsch2pcb_tutorial|Bill Wilson's gsch2pcb tutorial]]. Modern pcb also has an import function which uses import from gnetlist directly. * **gnet_hier_verilog.sh**(1) is a simple shell script which gathers hierarchical information from a list of unique symbols/schematics originating from the top level schematic and produces a hierarchical Verilog netlist in a single file. ==== Utilities for printing and graphical output ==== * **schdiff**(1) is a graphical diff tool for gschem(1) schematics. It uses ImageMagick(1) and is most useful when combined with a revision control system (such as Git, Mercurial, and Subversion) so it can compare two revisions of the same file, review changes, etc. * **gpstoimage** is a shell script that creates GIFs from PS files created by gschem using gs and ppmtogif. It has no documentation and is obsoleted by new gaf(1) and gschem(1) printing capabilities. ==== Format conversion tools ==== * **convert_sym**(1) converts a Viewlogic symbol/schematic to gEDA gschem format; there is also **convert_sym.awk** with almost the same functionality. * **smash_megafile**(1) is a utility that takes a Viewlogic megafile and extracts its contents into a directory, where each element of the library will be represented with one file. * **olib**(1) is a simple automated converter from OrCAD v4 ASCII parts library to gEDA symbols. * Sarlacc is an OrCAD to gEDA format converter. It consists of **sarlacc_schem**(1) and **sarlacc_sym**(1). The first utility written in C converts OrCAD schematic files (in 16-bit format) to gEDA format. The second is a Perl script which converts OrCAD text libraries to gEDA components. ==== Tools for interaction with other programs ==== * **gxyrs**(1) is a program written in Perl to batch process XYRS files. XYRS files are usually generated by [[http://pcb.geda-project.org|PCB]] design programs, and are used by board assemblers. * **sw2asc**(1) is a utility which converts a SWITCAP2 output file into ASCII data files that other tools can read. See the [[geda:ssan|gEDA/gaf Switcap Symbols and Netlister]] for more information on the program. * **pads_backannotate**(1) is a Perl program which backannotates changes from Pads PowerPCB board layouts to gschem(1) schematics. See the [[geda:fbabgapp|Forward/Backward Annotation Between gEDA and Pads PowerPCB]] document for more information. * **pcb_backannotate**(1) is a program written in Perl which reads an engineering change order (ECO) files generated by the [[http://pcb.geda-project.org|PCB]] program and backannotates the requested changes to a gschem(1) schematics. See the [[http://pcb.geda-project.org/manual.html|PCB manual]] for a complete description of the ECO file format. ==== Update utilities ==== These are utilities for schematics and symbols for support of old schematic file formats: * **gschupdate** and **gsymupdate** are programs written in Perl which update attributes in schematics and symbols of version 20020527 or earlier to use them in modern **gschem**; they are documented briefly in the source code. ===== Symbols ===== Symbols (on a schematic) are an abstract representation of the physical components used in electronic circuits. Initial gEDA installation provides you with default symbols contributed by many users. See also the [[gEDA:gschem_symbol_creation|gEDA/gaf Symbol Creation document]] on how to create your own symbols and [[http://gedasymbols.org]] to find already available symbols shared by other gEDA users. ===== Libraries ===== * **libgeda** is a main gEDA library of functions for manipulating gEDA schematics and symbols which is used by many of the above mentioned programs and utilities. See the gEDA Scheme Reference Manual (//info geda-scheme//) for more information on the library. * **libgedacairo** is a library which provides a renderer for schematics and symbols based on the Cairo vector graphics library and the Pango font library. Data for rendering is loaded using libgeda. See the libgedacairo/README in the gEDA/gaf distribution for more information. ===== Examples and other documentation ===== gEDA/gaf contains some examples and other documentation which can be found in the documentation installation directory of your distribution.