Commit Graph

5965 Commits

Author SHA1 Message Date
Matthias Koefferlein 937e557564 Implemented a fix for issue #2191 (LIBNAME not saved)
The fix consists of moving that options into the case-specific
options like DBU, instead of having it in the format-specific,
default writer options. So they can be specified on a per-case
basis and taken from the current layout by default.

Specifically:
* SaveLayoutOptions#gds2_libname is deprecated and replaced
  by SaveLayoutOptions#libname
* -ol (buddy tools) is no longer format specific
* The GDS writer takes SaveLayoutOptions#libname, and
  if empty, substitutes by the current libname. As last
  resort, "LIB" is used, because LIBNAME cannot be an
  empty string.
* The libname got removed from the global writer options UI
* In the "Save As" options dialog, it now is part of the global
  options and initialized with the current layout's libname.
2025-10-19 13:36:07 +02:00
Matthias Koefferlein 13af65270a Applied suggested patch for #2160 2025-10-19 12:10:36 +02:00
Matthias Koefferlein 19dc5e8edb Implemented a solution for #2180
Implements a new option to show/hide unresolved references
(ghost cells). The option is found in "Display/Cells"
in the Setup dialog and also in the View menu.
2025-10-18 23:40:50 +02:00
Matthias Koefferlein 0016710573 Preparations: more planes, for ghost cells too 2025-10-18 23:06:23 +02:00
Matthias Koefferlein 780615ea9d Implemented solution for issue #2176
- On "via" (Key "O"), the application switches into path mode
- A selection menu pops up if multiple layers are possible starting
  points below the cursor

As a side effect, "tap" will only display the layer selection menu
if there is more than one layer to be selected.
2025-10-18 22:02:58 +02:00
Matthias Koefferlein c927ed121b Solution for issue #2175
The solution consists of a new object, namely "TextInfo"
which allows deriving the true label bounding box from a
Text or DText object. See class documentation for details.
2025-10-18 19:26:17 +02:00
Matthias Koefferlein 3ca88ebfcb Fixed issue #2174 - two new events
1.) LayoutView#on_current_layer_changed(iter)
"iter" is the iterator pointing to the new current layer
Is called after the current layer (the highlighted layer)
changed.

