# How do I automate the size setting (or any property) of both NAME and VALUE in a PCB BRD file?

I would like to set the size parameter of both value and name of components on a PCB layout to have a readable silk screen. Now it seems that I have to smash everything and go by them one by one.

Is there an ULP or something that iterate through every component and let you set one of the properties automatically?

• Assuming from the terms you use that you are using Eagle, the preferred approach would be to change the components in the libraries. Most eagle users (including myself) gradually make their own libraries (often by copying and modifying existing parts). – Wouter van Ooijen May 26 '15 at 7:05
• @WoutervanOoijen That is ALOT of work, especially if you use different sizes for different boards. – geometrikal May 26 '15 at 8:51
• What do you mean by different sizes for different boards? When a silk designation is readable on a small board it will be equally readable on a large board. – Wouter van Ooijen May 26 '15 at 9:54
• You never even mention what software you are using! – Olin Lathrop May 26 '15 at 12:28

There's an ULP named normalize-text.ulp which came with my EAGLE v7.2.0.

If you run it, it asks for text height and line width and will change any text in top and bottom layers name, value, place, docu and 125, 126. In addition, the parts are all smashed, as this seems to be necessary to change the text.

If you put some text to the board manually and don't want it to be changed, open the ULP in a text editor and edit this lines:

int silk_screen_layers[] = {LAYER_TPLACE, LAYER_BPLACE, LAYER_TNAMES,
LAYER_BNAMES, LAYER_TVALUES, LAYER_BVALUES,
LAYER_TDOCU, LAYER_BDOCU, 125, 126 };


For example, you could write your texts to the place layers and remove these layers from the list in the ULP.

By the way: You can do it by hand, too: Select all devices using the rubber band tool, smash group (select smash, right-click on part of group, select smash group) and change text size of group.