Commit Graph

994 Commits

Author SHA1 Message Date
Matthias Koefferlein 7d5f61db59 Issue #2360: Implemented name sorting by default (can be turned off) for 'make_top_level_pins' 2026-05-26 23:26:16 +02:00
Matthias Koefferlein 37977d21e9 Fixing issue #2350 (strm2oas writes empty OAS)
Problem was that the OASIS writer was simply ignoring
all top level proxy cells (PCells, Library references).

The original bug #1835 fixed that by changing the
reader behavior, so it would keep top level proxies.
However, doing the spin through the writer got them
removed and in addition, the cleanup happing during
editing would also remove them.

Solution is to centralize the strategy of cleaning
cells. The cleanup now is changed to not remove
proxy top cells if they are the only ones. This is
consistent with the previous reader-only behavior.

The writer implements the same behavior by means
dropping cells marked for cleanup, instead of simply
skipping all proxy cells.
2026-05-25 00:09:38 +02:00
Matthias Koefferlein 4afe2e5e8a Merge remote-tracking branch 'origin/master' into feature/issue-2337 2026-05-20 19:07:39 +02:00
Matthias Köfferlein 0ca31fb9a6
Merge pull request #2347 from KLayout/bugfix/issue-2344
Fixing issue #2344 (preserving properties on PCell instantiation with…
2026-05-20 19:04:14 +02:00
Matthias Koefferlein c85be6bce5 Adding string serialization "from_s" for objects with properties (CAUTION: side effect!)
Problem was that "to_s" did not deliver a parsable string for the
properties. This is fixed, but the format of the properties part
of the string changes.
2026-05-03 20:27:15 +02:00
Matthias Koefferlein 5596019ece Fixing issue #2344 (preserving properties on PCell instantiation with instances) 2026-05-01 00:03:11 +02:00
Matthias Koefferlein 39c95a11de Fixed issue #2343 (loss of collinear points in copy_tree and other places) 2026-04-30 23:42:40 +02:00
Matthias Koefferlein b51caf5d39 Merge branch 'wip' 2026-04-14 19:21:01 +02:00
Matthias Köfferlein 0fdce69579
Merge pull request #2304 from KLayout/bugfix/issue-2299
Bugfix/issue 2299
2026-04-14 08:59:07 +02:00
Matthias Köfferlein 72c4af9f94
Merge pull request #2308 from KLayout/bugfix/issue-2305
Bugfix/issue 2305
2026-04-14 08:57:19 +02:00
Matthias Koefferlein adb81262a4 Experimental feature: Region#peel to reduce hierarchical load 2026-04-12 01:03:37 +02:00
Matthias Koefferlein ddc17818b0 Bugfix + tests added 2026-04-04 19:34:54 +02:00
Matthias Koefferlein a092d7c6ca Enhancement to Library#lib_by_name
* Better description
* Allowing "*" for the technology name to capture all
  libraries with that name
2026-04-04 14:27:01 +02:00
Matthias Koefferlein a6dce8c2ad Improving Layout::cleanup to consolidate library and cold proxies and to establish proper cell names if possible 2026-04-02 22:14:11 +02:00
Matthias Koefferlein dcc7f28c77 Updating test data 2026-03-31 22:09:27 +02:00
Matthias Koefferlein 7cec679d39 Taking care of complex library reference scenarios where libraries self-reference and under the presence of stale references. Main issue is order of resolution and indirect references due to replication. Solution is to repeat resolution until saturated. A test is supplied. 2026-03-31 21:35:33 +02:00
Matthias Koefferlein f501f039c0 Added tests and two convenience methods
The two convenience methods are

Library#library_from_file
Library#library_from_files

Both create and register a Library object tied to a file.
This object supports proper reloading and re-mapping on
"refresh".
2026-03-21 14:59:08 +01:00
Matthias Koefferlein 2dfcc9293e Allowing to explicity specify a format
Most tools and functions now allow to explicitly
specify a format for input and output. On input,
the format is usually detected, but for some
cases, this is not possible (e.g. DEF). So you can
specify the format attached to the file name in
square brackets:

e.g. file.defok[def]

"def" is the intended suffix, "defok" is the given one.

On output, the same is possible, specifically in strmxor
and strmclip:

strmxor a.gds b.gds out.xor[oas]
2026-03-20 16:30:28 +01:00
Matthias Koefferlein 42a008efd1 Potential performance improvement for deep-mode DRC
The idea is to use broken regions for certain operations
such as booleans in deep mode (local operations). These polygons are
more efficient. To support this, a "broken polygon" view
is supplied similar for "merged" view. The translation is
handled automatically.

As a side effect, regions may appear to be composed in broken
polygons now when they have been merged before.
2026-03-19 12:53:49 +01:00
Matthias Koefferlein 4af2662a08 Fixing unit tests 2026-03-15 10:03:51 +01:00
Matthias Koefferlein c14d8cc877 [consider merging] proper cleanup of properties repo - this enables using user classes for names or values. Without this pre-finalization cleanup, the user class 'destroy' method may end up calling a method of an already destroyed class object. 2026-02-24 19:17:01 +01:00
Matthias Koefferlein 56fdbca1f5 Updating copyright to 2026 2026-02-07 17:12:53 +01:00
Matthias Köfferlein 3f9d8906f9
Merge pull request #2266 from KLayout/bugfix/issue-2262
Bugfix/issue 2262
2026-02-07 09:18:03 +01:00
Matthias Koefferlein 6661f5b5dd WIP 2026-01-27 20:54:24 +01:00
Matthias Koefferlein 94a425da0d WIP 2026-01-26 23:55:55 +01:00
Matthias Koefferlein b324f3f5cc Bugfix/enhancement: keeping clusters and nets in sync when joining nets. This will enhance robustness under presence of soft connection errors 2026-01-11 17:45:44 +01:00
Matthias Koefferlein 60a5dc1b8a Bugfix of 'evaluate_nets' function, added tests 2026-01-04 17:07:38 +01:00
Matthias Koefferlein 989f80e1a6 Using floats for Polygon::smooth distance checks, so that precise measurements are taken 2025-12-22 21:02:22 +01:00
Matthias Koefferlein 0bb0cb4a12 WIP 2025-12-01 00:28:43 +01:00
Matthias Koefferlein d8d53fb328 Merge remote-tracking branch 'origin/devel' 2025-11-09 21:14:39 +01:00
Matthias Koefferlein 89cc79cbbc Fixing issue #2208
Problem was rounding that lead to incorrect distance measurements
between parallel edges when one edge was very short.
2025-11-08 23:45:09 +01:00
Matthias Koefferlein 289facd5ee Merge branch 'master' into devel 2025-10-26 16:36:03 +01:00
Matthias Koefferlein fc3185165f Added some tests 2025-10-25 17:16:13 +02:00
Matthias Koefferlein 4ee73b5f86 Added one more test 2025-10-23 18:50:44 +02:00
Matthias Koefferlein 853a7d7a13 Refinement of HM fix 2025-10-23 00:25:47 +02:00
Matthias Koefferlein 810f5fb8aa Added basic fill tool tests for exclude_area 2025-09-06 21:25:47 +02:00
Matthias Koefferlein 8901359957 Merge branch 'master' into devel 2025-09-06 13:26:11 +02:00
Matthias Koefferlein 90ed8a2390 Excluding degenerated edges from polygons so we don't consider them corners, addressing duplicate corners with zero distance. 2025-09-05 23:48:49 +02:00
Matthias Koefferlein 53c173d01e [consider merging] avoid a warning on writing cells/files in 'under_construction' mode when there is nothing to update 2025-08-30 21:49:27 +02:00
Matthias Koefferlein 0187abfafc [consider merging] Bugfix: internal error when trying to replace a shape in a standalone Shapes collection while preserving properties 2025-08-30 19:37:12 +02:00
Matthias Koefferlein 7667932a00 Some adjustments:
* Fixed instance marker when the cell is made from empty ones only
* 'fit' will include empty instances
2025-08-10 16:49:51 +02:00
Matthias Koefferlein bdbf690764 Added some tests 2025-08-10 16:11:57 +02:00
Matthias Koefferlein 381baf7453 Merge remote-tracking branch 'origin/master' into feature/measurements 2025-08-03 19:53:06 +02:00
Matthias Koefferlein 8a5e83bf5d Consistently differenting between double and int values as property keys (otherwise there may be a confusing mix present in the property repository) 2025-08-03 19:46:31 +02:00
Matthias Koefferlein 61aa08cd64 Added tests for more features 2025-08-02 22:23:03 +02:00
Matthias Koefferlein c3ba0acc02 Added unit test 2025-08-02 21:43:39 +02:00
Matthias Koefferlein ffafebcaae Adding 'merge_props' and 'merged_props' to DRC 2025-08-02 16:12:49 +02:00
Matthias Koefferlein f9ea9af466 Fixed unit tests 2025-08-02 15:13:23 +02:00
Matthias Koefferlein 4b79c4c362 Fixing backward compatibility issue with pseudo-labels
Problem: pseudo-labels are represented by polygons with
properties. If those get merged onto normal polygons
with "join_properties_on_merge", these are regarded
labels and translated to texts later. We avoid this
by skipping all objects with pseudo-label properties
on region merge in "join_properties_on_merge" mode.
2025-08-01 22:59:38 +02:00
Matthias Koefferlein 786c60a28e Fixing unit tests 2025-07-31 23:54:55 +02:00