Skip to content

Commit

Permalink
Minor adjustments
Browse files Browse the repository at this point in the history
  • Loading branch information
Werni2A committed Jun 8, 2024
1 parent d63a50c commit 7f4dc01
Show file tree
Hide file tree
Showing 7 changed files with 50 additions and 17 deletions.
12 changes: 1 addition & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@

# OpenOrCadParser

Purpose of this project is to provide a C++17 library for parsing [Cadence](https://en.wikipedia.org/wiki/Cadence_Design_Systems)'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](https://github.com/Werni2A/OpenAllegroParser).**
Purpose of this project is to provide a C++17 library for parsing [Cadence](https://en.wikipedia.org/wiki/Cadence_Design_Systems)'s OrCAD Capture binary file formats. This library can be linked to other software for reading/modifying?/writing? OrCAD binary files. This repository does not cover every possible use case, maybe you find what you are looking for in section [Related Projects](doc/related_projects.md).

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.

Expand Down Expand Up @@ -124,14 +122,6 @@ python pyorlib2ki.py -i $XML_PATH -o $SYM_PATH

---

# Related Projects

[orlib2ki](https://github.com/fjullien/orlib2ki) (C based OrCAD XML Library to KiCad Converter)

[pyorlib2ki](https://github.com/fjullien/pyorlib2ki) (Python based OrCAD XML Library to KiCad Converter)

---

# How to Contribute?

There are different ways to help this project forward. Some are
Expand Down
42 changes: 42 additions & 0 deletions doc/related_projects.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Related Projects

## orlib2ki

C based OrCAD XML Library to KiCad Converter.

- [Repository](https://github.com/fjullien/orlib2ki)

## pyorlib2ki

Python based OrCAD XML Library to KiCad Converter

- [Repository](https://github.com/fjullien/pyorlib2ki)

## OrView

Utility to view Orcad V4.x and Orcad 32-bit Dos files (`*.sch`). Provided by Mace Tech Computer Systems.

- [Homepage](https://web.archive.org/web/20050305202111/http://www.umace.com/index.html)
- Download:
- [`oview` Version 1.08](https://web.archive.org/web/20051104230341/http://umace.com/downloads/oview108.zip)
- SHA256: `c344cef436deefb7085c1b925fc87721b975f1a424ed59a4435bc6fbb3e01024`
- You are allowed to use this software for evaluation purposes before required to purchase a license.
- Note that the company 'Mace Tech Computer Systems' is dissolved since 2011-03-08, see [Company Information in the UK](https://find-and-update.company-information.service.gov.uk/company/03411782).

## AutoVue EDA Professional

'AutoVue is the leading viewer for OrCAD' as statement on Oracle's website. It allows opening multiple file formats ranging from OrCAD version 15.7 to 16.6.

- [Homepage](https://www.oracle.com/apps-tech/autovue/orcad-viewer.html)
- Commercial Software

## Altium

Schematic and layout EDA tool providing an importer for OrCAD designs.

- [Homepage](https://www.altium.com/)
- Commercial Software
- References:
- [Importing a Design from OrCAD](https://www.altium.com/documentation/altium-designer/orcad-import)
- [Cadence OrCAD to Altium Designer Migration Guide](https://resources.altium.com/sites/default/files/2022-04/Cadence%20OrCAD%C2%AE%20Migration%20Guide_0.pdf)
- Note that you can import into Altium and and import the Altium design into KiCAD
2 changes: 1 addition & 1 deletion repos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4801,7 +4801,7 @@ repositories:
- author: ROHMUSDC
commit: cd3b1749a528f8ca8a75e09cbea0792261a7ba1d
files:
- errors: 1
- errors: 0
options: null
path: ./Design Files/Schematic_BOM/BD71815GW_REFERENCE_REV1P30.DSN
project: BD71815AGW-EVK-101
Expand Down
2 changes: 1 addition & 1 deletion src/DataStream.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ std::string DataStream::readStringZeroTerm()
{
std::string str;

const size_t max_chars = 2500u;
const size_t max_chars = 3500u;

for(size_t i = 0u; i < max_chars; ++i)
{
Expand Down
1 change: 1 addition & 0 deletions src/PageSettings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ void PageSettings::read(FileFormatVersion /* aVersion */)
mCtx.mLogger.trace("horizontalCount = {}", horizontalCount);
mCtx.mLogger.trace("verticalCount = {}", verticalCount);

// @todo Probably related to Spice simulations
ds.printUnknownData(2, getMethodName(this, __func__) + ": 5");

horizontalWidth = ds.readUint32();
Expand Down
4 changes: 2 additions & 2 deletions src/Streams/StreamPage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ void StreamPage::read(FileFormatVersion /* aVersion */)
const auto s = parser.readStructure();
if(s)
{
mCtx.mLogger.debug("VERIFYING Page Structure10 is {}", NAMEOF_TYPE_RTTI(*s));
mCtx.mLogger.trace("VERIFYING Page Structure10 is {}", NAMEOF_TYPE_RTTI(*s));
}
}

Expand All @@ -177,7 +177,7 @@ void StreamPage::read(FileFormatVersion /* aVersion */)
const auto s = parser.readStructure();
if(s)
{
mCtx.mLogger.debug("VERIFYING Page Structure11 is {}", NAMEOF_TYPE_RTTI(*s));
mCtx.mLogger.trace("VERIFYING Page Structure11 is {}", NAMEOF_TYPE_RTTI(*s));
}
}

Expand Down
4 changes: 2 additions & 2 deletions src/Structures/StructPartInst.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,9 @@ void StructPartInst::read(FileFormatVersion /* aVersion */)

localFutureLst.checkpoint();

const std::string sth1 = ds.readStringLenZeroTerm(); // @todo needs verification
const std::string source_package = ds.readStringLenZeroTerm(); // @todo needs verification

mCtx.mLogger.trace("sth1 = {}", sth1);
mCtx.mLogger.trace("source_package = {}", source_package);

ds.printUnknownData(2, getMethodName(this, __func__) + ": 5");

Expand Down

0 comments on commit 7f4dc01

Please sign in to comment.