← Back to team overview

kicad-developers team mailing list archive

Support for inner layer pads in modules

 

Inner layer pads are useful for microwave filters implemented as Kicad
modules, allowing tracks to connect to them.

I've made a quick and dirty change to support the board I'm currently
designing:

--- a/pcbnew/class_pad.cpp
+++ b/pcbnew/class_pad.cpp
@@ -1248,6 +1248,11 @@ void D_PAD::ViewGetLayers( int aLayers[], int&
aCount ) const
         aLayers[aCount++] = LAYER_PAD_BK;
         aLayers[aCount++] = LAYER_PAD_BK_NETNAMES;
     }
+    else if( IsOnLayer( In2_Cu ))
+    {
+        aLayers[aCount++] = LAYER_TRACKS;
+        aLayers[aCount++] = LAYER_PADS_NETNAMES;
+    }
 
     // Check non-copper layers. This list should include all the
layers that the

The result looks like this (purple fingers are a polygon):
https://harmoninstruments.com/images/innerpads.png

This needs an IsOnInnerLayer function which does not appear to be in
the existing source. Also, using LAYER_TRACKS gives gray pads. What
would be the best way to handle this?

DRC and generated gerbers appear to be correct.

I brought this up in the past on the kicad.info forum:
https://forum.kicad.info/t/component-with-pads-on-an-inner-layer-for-st
ripline-microwave-filters/9375/5

Thanks,
Darrell Harmon


Follow ups