I know that, and it’s amazing somebody started it.
It was meant as an answer to “Why not require the user to add a netlist file to the project first and just use that?”, should be “Why not require the user to add a netlist file to the project first and just use that, for now?”
I think the current state of the importer can be seen an minimum viable product prototype. I added support for NETs, Footprint anchor, detect board layercount, simple zones, and some bugfixes.
Bugs you will likely see:
Pad shapes “sometimes” wrong
No Zones (with exception of some rectangular ones)
It seems I missed some internal object handling stuff, because after save + load some UX problems are fixed.
Because I do not own Altium, it would be nice to get reports if things like dimensions and position of the elements are correct. Same with net-names and layer assignment.
I got first reviews, and the importer improved a bit:
support of roundrect and octal pad shapes
text improvements (line thickness, alignment, mirroring,…)
hide footprint designator / comment if specified in the boardfile
initial support for polygons
Next things to tackle:
Layer stackup
Design rules (at least know some clearances, soldermask,…)
supporting Planes?
keepout, hatched zones
interpolate arc tracks
more pad shapes (non-round hole, hole offset, …)
more via types (blind, burried,… )
…
Because I do now own any Altium Product, it would be nice to have testfiles created by the community to support reversing. If your are interested, please generate Altium files where a single property is changed (like hole-diameter x/y). In case of the hole diameter example, place 4-5 different sizes on the board, and put a text label next to it denoting the measures. Ideally, also add a screenshot for comparison.
Based on such files, I can do black-box reverse engineering and find out how data is encoded.
For testing, Altium can export PCAD files, which KiCad can import.
You can then compare the results.
Overall, PCAD -> KiCad works quite well, I’ve found issues in more subtle settings like zone fill priority, but the design rules & net names import ok.
An other option is to test the result comparing with the gerber files… often open hardware projects do offer the gerber files beside the altium source file.
Funny thing: At FOSDEM, I was given the idea to check if Altium Circuit Studio uses a similar file format than Altium Designer (well, it’s basically the same software base). Guess what, I added initial support for Altium Circuit Studio .
Basically, Altium changed the directory names in the compound file format, but everything else looks exactly the same. The only thing differing to the Altium Designer importer for now is a wrong layer stackup, because it’s hardcoded right now in my code. When I fix this, both importers should work the same (hopefully)
UPDATE: Altium Circuit Maker uses a similar file format as well, thus I added initial support as well.
Hi,
I’m just migrating medium complexity project to Kicad. I’d like to try your importer. Is it included in nightly builds/is there windows binary somewhere? Thank you!
@Seth_h@nickoe can someone of you start a windows build on the jenkins server to allow some testing?
I added support for netclass parsing and fixed a very bad bug (no bottom layer elements). Now I need to think how to go from altium design rules -> kicad design rules.
You might consider waiting on this until we have the V6 design rules / constraints spec locked down (this is under active work right now). It should be able to map design rules from Altium that are impossible to implement in the current DRC system.
@craftyjon when do you expect to have this integrated? I’m OK with ignoring most of the rules for now.
@Seth_h when do you think rounded traces are finished? I heard something like a week . I think there is not that much missing until code-review can start. Having it merged would allow wider testing.