Zum Inhalt springen

linkcad.conv

Dateiformat-Konvertierung — Zeichnungen programmgesteuert laden und speichern.

from linkcad.v1.conv import (
Conversion, Conversions, FormatRegistry, FormatInfo, Format, FormatAttributes,
)

Klassen

Conversions

Der Stapelcontainer und zugleich der Weg, an eine Conversion zu kommen. Eine Conversion wird nie direkt konstruiert — fordern Sie sie von einer Conversions-Sammlung an.

from linkcad.v1.conv import Conversions
batch = Conversions()
conv = batch.append_new("GDSII", "DXF")
conv.import_paths = ["/data/design.gds"]
conv.export_path = "/data/design.dxf"
conv.read_file()
if not conv.succeeded:
raise RuntimeError("Import failed")
dwg = conv.drawing
# optionally inspect/modify dwg under WriteLock here
conv.write_file()
if not conv.succeeded:
raise RuntimeError("Export failed")
Eigenschaft / MethodeBeschreibung
Conversions()Eine leere Sammlung erzeugen
batch.append_new(import_format, export_format)Eine neue Conversion anhängen und zurückgeben
batch.start() / batch.next()Den Cursor auf die erste bzw. nächste Konvertierung setzen
batch.doneTrue, sobald der Cursor hinter der letzten Konvertierung steht
batch.currentDie Konvertierung unter dem Cursor; löst aus, sobald done gilt
len(batch)Anzahl der Konvertierungen
batch.positionIndex der aktuellen Konvertierung (0-basiert)
batch.clear()Alle Konvertierungen entfernen
batch.has_duplicate_file_titlesOb zwei Aufträge denselben Dateititel schreiben würden
batch.owner_windowID des Besitzerfensters, für modale Fortschrittsdialoge; zuweisbar

Über einen Stapel iterieren:

batch.start()
while not batch.done:
conv = batch.current
conv.read_file()
conv.write_file()
batch.next()

Conversion

Eine einzelne Import-→-Export-Operation.

Eigenschaft / MethodeBeschreibung
conv.import_formatName des Importformats (z. B. "GDSII"); zuweisbar
conv.import_format_extension / conv.import_format_attributesMetadaten des Importformats
conv.import_pathsEingabedateipfade, als Liste von Zeichenketten; zuweisbar
conv.export_pathPfad der Ausgabedatei, als Zeichenkette; zuweisbar und akzeptiert jedes os.PathLike
conv.create_export_path()Den Ausgabepfad aus dem Eingabepfad ableiten
conv.export_format / conv.export_format_extension / conv.export_format_attributesMetadaten des Exportformats
conv.read_file()Den Importschritt ausführen
conv.write_file()Den Exportschritt ausführen
conv.drawingDie von read_file() erzeugte Drawing oder None
conv.delete_drawing()Den Speicher der Zeichnung freigeben
conv.succeededTrue, wenn die letzte Operation erfolgreich war
conv.progressFortschritt in Prozent (0-100)
conv.cancel() / conv.cancelledAbbrechen und auf Abbruch prüfen
conv.import_logImportprotokoll, als IEventLogReader
conv.export_logExportprotokoll, als IEventLog

Das Exportformat wird bei der Erzeugung der Konvertierung festgelegt, export_format ist daher schreibgeschützt — übergeben Sie es an append_new().

FormatRegistry

Die Singleton-Registrierung der Formate, die LinkCAD lesen und schreiben kann.

from linkcad.v1.conv import FormatRegistry
registry = FormatRegistry.get_instance()
for info in registry.import_formats:
file_filter, display_name = registry.import_format_filter(info.plugin_name)
print(f"{display_name}: {file_filter}")
Eigenschaft / MethodeBeschreibung
FormatRegistry.get_instance()Statisch — die Singleton-Registrierung holen
registry.import_formats / registry.export_formatsEin FormatInfo je registriertem Format
registry.import_format(plugin_name) / registry.export_format(plugin_name)Die Format-Beschränkungen des Formats oder None
registry.import_format_filter(plugin_name) / registry.export_format_filter(plugin_name)Tupel (file_filter, display_name)
registry.default_extension(plugin_name)Standard-Dateierweiterung
registry.import_format_licensed(plugin_name) / registry.export_format_licensed(plugin_name)Lizenzprüfung
registry.plugin_name_from_id(id)Eine numerische Format-ID auflösen

Der Lizenzmanager wird von der Host-Anwendung installiert, bevor ein Skript läuft; get_instance() nimmt daher kein Argument entgegen.

FormatInfo

Wird dort geliefert, wo die Registrierung einen Formateintrag beschreibt.

EigenschaftBeschreibung
info.idEindeutige Format-ID
info.plugin_namePlugin-Name (z. B. "GDSII")
info.display_nameMenschenlesbarer Anzeigename
info.licensedOb das Format lizenziert ist

