IPC-356 is an electrical test file for a bare PCB (by original purpose) and contains a list of points to test, defined by:
The test points are located on THT and SMD pads. Not tented vias may also be included, of course without the component and pin identification.
Points having the same netlist name are supposed to be electrically connected.
The IPC-356 file is a popular export option, available fom virtually all ECAD packages, along with P&P , BOM, drill and layer Gerbers.
The first approach, not available any more, was just boxes symbols for the test points. Together with the mouse hoover info display, it was exactly representing the IPC-356 file content. The folowing screenshot could be an IPC-356 file definition:
The next step was to group testpoints by component ID, adding an extra box representing the component body. The trick is to determine the component box size, color, rotation and position. The body shape depends also on the designator text, in some cases. This functionality is available in the current software versions. This component model is called "extruded".
The role of this component generator is to provide mouse pointer targets, for components and pin browsing if you do not wish to obtain the real component generator license. Also, it serves cases, where the parametric component generator fails.
First footprint geometry is classified on various aspects: number of pins, smd/tht, number of rows, heat sink pad, etc.. There are components tables, for each particular class. Component tables have various abstraction level, e.g. QFP are detailed, but e.g. SO allow for variable pin numbers, 2-pin THT resistors are very versatile - all dimensions are adjustable. Unfortunately, at the moment, not all component case types are present in the tables. Therefore I am thinking of moving the tables ouside of the program, as readable csv files, making it possible to upgrade independently also by the user. For the mechanically featured components, like switches or connectors, adding STEP import or a simple component editor would also make sense.
Beside typical non-compliance, like wrong scale, wrong offset, longer names on fixed length fields, there are conceptual problems of using IPC-356 as a netlist and for the footprint geometry:
Effects of not-connected pad being removed from the IPC-356 file.
Please check the IPC-356 generation options.
Bill of materials typically lists also the footprint. But it is hard to guess the case type from the footprint name. This depends very much on the library naming style. The component name or even component order number could be helpful, if I would use Farnell or DigiKey API. But also there, the case name from the distributor database is not consistent. So, for now, it is only used for info display, search, and changing multiple components, at once.
Note that there is an automatic column detection, in the BOM file loader. It accepts formats where each component type is listed only once in the BOM, as well as formats, where each component have its own text line. BOM columns autodetection uses statistics and there are conditions, like very short list, when it will not work properly.
I am trying my best, writing the automatic selection algorithm, but surly there will be a need to correct its results. Additionally, there still is a need to clear the top-bottom side ambivalence of the IPC-356 file. Components model and parameter values can be adjusted either by component search dialog or by the right-click menu. The selected options are saved in the .camset and in the .zofzproj file, for your convenience.