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 schematic
from Altium.
- Ensure only one .PcbDoc
is associated with the Altium project you are trying to import.
- Get better component data, using a jitx-import-bom.tsv
file.
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.
Files¶
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:
- the main
pcb-module is the top-level design. Running this module will re-create the original design
- pcb-module main
instantiates other pcb-modules for each schematic sheet in the project.
- Each of those schematic-sheet
level 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.
Custom Layer Names¶
Mechanical layers in Altium will map to the CustomLayer instances with the name Pcb-Mechanical##
where ##
maps to the number of the mechanical layer.
Other special layers such as:
Pcb-DrillDrawing
Pcb-MultiLayer
Pcb-ConnectLayer
Pcb-BackGroundLayer
Pcb-DRCErrorLayer
Pcb-HighlightLayer
Will also map to a string representation.
Errata¶
See the Altium Importer Errata for current known issues with projects imported from Altium.