Coder Social home page Coder Social logo

pcbapp / openorcadparser Goto Github PK

View Code? Open in Web Editor NEW

This project forked from werni2a/openorcadparser

0.0 0.0 0.0 195 KB

OpenOrCadParser - FOSS Parser for Cadence OrCAD designs.

License: MIT License

CMake 2.17% C++ 92.35% Shell 0.32% Python 5.16%

openorcadparser's Introduction

OpenOrCadParser

Purpose of this project is to provide a C++17 library for parsing Cadence's OrCAD Capture binary file formats. This library can be linked to other software for reading/modifying?/writing? OrCAD binary files.

See also the complementary project OpenAllegroParser.

The focus lies on schematics (*.DSN/*.DBK) and symbol libraries (*.OLB/*.OBK), the second file format is just the extension for its corresponding backup file. Backups should be identical, just with a different file extension.

OrCAD allows exporting its designs to XML files which are easy to read and verify the interpretation of bytes in the DSN/OLB-files. E.g. enums are stored as a numeric value which should be the same that is used in the binary formats. However, it seems like not all information is stored in the XML.

The following two XSD files provide a good overview of the XML file structure, types and much more. They can be used as a reference what features are actually stored in the binary file and which we do already parse and which not.

C:\Cadence\SPB_17.4\tools\capture\tclscripts\capDB\dsn.xsd

C:\Cadence\SPB_17.4\tools\capture\tclscripts\capDB\olb.xsd


Documentation

  1. File Container
    1. Container Structure
  2. File Format Changes

Current State โ€” March 2022

  • Working on parsing library symbols.
  • Improving test coverage.

Build

# Set path to vcpkg
VCPKG_DIR=../vcpkg

# Build
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake
cmake --build build

Dependencies


Usage

./cli/OpenOrCadParser-cli --help
Allowed options:
  -h [ --help ]         produce help message
  -t [ --print_tree ]   print container tree
  -e [ --extract ]      extract binary files from CFBF container
  -i [ --input ] arg    input file to parse
  -o [ --output ] arg   output path (required iff extract is set)

./cli/OpenOrCadParser-cli --input file.DSN --extract --output out/
./cli/OpenOrCadParser-cli --input file.DSN --print_tree

Unit Tests

Test Documentation


Related Projects

orlib2ki (C based OrCAD XML Library to KiCad Converter)

pyorlib2ki (Python based OrCAD XML Library to KiCad Converter)


How to Contribute?

There are different ways to help this project forward. Some are

  • provide test files (manually created or automated via Tcl/Tk),
  • help reverse engineering/documenting the file format, or
  • implement some unit tests.

In case you don't have access to OrCAD you can get

What about OrCAD Lite? It was was replaced with OrCAD Viewer/Trial [1].


Cadence Terms and Conditions

Terms and Conditions

Terms of Use Agreement

openorcadparser's People

Contributors

werni2a avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.