← Back to team overview

kicad-lib-committers team mailing list archive

[patch] micro via size incorrect in pns router

 

The code for placing a micro via in the push and shove router was just
using the regular/through via drill size. Reported in this bug:
https://bugs.launchpad.net/kicad/+bug/1464332

This fixes that, but I did notice that the code does not check to make sure
that the layers are adjacent. There was a bit of back and forth on how to
handle layers with micro vias since they technically only go from one layer
to an adjacent, but they can also be stacked one on top of another.

I don't know enough about micro vias to put that sort of check in the code
without other people's inputs.

Also, are blind/buried vias just the regular via size, or should they be
micro vias?

Jon
diff --git a/pcbnew/router/router_tool.cpp b/pcbnew/router/router_tool.cpp
index 33e724c..0068c2d 100644
--- a/pcbnew/router/router_tool.cpp
+++ b/pcbnew/router/router_tool.cpp
@@ -437,10 +437,15 @@ bool ROUTER_TOOL::onViaCommand( VIATYPE_T aType )
             return false;
     }
 
-
     sizes.SetViaType( aType );
-    m_router->ToggleViaPlacement();
+    if( VIA_MICROVIA == aType )
+    {
+        sizes.SetViaDiameter( bds.GetCurrentMicroViaSize() );
+        sizes.SetViaDrill( bds.GetCurrentMicroViaDrill() );
+    }
+            
     m_router->UpdateSizes( sizes );
+    m_router->ToggleViaPlacement();
 
     m_router->Move( m_endSnapPoint, m_endItem );        // refresh
 

Follow ups