Hi Robert,
I spent almost a day trying to figure out a nice solution to the issue and I also did a good research about the topic.
Unfortunately, I couldn't find such. The closest thing I could find is an Altium script that automates the operation of centring the designators. The script is called Adjust Designators 2:
The latest version found in the git repository is a bit outdated already and doesn't work with Altium 16 (probably 15 as well). I found a modification of it (made by the original author) which works with Altium 16. The modification was posted in a semi-random topic on the Altium Forum and it might be hard to find, so I just attached it here:
I played around with the script for half an hour or so. It has a user interface, but it behaves a bit strangely - you have to play around with the settings to make it do what you want. It doesn't only centre the mechanical layer designators but also rotates them and changes there size depending on the size of the footprint. Apart from the mechanical layer designators, it can also work with the normal silk screen designators (selected from the settings). Generally it does the job, but in the short time I played with it I noticed a few drawbacks:
- It uses a true type font and you can't change that without modifying the script itself (I don't know if such modification is possible and how hard would it be)
- You can only set the minimum and maximum height of the font and you can't really control how it scales up - with some of my footprints the result was not so great (too big font for example)
- It considers the footprint selection rectangle (the one that is highlighted when you select a footprint in the PCB) when determining how much to scale the font size. Many times this works well, since normally the selection rectangle has a size similar to the size of the assembly outline. However, if you have a big text box in the footprint or silk screen or something else that is considerably bigger than the assembly outline, this leads to excessive expansion of the selection rectangle of the footprint (because the selection rectangle should surround all primitives in the footprint). In such cases it might make the designator too big (since it believes the footprint is big). From the options in the interface and comments I read on the web, you should be able to make the script to use the assembly outline for a reference and not the selection rectangle, but I couldn't do it work that way.
- Again because the selection rectangle might not be the best representation of the footprint borders, sometimes the designators end up being not very well centred.
If you try the script, please let me know what is your opinion.
About Altium Ideas, I found that similar suggestions already exist (please vote for them):