====== olib (OrCAD (TM) converter) README ====== ############################################################### README and release notes for olib2geda - 1 settembre 2002 OrCAD (TM) lib ASCII dump to gEDA .sym converter ############################################################### What it olib2geda? It's a simple automated converter from OrCAD v4 (in SDT version 1.10) parts library (in ASCII dump format, through "decomp" utility) to gEDA component definition in .sym format file. It allow an initial dumb conversion file to file, with one lib converted in multiple .sym file, one per component in library. The converted component file needs little editing to become usable, but in some case needs no editing at all. What olib do. * Convert box shaped component in OrCAD (TM) lib in .sym file in gEDA format * Place pin, pin name, pin type, pin number * Place logic bubble when needed (DOT attribute in OrCAD (TM), for logic nega- tion) * Place clock arrow when needed (CLK attribute) * Place reference, from REFERENCE statement in OrCAD (TM) * Place Part name as label and device name as attribute * Parse and draw non-box component, with LINE, ARC, CIRCLE and TEXT * Add power pin as invisible net=name:pin attribute when detected (in OrCAD (TM) invisible pin has tipically T0 and B0 coords) * Through command line switch, hides pin name in VECTOR drawed symbols, allowing better appearance * Write both new (20020825) and old (20020209) file format for .sym files through a switch on the command line What olib do not. * Do not parse and store alternate component drawing (statement CONVERT in OrCAD (TM)) * Do not handle drawing part using VECTOR list from another part (statement VECTOR 'partname' in OrCAD (TM)) * Do not handle FILL statement in VECTOR statement (incompatible with gEDA, but for what i know is used only for "better" part drawing) * Do not handle multiple part in one package (slots in gEDA) Bugs. More and more. But for the use that I do bugs aren't so critical. If you find a bug or want improvements to the program, feel free to contact me at the e-mail address at the end of this text. How to obtain last version. Open the URL: http://digilander.libero.it/tailchaser in section "Linux" you can see the main page of olib. Compile and install. [[ Ales here, I have incorperated olib into the ./configure build mechanism, so these instructions only apply if you build from Mario's distribution ]] To compile program go in directory 'src' of the unpacked tarball, and type 'make'. This produces the binary executable, named 'olib'. Compilation process uses the flex scanner generator to generate the file 'olib.c' from the 'olib.lex', and link the library math to the code. The binary included in the distribution is compiled on a P266-MMX with RedHat 7.2, with gcc version 2.96 and flex 2.5.4, but the program don't require any special feature or critical function, as far as I know. At the end of compilation phase, you can see two warnings: * warning, -s option given but default rule can be matched * warning: `yyunput' defined but not used this is normal, don't affect program functionality, and you can safely ignore it. Installation is not needed for normal operations, but if you want you can copy only the executable (olib) on a directory in the PATH. Use of olib. To convert library, first convert it to ASCII dump with 'decomp' utility included in the OrCAD (TM) distribution. After that invoke the lib converter: olib path/to/file/file_ascii prefix where 'prefix' is used to generate file name of every symbol, like: prefix-partname-1.sym During the process, you can see a lot of ugly text scrolling in the terminal, that show the progress of the conversion. If you want to read this text, you can redirect the stderr output to a file: olib path/to/file/file_ascii prefix 2> logfile.txt where '2>' instruct the shell to redirect stderr output to logfile.txt. The converter write one file per part, in the current directory. At the end of the execution you can see a lot of file in the directory, extracted from OrCAD library. In the (not so improbable) case of incomplete conversion of a part (i.e. because of unsupported VECTOR 'partname' statement), the file of the incomplete part will be named 'prefix-partname-1.sym.part', stand for partial conversion. If the conversion process stops with the message: "flex scanner jammed", the converter has encountered an unknown statement, an incompatible version of library, or a bug. If you can, please report the complete log and the library dump, to allow corrections or improvements. Mario Pascucci