Wie man alle ausgewählten Footprints mit der KiCAD-pcbnew-Plugin-Python-API erhält
English
Deutsch
In unserem vorherigen Post haben wir gezeigt, wie man alle ausgewählten Objekte mit der KiCAD-Python-API erhält, mit
get_current_selection_call.py
pcbnew.GetCurrentSelection()Sie können diese Einträge einfach filtern, um nur eine Liste der ausgewählten Footprints zu erhalten, entweder mit einer for-Schleife mit Inline-Filterung:
filter_selected_footprints.py
for selected_object in pcbnew.GetCurrentSelection():
if type(selected_object).__name__ == 'FOOTPRINT':
print(selected_object.GetReference())oder mit einer List-Comprehension:
selected_footprints_comp.py
selected_footprints: list[pcbnew.FOOTPRINT] = [
footprint for footprint in pcbnew.GetCurrentSelection() if type(footprint).__name__ == 'FOOTPRINT'
]Vollständiges Plugin-Beispiel:
kicad_simple_plugin_get_selected_footprints.py
#!/usr/bin/env python
import pcbnew
import os
class SimplePlugin(pcbnew.ActionPlugin):
def defaults(self):
self.name = "Plugin Name as shown in Pcbnew: Tools->External Plugins"
self.category = "A descriptive category name"
self.description = "A description of the plugin and what it does"
self.show_toolbar_button = False # Optional, defaults to False
self.icon_file_name = os.path.join(os.path.dirname(__file__), 'simple_plugin.png') # Optional, defaults to ""
def Run(self):
board: pcbnew.BOARD = pcbnew.GetBoard()
footprints: list[pcbnew.FOOTPRINT] = board.GetFootprints()
# TODO Do something useful with [board]
for selected_object in pcbnew.GetCurrentSelection():
print(selected_object)
SimplePlugin().register() # Instantiate and register to PcbnewBeispielausgabe (Auszug):
output.txt
D39
D32
D23
D37
D18
D34
D11
D15Check out similar posts by category:
Electronics, KiCad
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow