Commit Graph

4978 Commits

Author SHA1 Message Date
Matthias Koefferlein 7f16c7b597 Fixed doc 2024-04-01 20:24:43 +02:00
Matthias Koefferlein 2dc9df3f40 Updated documentation with example 2024-03-31 22:23:23 +02:00
Matthias Koefferlein 4809c06091 Implemented editor hooks for partial mode too. Integrated modification events into edit protocol 2024-03-31 22:10:24 +02:00
Matthias Koefferlein 1c284b0939 Editor hooks for move operations 2024-03-31 19:26:22 +02:00
Matthias Koefferlein 00bc208e3f Merge branch 'master' into editor-hooks 2024-03-31 10:39:00 +02:00
Matthias Koefferlein ed486a687d Merge remote-tracking branch 'remotes/mine/master' 2024-03-31 10:37:20 +02:00
Matthias Koefferlein 3836874b8f Enhanced Euclidian visualization 2024-03-31 10:30:04 +02:00
Matthias Koefferlein eb1ac4903e Refinement of solution for DRC hull generator, still not perfect. 2024-03-30 22:34:26 +01:00
Matthias Koefferlein 03d77bbff6 Region#drc_hull for generating DRC space forbidding region visualizations 2024-03-30 22:01:39 +01:00
Matthias Koefferlein 6c8ff49bc7 Added a test for post-increment iterator of tl::Object collections 2024-03-30 20:56:24 +01:00
Matthias Koefferlein f087a579af Refactoring of the editor hooks API 2024-03-30 20:53:43 +01:00
Matthias Koefferlein 2e5d395a59 Fixed a typo (thanks, Stefan) 2024-03-30 19:48:02 +01:00
Matthias Koefferlein b4d1a4a954 First draft 2024-03-30 19:11:15 +01:00
Matthias Koefferlein 7e8ce51da2 post-increment operators must not use the int argument (it is zero) 2024-03-30 16:48:01 +01:00
Matthias Koefferlein 1868dcc104 Copy ctor, swap and move for tl::shared_collection and tl::weak_collection 2024-03-30 09:36:20 +01:00
Matthias Koefferlein d1216b5891 WIP 2024-03-30 00:30:36 +01:00
Matthias Koefferlein 80d1aad90a WIP 2024-03-30 00:21:16 +01:00
Matthias Koefferlein 876215f6c7 WIP 2024-03-30 00:12:24 +01:00
Matthias Koefferlein b40a7f9575 WIP 2024-03-29 22:59:12 +01:00
Matthias Koefferlein c43b70b783 Shape#hash and Shape#< allow using Shape objects as hash keys 2024-03-29 21:47:37 +01:00
Matthias Köfferlein 4f67ae5261
Merge pull request #1657 from KLayout/1598-support-for-soft-connections
1598 support for soft connections
2024-03-29 18:27:14 +01:00
Matthias Koefferlein 69423e37ac Merge branch 'master' of github.com:KLayout/klayout 2024-03-29 14:07:59 +01:00
Matthias Köfferlein bc4d258cb3
Merge pull request #1667 from KLayout/issue-1356
Issue 1356
2024-03-29 14:06:05 +01:00
Matthias Koefferlein bdb8389420 Merge branch 'master' of github.com:KLayout/klayout 2024-03-29 13:51:55 +01:00
Matthias Koefferlein 6ac1c32a8d Merge branch 'master' into 1598-support-for-soft-connections 2024-03-29 09:00:17 +01:00
Matthias Köfferlein 555354090f
Merge pull request #1664 from KLayout/issue-1662
Issue 1662
2024-03-29 08:58:31 +01:00
Matthias Köfferlein 4c5aeff1b3
Merge pull request #1663 from KLayout/issue-1638
Issue 1638
2024-03-29 08:58:17 +01:00
Matthias Köfferlein 974756536f
Merge pull request #1661 from KLayout/issue-1643
Issue 1643
2024-03-29 08:58:03 +01:00
Matthias Köfferlein 0091292f7c
Merge pull request #1660 from KLayout/issue-1651
Fixing issue #1651 (errors when adding polygons with 4 points) - need…
2024-03-29 08:57:41 +01:00
Matthias Köfferlein f6ad535761
Merge pull request #1659 from KLayout/issue-1656
Issue 1656
2024-03-29 08:57:26 +01:00
Matthias Köfferlein 467c8c7527
Merge pull request #1650 from KLayout/issue-1632
Fixed issue #1632 (at least partially): introducing non-const version…
2024-03-29 08:56:55 +01:00
Matthias Köfferlein 14a16f8461
Merge pull request #1646 from KLayout/xor-performance
Xor performance
2024-03-29 08:56:44 +01:00
Matthias Koefferlein 529d69c901 regenerating stubs and DRC/LVS doc. 2024-03-28 22:11:47 +01:00
Matthias Koefferlein 0685d80012 Fixed doc. 2024-03-28 21:32:54 +01:00
Matthias Koefferlein b5ee7d3892 Fixed problem with image on Color Buttons in 'Auto' mode - pixel garbage 2024-03-28 21:07:11 +01:00
Matthias Koefferlein e0e6017a80 Need to differentiate test results between editable and non-editable mode 2024-03-28 21:06:00 +01:00
Matthias Koefferlein 7080ed9a0c Refined XOR optimization solution such that it is compatible with deep mode and 'wants_all_cells', added more tests 2024-03-28 20:57:19 +01:00
Matthias Koefferlein cb5a1f7d3e Refining shape iterator optimization, so it checks instances for overlap with shapes rather the other way round. This suits better to real test cases. 2024-03-27 23:46:33 +01:00
Matthias Koefferlein 5699c91d3f Some utility features derived from the latest code changes
- Subtraction of boxes (pya/RBA: Box minus operator)
- Shape#rectangle, Shape#drectangle
- EdgePairs#write, Edges#write, Texts#write, Region#write for
  debugging
