My company has designed boards in EAGLE for years, and it's worked well for us. However, this year, we had a problem with EAGLE and a composite part that caused a run of boards to be populated incorrectly. Cadsoft support suggested we post a feature request here to resolve this issue and help us avoid rework costs in the future.
ISSUE:
We noticed the issue when a board we designed came back from the manufacturer with all parts populated except for two 50-pin header sockets. Looking further, we noticed that while these parts had a footprint in the layout, they were not listed in the BOM, which we had taken directly from EAGLE. Their absence from EAGLEs BOM had to do with a mechanical constraint that we needed to place on them.
EXPLANATION:
Now these two 50-pin header sockets, J1 and J2, needed to be precisely spaced in order to seat a daughterboard with mating connectors. Our board designer, a Mechanical Engineer, noticed after precisely placing J1 and J2 that one of them could be moved anywhere in the layout, destroying their mechanical compatibility with the daughter board. In order to constrain them to the proper spacing and ensure that they'd always move as a pair, he created a custom device in our library with both of their footprints properly aligned and spaced. Now the daughterboard's mechanical interface cannot be broken by an inadvertent drag-and-drop or by the autorouter.
The only trouble with this custom part, however, is that EAGLE does not support composite devices (a device that is placed like one package on the layout, but is really two devices on the BOM) and therefore our custom part could not correctly update the BOM. However, EAGLE could resolve this by supporting one of both of the following features:
RESOLUTION:
Support for composite devices in libraries. This would be comprised of any two or more library devices on the schematic -- and their packages on the layout -- with the packages being physically constrained to a fixed spacing.
Another solution would be if we could group individual packages on the layout so that when any package in the group was moved (via drag-and-drop or the auto-router) the other packages would move with it. The important part here is that the packages don't need to be locked to the board--they just need to be locked in relative position to the other packages in a group.
Both of these solutions would keep EAGLEs BOM accurate without permitting a violation of any mechanical specifications.
Thanks for your time! We look forward to seeing future improvements to EAGLE!