Layers
The LayerOperations module manages board stackup and layer visibility.
board = kicad.get_board()
layers = board.layers
Layer Constants
from kipy.board import BoardLayer
# Copper layers
BoardLayer.BL_F_Cu # Front copper
BoardLayer.BL_B_Cu # Back copper
BoardLayer.BL_In1_Cu # Inner layer 1
BoardLayer.BL_In2_Cu # Inner layer 2
# ... up to In30_Cu
# Silkscreen
BoardLayer.BL_F_SilkS # Front silkscreen
BoardLayer.BL_B_SilkS # Back silkscreen
# Solder mask
BoardLayer.BL_F_Mask # Front mask
BoardLayer.BL_B_Mask # Back mask
# Solder paste
BoardLayer.BL_F_Paste # Front paste
BoardLayer.BL_B_Paste # Back paste
# Other technical layers
BoardLayer.BL_Edge_Cuts # Board outline
BoardLayer.BL_F_CrtYd # Front courtyard
BoardLayer.BL_B_CrtYd # Back courtyard
BoardLayer.BL_F_Fab # Front fabrication
BoardLayer.BL_B_Fab # Back fabrication
# User layers
BoardLayer.BL_User_1 # User layer 1
# ... up to User_45
Getting Layer Info
get_enabled_layers()
Gets all enabled layers.
enabled = board.layers.get_enabled_layers()
for layer in enabled:
print(f"Layer: {layer}")
get_copper_layer_count()
Gets the number of copper layers.
count = board.layers.get_copper_layer_count()
print(f"Board has {count} copper layers")
get_layer_name(layer)
Gets the display name of a layer.
name = board.layers.get_layer_name(BoardLayer.BL_In1_Cu)
print(f"Layer name: {name}") # e.g., "In1.Cu" or custom name
Setting Layer Configuration
set_enabled_layers(layers)
Sets which layers are enabled.
# 4-layer board
board.layers.set_enabled_layers([
BoardLayer.BL_F_Cu,
BoardLayer.BL_In1_Cu,
BoardLayer.BL_In2_Cu,
BoardLayer.BL_B_Cu,
# Technical layers
BoardLayer.BL_F_SilkS,
BoardLayer.BL_B_SilkS,
BoardLayer.BL_F_Mask,
BoardLayer.BL_B_Mask,
BoardLayer.BL_Edge_Cuts,
])
set_copper_layer_count(count)
Sets the number of copper layers.
board.layers.set_copper_layer_count(4) # 4-layer board
set_layer_name(layer, name)
Sets a custom layer name.
board.layers.set_layer_name(BoardLayer.BL_In1_Cu, "GND")
board.layers.set_layer_name(BoardLayer.BL_In2_Cu, "PWR")
Layer Visibility
get_visible_layers()
Gets currently visible layers.
visible = board.layers.get_visible_layers()
set_visible_layers(layers)
Sets which layers are visible.
# Show only copper layers
board.layers.set_visible_layers([
BoardLayer.BL_F_Cu,
BoardLayer.BL_In1_Cu,
BoardLayer.BL_In2_Cu,
BoardLayer.BL_B_Cu,
])
show_layer(layer)
Shows a specific layer.
board.layers.show_layer(BoardLayer.BL_F_SilkS)
hide_layer(layer)
Hides a specific layer.
board.layers.hide_layer(BoardLayer.BL_F_Fab)
Stackup
get_stackup()
Gets the board stackup definition.
stackup = board.layers.get_stackup()
for layer in stackup.layers:
print(f"{layer.name}: {layer.type}, {layer.thickness_mm}mm")
set_stackup(stackup)
Sets the board stackup.
# Modify stackup
stackup = board.layers.get_stackup()
# Set copper thickness
for layer in stackup.layers:
if layer.type == "copper":
layer.thickness_mm = 0.035 # 1oz copper
board.layers.set_stackup(stackup)
Example: Configure 4-Layer Board
from kipy import KiCad
from kipy.board import BoardLayer
kicad = KiCad()
board = kicad.get_board()
# Set 4-layer configuration
board.layers.set_copper_layer_count(4)
# Name the inner layers
board.layers.set_layer_name(BoardLayer.BL_In1_Cu, "GND")
board.layers.set_layer_name(BoardLayer.BL_In2_Cu, "PWR")
# Get and modify stackup
stackup = board.layers.get_stackup()
# Print layer info
for layer in stackup.layers:
print(f"{layer.name}: {layer.thickness_mm}mm")
print("4-layer board configured")
Example: Layer Visibility for Review
def show_only_front_side(board):
"""Show only front-side layers for review."""
board.layers.set_visible_layers([
BoardLayer.BL_F_Cu,
BoardLayer.BL_F_SilkS,
BoardLayer.BL_F_Mask,
BoardLayer.BL_Edge_Cuts,
])
def show_all_copper(board):
"""Show all copper layers."""
copper_layers = [
BoardLayer.BL_F_Cu,
BoardLayer.BL_In1_Cu,
BoardLayer.BL_In2_Cu,
BoardLayer.BL_B_Cu,
]
board.layers.set_visible_layers(copper_layers)
# Use for review
show_only_front_side(board)
Layer Types
| Layer Type | Description |
|---|---|
| Copper | Conductive layer for traces |
| Core | Dielectric core material |
| Prepreg | Bonding material between layers |
| Mask | Solder mask (typically green) |
| Silkscreen | Component markings |
| Paste | Solder paste stencil |