Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Minor adjustments #112

Merged
merged 1 commit into from
Jun 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading