Merge remote-tracking branch 'remotes/mine/master'

This commit is contained in:
Matthias Koefferlein 2024-03-31 10:37:20 +02:00
commit ed486a687d
6 changed files with 2994 additions and 120 deletions

View File

@ -1,5 +1,64 @@
0.29.0 (2024-04-01):
* TODO
* Enhancement: %GITHUB%/issues/1662 Strong default grids
* Enhancement: %GITHUB%/issues/1656 Display-->Goto Position dialog should accept + as well as - for number prefixes
* Bugfix: %GITHUB%/issues/1651 Errors when adding polygons with 4 points
* Bugfix: %GITHUB%/issues/1644 DRC: some issues with edge layers
* Bugfix: %GITHUB%/issues/1643 DRC: Feeding the same layer to two-layer operations in deep mode does not render the desired result
* Enhancement: %GITHUB%/issues/1638 let klayout marker browser read strmxor .. xor.gds.gz, xor.oas result files
* Enhancement: %GITHUB%/issues/1637 XOR optimization for prBoundary layer
* Bugfix: %GITHUB%/issues/1632 rdb python/ruby module: modifing items not possible as they are const
* Enhancement: %GITHUB%/issues/1598 LVS - Support for Soft Connections
* Bugfix: %GITHUB%/issues/1586 Refactoring transformation conversion functions for complex transformation
* Enhancement: %GITHUB%/issues/1583 Add possibility to customize main window title
* Enhancement: %GITHUB%/issues/1513 Update Qt version for Qt bindings to 5.12.12 and 6.2.1
* Bugfix: %GITHUB%/issues/1356 Instance Property form: Array Instance col/row would be more intuitive then the current row/col
* Enhancement: New ruler type "auto measure along edge"
* Enhancement: Trigger ruler measurement on mouse hovering transiently
* Enhancement: Min and max value bounds for PCell parameters in editor
The condition is not strictly enforced - for example it is not checked when
changing parameters programmatically. For that, use "coerce_parameters".
Still, this feature is an editing aid.
* Bugfix: Pixel garbage in color selector button with "Auto" color selected
* Bugfix: DRC/LVS - connect_explicit did not accept an array of nets as single argument
* Bugfix: 'edge outside polygon' now consistently ignores the border of the polygon
* Bugfix: Warning level was ignored for some warnings in LEF/DEF reader
* Bugfix: Netlist reader: anonymous circuits are not checked for known parameters
* Enhancement: LVS - Supporting remote must-connect connections
So far, must-connect connections had to be made one level up in the hierarchy
or promoted further using labels and such. Now, must-connect connections
can be made at any point up in the hierarchy.
* Bugfix: LVS - do not waste too much time analyzing failed matches
* Enhancement: LVS - LVS: Consider net names identical that differ
in signal type suffix only - e.g. 'NET:I' is identical to 'NET'
* Enhancement: OASIS reader will produce layers that are listed in layer table
but empty. Previously, empty layers were never created, even if listed in
the layer table.
* Enhancement: Reading from HTTP streams and pipes now supports automatic .gz uncompression
* Enhancement: New DRC Features
- "edges" method allows selecting convext/concave/step edges
- Interaction count for edge/edge edge/polygon "interacting"
- Improved handling of dots (degenerated edges) - these are now
passed through the edge/edge and edge/polygon booleans and
participate in "interact". This enables selecting corners and
using them to select edges.
* Enhancement: New RBA/pya Features
- Main window title: MainWindow#title (property)
- LayoutView#is_dirty?
- Triangulation: Region#delaunay
- Quality rasterizer: Region#rasterize
- Generic edge and polygon filters and operators support hierarchical processing
with Python or Ruby callbacks: classes EdgePairFilter, EdgePairOperator,
EdgePairToPolygonOperator, EdgePairToEdgeOperator, EdgeFilter, EdgeOperator,
EdgeToPolygonOperator, EdgeToEdgePairOperator, PolygonFilter, PolygonOperator
PolygonToEdgeOperator, PolygonToEdgePairOperator, TextFilter, TextOperator,
TextToPolygonOperator
Methods: EdgePairs#filter, EdgePairs#filtered, EdgePairs#process, EdgePairs#processed,
same for Edges, Regions and Texts
- Polygon#split, Polygon#break, same for DPolygon, SimplePolygon, DSimplePolygon
- Keyword arguments for Python, Ruby and Expressions
- You can now also use "klayout" package inside the application (same code
for Python module and application) - i.e. "import klayout.db"
- Synonyms: connect/disconnect for events for better compatibility with PyQt5
0.28.17 (2024-02-16):
* Enhancement: %GITHUB%/issues/1626 Technology specific grids

View File

@ -843,7 +843,6 @@ Class<db::PCellParameterDeclaration> decl_PCellParameterDeclaration ("db", "PCel
"This method will add the given value with the given description to the list of\n"
"choices. If choices are defined, KLayout will show a drop-down box instead of an\n"
"entry field in the parameter user interface.\n"
"If a range is already set for this parameter the choice will not be added and a warning message is showed.\n"
) +
gsi::method ("choice_values", &db::PCellParameterDeclaration::get_choices,
"@brief Returns a list of choice values\n"

View File

@ -481,6 +481,13 @@ outside:
out = in.drc(primary.edges(convex))
</pre>
</p><p>
In addition, "not_.." variants are available which selects edges
not qualifying for the specific mode:
</p><p>
<pre>
out = in.drc(primary.edges(not_convex))
</pre>
</p><p>
The mode argument is ignored when translating other objects than
polygons.
</p>

View File

@ -808,7 +808,14 @@ outside:
out = in.edges(convex)
</pre>
</p><p>
This feature is only available for polygon layers.
In addition, "not_.." variants are available which selects edges
not qualifying for the specific mode:
</p><p>
<pre>
out = in.edges(not_convex)
</pre>
</p><p>
The mode argument is only available for polygon layers.
</p><p>
The following images show the effect of the mode argument:
</p><p>

File diff suppressed because it is too large Load Diff

View File

@ -4994,12 +4994,12 @@ class LayoutViewBase:
@overload
def __eq__(self, other: object) -> bool:
r"""
@brief Compares an enum with an integer value
@brief Compares two enums
"""
@overload
def __eq__(self, other: object) -> bool:
r"""
@brief Compares two enums
@brief Compares an enum with an integer value
"""
def __hash__(self) -> int:
r"""
@ -5032,12 +5032,12 @@ class LayoutViewBase:
@overload
def __ne__(self, other: object) -> bool:
r"""
@brief Compares an enum with an integer for inequality
@brief Compares two enums for inequality
"""
@overload
def __ne__(self, other: object) -> bool:
r"""
@brief Compares two enums for inequality
@brief Compares an enum with an integer for inequality
"""
def __repr__(self) -> str:
r"""
@ -7230,12 +7230,12 @@ class Macro:
@overload
def __eq__(self, other: object) -> bool:
r"""
@brief Compares an enum with an integer value
@brief Compares two enums
"""
@overload
def __eq__(self, other: object) -> bool:
r"""
@brief Compares two enums
@brief Compares an enum with an integer value
"""
def __hash__(self) -> int:
r"""
@ -7268,12 +7268,12 @@ class Macro:
@overload
def __ne__(self, other: object) -> bool:
r"""
@brief Compares two enums for inequality
@brief Compares an enum with an integer for inequality
"""
@overload
def __ne__(self, other: object) -> bool:
r"""
@brief Compares an enum with an integer for inequality
@brief Compares two enums for inequality
"""
def __repr__(self) -> str:
r"""