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 / Methode | Beschreibung |
|---|---|
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.done | True, sobald der Cursor hinter der letzten Konvertierung steht |
batch.current | Die Konvertierung unter dem Cursor; löst aus, sobald done gilt |
len(batch) | Anzahl der Konvertierungen |
batch.position | Index der aktuellen Konvertierung (0-basiert) |
batch.clear() | Alle Konvertierungen entfernen |
batch.has_duplicate_file_titles | Ob zwei Aufträge denselben Dateititel schreiben würden |
batch.owner_window | ID 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 / Methode | Beschreibung |
|---|---|
conv.import_format | Name des Importformats (z. B. "GDSII"); zuweisbar |
conv.import_format_extension / conv.import_format_attributes | Metadaten des Importformats |
conv.import_paths | Eingabedateipfade, als Liste von Zeichenketten; zuweisbar |
conv.export_path | Pfad 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_attributes | Metadaten des Exportformats |
conv.read_file() | Den Importschritt ausführen |
conv.write_file() | Den Exportschritt ausführen |
conv.drawing | Die von read_file() erzeugte Drawing oder None |
conv.delete_drawing() | Den Speicher der Zeichnung freigeben |
conv.succeeded | True, wenn die letzte Operation erfolgreich war |
conv.progress | Fortschritt in Prozent (0-100) |
conv.cancel() / conv.cancelled | Abbrechen und auf Abbruch prüfen |
conv.import_log | Importprotokoll, als IEventLogReader |
conv.export_log | Exportprotokoll, 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 / Methode | Beschreibung |
|---|---|
FormatRegistry.get_instance() | Statisch — die Singleton-Registrierung holen |
registry.import_formats / registry.export_formats | Ein 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.
| Eigenschaft | Beschreibung |
|---|---|
info.id | Eindeutige Format-ID |
info.plugin_name | Plugin-Name (z. B. "GDSII") |
info.display_name | Menschenlesbarer Anzeigename |
info.licensed | Ob 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_NAMESfmt.set_layer_number_range(0, 255)fmt.layer_max_length = 32| Eigenschaft / Methode | Beschreibung |
|---|---|
Format() | Formatdeskriptor mit Standardattributen erzeugen |
fmt.attributes | Fähigkeits-Flags des Formats; zuweisbar |
fmt.layer_max_length / fmt.cell_max_length | Maximale 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_number | Aktueller Bereich der Ebenennummern |
fmt.cell_min_number / fmt.cell_max_number | Aktueller Bereich der Zellennummern |
fmt.layer_char_set / fmt.cell_char_set | Aktuell 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.
| Konstante | Bedeutung |
|---|---|
FormatAttributes.NONE | Keine besonderen Attribute |
FormatAttributes.LAYER_NUMBERS | Format unterstützt Ebenennummern |
FormatAttributes.LAYER_NAMES | Format unterstützt Ebenennamen |
FormatAttributes.LAYER_FILE_NAMES | Format speichert Ebenennamen als Dateinamen |
FormatAttributes.LAYER_COMMENTS | Format unterstützt Ebenenkommentare |
FormatAttributes.LAYER_COLORS | Format unterstützt Ebenenfarben |
FormatAttributes.LAYER_ELEVATION | Format unterstützt Ebenenhöhe/Z-Werte |
FormatAttributes.LAYER_FLASHED_RECTS | Format unterstützt geflashte Rechtecke |
FormatAttributes.LAYER_FLASHED_CIRCLES | Format unterstützt geflashte Kreise |
FormatAttributes.LAYER_FILLED_POLYGONS | Format unterstützt gefüllte Polygone |
FormatAttributes.LAYER_OUTLINED_POLYS | Format unterstützt umrissene Polygone |
FormatAttributes.LAYER_POLARITY | Format unterstützt Ebenenpolarität |
FormatAttributes.CELL_NUMBERS | Format unterstützt Zellennummern |
FormatAttributes.CELL_NAMES | Format unterstützt Zellennamen |
FormatAttributes.CELL_FILE_NAMES | Format speichert Zellennamen als Dateinamen |
FormatAttributes.CELL_NAMES_IGNORE_CASE | Zellennamen werden ohne Beachtung der Groß-/Kleinschreibung verglichen |
FormatAttributes.SUPPORT_BULGE_POLYGONS | Format unterstützt Polygone mit Wölbungen |
FormatAttributes.MULTIPLE_FILES | Format kann mehrere Dateien lesen oder schreiben |
FormatAttributes.SINGLE_PASS | Format kann in einem Durchgang arbeiten |
FormatAttributes.DIRECTORY_OUTPUT | Format schreibt ein Verzeichnis |
FormatAttributes.DIRECTORY_INPUT | Format liest ein Verzeichnis |
FormatAttributes.SOURCE_INSPECTION | Format unterstützt Metadaten zur Quellinspektion |