Place Designators automates the process of placing Assembly and Silkscreen reference designator text in a PCB design.  Depending on company processes and requirements, and the number of components in the PCB design, this effort can take several days when done manually.  The tool operates in either fully automated or interactive modes.

This tool reduces the time required to complete reference designator placement down to minutes.

In the automated mode, the user configures settings for font, text size, and a range of possible locations in and around the component’s Assembly graphics.  It can also be configured to run on all components or only the components currently selected in the PCB design. For the Silkscreen designators, the user can choose which type of components will have their designators placed.  Once initiated, the tool cycles through all the designators and follows an algorithm to attempt to place each one.  The process starts with the large end of the text size range, and the most obvious locations, then incrementally moves on to smaller text sizes and more locations.  Each possible candidate location is tested to make sure the text will not overlap other designator text, other Assembly or Silkscreen text,  and in the case of silkscreen designators, any component pads or vias with no solder mask present.

As soon as a valid placement is found for each designator, the tool puts it there and moves on to the next one.

In interactive mode,  there are simple controls to set the location, orientation, and size of designator text.  Additionally, there are alignment and nudge functions to fine-tune the text placement.

Here is a video demonstration of the tool in operation:

More information for the inquiring minds:

This tool makes what I would call a relatively primitive attempt to solve a big problem. This problem goes right to the core of the computational challenges surrounding the PCB design process.  The problem is one of prediction.  Software algorithms are not very good at predicting things.  There are many examples of this in the world.

  • Billions of dollars have been spent on software to predict trends in stock markets and the people using them are regularly surprised by what actually happens.
  • It is rare to get a valid weather prediction more than a few days in advance, and wise people always check again just before they head out to an outdoor event.

One might argue that in the case of the stock market, there is an unpredictable human element.  And that the number of variables in the weather are far too many to be able to deal with.  Valid points.

One might then go on to say that the number of variables involved in a PCB design is low, and that there is no human element of unpredictability, thus the problem should be much simpler and the solutions much more obvious.  In fact, the problem is still infinitely large.  It’s infinitely large because there are an infinite number of possible locations to put things.  In order to predict where to put component X, an algorithm would need to consider all of the possible locations of surrounding components.  This is impossible to do in any  reasonable length of time, even with the fastest computers.

OK, so it’s not possible to find the best solution.  But, it is possible to find a decent one.

This tool uses the ‘largest objects first’ method.  Components are sorted by size, and the designators are placed in that order.  The idea is that the designator for a large IC is much more likely to fit at the maximum text size than it is for an 0201 chip part.  All things considered, the final text size for a small part will probably end up being smaller than it will for a large part.

There are other problems yet to solve in the PCB design world. Some of them are much more complicated and will require vastly superior algorithms.  The problem of infinite solutions will not go away, but there are ways to make big improvements.  Some of them are in the oven at ExactCAD.