Hello Folks, and especially @easy-fc!
I am working on a humanitarian project which required moving a number of hobby module PCBs from KiCad into STEP, so we could then use them as "components". As I started the process, I was tickled by the functionality of the system. As I dug in a little deeper I realized there was some space for a few improvements. My background is electrical engineering and embedded systems. I've used other ECAD-MCAD interchange, and was always left a little short in one way or another.
In this case, there were some clear places where the tool as it stands could benefit from some extra enhancement. In the end, we were able to rejigger the PCB import to provide some new and nice enhancements to make the resulting boards more realistic. We also fixed a couple bugs in the process.
Unfortunately, we don't have time to properly go through the process of formulating change lists for each of the fixes and submitting them to github, but we think these enhancements would be appealing to the larger audience who uses this tool. All of our energy right now is focused on our humanitarian project related to COVID patient relief.
So the question for this forum is if there is someone out there would would be willing to take a tarball of the changes (to about 6ish files) and formulate the diffs into change lists for the project so these enhancements could be included?
Much of the work we did was to the Tracks subsystem (it's a lot shorter now). We added 3D traces which are configured in the preferences based on the "oz copper weight" (just like a real PCB). We added a number of pad finishes (ENIG, HASL, raw copper, etc...) We modularized color setting, and added colors which resemble actual PCBs (taken from photos). We fixed round pads not rendering properly, and now Vias make holes in the PCB, as one would expect. Components are placed on top of the copper instead of flush with the FR4. We cleaned up the Preferences, and added a bunch of configuration which was not there. The result expands the ways a board can be imported.
Those the the high points. It was about a week's worth of work understanding the code and making the changes.
When there is time again, we hope to render the traces on a board "By Net", meaning one could select a particular object representing an actual netlist and have it as its own object. This is very handy when checking and validating boards (and finding problems). We even thought about rendering "inner layers" of a multi-layer board. The goal being to create the most realistic possible PCBA.
So, if there is someone out there interested in this and would like to do the work to integrate this into the main project, we would be happy to send along a tarball of the work we did.