Via [Deprecated]

The via statement defines a multi-layer via in a landpattern or the board according to the stackup.

This statement can be used in the following contexts:


  via(<VIA-DEF>) at <Point>
  via(<VIA-DEF>, "Key-1" => "Value-1", ... ) at <Point>

  ; Deprecated Form
    <LayerIndex-1>, <LayerIndex-2>,
    type = <ViaType>
    radius = <Double>
    hole-radius = <Double>
    properties =  [ "Key-1" => "Value-1", ... ]
    ) at <Point>
  • Required Parameters
    • &lt;VIA-DEF - pcb-via definition for constructing the via.
    • &lt;LayerIndex-*> - In the deprecated form, a start and end layer for the via definition must be supplied as the first two arguments. These arguments must be LayerIndex instances.
    • radius - Set the via copper land radius in mm
    • hole-radius - Set the radius of the via hole in mm
    • &lt;Point> - This is expected to be a Point instance that defines the location of the constructed via in the current context's coordinate frame.
  • Optional Parameters
    • type - Sets the type of via as one of THVia|MicroVia|BlindVia. The default value is THVia.
    • properties - Set of KeyValue<String, String> pairs for additional properties to set.
    • "Key-1" => "Value-1" - Set of KeyValue<String, String> pairs for additional properties to set.


This statement is primarily a tool to help the importer successfully bring landpattern definitions from legacy CAD tools like Altium or Kicad.

Land Pattern Context

pcb-via default-via :
  name = "Default TH"
  start = LayerIndex(0, Top)
  stop = LayerIndex(0, Bottom)
  diameter = 0.6
  hole-diameter = 0.3
  type = MechanicalDrill

pcb-landpattern test:
  via(default-via) at Point(1.0, 2.0)

From the pcb-landpattern context, the via statement can be used directly.

The major ramification is that vias defined with this statement don't connect to nets. We suggest that you do not use this statement when designing PCB landpatterns.

When you encounter this statement in an imported PCB landpattern, you should remove this definition and place vias manually in the board visualization tool.

Geom/Module Context

In the pcb-module context, the via statement can be used from within a geom statement. The geom statement provides the net to which this via will be assigned.

pcb-module test-mod:
    via(default-via) at Point(1.0, 2.0)

    via(LayerIndex(0), LayerIndex(0, Bottom), 
        radius = 0.3, hole-radius = 0.125) 
        at Point(0.0, 0.0)

    via(LayerIndex(1), LayerIndex(2),
        radius = 0.3, hole-radius = 0.125,
        type = BlindVia) 
        at Point(1.0, 0.0) 

    via(LayerIndex(0), LayerIndex(1),
        radius = 0.1, hole-radius = 0.05,
        type = MicroVia) 
        at Point(2.0, 0.0) 

The last three examples are the deprecated form of this statement. The better way to use the via statement is to use pcb-via definitions and use them by reference.