Créez votre premier fichier GDSII en Python en utilisant gdspy

introduction

Cet article est une suite de Gestion du format GDSII en Python. En supposant que la bibliothèque gdspy a été installée, créons le premier fichier GDS. Premièrement, au moment de la rédaction du manuscrit (16 février 2020), la dernière version de gdspy est la 1.5.2. Il semble que le concept de conception a beaucoup changé ** depuis la version 1.5, et le script créé dans la version précédente ** ne fonctionne pas tel quel **. Même le script dans le gdspy officiel ne fonctionne pas correctement pour le moment, donc seule la version qui l'a fait fonctionner rapidement est répertoriée ci-dessous. ..

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) <-Une seule ligne ici a été modifiée depuis Officiel

Structure des fichiers GDS

Pour plus de détails sur les fichiers GDS (format GDS II), veuillez consulter le site de référence [^ 1] [^ 2], mais en gros. Bibliothèque ├ Cellule ├ Géométrie Il est configuré comme. Une bibliothèque fait référence à un fichier GDS entier. La géométrie est une figure individuelle (polygone, cercle, etc, etc, ...), et une cellule est une collection de géométrie. Normalement, GDS a une cellule nommée Top, qui est la cellule qui décrit la bibliothèque entière. La cellule Top contient une référence à la bibliothèque ou à d'autres cellules (appelées sous-cellules). En d'autres termes, les cellules peuvent avoir une structure hiérarchique, et si elles peuvent être utilisées correctement, cela conduira à une taille de fichier plus efficace. ,

Ce qui a changé depuis gdspy 1.4 et 1.5

Jusqu'en 1.4, la bibliothèque GDS à gérer était traitée comme une classe globale [^ 1], mais après 1.5, elle est clairement traitée comme une classe locale lib = gdspy.GdsLibrary (). Parallèlement à cela, il existe de nombreux codes qui ne fonctionnent pas tels quels, y compris les documents officiels. Bien sûr, il est nécessaire de le changer lors du passage à un sous-programme (fonction), et l'utilisation de CellReference etc. a changé de manière significative. Des mises à jour de gdspy 2.0 sont prévues dans le futur et les changements devraient encore augmenter. Pour plus d'informations, veuillez consulter la source sur GitHub ~~ (C'est tout) ~~.

Précautions lors de la manipulation de fichiers GDS avec Python / Gdspy

Dans la section précédente, nous avons mentionné que lib = gdspy.GdsLibrary () est traité comme une classe locale, mais il y a de nombreux problèmes au moment de la rédaction du manuscrit. Premièrement, gdspy.GdsLibrary semble avoir un constructeur mais pas de destructeur. En d'autres termes, si vous exécutez lib = gdspy.GdsLibrary () plusieurs fois dans une boucle for, une erreur se produira car l'historique précédent est conservé. Pour éviter cette erreur, lors de l'exécution dans Spyder, exécutez gdspy.GdsLibrary () une seule fois dans le script Python et exécutez le noyau "console" -> "chaque fois que le script est exécuté. Vous devez "redémarrer" [^ 4].

Recommended Posts

Créez votre premier fichier GDSII en Python en utilisant gdspy
Créer un fichier GIF en utilisant Pillow en Python
Créez un fichier MIDI en Python en utilisant pretty_midi
Créer un fichier binaire en Python
Créez vos propres commandes Linux en Python
[LLDB] Créez votre propre commande avec Python
[GPS] Créer un fichier kml avec Python
Pièces jointes par e-mail à l'aide de votre compte gmail avec python.
Créer un fichier wav à partir du shader GLSL en utilisant python3
Opérations sur les fichiers en Python
Traitement de fichiers en Python
Créer Spatia Lite en Python
Manipulation de fichiers avec Python
Créez votre propre Big Data en Python pour validation
Importez un fichier JPG à l'aide de l'API Google Drive en Python
Enregistrez collectivement des données dans Firestore à l'aide d'un fichier csv en Python
Créer une fonction en Python
Créer un dictionnaire en Python
Créer des tickets JIRA en utilisant Python
Traduit à l'aide de googletrans en Python
Utilisation du mode Python dans le traitement
Programmation GUI en Python avec Appjar
Manipulation de chemin de fichier / dossier en Python
Précautions lors de l'utilisation de Pit avec Python
Première analyse de régression simple en Python
[Python] journalisation dans votre propre module
Créer une interface graphique python à l'aide de tkinter
Créer un conteneur DI avec Python
Création de Linebot et partage de fichiers avec Python
Essayez d'utiliser LevelDB avec Python (plyvel)
Créez votre propre classe de structure graphique et son dessin avec python
Préparez votre premier environnement de développement Python
Créez Gmail en Python sans utiliser l'API
Utilisation de variables globales dans les fonctions python
Créer une documentation de projet Python dans Sphinx
Essayez de vous connecter automatiquement à Netflix en utilisant python sur votre PC
Voyons voir l'utilisation de l'entrée en python
Puissance totale en Python (en utilisant functools)
Extraire le fichier targz en utilisant python
ORC, opérations de fichier Parquet en Python
Reconnaissance de caractères manuscrits à l'aide de KNN en Python
Créer une chaîne aléatoire en Python
Essayez d'utiliser LeapMotion avec Python
La première étape de Python Matplotlib
Recherche de priorité de profondeur à l'aide de la pile en Python
[Python] Opération de fichier utilisant l'instruction if
Lors de l'utilisation d'expressions régulières en Python
Créer et lire des paquets de messages en Python
Création d'interface graphique en python avec tkinter 2
Créer un enregistrement avec des pièces jointes dans KINTONE à l'aide du module de requêtes Python
[Python] [Word] [python-docx] Essayez de créer un modèle de phrase de mot en Python en utilisant python-docx
Une note utile lors de l'utilisation de Python après une longue période
Générer une collection de première classe en Python