Trees
altering itself during iteration is not a good idea
Masque README
Masque is a Python module for designing lithography masks.
The general idea is to implement something resembling the GDSII file-format, but with some vectorized element types (eg. circles, not just polygons) and the ability to output to multiple formats.
Installation
Requirements:
- python >= 3.8
- numpy
- klamath (optional, used for
gdsiii/o) - matplotlib (optional, used for
visualizationfunctions andtext) - ezdxf (optional, used for
dxfi/o) - fatamorgana (optional, used for
oasisi/o) - svgwrite (optional, used for
svgoutput) - freetype (optional, used for
text)
Install with pip:
pip3 install 'masque[visualization,oasis,dxf,svg,text]'
Alternatively, install from git
pip3 install git+https://mpxd.net/code/jan/masque.git@release
Translation
Pattern: OASIS or GDS "Cell", DXF "Block"Ref: GDS "AREF/SREF", OASIS "Placement"Shape: OASIS or GDS "Geometry element", DXF "LWPolyline" or "Polyline"repetition: OASIS "repetition". GDS "AREF" is aRefcombined with aGridrepetition.Label: OASIS, GDS, DXF "Text".annotation: OASIS or GDS "property"
TODO
- Better interface for polygon operations (e.g. with
pyclipper)- de-embedding
- boolean ops
- Deal with shape repetitions for dxf, svg
- Maybe lib.create(bname) -> (name, pat)
- Schematic:
- Simple cell:
- Assumes no internal hierarchy, or only other simple hierarchy
- Return pattern, refer to it by a well-known name
- Parametrized cell:
- Take in
lib - lib.create(), and return a string
- Can have pcell hierarchy inside
- Take in
- Simple cell:
Description
Languages
Python
100%