Version 1.6.11 (Jan 14, 2022)
Fix in Cell.write_svg when missing references.
Speed improvements in Cell.remove_polygons (thanks Troy for the contribution).
Version 1.6.10 (Nov 14, 2021)
Fix in Cell.get_polygons
Version 1.6.9 (Sep 23, 2021)
Fix in Cell.get_polygons with specified layer and datatype.
Raise error for duplicate cells when reading a GDSII file.
Version 1.6.8 (Aug 2, 2021)
Fix in boolean for complex geometries that freeze the operation.
Version 1.6.7 (Jul 14, 2021)
Fixes in boolean for bugs with self-intersecting holes and holes horizontal edges.
Fix bug in warning message.
Version 1.6.6 (Jun 09, 2021)
Fix error in Path.smooth not finding _hobby function.
Allow precision specification in SVG output.
Version 1.6.5 (Jun 08, 2021)
Support GDSII files with 0-padding at the end.
Allow fixing and modifying GDSII file timestamps.
Thanks Troy Tamas and Joaquin Matres for the fixes
Version 1.6.4 (Apr 23, 2021)
Fix missing module import (thanks Troy Tamas for the fix).
Version 1.6.3 (Dec 28, 2020)
Fix bounding box edge case (thanks Troy Tamas for the fix).
Version 1.6.2 (Dec 18, 2020)
More efficient bounding box calculation (thanks to Troy Tamas for the contribution).
Fix Label creation bug.
Version 1.6.1 (Oct 22, 2020)
Fix SVG output when Label contains special characters.
Install the new interchangeable BLAS system created by Thomas Orgis,
currently supporting Netlib BLAS/LAPACK, OpenBLAS, cblas, lapacke, and
Apple's Accelerate.framework. This system allows the user to select any
BLAS implementation without modifying packages or using package options, by
setting PKGSRC_BLAS_TYPES in mk.conf. See mk/blas.buildlink3.mk for details.
This commit should not alter behavior of existing packages as the system
defaults to Netlib BLAS/LAPACK, which until now has been the only supported
implementation.
Details:
Add new mk/blas.buildlink3.mk for inclusion in dependent packages
Install compatible Netlib math/blas and math/lapack packages
Update math/blas and math/lapack MAINTAINER approved by adam@
OpenBLAS, cblas, and lapacke will follow in separate commits
Update direct dependents to use mk/blas.buildlink3.mk
Perform recursive revbump
### Version 1.6 (Aug 12, 2020)
* Added support for element properties.
* Added transformation support to `Cell.copy`.
* Layer/datatype filtering in `get_polygons` for `Cell`, `CellReference` and `CellArray`.
* Layer/datatype filtering in `LayoutViewer`.
* Removed global cache `_bounding_boxes`. Only cells cache their bounding boxes.
* Bug fixes (thanks Daniel Hwang for the contributions).
* Bug fix in `Cell.copy` where the whole dependency tree would be copied on a deep copy creation.
Version 1.5.2 (Feb 01, 2020)
Added support for importing GDSII files containing BOX elements.
Bug fix in GdsLibrary.extract (thanks collineps for finding the problem).
Version 1.5 (Dec 20, 2019)
New Cell.write_svg function to export an SVG image of the cell.
New GdsLibrary.new_cell function to quickly create and add cells to a library.
GdsLibrary.add can update references when a cell is overwritten.
Added GdsLibrary.remove to allow cells to be properly removed from libraries.
Added GdsLibrary.rename_cell to rename cells in libraries.
Added GdsLibrary.replace_references to easily replace referenced cells in libraries.
GdsLibrary.add can add dependencies recursively.
Iterating over GdsLibrary objects yields all its cells.
Iterating over Cell objects yield all its polygons, paths, labels and references.
Breaking change to *.to_gds functions in order to improve write efficiency (this should not be a problem for most users, since gdspy.write_gds and Cell.write_gds remain the same).
Breaking change: renamed GdsLibrary.cell_dict to GdsLibrary.cells.
Deprecated: gdspy.current_library, gdspy.write_gds, gdspy.fast_boolen, GdsLibrary.extract.
Bug fixes and better tests for FlexPath and RobustPath.
Version 1.4.3 (Nov 11, 2019)
Bug fix for FlexPath and RobustPath references.
Version 1.4.2 (Oct 01, 2019)
Bug fix in FlexPath.
Version 1.4.1 (Sep 20, 2019)
Bug fixes (thanks to DerekK88 and Sequencer for the patches).
Version 1.4 (May 18, 2019)
Revised documentation.
New FlexPath and RobustPath classes: more efficient path generation when using the original GDSII path specification.
New Curve class: SVG-like polygon creation.
Added PolygonSet.mirror (thanks to Daan Waardenburg for the contribution).
Added Path.bezier to create paths based on Bézier curves.
Added Path.smooth to create paths based on smooth interpolating curves.
Added get_gds_units to get units used in a GDSII file without loading.
Added get_binary_cells to load only the binary GDSII representation of cell from a file.
Added argument tolerance to Round, Path.arc, Path.turn, and Path.parametric to automatically control the number of points in the final polygons.
Added argument binary_cells to GDSII writing functions to support get_binary_cells.
Added argument rename_template to GdsLibrary.read_gds for flexible cell renaming (thanks to @yoshi74ls181 for the contribution).
Changed return value of slice to avoid creating empty PolygonSet.
Added argument timestamp to GDSII writing functions.
Improved Round to support creating ellipses.
Added support for unlimited number of points per polygon.
Added support for BGNEXTN and ENDEXTN when reading a GDSII file.
Polygon creation warnings are now controlled by poly_warnings.
Incorrect anchor in Label now raises an error, instead of emitting a warning.
Added correct support for radius in PolygonSet.fillet on a per-vertex basis.
Speed improvements in GDSII file generation (thanks to @fbeutel for the contribution) and geometry creation.
Font rendering example using matplotlib (thanks Hernan Pastoriza for the contribution).
Expanded test suite.
Version 1.3.2 (Mar 14, 2019)
Small fix for building on Mac OS X Mojave.
pkglint -Wall -r -F cad
Manually fixed the indentation in cad/ghdl/Makefile because SITES.* was
(by the current definition) not long enough to count as an outlier line,
and because of this, all other lines were aligned to that line.
### Version 1.3.1 (Jun 29, 2018)
* `PolygonSet` becomes the base class for all polygons, in particular `Polygon` and `Rectangle`.
* Added `Cell.remove_polygons` and `Cell.remove_labels` functions to allow filtering a cell contents based, for example, on each element's layer.
* Added `PolygonSet.scale` utility method.
* Added `PolygonSet.get_bounding_box` utility method.
* Added argument `timestamp` to `Cell.to_gds`, `GdsLibrary.write_gds` and `GdsWriter`.
* Added `unit` and `precision` arguments to `GdsLibrary` initialization and removed from its `write_gds` method.
* Changed the meaning of argument `unit` in `GdsLibrary.read_gds`.
* Improved `slice` to avoid errors when slicing in multiple positions at once.
* Improved `PolygonSet.fracture` to reduce number of function calls.
* Removed incorrect absolute flags for magnification and rotation in `CellReference` and `CellArray`.
* Minor bug fixes.
* Documentation fixes.
* Removed deprecated classes and functions.
### Version 1.2.1 (Dec 5, 2017)
* `GdsLibrary` can be created directly from a GDSII file
* Added return value to `GdsLibrary.read_gds`
* Fix return value of `GdsLibrary.add`
### Version 1.2 (Oct 21, 2017)
* Added new `gdsii_hash` function.
* Added `precision` parameter to `_chop`, `Polygon.fracture`,
`Polygon.fillet`, `PolygonSet.fracture`, `PolygonSet.fillet`, and
`slice`.
* Included labels in flatten operations (added `get_labels` to `Cell`,
`CellReference`, and `CellArray`).
* Fixed bug in the bounding box cache of reference copies.
* Fixed bug in `_chop` that affected `Polygon.fracture`,
`PolygonSet.fracture`, and `slice`.
* Other minor bug fixes.
---------------------------
### Version 1.1.2 (Mar 19, 2017)
* Update clipper library to 6.4.2 to fix bugs introduced in the last update.
* License change to Boost Software License v1.0.
(pkgsrc changes)
- LICENSE converted to boost-license as noted above
-------------------------
### Version 1.1 (Jan 20, 2017)
* Introduction of `GdsLibrary` to allow user to work with multiple library simultaneously.
* Deprecated `GdsImport` in favor of `GdsLibrary`.
* Renamed `gds_print` to `write_gds` and `GdsPrint` to `GdsWriter`.
* Development changed to Python 3 (Python 2 supported via [python-future](http://python-future.org/)).
* Added photonics example.
* Added test suite.
* Clipper library updated to last version.
* Fixed `inside` function sometimes reversing the order of the output.
* Fixed rounding error in `fast_boolean`.
* Fixed argument `deep_copy` being inverted in `Cell.copy`.
* Bug fixes introduced by numpy (thanks to Adam McCaughan for the contribution).
-------------------------
- v0.9
Almost version 1.0...
This version introduces new translation and copy features
added by John Bell. A new flag for joining polygons before
offsetting them has also been included.
- v0.8.1 Faster boolean and offset
This release introduces the Clipper library for better
performance on boolean and offset operations on polygons.
Compiled Windows binaries are contributed by @johnlb.
- v0.7.1 First GitHub release
Minor structural changes since version 0.7.
Compiled Windows binaries for Python 3.5 are contributed by
@johnlb.
Gdspy is a Python module for creating GDSII stream files, usually CAD
layouts. It includes a layout viewer for the geometries created, and
it can also be used to import and merge GDSII files.