Erstellen Sie Ihre erste GDSII-Datei in Python mit gdspy

Einführung

Dieser Artikel ist eine Fortsetzung von Umgang mit dem GDSII-Format in Python. Angenommen, die gdspy-Bibliothek wurde installiert, erstellen wir die erste GDS-Datei. Erstens ist zum Zeitpunkt der Erstellung des Manuskripts (16. Februar 2020) die neueste Version von gdspy 1.5.2. Es scheint, dass sich das Designkonzept von 1.5 stark geändert hat und das in der vorherigen Version erstellte Skript nicht so funktioniert, wie es ist. Sogar das Skript im offiziellen gdspy funktioniert derzeit nicht ordnungsgemäß. Daher ist unten nur die Version aufgeführt, mit der es schnell funktioniert hat ..

import gdspy

# The GDSII file is called a library, which contains multiple cells. lib = gdspy.GdsLibrary()

# Geometry must be placed in cells. cell = lib.new_cell('FIRST')

# Create the geometry (a single rectangle) and add it to the cell. rect = gdspy.Rectangle((0, 0), (2, 1)) cell.add(rect)

# Save the library in a file called 'first.gds'. lib.write_gds('first.gds')

# Optionally, save an image of the cell as SVG. cell.write_svg('first.svg')

# Display all cells using the internal viewer. gdspy.LayoutViewer (lib) <-Nur eine Zeile hier wurde von [Official] geändert (https://gdspy.readthedocs.io/en/stable/gettingstarted.html#first-gdsii)

GDS-Dateistruktur

Einzelheiten zu GDS-Dateien (GDS II-Format) finden Sie auf der Referenzseite [^ 1] [^ 2], aber grob gesagt. Bibliothek ├ Zelle ├ Geometrie Es ist konfiguriert als. Eine Bibliothek bezieht sich auf eine gesamte GDS-Datei. Geometrie ist eine einzelne Figur (Polygon, Kreis usw. usw. usw.), und eine Zelle ist eine Sammlung von Geometrie. Normalerweise hat GDS eine Zelle mit dem Namen Top, die die gesamte Bibliothek beschreibt. Die obere Zelle enthält einen Verweis auf die Bibliothek oder andere Zellen (sogenannte Unterzellen). Mit anderen Worten, Zellen dürfen eine hierarchische Struktur haben, und wenn sie richtig verwendet werden können, führt dies zu einer effizienteren Dateigröße. ,

Was hat sich seit gdspy 1.4 und 1.5 geändert?

Bis 1.4 wurde die zu behandelnde GDS-Bibliothek als globale Klasse behandelt [^ 1], nach 1.5 wird sie jedoch eindeutig als lokale Klasse lib = gdspy.GdsLibrary () behandelt. Daneben gibt es viele Codes, die nicht so funktionieren, wie sie sind, einschließlich der offiziellen Dokumente. Natürlich muss es geändert werden, wenn es an eine Unterroutine (Funktion) übergeben wird, und die Verwendung von CellReference usw. hat sich erheblich geändert. Updates für gdspy 2.0 sind in Zukunft geplant, und es wird erwartet, dass die Änderungen weiter zunehmen. Weitere Informationen finden Sie in der Quelle unter GitHub ~~ (Das war's) ~~.

Vorsichtsmaßnahmen beim Umgang mit GDS-Dateien mit Python / Gdspy

Im vorherigen Abschnitt haben wir erwähnt, dass "lib = gdspy.GdsLibrary ()" als lokale Klasse behandelt wird, aber es gibt zum Zeitpunkt des Schreibens des Manuskripts viele Probleme. Erstens scheint gdspy.GdsLibrary einen Konstruktor, aber keinen Destruktor zu haben. Mit anderen Worten, wenn Sie "lib = gdspy.GdsLibrary ()" mehrmals in einer for-Schleife ausführen, tritt ein Fehler auf, da der vorherige Verlauf erhalten bleibt. Um diesen Fehler zu vermeiden, führen Sie gdspy.GdsLibrary () bei der Ausführung in Spyder nur einmal im Python-Skript aus und führen Sie bei jeder Ausführung des Skripts den Kernel "console" -> "aus. Sie sollten "neu starten" [^ 4].

Recommended Posts

Erstellen Sie Ihre erste GDSII-Datei in Python mit gdspy
Erstellen Sie eine GIF-Datei mit Pillow in Python
Erstellen Sie eine MIDI-Datei in Python mit pretty_midi
Erstellen Sie eine Binärdatei in Python
Erstellen Sie Ihre eigenen Linux-Befehle in Python
[LLDB] Erstellen Sie Ihren eigenen Befehl mit Python
[GPS] Erstellen Sie eine kml-Datei mit Python
E-Mail-Anhänge über Ihr Google Mail-Konto mit Python.
Erstellen Sie mit python3 eine WAV-Datei aus dem GLSL-Shader
Dateioperationen in Python
Dateiverarbeitung in Python
Erstellen Sie Spatia Lite in Python
Dateimanipulation mit Python
Erstellen Sie Ihre eigenen Big Data in Python zur Validierung
Laden Sie eine JPG-Datei mit der Google Drive-API in Python hoch
Registrieren Sie gemeinsam Daten im Firestore mithilfe der CSV-Datei in Python
Erstellen Sie eine Funktion in Python
Erstellen Sie ein Wörterbuch in Python
Erstellen Sie JIRA-Tickets mit Python
Übersetzt mit Googletrans in Python
Verwenden des Python-Modus in der Verarbeitung
GUI-Programmierung in Python mit Appjar
Manipulation des Datei- / Ordnerpfads in Python
Vorsichtsmaßnahmen bei der Verwendung von Pit mit Python
Erste einfache Regressionsanalyse in Python
[Python] Anmelden Ihres eigenen Moduls
Erstellen Sie mit tkinter eine Python-GUI
Erstellen Sie einen DI-Container mit Python
Linebot-Erstellung und Dateifreigabe mit Python
Versuchen Sie es mit LevelDB mit Python (plyvel)
Erstellen Sie Ihre eigene Diagrammstrukturklasse und deren Zeichnung mit Python
Bereiten Sie Ihre erste Python-Entwicklungsumgebung vor
Erstellen Sie Google Mail in Python ohne Verwendung der API
Verwendung globaler Variablen in Python-Funktionen
Erstellen Sie eine Python-Projektdokumentation in Sphinx
Versuchen Sie, sich mit Python auf Ihrem PC automatisch bei Netflix anzumelden
Mal sehen, wie man Eingaben in Python verwendet
Gesamtleistung in Python (mit Funktools)
Extrahieren Sie die Targz-Datei mit Python
ORC, Parkettdateivorgänge in Python
Handschriftliche Zeichenerkennung mit KNN in Python
Erstellen Sie eine zufällige Zeichenfolge in Python
Versuchen Sie es mit LeapMotion mit Python
Der erste Schritt von Python Matplotlib
Suche nach Tiefenpriorität mit Stack in Python
[Python] Dateivorgang mit der if-Anweisung
Bei Verwendung regulärer Ausdrücke in Python
Erstellen und lesen Sie Messagepacks in Python
GUI-Erstellung in Python mit tkinter 2
Erstellen Sie mit dem Python-Anforderungsmodul einen Datensatz mit Anhängen in KINTONE
[Python] [Word] [python-docx] Versuchen Sie, mit python-docx eine Vorlage für einen Wortsatz in Python zu erstellen
Ein nützlicher Hinweis, wenn Sie Python nach langer Zeit verwenden
Generieren Sie eine erstklassige Sammlung in Python