How to import from Altium Designer into JITX
Prepare an Altium Project for Import
If you have not installed the Altium extension, follow the instructions for Installing the JITX Altium Extension. JITX and Altium should be installed on the same computer and able to launch at the same time.
Before importing Altium data to JITX, make sure you've done the following :
- Open Altium and be sure to activate a valid Altium license.
- Make sure all parts are in both the schematic and layout, they must not be missing in either!
- Make sure the schematic is fully annotated. No
?characters in reference designators are allowed.
- Synchronize designs by running
Update board from schematicfrom Altium.
- Ensure only one
.PcbDocis associated with the Altium project you are trying to import.
- Get better component data, using a
- Generate a schematic library for project to be imported
How to generate a Project SchLib
Open any project schematic document. When viewing the schematic document, select
Make Schematic Library. When prompted, select the component grouping options that will identify each unique symbol in the schematic. (Default options Comment, Description, Value work for most projects) Altium will auto-generate a new schematic library containing every symbol in the project.
Import the prepared design
Either create a new project in JITX or open an existing project folder in VS Code.
In the JITX pane in the extension, select "Import from Altium", and browse to the PrjPCB file for the project you prepared in the first step.
JITX generates code for the design and the components for the Altium project we just imported in the
altium-imports directory. We can now use our design data in JITX!
Structure of the imported design
The JITX importer generates code from the source Altium project. The code is structured to be as reusable as possible, and tries to translate the structure in the schematic into reusable circuits. Enough data is maintained to allow reproduction of the original design in Altium.
Let's say we import an Altium project named
RedOctober. The importer will then generate the following directory:
RedOctober/ symbols/ landpatterns/ components/ 3d-models/ RedOctober.stanza reference-designators.stanza properties.stanza placements.stanza labels.stanza board.stanza run-design.stanza log.txt stanza.proj
symbols/ This directory contains symbols that are used more than once by components in the design.
landpatterns/ This directory contains landpatterns that are used more than once by components in the design.
components/ This directory contains component models for the parts in the design. It is organized by manufacturer.
3d-models/ This directory contains the 3D models present in the design.
RedOctober.stanza This file contains the JITX version of the original design. The design is composed of a tree of pcb-modules in order to get the most reusability:
mainpcb-module is the top-level design. Running this module will re-create the original design
pcb-module maininstantiates other pcb-modules for each schematic sheet in the project.
- Each of those
schematic-sheetlevel modules instiates pcb-modules for each group of symbols that are directly wired together. So we should usually get each individial circuit in our design coming in as a reusable pcb-module. This is not perfect, and it's normal to rearrange these modules a bit to get a great heirarchical and reusable representation of our design.
reference-designators.stanza This file sets the reference designators of the components in the design so that the original design can be regenerated.
properties.stanza This file contains the Altium parameters stored as JITX properties.
placements.stanza This file contains the component placements from the board.
labels.stanza This file sets the detailed size and location of reference and value labels so the original design can be recreated.
board.stanza This file contains material and stackup definitions, as well as the board outline geometry.
run-design.stanza This file contains commands to run the
main module defined in
RedOctober.stanza either to run checks or re-export the design to Altium.
log.txt This file is a log of the import, noting data inconsistencies in the source design file and how they were handled.
stanza.proj This file links all of the above stanza files mapping package definitions to the file that contains them.
Interfacing with Altium is hard, see the Altium Importer Errata for current issues with data import.