Generating IPC-2581 Fabrication Data from a PCB in Altium Designer
As part of Altium Designer’s ability to export a wide range of PCB design fabrication and assembly file formats, the IPC-2581 Standard format is available for both individual and output job file generation.
Related to the existing ODB++ format, IPC-2581 is an open-source standard developed by the Institute for Printed Circuits IPC-2581 Consortium some years ago (2004), but since refined to the most recent Revision A and B releases (IPC-2581A/B).
The standard has progressively gained wider acceptance as an alternative to the traditional fabrication output data composed of, typically, a collection of Gerber, Drill, BOM, and text files, etc. The previous need for a complex mix of fabrication files is due to the inherent limitations of the traditional RS-274x Gerber format, which lacks definitions for the layer stack, drill information, netlist data (electrical connectivity), and BOM information.
The IPC-2581 standard is officially titled ‘Generic Requirements for Printed Board Assembly Products Manufacturing Description Data and Transfer Methodology’ and offers an XML-based single file format that incorporates a rich range of board fabrication data - from layer stackup details though to full pad/routing/component information, and the Bill Of Materials (BOM).
A single IPC-2581 XML file can include:
- Copper image information for etching PCB layers.
- Board layer stack information (including rigid and flexible sections).
- Netlist for bare board and in-circuit testing.
- Components Bill-of-Materials for purchasing and assembly (pick-and-place).
- Fabrication and Assembly notes and parameters.
The potential advantage of adopting the IPC-2581 format for transferring board design data to fabrication and assembly houses is centered on the highly-defined, detailed single file format that is fully understood at both ends of the chain. With a working system of CAD-CAM data exchange established, the risks associated with data misinterpretation, file errors, and variable Gerber interpretation, are largely eliminated. In short, both the IPC-2581 and Gerber X2 formats represent a new generation of board design to manufacture data transfer.
Useful links:
- See the related Blog entry by Ben Jordan.
- See the IPC-2581 Consortium website for more detailed information.
- Need a Viewer? Download one from IPC-2581 free Viewers.
Extension Access
Functionality is provided courtesy of the IPC2581 extension (a Software Extension).
The IPC2581 extension
IPC-2581 Direct Output
With a project PCB file loaded as the active document, an IPC-2581 file can be generated by selecting File » Fabrication Outputs » IPC-2581 from the main menu. This opens an initial IPC-2581 Configuration dialog in which you can specify the revision of the IPC-2581 standard to be used (A or B), as well as the measurement units and floating point number precision applied during the export process.
Define export settings in the IPC-2581 Configuration dialog.
The precision setting determines the positional and sizing accuracy of the data within the generated IPC-2581 compliant file as illustrated in the image below.
The same section of an IPC-2581 file with the precision set to 2 (left) and 6 (right).
The XML-based IPC-2581 file will be exported to the location defined in the Output Path field on the Options tab of the Project Options dialog. It will be named using the format <PCBDocumentName>.cvg.
IPC-2581 Output Through an Output Job File
Related page: Preparing Multiple Outputs in an OutputJob
To include IPC-2581 file output in a project's Output Job Configuration file, click on [Add New Fabrication Output] under the Fabrication Outputs section then select IPC-2581 from the menu, and the desired data source from the associated sub-menu.
Configure an IPC-2581 output as part of an Output Job file's Fabrication Outputs.
As with other Fabrication outputs, when the OutJob is run - either manually or part of the project release system - the IPC-2581 file will be generated in accordance with settings defined for the applicable Output Container.