Inner layer clearance different from outer layers


I have a project where I need to have more clearance on the outer layers then the inner ones. Often the case when you have high voltages, but the inner layers can be approved to have less clearance because the card itself isolates.
Is that possible to set up in the design rules? As I see it, it could be as simple as an extra coloumn in the net classes where you spesify clearance on inner layer.


How hard would it be to give the nets on the layers different names? I think once you lay down a track it stays unless changed so that you could set up a different net class but you would have to change the named net back and forth between the two when you switched layers. That may not be a problem if you are routing one layer at a time when it comes to power.

It seems you can set custom track widths but not custom clearances under global design rules.


Please share the voltage ranges in your design that you define as “high voltage”.


This is a recurring wishlist item. I still prefer to keep safety barrier inner layer clearances as large as the outer layer though, as it is easier than debating with the test house about pcb quality


In big designs I find it very unpractical to give the same net different names dependent on what layer it is. It could maybe work on a little design, but if you have a lot of signals going up and down the layers it is a nightmare…
The voltage range I am talking about is from 100V up to 1500V. So in my case, the pcb it self is voltage tested and approved to be used down to 0.5mm clearance on inner layers, but on the outer layers we must follow the “normal” distances. So in the case of 1000V that might be 8mm (reinforced). So it is a huge difference and mandatory on tight designs.
I have not used python scripting yet, but could this check been done there?


I wonder how much code would be affected by this?
The rules tables get more complex, parameters get a layer ID and the checking a bit more complex. Does the Push and Shove Router get affected?


The best would be to have it in the program itself so routing is done according to the rules.
But as an alternative, can the distances be checked with python scripting?


Yes. I think @HiGreg build scripts that do something similar.


(To OP) It sounds like you want checks per layer. KiPadCheck is close and can be modified to check that.

Let’s make it run on your install and I can then start to add checks per layer.

Let me know if you have any problems (make sure you tag me @HiGreg so I’m notified).