I had a look at the IPC D 356 file on parts particularly the x,y,r sizes positions. As you can see, a few parts were not rendered or are not right:
Capacitors rendered too low in height;
a few T092 transistors not rendered correctly, their tops are too low like the caps);
An IC wide SOIC16 not rendered at all; Inductor not rendered (looks like SIL pins);
JST XH 2.5mm pitch connector not rendered (base of board);
Another ZR 1.5mm pitch JST not rendered properly (near LQFP64);
Crystal HC49S not rendered correctly;
wire pads not rendered correctly (look like pins) (VIAs ok);
Image sensor ICX453AQ (large device) not rendered properly, should be on bottom "16" layer.
Is there a way I can fix these issue? I have played with Eagle 3D and POV Ray and made my own parts before. But, that might give a nice image, but it's just eye candy, it hasn't the in depth analysis and details your program has!
Don't worry about the part off the board, that's just me!
The only information i have from ipc356 is:
pad/hole x,y, pad size x,y, net-name, component designator.
So I can combine pads to form components and get a little clue what this might be: R,L,C,Q,U,J... So obviously I have no clue what is the height of the electrolytic cap.
My first step was to display a kind of extruded pads, then adding component body to it. This is allowing to e.g. highlighting a pad or a component, or point it by the mouse and identifying it on the right panel.
In this release I have been adding a table based library, including R and C (and L) 0603, 0802.., leaded 2 row and 4 row L and J-lead packages. The tables are not complete yet. So far it is possible to distinguish J from L lead, just from the footprint size.
If the table-component does not fit nicely, the program should default to the older "extruded" representation.
I am targeting STEP output, maybe as a freemium feature. So I still need to finish the tables and add another level of detail, for mechanically rich components like connector and switches - STEP model load.
In the meanwhile, I am trying to load BOM and identify columns, map components from BOM to IPC356. Unfortunately there are very fuzzy rules about component naming and component footprint naming. The BOM file load is already implemented, but it is only used to display component info on the right panel. Not for selecting the 3D shapes.
When BOM file read is working correctly, I can use the information, maybe checking by an Internet distributor website, what are the actual capacitor sizes, ceramic and electrolytic. This information is generally not present in a CAD PCB project, I need to (re)construct it by other means, asking the user for it, in the last instance. (Now you can hide or swap THT to another side, by a right mouse click menu)
Thanks for showing me what components I need to take care of next, and showing me the bugs. I would appreciate to get Gerbers, ipc356 and BOM, if it is possible, by the nature of the project (OSH vs. commercial).
Btw, the board outline is probably not identified correctly, as I see on the picture.