Format

Die Beschränkungen, die ein Dateiformat für Ebenen- und Zellennamen vorgibt. Format-Plugins erzeugen ein Format, um zu deklarieren, was sie unterstützen; FormatRegistry.import_format() liefert die Beschränkungen eines eingebauten Formats.

from linkcad.v1.conv import Format, FormatAttributes
fmt = Format()
fmt.attributes = FormatAttributes.LAYER_NUMBERS | FormatAttributes.LAYER_NAMES
fmt.set_layer_number_range(0, 255)
fmt.layer_max_length = 32
Eigenschaft / MethodeBeschreibung
Format()Formatdeskriptor mit Standardattributen erzeugen
fmt.attributesFähigkeits-Flags des Formats; zuweisbar
fmt.layer_max_length / fmt.cell_max_lengthMaximale Namenslängen; zuweisbar
fmt.set_layer_number_range(min, max=-1)Gültigen Bereich für Ebenennummern setzen
fmt.set_valid_layer_chars(char_set, initial_chars=None, preferred_prefix=None)Gültige Zeichen für Ebenennamen setzen
fmt.set_cell_number_range(min, max=-1)Gültigen Bereich für Zellennummern setzen
fmt.set_valid_cell_chars(char_set, initial_chars=None, preferred_prefix=None)Gültige Zeichen für Zellennamen setzen
fmt.set_file_name_extension(ext)Dateierweiterung für Zellendateinamen setzen
fmt.layer_min_number / fmt.layer_max_numberAktueller Bereich der Ebenennummern
fmt.cell_min_number / fmt.cell_max_numberAktueller Bereich der Zellennummern
fmt.layer_char_set / fmt.cell_char_setAktuell gültige Zeichensätze
fmt.is_valid_layer_name(layer_name, auto_uppercase=False)Einen Ebenennamen prüfen
fmt.is_valid_cell_name(cell_name, auto_uppercase=False)Einen Zellennamen prüfen
fmt.validate_layers(drawing, copy_from_input=True, allow_duplicates=False)Die Ebenen einer Zeichnung prüfen
fmt.validate_cells(drawing, copy_from_input=True)Die Zellen einer Zeichnung prüfen

set_layer_number_range() und set_cell_number_range() bleiben Methoden: ein Setter, der mehrere Werte auf einmal nimmt, kann keine Zuweisung sein.

FormatAttributes

Bit-Flag-Konstanten für Formatfähigkeiten. Verknüpfen Sie sie mit | und weisen Sie das Ergebnis Format.attributes zu.

KonstanteBedeutung
FormatAttributes.NONEKeine besonderen Attribute
FormatAttributes.LAYER_NUMBERSFormat unterstützt Ebenennummern
FormatAttributes.LAYER_NAMESFormat unterstützt Ebenennamen
FormatAttributes.LAYER_FILE_NAMESFormat speichert Ebenennamen als Dateinamen
FormatAttributes.LAYER_COMMENTSFormat unterstützt Ebenenkommentare
FormatAttributes.LAYER_COLORSFormat unterstützt Ebenenfarben
FormatAttributes.LAYER_ELEVATIONFormat unterstützt Ebenenhöhe/Z-Werte
FormatAttributes.LAYER_FLASHED_RECTSFormat unterstützt geflashte Rechtecke
FormatAttributes.LAYER_FLASHED_CIRCLESFormat unterstützt geflashte Kreise
FormatAttributes.LAYER_FILLED_POLYGONSFormat unterstützt gefüllte Polygone
FormatAttributes.LAYER_OUTLINED_POLYSFormat unterstützt umrissene Polygone
FormatAttributes.LAYER_POLARITYFormat unterstützt Ebenenpolarität
FormatAttributes.CELL_NUMBERSFormat unterstützt Zellennummern
FormatAttributes.CELL_NAMESFormat unterstützt Zellennamen
FormatAttributes.CELL_FILE_NAMESFormat speichert Zellennamen als Dateinamen
FormatAttributes.CELL_NAMES_IGNORE_CASEZellennamen werden ohne Beachtung der Groß-/Kleinschreibung verglichen
FormatAttributes.SUPPORT_BULGE_POLYGONSFormat unterstützt Polygone mit Wölbungen
FormatAttributes.MULTIPLE_FILESFormat kann mehrere Dateien lesen oder schreiben
FormatAttributes.SINGLE_PASSFormat kann in einem Durchgang arbeiten
FormatAttributes.DIRECTORY_OUTPUTFormat schreibt ein Verzeichnis
FormatAttributes.DIRECTORY_INPUTFormat liest ein Verzeichnis
FormatAttributes.SOURCE_INSPECTIONFormat unterstützt Metadaten zur Quellinspektion