2024-03-26 21:48:38 +01:00
Matthias Koefferlein 3fc32e77c3 Added full-circuit test for recursive shape iterator 2024-03-26 19:15:50 +01:00
Matthias Koefferlein 40a8f21f9c Simplified optimization as performance was bad. 2024-03-26 01:05:35 +01:00
Matthias Koefferlein 254f598a08 Deploying solution for XOR tool. Needs testing. 2024-03-24 23:03:08 +01:00
Matthias Koefferlein b4c7176c52 Bug fixing 2024-03-24 22:45:58 +01:00
Matthias Koefferlein 3cf8b29699 RecursiveShapeIterator debugging 2024-03-24 21:57:39 +01:00
Matthias Koefferlein b9bdcf6fac Preparations: recursive shape iterator shortcuts if hierarchy traversal, needs testing. 2024-03-24 19:01:36 +01:00
Matthias Koefferlein 1673c472f2 [consider merging] fixed a linker problem for debug builds 2024-03-24 17:37:17 +01:00
Matthias Koefferlein bc3895ac9f Merge branch 'master' into xor-performance 2024-03-24 12:55:11 +01:00
Matthias Koefferlein 735d2101fd Fixed Qt-less builds 2024-03-24 12:53:18 +01:00
Matthias Koefferlein 376058f34b Implemented fix for issue-1662 (Strong default grids) 2024-03-24 12:48:53 +01:00
Matthias Koefferlein 3b0a34b955 [consider merging] Avoid a segfault when changing the default grids. 2024-03-24 12:31:44 +01:00
Matthias Koefferlein 9125ed7035 [consider merging] fixed a linker problem for debug builds 2024-03-24 12:23:27 +01:00
Matthias Koefferlein 8a0a6cad04 Refactoring solution such that loading a layout file into a marker database also works from command line (-m) and scripts 2024-03-24 11:29:18 +01:00
Matthias Koefferlein e2df385f2d First version of fix for issue-1638 (let klayout marker browser read strmxor .. xor.gds.gz, xor.oas result files) 2024-03-24 11:05:48 +01:00
Matthias Koefferlein bcfbd50ad6 Some polishing 2024-03-23 23:02:42 +01:00
Matthias Koefferlein add0ad4c39 Issue-1356: Reversed row/column order for arrays 2024-03-23 22:51:09 +01:00
Matthias Koefferlein 97a33f8d66 Trying to fix a linker issue on MSYS 2024-03-23 20:51:27 +01:00
Matthias Koefferlein 54273206a7 More robust tests 2024-03-23 20:18:38 +01:00
Matthias Koefferlein 4cacb60f26 Fixed an issue with property constraints 2024-03-23 19:55:16 +01:00
Matthias Koefferlein a6d2930f80 Fixed issue #1643 (Feeding the same layer to two-layer operations in deep mode does not render the desired result) by implementating the identical layer case as an exception for booleans and interactions 2024-03-23 19:37:27 +01:00
Matthias Koefferlein e1b041113a [consider merging] fixed a linker problem for debug builds 2024-03-23 19:23:21 +01:00
Matthias Koefferlein 20fd5a54a7 Tests 2024-03-23 17:01:07 +01:00
Matthias Köfferlein 8f8a7d0d65
Merge pull request #1647 from KLayout/lvs-issues
Lvs issues
2024-03-23 15:46:06 +01:00
Matthias Köfferlein 206e271ee3
Merge pull request #1649 from KLayout/wip
Wip
2024-03-23 15:45:52 +01:00
Matthias Köfferlein f2d88e4730
Merge pull request #1648 from KLayout/wip2
Wip2
2024-03-23 15:45:39 +01:00
Will Shanks b962514767
Add include needed for git_error_set_str for libgit2>=1.8 (#1658)
`git_error_set_str` was moved into the `sys` subdirectory in libgit2
1.8.0. See [this pull
request](https://github.com/libgit2/libgit2/pull/6625) for details and
[this issue](https://github.com/libgit2/libgit2/issues/6776) for more
context.
2024-03-23 15:44:04 +01:00
Matthias Koefferlein 38a3b8305e Fixing issue #1651 (errors when adding polygons with 4 points) - needs some testing 2024-03-23 15:24:18 +01:00
Matthias Koefferlein b4d170fa66 Implemented issue #1656 (Display-->Goto Position dialog should accept + as well as - for number prefixes) 2024-03-23 14:53:34 +01:00
Matthias Koefferlein fe61627b96 Some cleanup 2024-03-23 08:45:38 +01:00
Matthias Koefferlein a79d286f61 Cleanup 2024-03-22 23:27:08 +01:00
Matthias Koefferlein 1874e95d67 Doc update 2024-03-22 23:26:52 +01:00
Matthias Koefferlein 554fff1d23 Added a large test case for soft connections 2024-03-22 22:44:58 +01:00
Matthias Koefferlein 91dae8b471 [consider merging] stray bug: fixed a small issue with error messages on missing resources (redundant 'ERROR') 2024-03-22 22:36:59 +01:00
Matthias Koefferlein f4df6ec4ff Doc updates 2024-03-22 19:04:13 +01:00
Matthias Koefferlein 10cf9c0bb6 More tests 2024-03-21 22:46:05 +01:00
Matthias Koefferlein 917439b84e New testdata, bugfix: considering the case of partial net formation through soft, upward inter-instance connections. Enhanced reporting (report multiple partial nets of the same circuit at different instances) 2024-03-21 21:31:20 +01:00
Matthias Koefferlein 366249645a Another test 2024-03-20 23:37:10 +01:00
Matthias Koefferlein 265b5680de Added soft-connect test for valid layout 2024-03-20 23:29:25 +01:00
Matthias Koefferlein 400becb6b6 Bugfix: proper handling of soft-connected instance connectors 2024-03-20 02:03:53 +01:00
Matthias Koefferlein a0122f49d9 Netlist browser: log tab will be visible also for L2N database now 2024-03-19 23:25:50 +01:00
Matthias Koefferlein 33d8befa1b [consider merging] avoid a segfault when loading a l2n db with '-mn' into KLayout 2024-03-19 21:25:06 +01:00
Matthias Koefferlein a04bcbc9a3 Some refactoring (renaming) 2024-03-19 20:41:42 +01:00
Matthias Koefferlein 92a9b49139 Added images for doc 2024-03-17 23:08:20 +01:00
Matthias Koefferlein 3011e77439 Need to differentiate between non-connected pins and pins with up+down connection - introducing a pin direction mode 2024-03-17 20:42:30 +01:00
Matthias Koefferlein 203a62f0af Place diodes in debug mode for soft connections, but still generate log entries 2024-03-17 20:41:45 +01:00
Matthias Koefferlein 6f48893cdb Enabling special mode (hidden) for generating diodes for soft connections 2024-03-17 20:40:44 +01:00
Matthias Koefferlein c04d468c55 Providing log entries with indents (for details) 2024-03-17 20:40:11 +01:00
Matthias Koefferlein 8984531a8c Small enhancements of netlist browser: multiple items can be selected in log view (for manyfold geometries), highlights are cleared on tab change 2024-03-17 18:36:49 +01:00
Matthias Koefferlein b10cda574c Reporting 2024-03-17 17:39:39 +01:00
Matthias Koefferlein b9baa24d3a Refactoring (split source code file) 2024-03-16 21:56:39 +01:00
Matthias Koefferlein 9ab7a5a84f Soft connection analysis, first algorithm 2024-03-16 21:38:35 +01:00
Matthias Koefferlein db2ae89521 WIP 2024-03-16 19:03:41 +01:00
Matthias Koefferlein 5e95b32ac4 WIP 2024-03-16 00:10:35 +01:00
Matthias Koefferlein 44edd8d26a Added a regression test for netlist extractor with soft connections 2024-03-16 00:02:44 +01:00
Matthias Koefferlein 417309acf1 Added a basic test 2024-03-15 23:15:21 +01:00
Matthias Koefferlein 5fbb57750b WIP 2024-03-15 22:02:57 +01:00
Matthias Koefferlein 92f887c319 WIP 2024-03-14 23:27:06 +01:00
Matthias Koefferlein befbde0f43 WIP 2024-03-14 22:14:20 +01:00
Matthias Koefferlein c4fb287eb7 [consider merging] robustness of cross reference view against temporary loss of xref object reference 2024-03-14 19:36:19 +01:00
Matthias Koefferlein dca287b724 WIP 2024-03-14 01:02:56 +01:00
Matthias Koefferlein 6db937d9df WIP 2024-03-14 00:22:46 +01:00
Matthias Köfferlein fa14afbbf3
Pcell limits (#1654)
* Klayout PyCell integration
-added tl::optional as derivate of std::optional for c++17 and above, reduced
 implementation otherwise
-fixed missing include for c++17 and above
-added range constraints for PCell parameter

Signed-off-by: ThomasZecha <zecha@ihp-microelectronics.com>

* tl::optional now based on internal implementation, added tests and tl::to_string binding

* Refactoring the range into min_value and max_value attributes without action and resolution.

* Integration of feature into PCell framework

* Cleanup and fixed some compile issues

* Cleanup, added tests

* [consider merging] Added pymod distutil_src files to dependencies.

* Updated Python stubs

* User feedback: upon entering an invalid value string into an edit box, do not reset the field

---------

Signed-off-by: ThomasZecha <zecha@ihp-microelectronics.com>
Co-authored-by: ThomasZecha <zecha@ihp-microelectronics.com>
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-03-13 21:50:48 +01:00
Matthias Koefferlein 8de70c742a WIP 2024-03-13 00:25:19 +01:00
Matthias Koefferlein 89c281f87a Integration API into LVS+DRC 2024-03-12 23:24:54 +01:00
Matthias Koefferlein 2d91f7f90c [consider merging] Bugfix: connect_explicit did not accept an array of nets as single argument 2024-03-12 00:08:52 +01:00
Matthias Koefferlein d87e3de436 Merge branch 'lvs-issues' into 1598-support-for-soft-connections 2024-03-11 22:50:51 +01:00
Matthias Koefferlein 59a572344c [consider merging] Bugfix: connect_explicit did not accept an array of nets as single argument 2024-03-11 22:42:33 +01:00
Matthias Koefferlein fd8ca56caf Some tests for Connectivity 2024-03-11 21:14:00 +01:00
Matthias Koefferlein 284a907ffb First steps: equipping the Connectivity object with soft connections 2024-03-10 23:35:56 +01:00
Matthias Koefferlein 7c4133b9e4 Fixed issue #1632 (at least partially): introducing non-const versions of RDB iterators and access methods 2024-03-09 21:54:17 +01:00
Matthias Koefferlein d60583a9b4 Robustness of tests 2024-03-09 18:46:45 +01:00
Matthias Köfferlein 230bacf725
Merge pull request #1601 from KLayout/drc-procs-and-filters
Region/Edges/EdgePairs/Texts operators and filters
2024-03-09 18:10:37 +01:00
Matthias Köfferlein 408a30164e
Maybe fixing weird menu texts (issue #1631) (#1634)
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-03-09 09:36:08 +01:00
Matthias Koefferlein 8886c152be Changing location of test file so we don't spoil WebDAV tests from previous versions 2024-03-09 09:35:24 +01:00
Matthias Koefferlein d906f870b0 Warning level was ignored for some warnings in LEF/DEF reader 2024-03-09 01:22:32 +01:00
Matthias Koefferlein a92029b722 Merge branch 'master' into drc-procs-and-filters 2024-03-09 01:21:56 +01:00
Matthias Koefferlein 30df7a708e Merge branch 'master' into wip 2024-03-09 01:18:43 +01:00
Matthias Koefferlein ffffe7327c Preparing for merge with master 2024-03-09 01:10:34 +01:00
Matthias Koefferlein 1c836de07e Merge branch 'master' into xor-performance 2024-03-09 01:02:07 +01:00
Matthias Koefferlein 45950f20d6 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.
2024-03-09 01:00:52 +01:00
Matthias Koefferlein 856fe4a8d3 LVS: Consider net names identical that differ in signal type suffix only - e.g. 'NET:I' is identical to 'NET' 2024-03-09 00:59:48 +01:00
Matthias Koefferlein 091995a5ff Limit effort spent on analyzing failed matches in LVS compare 2024-03-09 00:59:43 +01:00
Matthias Koefferlein 5597eceece Region#edges: Don't include an polygon to edge processor unless required 2024-03-07 23:03:36 +01:00
Matthias Koefferlein 28e96ee0c3 Added not_... versions of edge modes 2024-03-07 22:29:33 +01:00
Matthias Koefferlein ab5f215417 DRC doc 2024-03-07 22:08:45 +01:00
Matthias Koefferlein 853de5b0ae Introducing edge modes for DRC 'edges' function - allows easy extraction of convex edges only 2024-03-07 21:51:52 +01:00
Matthias Koefferlein 156f0f4477 More consistent behavior of dots in context of booleans, added tests
dots vs. polygon booleans now work as well.
This includes "&" and "-" and "inside_part", "outside_part"
and the "split_..." versions.
2024-03-07 18:34:12 +01:00
Matthias Koefferlein d505767bf1 Added test for edge interactions with count 2024-03-07 15:30:52 +01:00
Matthias Koefferlein 9d6a6258aa edge merge does not destroy dots now 2024-03-06 22:17:01 +01:00
Matthias Koefferlein 4ecf6a9ce1 Edge vs. dot booleans for edge collections 2024-03-06 21:46:33 +01:00
Matthias Koefferlein fc787b19e3 Flat edge booleans enhancements
- Basic support for dots (only dots-vs.-dots)
- Some shortcuts for efficiency
2024-03-06 18:46:52 +01:00
Matthias Koefferlein 91e68cef02 Fixed a number of issues with edge booleans in deep mode
- andnot was falling back to flat
- "intersections" with second argument empty was delivering wrong results
- output of "intersections" is raw now to preserve dots
- enhanced tests for these cases
2024-03-06 17:39:30 +01:00
Matthias Koefferlein 03b04daa61 texts_as_dots returns raw edges (dots must not be merged) 2024-03-03 23:51:03 +01:00
Matthias Koefferlein f9b4bb13c8 aligning deep and flat edge collections with respect to handling of degenerated edges 2024-03-03 23:24:51 +01:00
Matthias Koefferlein 65ccbabc26 Updating db::Edges tests 2024-03-03 22:58:13 +01:00
Matthias Koefferlein 80b86878b5 Added tests for new edge features 2024-03-03 22:35:39 +01:00
Matthias Koefferlein 8e09dfc016 Edge boolean robustness improvement 2024-03-03 22:35:14 +01:00
Matthias Koefferlein db168d8a55 Considering degenerated edges for partial edge selectors 2024-03-03 22:34:19 +01:00
Matthias Koefferlein 8b6ed7f663 Update of testdata, edge 'outside' needs merged input too. 2024-03-02 21:40:57 +01:00
Matthias Koefferlein c532a3a7e6 WIP 2024-03-02 19:32:51 +01:00
Matthias Koefferlein ebc96d8de4 [consider merging] Bugfix: 'edge outside polygon' now consistently ignores the border of the polygon 2024-03-02 19:32:33 +01:00
Matthias Koefferlein c5433a349a WIP 2024-03-02 17:55:13 +01:00
Matthias Koefferlein 863935d664 WIP 2024-03-02 17:28:09 +01:00
Matthias Koefferlein df3205282d WIP 2024-03-02 16:57:23 +01:00
Matthias Koefferlein 1e323a0421 WIP 2024-03-01 23:32:22 +01:00
Matthias Koefferlein a431f70ad4 Polygon#break, DPolygon#break, SimplPolygon#break, DSimplePolygon#break 2024-02-29 22:57:28 +01:00
Matthias Koefferlein c2187e0bf0 OASIS reader creates layers listed in layer map also if empty 2024-02-29 22:31:23 +01:00
Matthias Koefferlein 26fc81624c Updating tests 2024-02-29 21:45:56 +01:00
Matthias Koefferlein 9548f5109a Implementing automatic .gz support for https and pipe URIs 2024-02-29 21:42:32 +01:00
Matthias Koefferlein 012447c31b Fixed a small flaw: pipe stream did not report source in errors 2024-02-28 22:41:09 +01:00
Matthias Koefferlein f7411b52d2 Fixed a typo in DRC doc of 'corners' 2024-02-21 22:20:20 +01:00
Matthias Koefferlein 4789e2effb Merge tag 'v0.28.17' 2024-02-18 22:30:05 +01:00
Matthias Koefferlein 890b389102 Merge branch 'wip2' 2024-02-18 22:27:17 +01:00
Matthias Koefferlein 8947c9992f Added configuration options for XOR tool to switch between with merge-before and without. 2024-02-17 21:20:52 +01:00
Matthias Koefferlein 5187ddbfc0 Do not insert the same point twice into edge set in EdgeProcessor - this improves performance in the case of manifold intersecions in one point. Also: added edge count API 2024-02-17 21:20:24 +01:00
Matthias Koefferlein 250c23eb97 Update of Python stubs 2024-02-16 15:51:40 +01:00
Matthias Koefferlein 0e15fa0ed2 GSI binding for tech specific grids 2024-02-16 15:21:03 +01:00
Matthias Koefferlein 4ed64fdfa1 GSI binding for tech specific grids 2024-02-16 15:19:32 +01:00
Matthias Koefferlein 1094fd2dd8 Merge branch 'master' into tech-specific-grids 2024-02-16 15:02:52 +01:00
Matthias Köfferlein 859a09bbeb First proposal for feature (#1626)
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-15 13:34:26 +01:00
Matthias Köfferlein 0270c5dc19 Issue 1623 (#1624)
* Fixing issue #1623 (Package installation with '-y' from command line does not work for URL or file)

* Another bugfix: package installation with -y from file structure did not work as 'grain.xml' is not added to grain URL

---------

Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-12 16:59:15 +01:00
Matthias Köfferlein b799391ec9
Issue 1623 (#1624)
* Fixing issue #1623 (Package installation with '-y' from command line does not work for URL or file)

* Another bugfix: package installation with -y from file structure did not work as 'grain.xml' is not added to grain URL

---------

Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-12 16:58:09 +01:00
Matthias Koefferlein 1e7bd5b765 Updating Pythong stubs and doc. 2024-02-12 11:36:28 +01:00
Matthias Köfferlein 1eefbf35ad Maybe fixing issue #1619 (crash on Fedora-39 upon initialization) (#1622)
* Maybe fixing issue #1619 (crash on Fedora-39 upon initialization)

* Python 3.6 compatibility

---------

Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-12 08:41:46 +01:00
Matthias Köfferlein 9a94b5f535 Maybe fixing issue #1602 (#1621)
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-12 08:41:40 +01:00
Matthias Köfferlein 0c02976cdd DRC switch to exclude the kissing corner configuration (and more) (#1600)
* Some refactoring, introducing new configuration option for edge pair check core algorithm for zero distance handling.

* Bugfix

* Renaming for clarification of collinear edges vs. distance which is defined otherwise.

* Implemented low-level option for collinear edge handling in Edges and Region

* DRC integration of new features

* Simple test for collinear mode feature

* Updating documentation

* Experiment: extending collinear mode towards 'zero distance'

* DRC 'collinear mode' becomes 'zero distance mode'

With this change, the default implementation for kissing corners
is changed from collinear edges only to touching edges in general.

The original mode can be restored by using:

l1.space(600.nm, DRCZeroDistanceMode::new(RBA::ZeroDistanceMode::IncludeZeroDistanceWhenCollinearAndTouching)).output(103, 0)

* Adding test data

* Fixed unit tests

* Fixed unit test

* Renamed new DRC options to: without_touching_corners and without_touching_edges as this is more consistent

* Fixed GSI binding, so no internal error is thrown when generating the doc

---------

Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-12 08:41:35 +01:00
Matthias Köfferlein cc7622b6b4
Maybe fixing issue #1619 (crash on Fedora-39 upon initialization) (#1622)
* Maybe fixing issue #1619 (crash on Fedora-39 upon initialization)

* Python 3.6 compatibility

---------

Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-12 08:40:39 +01:00
Matthias Köfferlein a4ab59ba6f
Maybe fixing issue #1602 (#1621)
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-12 08:40:23 +01:00
Matthias Köfferlein a1c08c0f89
DRC switch to exclude the kissing corner configuration (and more) (#1600)
* Some refactoring, introducing new configuration option for edge pair check core algorithm for zero distance handling.

* Bugfix

* Renaming for clarification of collinear edges vs. distance which is defined otherwise.

* Implemented low-level option for collinear edge handling in Edges and Region

* DRC integration of new features

* Simple test for collinear mode feature

* Updating documentation

* Experiment: extending collinear mode towards 'zero distance'

* DRC 'collinear mode' becomes 'zero distance mode'

With this change, the default implementation for kissing corners
is changed from collinear edges only to touching edges in general.

The original mode can be restored by using:

l1.space(600.nm, DRCZeroDistanceMode::new(RBA::ZeroDistanceMode::IncludeZeroDistanceWhenCollinearAndTouching)).output(103, 0)

* Adding test data

* Fixed unit tests

* Fixed unit test

* Renamed new DRC options to: without_touching_corners and without_touching_edges as this is more consistent

* Fixed GSI binding, so no internal error is thrown when generating the doc

---------

Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-12 08:40:00 +01:00
Matthias Koefferlein 4a89304152 Merge branch 'master' into wip2 2024-02-11 14:23:47 +01:00
Matthias Koefferlein 2ba48998fd Ported a test framework fix from master branch 2024-02-11 13:58:40 +01:00
Matthias Koefferlein da3e7ab4f7 [consider merging] Removed some debug nonsense 2024-02-11 13:05:57 +01:00
Matthias Koefferlein db7b8d19a8 [consider merging] Removed some debug nonsense 2024-02-11 13:05:37 +01:00
Matthias Köfferlein 26cb2be83e Lefdef all should not map boundary (#1614)
* As suggested by Stefan Thiede: LEF/DEF 'ALL' purpose should not match obs and fill

* Updated unit tests

---------

Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-11 10:39:28 +01:00
Matthias Köfferlein 97c746fbad
Lefdef all should not map boundary (#1614)
* As suggested by Stefan Thiede: LEF/DEF 'ALL' purpose should not match obs and fill

* Updated unit tests

---------

Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-11 10:38:53 +01:00
Matthias Köfferlein 4dc5981288 Fixed issue #1592 (DXF reader issue) (#1595)
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-11 10:38:02 +01:00
Matthias Köfferlein 09dea68e40
Fixed issue #1592 (DXF reader issue) (#1595)
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-11 10:37:47 +01:00
Matthias Köfferlein 386b5677f2 Fixed issue #1594 (#1596)
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-11 10:36:56 +01:00
Matthias Köfferlein 3ab442bfc0
Fixed issue #1594 (#1596)
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-11 10:36:44 +01:00
Matthias Köfferlein bae0870015 Fixed issue #1603 (weird layout of parameters) (#1612)
Also fixed a problem with icons that did not get hidden when visibility was changed.
This fix needed some rework of the layout scheme of PCell parameter pages.

Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-11 10:36:01 +01:00
Matthias Köfferlein 8d4da8b374
Fixed issue #1603 (weird layout of parameters) (#1612)
Also fixed a problem with icons that did not get hidden when visibility was changed.
This fix needed some rework of the layout scheme of PCell parameter pages.

Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-11 10:35:36 +01:00
Matthias Köfferlein 51bad461a1 Issue 1608 (#1615)
* Fixed issue #1608 (Device extractor error shape)

* New test data

* Add-on: pressing Esc on the netlist or marker browser clears markers

* Updated test data

---------

Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-11 10:34:44 +01:00
Matthias Köfferlein f37e37340c
Issue 1608 (#1615)
* Fixed issue #1608 (Device extractor error shape)

* New test data

* Add-on: pressing Esc on the netlist or marker browser clears markers

* Updated test data

---------

Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-11 10:34:21 +01:00
Matthias Köfferlein 5712c8a85c Issue 1609 (#1613)
* Fixed issue #1609 (Cell.read doesn't read LayoutMetaInfo)

This also includes some more functions:
- Layout#merge_meta_info, Layout#copy_meta_info
- Layout#clear_all_meta_info
- Cell#merge_meta_info, Cell#copy_meta_info

In addition, meta info is merged when importing a layout from
another file (Layout/Import -> Other Layouts into current).

* Meta info support in layout diff (for testing), implemented meta info merge for GDS and OASIS readers with special conflict resolution modes

* Undo support for meta info - this way we do not loose meta info when we delete a cell and undo

---------

Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-11 10:33:27 +01:00
Matthias Köfferlein df59641cad
Issue 1609 (#1613)
* Fixed issue #1609 (Cell.read doesn't read LayoutMetaInfo)

This also includes some more functions:
- Layout#merge_meta_info, Layout#copy_meta_info
- Layout#clear_all_meta_info
- Cell#merge_meta_info, Cell#copy_meta_info

In addition, meta info is merged when importing a layout from
another file (Layout/Import -> Other Layouts into current).

* Meta info support in layout diff (for testing), implemented meta info merge for GDS and OASIS readers with special conflict resolution modes

* Undo support for meta info - this way we do not loose meta info when we delete a cell and undo

---------

Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-11 10:32:56 +01:00
Matthias Koefferlein 3d9b665263 [consider merging] bugfix issue #1616 - typo in DRC doc 2024-02-11 10:29:22 +01:00
Matthias Koefferlein 5d74a5e8c6 [consider merging] OASIS Reader: error on duplicate CELLNAMEs 2024-02-11 10:29:18 +01:00
Matthias Koefferlein 58032a5d5a [consider merging] cross-hair cursor should not use selection default line width and styles (halo etc.) 2024-02-11 10:29:15 +01:00
Matthias Koefferlein a0dd7db96e [consider merging] Fixed rendering of color selector buttons on high-DPI screens 2024-02-11 10:29:12 +01:00
Matthias Köfferlein 787d9b481a Fixed issue #1610: leaking reference in Python debugger (#1618)
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-11 10:29:05 +01:00
Matthias Köfferlein 2be4066856
Fixed issue #1610: leaking reference in Python debugger (#1618)
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-11 10:27:53 +01:00
Matthias Koefferlein 1e1aa02251 [consider merging] bugfix issue #1616 - typo in DRC doc 2024-02-10 18:48:44 +01:00
Matthias Koefferlein babf799016 [consider merging] OASIS Reader: error on duplicate CELLNAMEs 2024-02-10 18:45:56 +01:00
Matthias Koefferlein aef8161c82 [consider merging] cross-hair cursor should not use selection default line width and styles (halo etc.) 2024-02-05 21:22:47 +01:00
Antony Lee 65e41aa270 Fix tabbing order in "Editor Options / Instance / Array Instance" UI.
Currently, in the Array Instance sub-UI that appears when inserting a new
array instance, trying to use the "tab" key to move through the entry
widgets results in going through them in a strange order (column step x,
column step y, row step y, row step x, dimension columns, dimension
rows).  This patch declares the correct tabbing order for the widgets.
2024-02-04 15:58:37 +01:00
Matthias Koefferlein dd9d2bfddd First proposal for feature 2024-02-03 22:42:21 +01:00
Matthias Koefferlein 1e51cf6901 Fixing Windows installation without path initialization file 2024-01-30 20:26:22 +01:00
Matthias Koefferlein 7a91a4fd42 [consider merging] Fixed rendering of color selector buttons on high-DPI screens 2024-01-30 00:11:30 +01:00
Matthias Koefferlein c4fee2cbc4 Fixed a linker issue 2024-01-28 23:51:37 +01:00
Matthias Koefferlein 7634c77c23 Generalization of polygon rasterizer to DPolygon for higher precision of pixel area values. 2024-01-28 23:18:49 +01:00
Matthias Koefferlein 596c6c0aac Grayscale rasterizer for Region 2024-01-28 22:27:02 +01:00
Matthias Koefferlein 1dbb3917c8 Edge-measure rulers too. 2024-01-28 19:02:51 +01:00
Matthias Koefferlein 9184bef6f8 Transient mode for auto-measure ruler 2024-01-28 18:25:02 +01:00
Matthias Koefferlein c1394eadef Disabled assignment and copy for operators and filter objects 2024-01-28 16:14:53 +01:00
Matthias Koefferlein 8d6125dd74 More processors and tests 2024-01-28 15:57:01 +01:00
Matthias Koefferlein ce88affa67 EdgePairs generic processor 2024-01-26 16:09:01 +01:00
Matthias Koefferlein b7277631c3 Renaming of 'processor' to 'operator' to avoid name clash with EdgeProcessor, added edge operators. 2024-01-26 15:19:44 +01:00
Matthias Koefferlein 1a126ede45 Generic polygon to polygon processors 2024-01-26 13:05:09 +01:00
Matthias Koefferlein 9fbc926d67 Generic filters also for edge pair, edge and text collections 2024-01-26 11:49:15 +01:00
Matthias Koefferlein 2dca4158f2 Some refactoring. 2024-01-26 10:30:03 +01:00
Matthias Koefferlein 0b77ef996b Removed unneccessary code 2024-01-25 23:27:39 +01:00
Matthias Koefferlein b34f539fe1 Generic filter for polygons 2024-01-25 23:10:12 +01:00
Matthias Koefferlein 4b7c117cfd Trying to fix one more unit test 2024-01-25 20:20:31 +01:00
Matthias Koefferlein 4f9effab7e Trying to fix Python 3.6 builds + tests 2024-01-25 13:35:23 +01:00
Matthias Koefferlein 01deb480bf Merge remote-tracking branch 'mine/fix-win-python' 2024-01-24 00:33:34 +01:00
klayoutmatthias ef4cbb045b On Windows, Python needs to have a proper PYTHONHOME, otherwise a warning is issued 2024-01-24 00:30:15 +01:00
Matthias Koefferlein 6ad1f3f73f Fixed a numerical issue leading to an infinite loop on some compilers 2024-01-23 16:31:46 +01:00
Matthias Koefferlein 9a52095dd0 Merge branch 'master' into wip 2024-01-07 17:25:11 +01:00
Matthias Koefferlein 0ae2ed49f8 Merge branch 'master' into wip 2024-01-06 17:28:51 +01:00
Matthias Köfferlein 3143b54bd9
Merge pull request #1588 from KLayout/issue-1586
Implementation of fix for issue #1586
2024-01-06 11:30:36 +01:00
Matthias Koefferlein f26fac58fd Implementation of fix for issue #1586
- the "to_dtrans" now behaves as expected
- the conversion constructors have been generalized by adding a 'dbu' argument
- the conversion constructors now are favoured instead of the to_xxx functions
- some of the to_xxx functions are ill-named and are deprecated
2024-01-05 23:24:50 +01:00
Matthias Koefferlein 88c3d30982 Implemented solution for issue #1583
- new attribute "title" for MainWindow to get and set title
  (includes extrapolation to add dynamic content)
- also added LayoutView#is_dirty for emulation of the
  standard behavior
- plus side effect: LayoutView#synchronous is now readable
2024-01-05 19:40:09 +01:00
Matthias Koefferlein ec7cf786d4 Initial tip dialogs should now appear on same screen than application 2024-01-04 17:02:18 +01:00
Matthias Koefferlein d9f41c1585 Now fixing unit tests for 32bit coordinates :( 2024-01-04 16:43:27 +01:00
Matthias Koefferlein 5e096bd433 Fixing unit tests for 64 bit coordinates 2024-01-04 00:33:21 +01:00
Matthias Koefferlein 38de2d685f Fixed 64bit coordinate mode: numerical stability for DRC and LVS enabling. Main problem is representation of the 'world' box which does not transform properly when going through double. 2024-01-03 01:57:27 +01:00
Matthias Koefferlein 2b4a583f05 Update copyright year 2024-01-01 17:27:59 +01:00
Matthias Koefferlein d248bfddf3 Updating copyright to new year 2024-01-01 17:06:23 +01:00
Matthias Koefferlein 7d74c265e5 Fixing issue #1539 (Misleading description in 'Flatten Cell') 2024-01-01 17:01:50 +01:00
Matthias Koefferlein c09f84919a Skip one test if no private test data 2023-12-29 23:21:08 +01:00
Matthias Koefferlein 36f531685c Fixed a test fail when private test data is not available 2023-12-29 23:18:07 +01:00
Matthias Koefferlein f335ab69af More compatibility with Ruby <2.7 2023-12-29 23:00:06 +01:00
Matthias Koefferlein b37002cf7f Compatibility with Ruby 2.0 2023-12-28 23:39:07 +01:00
Matthias Koefferlein 0b64241e13 Generalizing implementation for more Ruby versions. 2023-12-28 22:42:49 +01:00
Matthias Koefferlein 775c331bae Fixing an unit test 2023-12-28 22:33:47 +01:00
Matthias Koefferlein 6ceb77cf73 Trying to fix the ambiguity issue in Ruby < 3.0 with hash arguments vs. keyword arguments 2023-12-28 21:53:38 +01:00
Matthias Koefferlein 11fbad0104 eliminating some unnamed arguments 2023-12-28 21:35:14 +01:00
Matthias Koefferlein 61d99f9920 Keyword arguments: Doc updates 2023-12-28 20:44:34 +01:00
Matthias Koefferlein e2ba78185c Tests for GSI kwargs, test framework enhanced to print the total number of tests 2023-12-28 19:44:44 +01:00
Matthias Koefferlein f685fe3adf WIP: keyword arguments for expressions 2023-12-28 01:03:21 +01:00
Matthias Koefferlein 4a4db5ea6e [consider merging] Avoids a segfault
This happens when an expression returns a class
object and that is converted to a string.
2023-12-28 00:55:14 +01:00
Matthias Koefferlein 940ef5319a WIP: refinement of Python and Ruby support for keyword arguments. 2023-12-27 22:56:11 +01:00
Matthias Koefferlein 8f9b904d87 WIP: keyword arguments for Ruby 2023-12-27 22:17:39 +01:00
Matthias Koefferlein 702bcbe924 WIP: keyword arguments (for now: Python) + transformation alignment
pya.CplxTrans and pya.Trans are good classes for testing the
ability to resolve arguments through keyword parameters.

Keyword parameters are introduced to substitute positional
arguments.
2023-12-26 23:27:25 +01:00
Matthias Koefferlein b128ffc70b Avoid macro IDE events during update of the recent properties list (that is a problem when script errors are present) 2023-12-23 21:44:06 +01:00
Matthias Koefferlein 2db378b872 Fixed a merge issue 2023-12-23 18:28:56 +01:00
Matthias Koefferlein 92d04d2e15 Fixed some merge issues 2023-12-23 18:25:17 +01:00
Matthias Koefferlein d1695b88af Merge branch 'wip' 2023-12-23 18:05:54 +01:00
Matthias Köfferlein 2c59d4190f
Merge pull request #1570 from KLayout/issue-1569
Implemented solution for issue #1569
2023-12-16 20:29:16 +01:00
Matthias Koefferlein b39f28fcad Removed a duplicate line 2023-12-14 23:16:16 +01:00
Matthias Koefferlein 2a5b019730 Bonus track: 'visibility follows selection' 2023-12-14 23:11:16 +01:00