Go to file
Aaron Goldstein bb8ba44c38 Update gitignore to catch more rando altium files 2020-03-11 22:11:27 -07:00
tests/altium_crap You know what's a great idea, write everything to a file, all the time - the user won't mind if we flood their filesystem. 2020-03-06 23:14:43 -08:00
.gitattributes 🍭 Added .gitattributes & .gitignore files 2016-09-30 02:38:08 -07:00
.gitignore Update gitignore to catch more rando altium files 2020-03-11 22:11:27 -07:00
LICENSE Create LICENSE 2020-03-03 19:36:16 -08:00
README.md Add option to arguments 2020-03-07 00:01:22 -08:00
parse.py Add hooks for parsing for parts list 2020-03-07 00:25:38 -08:00
requirements.txt json output is in hierarchy, add python packaging stuff 2020-03-04 00:31:46 -08:00
setup.py Clean up install process 2020-03-04 01:01:01 -08:00

README.md

Altium-Schematic-Parser

Converts Altium .SchDoc files into json

Prerequisites

  • python 3
  • olefile

Install

git clone git@github.com:a3ng7n/Altium-Schematic-Parser.git
cd Altium-Schematic-Parser
pip install -e .

Usage

python parse.py -i "path/to/altiumschematic.schdoc" -o "path/to/jsonfile.json"

Notes

schdoc file format

Record ids:

  • 1: a part, type identified by either "LIBREFERENCE" or "DESIGNITEMID"
  • 2: a pin on a part
  • 6: a "drawing" I think... "Xn"/"Yn" are values of where a line should be drawn
  • 34: a designator?
  • 41: text associated with a part - lots of different types indicated by "NAME"
    • PinUniqueId: I suspect a unique id for the associated pin
    • Fitted: ...wat?
    • Comment: self explanatory
  • 44: a container of "models" aka record 45's - see below
  • 45: appears to be a reference to which "model" a particular part can be represented by. Since this is just a possible model, the one actually selected for a given part will have the "ISCURRENT" flag set to "T"