Format-Dekoratoren
Die Dekoratoren @format_reader() und @format_writer() registrieren Klassen als benutzerdefinierte Import-/Export-Formate in LinkCAD.
@format_reader()
Reader-Signatur
@format_reader( name: str, extensions: list[str], description: str = "",)class MyReader(FormatReader): def read(self, path: Path, drawing: DrawingContext) -> None: ...Parameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
name | str | erforderlich | Anzeigename des Formats |
extensions | list[str] | erforderlich | Dateimuster (z. B. ["*.gds", "*.gdsii"]) |
description | str | "" | Formatbeschreibung |
FormatReader-Basisklasse
class FormatReader: def read(self, path: Path, drawing: DrawingContext) -> None: """Override to implement file import logic.""" ...Der DrawingContext stellt eine Builder-API zum Erstellen der Zeichnung bereit:
def read(self, path: Path, drawing: DrawingContext) -> None: with drawing.cell("main", main=True) as cell: with cell.layer("metal1") as layer: layer.polygon([(0, 0), (100, 0), (100, 100), (0, 100)]) layer.polyline(10, [(0, 0), (200, 200)], closed=False) layer.circle((500, 500), 200)@format_writer()
Signatur
@format_writer( name: str, extensions: list[str], description: str = "",)class MyWriter(FormatWriter): def write(self, path: Path, drawing: WriterContext) -> None: ...Writer-Parameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
name | str | erforderlich | Anzeigename des Formats |
extensions | list[str] | erforderlich | Dateimuster |
description | str | "" | Formatbeschreibung |
FormatWriter-Basisklasse
class FormatWriter: def write(self, path: Path, drawing: WriterContext) -> None: """Override to implement file export logic.""" ...Der WriterContext stellt Lesezugriff auf die Zeichnung bereit:
def write(self, path: Path, drawing: WriterContext) -> None: with open(path, "w") as f: for shape in drawing.shapes(): f.write(f"{shape.layer_name}: {len(shape.vertices)} vertices\n")FormatInfo
Beide Dekoratoren erstellen ein FormatInfo-Objekt, das an die Klasse angehängt wird:
| Feld | Beschreibung |
|---|---|
name | Anzeigename des Formats |
extensions | Liste der Dateimuster |
description | Formatbeschreibung |
Registrierung
Registrierte Formate erscheinen automatisch in den Open/Save-Dialogen von LinkCAD:
- Reader werden im Format-Dropdown von File → Open aufgeführt
- Writer werden im Format-Dropdown von File → Save As aufgeführt
Die Liste extensions legt die Dateitypzuordnung fest. Beispiel:
@format_reader(name="My Format", extensions=["*.myf", "*.myfx"])Dies fügt dem Open-Dialog „My Format (*.myf, *.myfx)“ hinzu.