Zum Inhalt springen

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, nicht layer.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.

ModulZweckDokumentation
linkcad.v1.pluginPlugin-Framework — Dekoratoren, Optionen, Reader-/Writer-Basisklassen, DrawingBuilder, WriterController, DialogspezifikationenPlugin-Entwicklung
linkcad.v1.dbZeichnungsdatenbank — Zellen, Ebenen, Formen, Kurven, Text, Sperren, Transaktionen, ZeichnungshilfenDatenzugriff
linkcad.v1.geomGeometrieprimitive — Punkte, Vektoren, Transformationen, Begrenzungen, WinkelKoordinatenrechnung
linkcad.v1.editGeometrie-Tasks — Zusammenführen, Reduzieren, am Raster ausrichten, Verbinden, AuflösenStapeloperationen
linkcad.v1.envOptionen und Protokollierung — dauerhafte Optionen lesen/schreiben, EreignisprotokollEinstellungen & Diagnose
linkcad.v1.convDateiformat-Konvertierung — Zeichnungen programmgesteuert laden und speichernFormat-E/A
linkcad.v1.libgraphBoolesche Geometrie-Engine — Vereinigung, Schnitt, Differenz auf PolygonenFormenmathematik
linkcad.v1.controllerController 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 framework
from linkcad.v1.plugin import tool, Tool, Option, TableColumn
from linkcad.v1.plugin import format_reader, FormatReader, DrawingContext, DrawingBuilder
from linkcad.v1.plugin import format_writer, FormatWriter, WriterContext, ShapeInfo, WriterController
from linkcad.v1.plugin import DialogSpec, ChoiceItem, EventLog, Phase, LayerFlags, SortOrder
from linkcad.v1.plugin import HolesMode, PolygonType, EndCap, FillRule, UNIT_IN_METERS
# Database
from linkcad.v1.db import Drawing, Cell, Layer, Shape, Polygon, Polyline
from linkcad.v1.db import Arc, Ellipse, Donut, Nurbs, Text, Ref
from linkcad.v1.db import Object, DrawingObject, CellObject, Color, Property
from linkcad.v1.db import ReadLock, WriteLock, Transaction
from linkcad.v1.db import Unit, ObjectType, CellContext, EndCap, FillRule
from linkcad.v1.db import BooleanOperation, MergeLayerPolarityResult
# Geometry
from linkcad.v1.geom import Point, Vector, Bounds, Transformation, Angle, Resolution
# Edit tasks
from linkcad.v1.edit import MergeTask, FlattenTask, FillRule, HolesMode, ShapesToConvert
from linkcad.v1.edit import CellFilter, LayerFilter, ShapeFilter
# Options & logging
from linkcad.v1.env import get_option_boolean, set_option_boolean, EventLog, Severity
# File conversion
from linkcad.v1.conv import Conversion, Conversions, FormatRegistry, FormatInfo
from linkcad.v1.conv import Format, FormatAttributes
# Boolean geometry
from linkcad.v1.libgraph import boolean_and, boolean_or, ShapeProcessor, succeeded
# Conversion controller
from linkcad.v1.controller import ConversionController, ConversionState, ProgressInfo