Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gdsfactory/klayout_pyxs
Python port of xsection script for KLayout
https://github.com/gdsfactory/klayout_pyxs
Last synced: about 2 months ago
JSON representation
Python port of xsection script for KLayout
- Host: GitHub
- URL: https://github.com/gdsfactory/klayout_pyxs
- Owner: gdsfactory
- License: mit
- Created: 2022-07-09T12:04:29.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-12-01T09:03:54.000Z (about 1 year ago)
- Last Synced: 2024-08-04T03:06:22.031Z (5 months ago)
- Language: Python
- Homepage: https://gdsfactory.github.io/klayout_pyxs/
- Size: 2.03 MB
- Stars: 14
- Watchers: 4
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome_photonics - klayout cross-section in python - Port from ruby to python to xsection macro (layout)
README
# klayout_pyxs 0.1.13
[![docs](https://github.com/gdsfactory/klayout_pyxs/actions/workflows/pages.yml/badge.svg)](https://gdsfactory.github.io/klayout_pyxs/)
[![pypi](https://img.shields.io/pypi/v/klayout_pyxs)](https://pypi.org/project/klayout_pyxs/)
[![MIT](https://img.shields.io/github/license/gdsfactory/gdsfactory)](https://choosealicense.com/licenses/mit/)
[![black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Downloads](https://pepy.tech/badge/klayout_pyxs)](https://pepy.tech/project/klayout_pyxs)
[![Downloads](https://pepy.tech/badge/klayout_pyxs/month)](https://pepy.tech/project/klayout_pyxs)
[![Downloads](https://pepy.tech/badge/klayout_pyxs/week)](https://pepy.tech/project/klayout_pyxs)This is a python port of the XSection project
(https://github.com/klayoutmatthias/xsection).The goal of this project is to provide an add-on to KLayout (www.klayout.de) to
create and visualize a realistic cross-section view for VLSI designs
supporting a wide range of technology options.## User Documentation
For the project description see [klayout_pyxs Project Home Page](https://gdsfactory.github.io/klayout_pyxs).
## Project Files
The basic structure is:
* `docs` The documentation
* `klayout_pyxs` The python package sources
* `pymacros` The python .lym macros files for KLayout
* `samples` Some sample files
* `tests` Test sources and golden data
* `xs2pyxs` xs to pyxs conversion scriptsThe `docs` folder contains the .rst files and images for the documentation
pages. See rendered version [here](https://klayout-pyxs.readthedocs.io/en/latest).The `klayout_pyxs` folder contains the python package which includes
the cross-section generation engine.The `pymacros` folder contains with the actual KLayout macros code,
`pyxs.lym`.The `samples` folder holds a few files for playing around.
The `tests` folder contains some regression tests for the package.
To run the tests, make sure "klayout" or "klayout_app" (in Windows)
is in your path and use```sh
$ cd tests
$ ./run_tests.sh
```or (from e.g. git bash console on Windows)
```bash
$ cd tests
$ bash run_tests_windows.sh
```The `xs2pyxs` folder contains a shell script which helps converting
Ruby-based .xs scripts to .pyxs scripts. It performs necessary but not
sufficient string replacements. Depending on the .xs script complexity,
more changes are likely to be needed.## Installation for users
You can install the module
```
pip install klayout_pyxs
```And the klayout macro from klayout package manager.
![](https://i.imgur.com/0e1vAqW.png)
## Installation for developers
To run .pyxs scripts from the KLayout menu, klayout_pyxs package and
python macros file have to be installed to the KLayout folders.
According to [KLayout documentation](https://www.klayout.de/doc-qt4/about/macro_editor.html),
they should go to the "pymacros" and "python" folders in KLayout's user
specific application folder. In Windows, it is $USERPROFILE/KLayout.If you are using Python 2.7 in your KLayout distribution, you need
`six` package installed.### Windows
In Windows, do the following (the commands should be run from e.g.
git bash console). Tested on KLayout 0.25.3 and 0.25.7.0. Check if $USERPROFILE/KLayout exists and is used by the KLayout to
store macros. Run```bash
$ ls $USERPROFILE/KLayout
```If no error reported, continue with 1. If there is an error, you need to
find a location of KLayout's user specific application folder
with pymacros, python folders and use it in further commands.1. Clone klayout_pyxs repository into any source folder:
```bash
$ git clone https://github.com/dimapu/klayout_pyxs.git klayout_pyxs_repo
```2. Copy klayout_pyxs_repo/pymacros/pyxs.lym to $USERPROFILE/KLayout/pymacros/pyxs.lym
```bash
$ cp klayout_pyxs_repo/pymacros/pyxs.lym $USERPROFILE/KLayout/pymacros/pyxs.lym
```3. Copy klayout_pyxs_repo/klayout_pyxs/*.* to $USERPROFILE/KLayout/python/klayout_pyxs
```bash
$ mkdir $USERPROFILE/KLayout/python/klayout_pyxs
$ cp klayout_pyxs_repo/klayout_pyxs/*.py $USERPROFILE/KLayout/python/klayout_pyxs
```Now, run Klayout. In the Tools menu, you should see pyxs > Load pyxs script.
### Linux / Mac OS
Run
```bash
$ make install
```Now, run Klayout. In the Tools menu, you should see pyxs > Load pyxs script.