API-Referenz
Die LinkCAD-Python-API ist in die folgenden Module gegliedert, alle über den stabilen Namensraum linkcad.v1 erreichbar. Jedes linkcad.v1.*-Modul spiegelt den gesamten öffentlichen Namensraum des entsprechenden Moduls der obersten Ebene, es sind also dieselben Objekte; der Import über v1 bindet Ihr Skript an die stabile Oberfläche.
linkcad und linkcad.v1 veröffentlichen diese Module und sonst nichts — auf oberster Ebene gibt es keine Namen, weil die Inhalte der Module kollidieren. Siehe Paketstruktur.
Vier Konventionen ziehen sich durch die gesamte API, in jedem Modul:
- Ein Substantiv ist eine Eigenschaft, ein Verb ist eine Methode.
shape.area,cell.shapes,drawing.layers,bounds.width,task.progress,log.entry_count,conversion.succeeded— ohne Klammern.destroy(),clone(),rotate(),mark_fatal()behalten ihre. - Ein Getter/Setter-Paar ist eine schreib- und lesbare Eigenschaft, niemals zwei Namen.
layer.enabled = False, nichtlayer.enable(False). - Geometrie wird von dem Objekt erzeugt, dem sie gehören wird.
drawing.add_cell(name),drawing.add_layer(name),cell.add_polygon(layer, vertices),cell.add_ref(cell). Statische Fabrikmethoden gibt es nicht. - Wenn ein Zugriff Parameter nimmt, deckt die Eigenschaft den Normalfall ab und eine
filtered_*-Methode legt den Rest offen:cell.shapes/cell.filtered_shapes(selected_only=True),controller.layers/controller.filtered_layers(sort_order=…).
Enum-Mitglieder werden immer über ihren Typ erreicht — EndCap.Round, HolesMode.Link — nie als lose Modulattribute.
| Modul | Zweck | Dokumentation |
|---|---|---|
linkcad.v1.plugin | Plugin-Framework — Dekoratoren, Optionen, Reader-/Writer-Basisklassen, DrawingBuilder, WriterController, Dialogspezifikationen | Plugin-Entwicklung |
linkcad.v1.db | Zeichnungsdatenbank — Zellen, Ebenen, Formen, Kurven, Text, Sperren, Transaktionen, Zeichnungshilfen | Datenzugriff |
linkcad.v1.geom | Geometrieprimitive — Punkte, Vektoren, Transformationen, Begrenzungen, Winkel | Koordinatenrechnung |
linkcad.v1.edit | Geometrie-Tasks — Zusammenführen, Reduzieren, am Raster ausrichten, Verbinden, Auflösen | Stapeloperationen |
linkcad.v1.env | Optionen und Protokollierung — dauerhafte Optionen lesen/schreiben, Ereignisprotokoll | Einstellungen & Diagnose |
linkcad.v1.conv | Dateiformat-Konvertierung — Zeichnungen programmgesteuert laden und speichern | Format-E/A |
linkcad.v1.libgraph | Boolesche Geometrie-Engine — Vereinigung, Schnitt, Differenz auf Polygonen | Formenmathematik |
linkcad.v1.controller | Controller für den Konvertierungsablauf — vollständige Assistenten-Pipeline | Übergeordnete Konvertierung |
Importmuster
Importieren Sie das Modul und greifen Sie darüber zu:
from linkcad.v1 import db, geom, edit, env, conv, libgraph, controller, plugin
with db.Drawing("scratch") as dwg: cell = dwg.add_cell("TOP") cell.add_polygon(dwg.add_layer("METAL1"), [(0, 0), (100, 0), (100, 100)])Oder importieren Sie die Namen, die Sie verwenden:
# Plugin frameworkfrom linkcad.v1.plugin import tool, Tool, Option, TableColumnfrom linkcad.v1.plugin import format_reader, FormatReader, DrawingContext, DrawingBuilderfrom linkcad.v1.plugin import format_writer, FormatWriter, WriterContext, ShapeInfo, WriterControllerfrom linkcad.v1.plugin import DialogSpec, ChoiceItem, EventLog, Phase, LayerFlags, SortOrderfrom linkcad.v1.plugin import HolesMode, PolygonType, EndCap, FillRule, UNIT_IN_METERS
# Databasefrom linkcad.v1.db import Drawing, Cell, Layer, Shape, Polygon, Polylinefrom linkcad.v1.db import Arc, Ellipse, Donut, Nurbs, Text, Reffrom linkcad.v1.db import Object, DrawingObject, CellObject, Color, Propertyfrom linkcad.v1.db import ReadLock, WriteLock, Transactionfrom linkcad.v1.db import Unit, ObjectType, CellContext, EndCap, FillRulefrom linkcad.v1.db import BooleanOperation, MergeLayerPolarityResult
# Geometryfrom linkcad.v1.geom import Point, Vector, Bounds, Transformation, Angle, Resolution
# Edit tasksfrom linkcad.v1.edit import MergeTask, FlattenTask, FillRule, HolesMode, ShapesToConvertfrom linkcad.v1.edit import CellFilter, LayerFilter, ShapeFilter
# Options & loggingfrom linkcad.v1.env import get_option_boolean, set_option_boolean, EventLog, Severity
# File conversionfrom linkcad.v1.conv import Conversion, Conversions, FormatRegistry, FormatInfofrom linkcad.v1.conv import Format, FormatAttributes
# Boolean geometryfrom linkcad.v1.libgraph import boolean_and, boolean_or, ShapeProcessor, succeeded
# Conversion controllerfrom linkcad.v1.controller import ConversionController, ConversionState, ProgressInfo