This document describes the usage and technical reference of the python program TXLWizard written by Esteban Marin (estebanmarin@gmx.ch).
The TXLWizard provides routines for generating TXL files (.txl) for the preparation of E-Beam lithography masks using python code. The TXL files can be processed with BEAMER. See the following links:
The TXLWizard currently implements version 4.8 of the TextLIB (TXL) standard.
The generated TXL files are also converted to HTML / SVG for presentation in any modern browser or vector graphics application and allow rapid mask development.
Moreover, a command line interface TXLConverter provides conversion of existing TXL files to HTML / SVG (See Section :ref:`sec-TXLConverter`).
TXL File Format:
- Text-based file format
- Can be generated with any scripting language (Python / Matlab / etc.)
- Easy to use
- Optimized E-Beam Performance due to References to objects and array of replicated objects (SREF, AREF)
- Create masks with well-structured scripts
- Flexible Python Scripting
- Mask-Code easy to read and reusable
- Automated label generation
- Easily view .txl files with any web browser
- Zoom / Pan
- Rapid conversion for efficient mask development
See the Presentation_Slides and the documentation at https://bithost-gmbh.github.io/txlwizard/
The TXLWizard is written in python and will run in Python version 2.7+ and 3.1+.
In order to use it, the TXLWizard package must be available as a python package, i.e. either it must be copied to :file:`Path_to_my_python_installation/site-packages/` or to the path where your script is located.
Alternatively, you can also prepend the following command to your python script:
import sys
sys.path.append('path_to_the_folder_containing_TXLWizard')
Please note that this must be the parent folder containing the TXLWizard.
The following terms are used throughout this manual:
Refers to an object containing one or more Pattern objects. A Structure corresponds to the STRUCT command in TXL files.
Refers to a pattern such as a circle, a polygon, an ellipse, a path, etc. The following patterns with the corresponding TXL command in brackets are supported:
- Circle (C)
- Ellipse (ELP)
- Polygon (B)
- Polyline (P)
- Reference (SREF)
- Array (AREF)
For more information, supported parameters, etc., see Section :ref:`PythonModuleReferencePatterns`.
Refers to an property of a Pattern determining the visual appearance of the Pattern. The following attributes with the corresponding TXL command in brackets are supported:
- Layer (LAYER)
- DataType (DATATYPE)
- RotationAngle (ANGLE)
- StrokeWidth (WIDTH)
- ScaleFactor (MAG)
Please note that the TXLWizard strictly implements the specification of the TXL format. This implies some peculiarities, such as
- Attribute commands preceed the corresponding Pattern in a Structure and are valid for all patterns that follow unless the attribute value is changed. Therefore, when adding a Pattern to a Structure with certain attributes, the attributes are valid for any subsequently added pattern, unless a different attribute value is specified.
- Attribute commands are valid for all patterns, except for Reference (SREF) and Array (AREF). Therefore the attributes of a pattern can only be specified in the structure where the pattern is added / defined.
- The RotationAngle attribute applies to each Pattern individually and rotates about each Pattern's individual origin.
An example output can be seen here:
Have a look at the examples in https://bithost-gmbh.github.io/txlwizard/Chapters/20_Examples.html and consult the https://bithost-gmbh.github.io/txlwizard/Chapters/40_PythonModuleReference.html. Happy scripting!
For existing TXL files, there is a command line interface script that converts them to SVG / HTML files.
The usage is very simple. Simply run the python script Tools/TXLConverterCLI.py. The command line interface will allow you to change the configuration as you wish. Furthermore, the configuration is saved and restored for a subsequent run.
To use the TXLConverter from the command line type
python Tools/TXLConverterCLI.py
Or if you want to call it in your own python script do
import TXLWizard.TXLConverter
TXLConverterCLI = TXLWizard.TXLConverter.TXLConverterCLI()
The resulting command line interface looks as follows:
### TXL Converter v1.6 ### Converts TXL Files to SVG/HTML written by Esteban Marin (estebanmarin@gmx.ch) Full TXL File / Folder Path If the path is a folder, you can enter the filename separately. [/home/john.mega/masks]: /Users/esteban/Desktop/masks2/tmpd/EM160225_GOI_CornerCube_Microbridge.txl SampleWidth in um used to draw coordinate system [1500]: SampleHeight in um used to draw coordinate system [1500]: Layers to process comma-separated, e.g. 1,4,5. Type -1 for all layers. [-1]: Do Conversion (y/n)? [y] Files written: /Users/esteban/Desktop/masks2/tmpd/EM160225_GOI_CornerCube_Microbridge.html /Users/esteban/Desktop/masks2/tmpd/EM160225_GOI_CornerCube_Microbridge.svg Done