Python-Scripting
LinkCAD enthält einen eingebetteten Python-Interpreter für benutzerdefinierte Automatisierung, Tool-Entwicklung und die Erstellung von Format-Plugins. Python-Skripte können auf die Zeichnungsdatenbank, die Geometrie-API und das Plugin-Framework linkcad.v1 zugreifen.
Funktionen
- Benutzerdefinierte Tools — Menüeinträge erstellen, die Zeichnungsgeometrie verarbeiten
- Format-Plugins — Import-/Exportformate mit
FormatReader,FormatWriter,DrawingBuilderundWriterControllerhinzufügen - Interaktive Konsole — Zeichnungen live erkunden und bearbeiten
- Skripteditor — Skripte direkt in LinkCAD schreiben und ausführen
Die Python-API bleibt im stabilen Namensraum linkcad.v1. Die aktuellen Ergänzungen an Format-Plugins und Datenbank gehören zu v1; es gibt keinen v2-Migrationspfad. Das Paket liefert außerdem Typ-Stubs mit, ein Editor bietet also von Haus aus Vervollständigung und Typprüfung für linkcad.* — siehe Einrichtung & Voraussetzungen.
Erste Schritte
- Einrichtung & Anforderungen — Python-Umgebung und Voraussetzungen
- Ihr erstes Skript — „Hello World“ in der Python-Konsole
- Ein Tool-Plugin schreiben — ein ins Menü integriertes Tool erstellen
- Ein Format-Plugin schreiben — ein neues Dateiformat hinzufügen
- Tutorial zur Panel-Zusammenstellung — vollständiges praxisnahes Beispiel
API-Referenz
- Optionstypen — integer, real, boolean, string, choice, path, color, table, cell_choice
- Tool-Dekorator —
@tool()-Dekorator undTool-Basisklasse - Format-Dekoratoren —
@format_reader(),@format_writer()und Basisklassen - API-Module — alle Module:
linkcad.v1.plugin,linkcad.v1.db,linkcad.v1.geom,linkcad.v1.edit,linkcad.v1.env,linkcad.v1.conv,linkcad.v1.libgraph,linkcad.v1.controller
Kurzes Beispiel
Ein einfaches Tool, das Formen pro Ebene zählt:
from collections import Counter
from linkcad.v1.plugin import tool, Tool
@tool( name="Layer Statistics", menu="Tools/Analysis", tooltip="Count shapes per layer",)class LayerStats(Tool): def run(self, drawing) -> dict: counts = Counter( shape.layer.name for cell in drawing.cells for shape in cell.shapes if shape.layer is not None ) return { "layers": dict(counts), "summary": f"{len(counts)} layers, {sum(counts.values())} shapes", }drawing.cells und cell.shapes sind Eigenschaften, keine Methoden. In der gesamten API gilt: ein Substantiv ist eine Eigenschaft, ein Verb ist eine Methode, ein Getter/Setter-Paar ist eine schreib- und lesbare Eigenschaft, und Geometrie wird von dem Objekt erzeugt, dem sie gehören wird — drawing.add_cell(name), cell.add_polygon(layer, vertices).
linkcad und linkcad.v1 veröffentlichen die Module der API, nicht deren Inhalte; importieren Sie also das Modul, das Sie brauchen: from linkcad.v1 import db, dann db.Drawing.