Merge pull request #131 from 7tobias/fix/add-layer-kicad9-api

fix(layers): use KiCad 9 API for add_layer
This commit is contained in:
mixelpixx
2026-04-26 01:55:24 -04:00
committed by GitHub

View File

@@ -39,9 +39,6 @@ class BoardLayerCommands:
"errorDetails": "name, type, and position are required", "errorDetails": "name, type, and position are required",
} }
# Get layer stack
layer_stack = self.board.GetLayerStack()
# Determine layer ID based on position and number # Determine layer ID based on position and number
layer_id = None layer_id = None
if position == "inner": if position == "inner":
@@ -64,12 +61,16 @@ class BoardLayerCommands:
"errorDetails": "position must be 'top', 'bottom', or 'inner'", "errorDetails": "position must be 'top', 'bottom', or 'inner'",
} }
# Set layer properties # Enable inner copper layers by increasing copper layer count (KiCAD 9.0 API)
layer_stack.SetLayerName(layer_id, name) if position == "inner":
layer_stack.SetLayerType(layer_id, self._get_layer_type(layer_type)) current_count = self.board.GetCopperLayerCount()
needed_count = 2 + number # F.Cu + B.Cu + inner layers
if needed_count > current_count:
self.board.SetCopperLayerCount(needed_count)
# Enable the layer # Set layer properties directly on board (GetLayerStack removed in KiCAD 9.0)
self.board.SetLayerEnabled(layer_id, True) self.board.SetLayerName(layer_id, name)
self.board.SetLayerType(layer_id, self._get_layer_type(layer_type))
return { return {
"success": True, "success": True,