2.) LayoutView#on_selected_layers_changed
Is called after the selected layer set changed.
2025-10-18 15:46:10 +02:00
Matthias Koefferlein 3a352506a9 Moving the checkbox as requested 2025-10-18 15:13:03 +02:00
Matthias Koefferlein 84c76096cb Fixed issue #2169: adding path to 'python' and 'ruby' subfolders to interpreter search path also for technologies, not only for packages. 2025-10-18 15:01:44 +02:00
Matthias Köfferlein 8cc01ca814
Merge pull request #2178 from KLayout/feature/issue-2168
Feature/issue 2168
2025-10-18 13:51:25 +02:00
Matthias Köfferlein 5c11f9201a
Merge pull request #2177 from KLayout/bugfix/issue-2173
Issue #2173 fixed
2025-10-18 13:51:13 +02:00
Matthias Köfferlein 77cc0be2ef
Merge pull request #2164 from KLayout/bugfix/issue-2162
Bugfix/issue 2162
2025-10-18 13:50:47 +02:00
Matthias Koefferlein ce0d619470 Force update of cell tree after rename of library 2025-10-15 22:35:27 +02:00
Matthias Koefferlein bbd473ef47 Added 'Cell#change_ref' to modify the library reference of a cell 2025-10-14 23:50:08 +02:00
Matthias Koefferlein b3cc5d73fe Renaming a library will also change the references 2025-10-14 23:13:10 +02:00
Matthias Koefferlein 572fa7db18 Issue #2173 fixed
- on_selection_changed is issued on "del"
- it is also issued on "reduce selection to highlighted ones" in property dialog
2025-10-12 21:29:39 +02:00
Matthias Koefferlein d1e440d565 Doc updates 2025-10-11 21:23:58 +02:00
Matthias Koefferlein 67de518611 'Refresh Libraries' feature in File menu, new GSI method Library#refresh_all (static) 2025-10-11 21:14:56 +02:00
Matthias Koefferlein 5045287712 Bugfixes 2025-10-11 19:26:11 +02:00
Matthias Koefferlein ff2beaf32f Bugfix: cells were not replaced by defunc cold proxies after unregistering a lib 2025-10-11 17:54:26 +02:00
Matthias Koefferlein b3ec482eb8 WIP (also for other issue #2172)
- New virtual method "reload" for Library
- Implementing that for file-based libraries
- Integrating that into "refresh"
- GSI binding for Library#rename, Library#unregister
- Trigger changed event on Library#unregister
- Library#_destroy will unregister the library
- Typos fixed
2025-10-11 16:24:25 +02:00
Matthias Koefferlein 17f4397f1b Refining solution 2025-09-28 20:17:52 +02:00
Matthias Koefferlein 31ddbe24fa Fixed a potential crash on application exit that was discovered during debugging 2025-09-28 16:25:35 +02:00
Matthias Koefferlein 292f6f84c6 Fixing issue #2162 (crash on selection + query)
Problem was that changing the active cellview index by clicking
on a specific item in the properties dialog cause a "clear_selection".
That interfered with the code of the properties dialog that
expects a static selection.

Fixed by disabling the events that lead to "clear_selection".
Side effect is that under these circumstances the active_cellview_changed
event is not triggered which also prevents side effects due to
scripts hooking into that event.
2025-09-28 16:14:11 +02:00
Matthias Koefferlein a93d514911 More sanity checks for cell index on various Layout methods 2025-09-28 14:46:30 +02:00
Matthias Koefferlein de72b05334 Moving code around so that laybasic can again be host for Plugin class - this enables putting that into the Python module without having Qt. 2025-09-24 23:17:43 +02:00
Matthias Koefferlein 97b6d82358 Moving lay.ButtonState, KeyCode and Cursor to Qt-less space again 2025-09-24 22:28:07 +02:00
Matthias Koefferlein 8b0a8c7317 Regenerating DRC doc and stubs 2025-09-11 22:13:52 +02:00
Matthias Koefferlein 0daba4f5e0 Fixing 64 bit coordinate build and incorrect porting of fill tool code. 2025-09-10 23:39:28 +02:00
Matthias Koefferlein 8659e165d5 Adjusting one sample 2025-09-10 18:21:59 +02:00
Matthias Köfferlein 0f739bcbef
Merge pull request #2146 from KLayout/devel
Devel
2025-09-10 16:02:48 +02:00
Matthias Koefferlein 788dd2b1bc Fixing non-Qt builds 2025-09-09 22:36:41 +02:00
Matthias Koefferlein e4789f7f1b Enhanced object snapping for box edit mode - other corners snap too second order 2025-09-09 21:52:40 +02:00
Matthias Koefferlein 879df5a85b [consider merging] LayoutView#clear_layer_list preserves layer list name now 2025-09-09 19:38:18 +02:00
Matthias Koefferlein 712237e67b Implemented solution for issue #2145 (default_text_size option for GDS2 writer) 2025-09-08 23:23:05 +02:00
Matthias Koefferlein 0ddc07392b [consider merging] suppress normalization of orientation on GSI DPolygon#to_itype and Polygon#to_dtype 2025-09-08 21:16:05 +02:00
Matthias Koefferlein e2b5c29131 Some refactoring, bug fix 2025-09-08 19:30:07 +02:00
Matthias Koefferlein 20a3dbeaf8 Some refactoring (generalizing edt:: functions, basing move tool on lay::EditorService and support for 'tab' key (calls 'move by') 2025-09-08 18:54:00 +02:00
Matthias Koefferlein e9584c289a Tab order of some dialogs 2025-09-08 00:11:24 +02:00
Matthias Koefferlein 7fd01a64f6 WIP: adding tab key to move tool (calls 'move by' menu), enhancing 'move_to' and 'move_by' dialogs. 2025-09-07 23:54:40 +02:00
Matthias Koefferlein aba1f87b0d Enhancement to layer binding for images: now saving as img::ObjectV2 if layer binding is present. This does not break old KLayout versions trying to read session files. But old KLayout version will still crash when trying to save such a session. 2025-09-07 22:51:31 +02:00
Matthias Koefferlein aa9d951cf7 Fixing build for old Qt versions 2025-09-07 21:43:23 +02:00
Matthias Koefferlein 128b1e596c [consider merging] MainWindow should be managed (derived from gsi::ObjectBase) 2025-09-07 21:40:07 +02:00
Matthias Koefferlein 3d5833d323 Updated doc 2025-09-07 18:49:14 +02:00
Matthias Koefferlein eb6369f90f Updated doc 2025-09-07 00:31:08 +02:00
Matthias Koefferlein cd34125b0c Bugfixing new implementation of fill tool, added tests for DRC implementation 2025-09-06 22:28:01 +02:00
Matthias Koefferlein 810f5fb8aa Added basic fill tool tests for exclude_area 2025-09-06 21:25:47 +02:00
Matthias Koefferlein feda8680ca WIP: exclude area implemented. Needs optimization. 2025-09-06 19:15:12 +02:00
Matthias Koefferlein ff6ab4267b WIP: exclude area for fill functions 2025-09-06 17:58:44 +02:00
Matthias Koefferlein 6ada4cb6f9 [consider merging] fixed build without Qt bindings 2025-09-06 13:41:14 +02:00
Matthias Koefferlein 8901359957 Merge branch 'master' into devel 2025-09-06 13:26:11 +02:00
Matthias Köfferlein 71929bf2be
Merge pull request #2143 from KLayout/feature/issue-2141
Feature/issue 2141
2025-09-06 13:25:28 +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 a9d52b7a70 Fixing case of point vs. edge in projecting mode 2025-09-05 08:05:27 +02:00
Matthias Koefferlein aed28098f2 First solution, needs more testing 2025-09-04 23:30:39 +02:00
Matthias Koefferlein af6762b52d Fixing issue #2134 ('merged' on edge layers not working in DRC) 2025-09-04 21:58:46 +02:00
Matthias Koefferlein 3b86448a0a Fixed issue #2133 (crash in editor search&replace) 2025-09-04 21:36:54 +02:00
Matthias Koefferlein 50cad403b2 Doc updates (vias, paths) 2025-09-04 20:46:30 +02:00
Matthias Koefferlein 3d8eaf8dbf Changed via key binding to 'O' 2025-09-04 20:27:43 +02:00
Matthias Koefferlein e6692a2fd0 Added LayoutView#layer_list_name as read access for LayoutView#rename_layer_list 2025-09-04 19:59:57 +02:00
Matthias Koefferlein 128f92c427 Doc update 2025-09-04 19:53:36 +02:00
Matthias Koefferlein 7f29cf91df Removing GSI methods which are no longer required as they are included in the base class now, added + fixed GSI unit tests for LayoutView 2025-09-04 19:50:51 +02:00
Matthias Koefferlein b3123d385a Updating samples to include focus pages 2025-09-04 19:24:49 +02:00
Matthias Koefferlein b9115fc0a2 WIP: Enhancements to EditorOptionsPages API
- Make RBA::LayoutViewBase derived from Dispatcher, so we can pass LayoutView
  to methods asking for a dispatcher
- For this, the Dispatcher needs to be the first base class of LayoutViewBase
  and gsiDeclLayDispatcher is moved to laybasic
- API for editor options pages and message passing (callbacks)
2025-09-03 00:02:18 +02:00
Matthias Koefferlein 0447080d17 WIP: polishing geometry of modal editor options widget 2025-09-02 21:21:00 +02:00
Matthias Koefferlein a24e2431a2 WIP: automatically calling ungrab_mouse on deactivation of plugin 2025-09-02 20:28:55 +02:00
Matthias Koefferlein 2b04ecb1f7 WIP: experimental - modal editor options pages 2025-09-02 00:45:42 +02:00
Matthias Koefferlein 53a7414757 Merge branch 'master' into devel 2025-08-31 21:53:43 +02:00
Matthias Köfferlein 70ba27c8f2
Merge pull request #2131 from KLayout/vias-development
Vias development
2025-08-31 21:53:12 +02:00
Matthias Koefferlein 1e570351fb Refactoring (GSI base class for EditorOptionsPage), preparations for 'focus_page' feature 2025-08-31 20:37:48 +02:00
Matthias Koefferlein a7518f5452 Fixing Python module builds 2025-08-31 19:38:22 +02:00
Matthias Koefferlein 84c518b057 Trying to fix Python module builds 2025-08-31 18:18:32 +02:00
Matthias Koefferlein e21eb6aafc Typo fixed 2025-08-31 17:52:04 +02:00
Matthias Koefferlein 4d9f924466 Refactoring: providing GSI binding to plugin base class, so the super implementation can be called. 2025-08-31 17:49:13 +02:00
Matthias Koefferlein 57a4984959 WIP: refactoring of heavy Plugin GSI binding functions 2025-08-31 15:50:26 +02:00
Matthias Koefferlein 43454962d4 Improving ruler snapping (after move_transform, snap to objects, visual snap details hint ...) 2025-08-30 23:30:51 +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 6a9269a9ae [consider merging] Bugfix: internal error when copying while move/copy operation of images and rulers 2025-08-30 21:30:15 +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 7f7a5bd3ac Bugfix: properly integrating newborn plugins 2025-08-30 18:55:16 +02:00
Matthias Koefferlein 340c1ef6e9 Some refactoring, editor options are shown more consistently now
Specifically, in move mode, now the editor options
are shown too. This makes sense as some of these
options there are also effective in move mode.
2025-08-30 18:39:41 +02:00
Matthias Koefferlein f1c16a0242 Adding samples for new plugin features, doc update. 2025-08-30 14:53:46 +02:00
Matthias Koefferlein e396b6ec29 WIP: bug fixes and more tests 2025-08-30 13:35:01 +02:00
Matthias Koefferlein b133bde1c7 WIP: doc updates 2025-08-30 13:24:30 +02:00
Matthias Koefferlein 7d2113ffe1 Some debugging, tests added 2025-08-30 00:34:35 +02:00
Matthias Koefferlein 3eff75433c WIP 2025-08-29 17:50:03 +02:00
Matthias Koefferlein c77a732875 WIP: more features exposed for plugins (snapping) 2025-08-28 23:38:04 +02:00
Matthias Koefferlein 90e25a7b75 WIP: debugging and polishing editor options pages interface for plugins 2025-08-27 00:12:55 +02:00
Matthias Koefferlein c5d5557072 WIP: debugging config page setup in plugins 2025-08-26 22:36:48 +02:00
Matthias Koefferlein 88178fabd9 [consider merging] Bugfix on Plugin registration
This bug happened when a plugin package was installed. In
this case, the plugin was installed dynamically. The effect
was for example that the grid in a view became invisible.
Problem was, that the plugin registration re-generated all
plugins from the view, but did not reconfigure them. Hence
the grid had the default setting which was invisible grid.
2025-08-26 21:06:25 +02:00
Matthias Koefferlein 9e0d1d7ea7 WIP: new GSI declarations 2025-08-25 23:06:18 +02:00
Matthias Koefferlein acfc2aae09 WIP: preparing integration of editor options pages and config pages into plugin API 2025-08-25 00:04:56 +02:00
Matthias Koefferlein ac9a589d6f WIP: two convenience methods for plugin API 2025-08-24 22:29:47 +02:00
Matthias Koefferlein 26682c1a38 Trying again to fix Windows builds 2025-08-24 21:54:42 +02:00
Matthias Koefferlein 2806efd803 Trying again to fix Windows builds 2025-08-24 21:43:59 +02:00
Matthias Koefferlein 626f5809bc Trying to fix Windows builds 2025-08-24 21:22:33 +02:00
Matthias Koefferlein f55a4824b7 Disabling features that are not used currently. 2025-08-23 23:05:14 +02:00
Matthias Koefferlein b079398b02 Added an editor hooks example for Ruby 2025-08-23 22:52:42 +02:00
Matthias Koefferlein 972514454b Added a Python sample for editor hooks 2025-08-23 20:54:20 +02:00
Matthias Koefferlein cad905eb63 Ruby via PCell sample 2025-08-23 20:45:08 +02:00
Matthias Koefferlein e2e4c1a827 Via PCell samples 2025-08-23 20:37:35 +02:00
Matthias Koefferlein 91946165fd Hardening: more consistent handling of current layer index in layer view (was deferred before and getter wasn't getting the latest value sometimes) 2025-08-23 20:36:49 +02:00
Matthias Koefferlein e1c9de67d8 Adding sample via PCell for Python 2025-08-23 19:39:03 +02:00
Matthias Koefferlein 4821a5d71a [consider merging] Bugfix on Plugin registration
This bug happened when a plugin package was installed. In
this case, the plugin was installed dynamically. The effect
was for example that the grid in a view became invisible.
Problem was, that the plugin registration re-generated all
plugins from the view, but did not reconfigure them. Hence
the grid had the default setting which was invisible grid.
2025-08-23 17:33:11 +02:00
Matthias Koefferlein d89aae6d97 Properly handling editor hooks on edit layer change - also on via 2025-08-23 16:08:42 +02:00
Matthias Koefferlein ee89bc43c4 Refactoring of edt services, bug fixes 2025-08-23 00:41:37 +02:00
Matthias Koefferlein ee0b5e3bd9 [consider merging] fixing a crash on 'show parameter names' in PCell dialog 2025-08-22 23:54:01 +02:00
Matthias Koefferlein 3068c1da29 WIP: introducing grids in vias 2025-08-22 23:46:24 +02:00
Matthias Koefferlein d77eb32db4 WIP: computation of via size, bug fixes 2025-08-22 23:21:53 +02:00
Matthias Koefferlein 3df715f078 WIP: some debugging 2025-08-21 22:32:22 +02:00
Matthias Koefferlein 59432fb6ed WIP: some rework, targetting proper use of recent attributes when entering an editor tool 2025-08-21 21:56:15 +02:00
Matthias Koefferlein 9137919894 WIP: Implementing initial via 2025-08-20 23:51:03 +02:00
Matthias Koefferlein d3d2eda54a WIP: undo, backspace implementation, bug fixes 2025-08-19 23:12:43 +02:00
Matthias Koefferlein 57cd512bf9 WIP: via up and via down 2025-08-18 23:33:44 +02:00
Matthias Koefferlein 331d16ab7c WIP: fixing undo, implement layout cleanup 2025-08-18 23:21:18 +02:00
Matthias Koefferlein 39c8e0ca15 WIP: some refactoring, introducing cut layer in via definition 2025-08-18 22:53:45 +02:00
Matthias Koefferlein 33ffa6367f WIP: updating via cell at the front of a path segment. 2025-08-17 22:54:11 +02:00
Matthias Koefferlein 42d32ecbb7 Some refactoring - putting some methods into db::Cell 2025-08-17 22:53:17 +02:00
Matthias Koefferlein 99462792bb Fixed a few build warnings. 2025-08-17 22:52:40 +02:00
Matthias Koefferlein d8e271339e WIP: some refactoring, vias switch layers now. 2025-08-17 21:50:02 +02:00
Matthias Koefferlein 0da4f694ca WIP: cleanup of handling of multi-CV cases for editing (use and switch to active CV), reuse previous configuration on switch or use of layer in editor features. 2025-08-17 19:44:59 +02:00
Matthias Koefferlein a1feb676ee WIP 2025-08-16 23:01:12 +02:00
Matthias Koefferlein 61ee2305eb [consider merging] Fixed marker display - don't render error layers, that's more difficult because of font selection etc., use contour for text labels 2025-08-16 22:35:41 +02:00
Matthias Koefferlein 6fdad4649a WIP 2025-08-16 21:44:41 +02:00
Matthias Koefferlein a4f3d9a33b [consider merging] More robust reading of session files and image strings 2025-08-16 20:01:32 +02:00
Matthias Koefferlein 5d253d3094 WIP 2025-08-16 19:17:58 +02:00
Matthias Koefferlein 0e1ba44eaf WIP 2025-08-16 18:05:32 +02:00
Matthias Koefferlein 8c53fb934e Merge branch 'devel' into vias-development 2025-08-16 16:49:36 +02:00
Matthias Koefferlein 491dd3bb26 Basic implementation of the 'layer binding' feature of issie #2116 2025-08-15 22:58:03 +02:00
Matthias Koefferlein a73aa1115f Preparations 2025-08-15 21:25:53 +02:00
Matthias Koefferlein 437c48c1fb Some refactoring (getting rid of an unused attribute) 2025-08-15 17:36:00 +02:00
Matthias Koefferlein 5bd74b73bb Enhancement: 'select highlighted objects' from properties dialog (object tree context menu) 2025-08-15 17:06:33 +02:00
Matthias Koefferlein 872eaabb75 Enhancement: 'relative' option of properties dialog is persisted now. 2025-08-15 15:24:00 +02:00
Matthias Koefferlein ef2b164e1a Bugfix: properly supporting Undo on 'apply technology' (layer properties were cleared) 2025-08-15 15:00:10 +02:00
Matthias Koefferlein 5eb8c760d8 Merge branch 'master' into devel 2025-08-15 14:21:13 +02:00
Matthias Köfferlein 681d7eeb4b
Merge pull request #2118 from KLayout/feature/issue-2110
Feature/issue 2110
2025-08-15 14:20:26 +02:00
Matthias Köfferlein c77fa56768
Merge pull request #2114 from KLayout/bugfix/issue-2111
Fixing issue #2111 (internal error on tesselation R extractor)
2025-08-15 14:19:59 +02:00
Matthias Koefferlein 513f87c07f Reverted drawing of text strings to text plane for cell names as then 'hide texts' would disable them. 2025-08-12 23:38:33 +02:00
Matthias Koefferlein 2e1afc846a Small bug fixed 2025-08-10 23:33:02 +02:00
Matthias Koefferlein 55171859cf Fixed display under presence of layer transformations 2025-08-10 21:34:17 +02:00
Matthias Koefferlein fdb28800f7 Introducing fallback transformation variants for empty layer lists. This allows editing layouts without any layers and only instances. 2025-08-10 21:29:53 +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 0e263ff4d8 Implemented solution for #2110 (small cells and ghost cells)
The solution consists of a second path to bounding boxes of
cells - namely "bbox_with_empty". This bounding box is a
(0,0;0,0)-box if the cell is empty. Correspondingly, empty
and ghost cells are displayed as single points. Ghost cells
also behave like hidden cells now.
2025-08-10 15:33:50 +02:00
Matthias Koefferlein 2c873bcbce WIP 2025-08-10 15:15:50 +02:00
Matthias Koefferlein 0bc904515c WIP 2025-08-10 15:13:10 +02:00
Matthias Koefferlein 75125b7a85 WIP 2025-08-10 14:34:22 +02:00
Matthias Koefferlein 1c15d851ee WIP 2025-08-10 13:59:26 +02:00
Matthias Koefferlein 786d231acd WIP 2025-08-10 13:51:47 +02:00
Matthias Koefferlein 651fc8cbc7 WIP 2025-08-10 13:49:22 +02:00
Matthias Koefferlein b4bbc26d6a WIP 2025-08-10 13:43:19 +02:00
Matthias Koefferlein 29cc603466 WIP 2025-08-09 23:54:01 +02:00
Matthias Koefferlein cb70620ad1 Fixing issue #2111 (internal error on tesselation R extractor)
Problem was a runaway triangulation case where outside edges
exist without being segments.
2025-08-09 18:40:24 +02:00
Matthias Koefferlein 6232db33b4 Fixing issue #2112 2025-08-09 00:52:55 +02:00
Matthias Koefferlein 8da28a0f72 Trying to fix issue #2108 2025-08-06 18:57:33 +02:00
Matthias Koefferlein b60210e076 Python stubs regenerated 2025-08-05 23:28:17 +02:00
Matthias Koefferlein 7ac32cec0b Removing debug code. 2025-08-05 20:58:07 +02:00
Matthias Koefferlein 847ec03f52 Bugfix: macros will be executed automatically again after package installation. Maybe less restarts needed. 2025-08-05 20:57:38 +02:00
Matthias Koefferlein 4dbc103523 Bugfix: File watcher was dropping files when they were temporarily unavailable 2025-08-04 18:47:39 +02:00
Matthias Koefferlein f289fa9483 A small enhancement (dbu argument in LayoutToNetlist#evaluate_nets), maybe fixing issues on old Ruby versions 2025-08-03 22:11:59 +02:00
Matthias Koefferlein b6fba7bb69 Bug fixes, new test details 2025-08-03 21:31:55 +02:00
Matthias Koefferlein 7c0934ec8a Fixing unit tests after making byte array and strings equal citizens in variants 2025-08-03 20:33:47 +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 4773bb3227 Added a test for cumulative antenna ratio 2025-08-03 18:00:25 +02:00
Matthias Koefferlein bade7489d8 Fixing doc 2025-08-03 15:23:49 +02:00
klayoutmatthias 642cbd6831 [consider merging] fixing Qt-less builds 2025-08-03 14:19:02 +02:00
Matthias Koefferlein c8568e8aed DRC binding for property computation, filtering 2025-08-03 13:55:14 +02:00
GavinAnderberg 55b58a20cc
Correct typo gsiDeclDbNetlist.cc
Corrected a typo that has the docs say the Netlist.read method 'Writes the netlist to the given file'. It now accurately matches the function behavior.
2025-08-02 19:55:31 -04:00
Matthias Koefferlein 2193f28e2a WIP 2025-08-02 23:38:43 +02:00
Matthias Koefferlein 73681755ed Rename some functions, DRC binding for 'evaluate_nets' 2025-08-02 23:06:22 +02:00
Matthias Koefferlein 61aa08cd64 Added tests for more features 2025-08-02 22:23:03 +02:00
Matthias Koefferlein a224c11833 WIP: bugfix 2025-08-02 22:14:53 +02:00
Matthias Koefferlein c3ba0acc02 Added unit test 2025-08-02 21:43:39 +02:00
Matthias Koefferlein 8151feac56 Some debugging, skipping clusters without shapes on primary layer for example 2025-08-02 21:28:48 +02:00
Matthias Koefferlein d001f7fa04 Introducing variables to property filters, computation functions, generalizing net function for net measurement 2025-08-02 19:50:11 +02:00
Matthias Koefferlein e82ebf6733 WIP: measure_net function for LayoutToNetlist 2025-08-02 19:17:23 +02:00
Matthias Koefferlein 8e95f6a8e1 Fixing a few doc issues, updating DRC doc. 2025-08-02 16:19:12 +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 d1e1f626c7 WIP (join properties on merge for flat regions) 2025-08-02 13:36:17 +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
Matthias Koefferlein 37f9feaadd WIP: joining of properties in deep region 2025-07-31 22:38:48 +02:00
Matthias Koefferlein 653384fce5 WIP 2025-07-31 21:16:35 +02:00
Matthias Koefferlein b89ff76a84 Fixing issue #2102 (internal error on R extraction)
Problem was a conceptual problem: the triangulation for
Hertel-Mehlhorn decomposition must not contain internal
vertexes. So we need a different solution for including
vertex ports.
2025-07-30 23:24:34 +02:00
Matthias Koefferlein 9d4e3c525b Fixed issue #2100 (wrong coordinates on PEX nodes) 2025-07-29 23:17:54 +02:00
Matthias Koefferlein 1ff6f36076 Shapes#insert(region) now supports properties 2025-07-29 23:10:15 +02:00
Matthias Koefferlein c0bdc2874a 'put' function is property computation processors 2025-07-29 21:11:34 +02:00
Matthias Koefferlein 792c06b3a2 WIP: unit tests for new features 2025-07-28 23:40:01 +02:00
Matthias Koefferlein 3a612f9b04 WIP: integration of new features 2025-07-28 23:11:21 +02:00
Matthias Koefferlein 8d7919e054 WIP 2025-07-28 22:38:44 +02:00
Matthias Koefferlein 2a50c87969 WIP 2025-07-27 22:49:21 +02:00
Matthias Koefferlein 5b3ce9ff30 [consider merging] tl::Variant now considers byte arrays and strings equivalent for sloppy compare. This is important for Ruby string property keys as they are often kept as byte arrays when not UTF-8 encoded. 2025-07-27 22:15:52 +02:00
Matthias Koefferlein ede15ffcc0 WIP 2025-07-27 19:48:38 +02:00
Matthias Koefferlein 427ac0ae16 WIP 2025-07-27 17:43:01 +02:00
Matthias Koefferlein 1c1555f31c Fixed unit tests 2025-07-26 18:25:36 +02:00
Matthias Koefferlein 80276f8799 Refactoring: shape processors now allow modifying properties 2025-07-26 18:09:31 +02:00
Matthias Koefferlein 2369c69f69 Implemented feature request: a method to clear properties on shapes, instances, cells and layout 2025-07-26 15:26:47 +02:00
Matthias Koefferlein d4e3872142 DRC::def_output: A simple yet useful extension to obtain the output layout and to manipulate it (within limits) 2025-07-21 22:21:33 +02:00
Matthias Koefferlein cb4511b721 Fixed a pending TODO from issue #1470 2025-07-21 20:56:32 +02:00
Matthias Koefferlein 2d5778a860 'tap': do not consider texts as detecting them requires capturing a large area - which is against performance 2025-07-21 20:40:01 +02:00
Matthias Koefferlein 57025a7f9f Added fill tests with differen origins and tiled mode 2025-07-19 22:37:38 +02:00
Matthias Koefferlein e48e030521 Fixing DRC fill in tiled mode - must not use overlapping tiles with shifting origin 2025-07-19 22:30:06 +02:00
Matthias Koefferlein 1a9c12ce18 Merge branch 'master' into devel 2025-07-19 21:27:52 +02:00
Matthias Koefferlein 9d4a578a5e Merge branch 'bugfix/issue-2088' 2025-07-19 19:00:33 +02:00
Matthias Köfferlein 71202ea9d3
Merge pull request #2098 from KLayout/bugfix/issue-2094
Fixing issue #2094 (slow insert into Shapes)
2025-07-19 18:58:04 +02:00
Matthias Köfferlein ff7d7f20ee
Merge pull request #2089 from KLayout/bugfix/issue-2087
Bugfix/issue 2087
2025-07-19 18:57:25 +02:00
Matthias Köfferlein 131f36a4e0
Merge pull request #2084 from KLayout/feature/issue-2044
Feature/issue 2044
2025-07-19 18:57:10 +02:00
Matthias Köfferlein 316a58eca5
Merge pull request #2079 from KLayout/bugfix/issue-2075
Fixing issue #2075 (strm2oas ignores def net routing wire extensions)
2025-07-19 18:56:35 +02:00
Matthias Koefferlein 4ab64ca5d3 Fixing issue #2094 (slow insert into Shapes)
Solution is to use a temporary container instead
of locking (only if needed).
2025-07-19 15:08:09 +02:00
Matthias Koefferlein e6fa072bee Fixing 'tap' feature
After introducing the "do not select shapes
or instances if they overlap the viewport entirely"
feature, 'tap' was not finding shapes which extended
beyond the view's borders.

This got fixed and for 'tap', such shapes are
considered again.
2025-07-18 23:00:23 +02:00
Matthias Koefferlein d0b935d9e5 Fixed issue #2088 in reader and writer
Reader fix: the reader will not error out duplicate cell
names, but rename the cells.

Writer fix: the writer will uniquify cell names *after*
illegal character substitution.
2025-07-15 22:52:49 +02:00
Matthias Koefferlein 1dc0a56633 Bugfix on layout query
The following query did not render the correct box
for top-level objects:

select path_dtrans*shape.dbbox.center,cell_name from shapes on layer 1/0 from instances of .*..

Reason was that "path_dtrans" returned a ICplxTrans for top
level instead of a DCplxTrans object.
2025-07-13 21:42:35 +02:00
Matthias Koefferlein 67994a2f8a Introducing convenience method ObjectInstPath#cell 2025-07-13 21:27:26 +02:00
Matthias Koefferlein 83913f07bd Updated documentation 2025-07-13 21:20:37 +02:00
Matthias Koefferlein 87bc1a60e1 Introducing macro attributes and Macro#current 2025-07-13 21:14:53 +02:00
Matthias Koefferlein cc796317a0 Safeguard against broken code table in OASIS CBLOCKs 2025-07-13 19:31:47 +02:00
Matthias Koefferlein a6a012beac Added DRC full scale tests, first is Greyhound with M1 IHP fill 2025-07-12 22:02:44 +02:00
Matthias Koefferlein e7bc997e9f Further compressing fill cell arrays in x direction 2025-07-12 14:28:42 +02:00
Matthias Koefferlein 76f7c620f6 [consider merging] Enabling Shapes-based RecursiveShapeIterators for MT-use
This fixes a crash when using DRC fill in tiled mode with multiple
threads.
2025-07-12 13:59:06 +02:00
Matthias Koefferlein 70a609e995 [consider merging] Bugfix in polygon rasterizer 2025-07-11 23:57:03 +02:00
Matthias Koefferlein 46f9fba0ab Generalizing fill tool code 2025-07-11 23:56:40 +02:00
Matthias Koefferlein 7a06bfd66a Bugfix 2025-07-10 23:32:19 +02:00
Matthias Koefferlein 9bc49dd5a3 Added fill_pattern's 'margin' feature. This allows keeping a distance to features outside of the fill region in a more consistent way. 2025-07-10 00:31:25 +02:00
Matthias Koefferlein d5f1017f83 More efficient computation of remaining fill area 2025-07-10 00:24:24 +02:00
Matthias Koefferlein 7dafdb2316 Fixing bug in first place. Needs testing. 2025-07-08 23:36:44 +02:00
Matthias Koefferlein 15120760fe Handling of ghost cells in strm2x merge
Ghost cells act as anchors for top cells of the other
layout in "," merges. Unlike other cells which are
renamed.
2025-07-07 21:52:57 +02:00
Matthias Koefferlein d382629e8e Proposal for a fix of issue #2044 and #2066
The solution is to separate the meaning of "," and "+" layout
file combination operators in strm2x tools:

* "+" does "blending"
* "," does merge

"+" has priority over "," ('a+b,c' acts as '(a+b),c').
NOTE: LEF caching only happens across "+".
2025-07-05 22:48:05 +02:00
Matthias Koefferlein 0ba6064507 Also supporting DBU check for PCB 2025-07-05 21:17:46 +02:00
Matthias Koefferlein 9e9344fdfa Introducing a check whether DBU is compatible with a given one in most readers (except PCB) 2025-07-05 21:13:19 +02:00
Matthias Koefferlein fbca4e6c18 Fixing layout text writer for 'long long' property names on Windows 2025-06-29 22:16:46 +02:00
Matthias Koefferlein 733a0ec4cf Proper solution for bug fix - wasn't done in the right order before. 2025-06-29 20:23:47 +02:00
Matthias Koefferlein abeab280a3 [consider merging] fixed a crash happening while blending two OASIS files with ghost cells 2025-06-28 15:50:27 +02:00
Matthias Koefferlein 5a401127a2 Trying to fix MacOS and Windows builds 2025-06-28 15:31:46 +02:00
Matthias Koefferlein a42e639d83 Trying to fix builds on MacOS 2025-06-27 17:56:45 +02:00
Matthias Koefferlein 7acd11abac Added test 2025-06-27 17:37:19 +02:00
Matthias Koefferlein aba1b30c8d Fixing issue #2075 (strm2oas ignores def net routing wire extensions) 2025-06-27 01:04:19 +02:00
Matthias Koefferlein 6ce61c8654 Fixing type of modal variables for box width and height 2025-06-26 22:54:48 +02:00
Matthias Koefferlein a08d36b5f5 Consistently replacing 'long' and 'long long' by 64 bit int in OASIS reader/writer, so there should not be a difference between Windows and Linux in reader and writer behavior. Database limitations still apply. 2025-06-26 21:59:28 +02:00
Matthias Koefferlein 5c7ac018a8 Not asking for copy mode for leaf cells isn't a bad idea in general, but it creates confusing behavior when pasting instances into a different layout where the target cell does not exist 2025-06-26 20:54:16 +02:00
Matthias Koefferlein f3cc7cadc0 Enabling Qt-less DB plugins for Qt-enabled applications 2025-06-26 20:35:39 +02:00
Matthias Koefferlein eb3be68030 Removing an unused declaration 2025-06-26 20:34:53 +02:00
Matthias Koefferlein 5cd1c187ab Modified display of devices in LVS xref view, so the primary and secondary parameters are separated 2025-05-31 18:30:13 +02:00
Matthias Koefferlein f2172d8e2a Extension of the L2N/LVSDB format to support deleted terminals and parameters
Previously, when deleting parameters or terminals from device
definitions, these parameters or terminals re-appeared in the
netlist browser, because they were generated from the
template class (e.g. "A" and "B" from "RES").

An additional token is added that indicates whether to
remove all entries before adding new ones.

This feature is backward-compatible and LVSDB/L2N files have to
be generated from new KLayout versions to make use of that
feature.
2025-05-31 17:33:44 +02:00
Matthias Koefferlein 769b7e9170 Typo fixed 2025-05-29 13:31:36 +02:00
Matthias Koefferlein 98834d8e3b Reference new golden testdata for LEFDEF/strm2oas test 2025-05-29 12:00:44 +02:00
Matthias Koefferlein f1cc048a4c Refreshing stubs 2025-05-29 09:56:11 +02:00
Matthias Köfferlein 45fdaf0a6d
Merge pull request #2049 from KLayout/devel
Devel
2025-05-29 09:43:23 +02:00
Matthias Köfferlein 3ce50679fa
Merge pull request #2050 from KLayout/dev-polygon-graph
Dev polygon graph
2025-05-29 09:43:06 +02:00