Altium - Create Rule for Solder Mask Expantion - Page 1
Forum section: electronics / general

author: 2X
author_rank: Frequent Contributor
timestamp: July 27, 2025, 12:21:12 pm
content: Hi,I want some tracks where belong to a net class to have solder mask expantion. I can go maually to each track and add a solder mask but I would like to make it with rule. I created a rule and I add the net class where I want it to applied but nothing happens. The tracks don't chagne when I close the rules window. Maybe I have to press something to update the PCB tracks or something else I am doing wrong?How to Apply a Solder Mask Opening on a PCBMask - Solder Mask Expansionhttps://www.altium.com/documentation/altium-designer/pcb-mask-rule-solder-mask-expansion?version=21&srsltid=AfmBOorZ_iQ5qaSLcjW4-ZY2cwbqWKbR_TKfi2MWUXXia5WeNHok3oME

author: Pseudobyte
author_rank: Frequent Contributor
timestamp: July 28, 2025, 04:13:17 pm
content: If you want the trace to follow the rule you need to select all the traces in that net and change them to "Rule" based solder mask expansion.Once you do that, they will obey the expansion rule you have defined. Just be aware that changing the rule doesn't dynamically adjust the expansion. You need to select all the traces to update the expansion. Ctrl+a does the job fine, then shift+c to clear.if you want to quickly enable the rule based soldermask on all the tracks in those nets you can use the PCB Filter panel to select them all with the same rule scope you defined for the expansion.Something like: IsTrack and InNetClass('Expansion')

author: 2X
author_rank: Frequent Contributor
timestamp: July 28, 2025, 05:01:06 pm
content: Quote from: Pseudobyte on July 28, 2025, 04:13:17 pmThere is a way to create a solder mask rule like this one with the width? When I press P+T the track auto takes the width of the rule but not the rule of the solder mask (if it is contained on the Power Class)?Thre is no way to auto make the changes when a new rule is applied like on the video on me first post (Picture1 of this post)?

author: 2X
author_rank: Frequent Contributor
timestamp: July 28, 2025, 05:47:25 pm
content: Also, I tried with PCB Filter to select only the tracks with 2.5mm width but I can make it. I tried width but is not working. There is a command where specifies the width of a track?Fieldshttps://www.altium.com/documentation/altium-designer/sch-qFieldsueryfields-ad?version=20.2Widthhttps://www.altium.com/documentation/altium-designer/query-lang-schfunctions-fields-widthwidth-ad?version=20.2The PCB Filter Panel | Making Precise Selections in Altium Designer

author: Pseudobyte
author_rank: Frequent Contributor
timestamp: August 01, 2025, 01:17:46 pm
content: I think you are asking to scope the rule to a specific track width only? You can use the find similar objects dialog to build the expression for you.For example:(ObjectKind = 'Track') And (Layer = 'L1') And (AsMM(Width) = 4)Just know that the solder mask expansion rule will only apply when the primitive is set to rule based expansion. By default when you create a track it will be set to manual. The only way to get the rule to apply is to set it to rule inside the primitives properties and the only way to update the expansion will be to change it in the rules and then select it again in the layout.

author: ajb
author_rank: Super Contributor
timestamp: August 01, 2025, 04:48:04 pm
content: Quote from: 2X on July 28, 2025, 05:01:06 pmTo be clear, there are two things here: The tracks have to have the "Solder Mask Expansion" property set to "Rule", and then there is the rule that sets the size of the solder mask expansion.If you want new tracks to have Solder Mask Expansion==Rule, you should be able to set that in the PCB defaults. Preferences > PCB Editor > Defaults, find the entry for Track, and set Solder Mask Expansion there. However this doesn't seem to work in my tests with 24.5.2 -- seems like a bug. If it did work, it would apply to all tracks, so you might need to create a separate default rule with a negative expansion value to make sure other tracks do not have exposed copper.Your best bet might be to just route everything and then set the solder mask expansion after. You can use your net class and any other PCB Filter parameters you want to select the appropriate tracks and change them all at once.

author: 2X
author_rank: Frequent Contributor
timestamp: August 03, 2025, 01:42:23 pm
content: Quote from: Pseudobyte on August 01, 2025, 01:17:46 pmI use some of the below examples and now I can select the tracks (Picture 1) with the prefered width I want (I beleive this is the more effective way to do it). Now how can I enable the solder mask expansion rule for all the selected tracks at once and set the preffered solder mask expansion? When I manually select one track (Picture 3) the "solder mask expansion rule" is available on properties TAB but when all the tracks are selected is not (Picture 2) available this option oin properties TAB.IsTrack And AsMM(Width=2.5)IsTrack And OnLayer('Top Layer') And AsMM(Width=2.5)IsTrack And OnLayer('Bottom Layer') And AsMM(Width=2.5)(ObjectKind = 'Track') And (AsMM(Width) = 2.5)(ObjectKind = 'Track') And (Layer = 'Top Layer') And (AsMM(Width) = 2.5)(ObjectKind = 'Track') And (Layer = 'Bottom Layer') And (AsMM(Width) = 2.5)AsMM - Syntaxhttps://www.altium.com/documentation/altium-designer/query-lang-pcbfunctions-membershipchecks-asmmasmm-ad?version=21&srsltid=AfmBOopvpmHWSpJUAjm3QmRZv7ykk8dEdt9gw2h9XemiekPIRoEb58Tp

author: ajb
author_rank: Super Contributor
timestamp: August 04, 2025, 01:55:36 am
content: You aren't seeing the properties because your filter isn't actually selecting the tracks, it's only filtering them. Make sure the "Select" option under "Matching" on the PCB filter panel is checked, then run the filter again.

author: 2X
author_rank: Frequent Contributor
timestamp: August 04, 2025, 05:08:19 pm
content: Quote from: ajb on August 04, 2025, 01:55:36 amMany thanks to you and the other guys for the help and suggestions.