Computer Aided Design (CAD) and Modules

Posted by Joe George at

CAD systems for PCB layout started to become generally available in the late 1970's although they were quite expensive. All the CAD systems were proprietary and the vendors kept them closed so they could lock customers in. Once you had some designs created on a particular vendors system you needed the software as long as you maintained the product. The systems also had a very steep learning curve. This made it very expensive to change to another vendor unless the price was much lower. This hasn't changed for the majority of the proprietary systems that are in use today. There are open source PCB layout systems now, but none have a large enough community built up to reach critical mass of users.

CadSoft Eagle has reached a critical mass of users due to their free version that is adequate for many users. The other benefit Eagle has had is its User Level Programs (ULPs). This has allowed users to customize and extend the base product significantly. This worked because the internals of Eagle were exposed to the ULP programming language. Many functions that Eagle needed to be competitive were added as ULPs. ULPs have some limitations such as only being able to operate on a schematic, board, or library independently. In other words you can not write a ULP that uses data and internal functions of both a schematic and board at the same time. ULPs also have limited I/O capability to read and write files and get user input.

A few years ago CadSoft opened the Eagle file formats and implemented them in XML. This means that users can write programs that operate on the schematic (.sch), board (.brd), and library (.lbr) files directly. This has allowed us to write Python programs to directly program our pick and place machine from Eagle design files. It is also allowing us to do modular design in new ways that no CAD system I know of allows. I will describe this new system in my next post.

Share this post

← Older Post Newer Post →