Klayout

Latest version: v0.29.12

Safety actively analyzes 714860 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 17 of 24

0.22.4

* Bugfix: a drawing problem was fixed which created invalid images in certain
cases.
* Bugfix: multi-tab .lyp files could not be used correctly as default layer
properties files.
* Bugfix: the macro IDE crashed sometimes when adding a new location.
* Bugfix: the application crashed when the net tracer window was open and a new
layout was loaded into the same panel.
* Bugfix: a memory leak was happening when a boolean operation (in particular
inside the XOR tool) was cancelled.
* Bugfix: when inserting an instance using the lower left corner of the bounding
box as the reference point, rotations have not been handled correctly.
* Enhancement: the "detailed" view of a net's properties in the net tracer now
reports area and perimeter of the net's shapes (only available for nets up to
~2000 shapes to avoid timeouts on computation). Thanks to Peter for providing
the raw version of that code.
* DXF reader enhancements:
Support for "999" comment records. DIMENSION and SPLINE entities are supported
now to some extent. "fit" formatting of TEXT objects supported now.
Holes are correctly formed now from multiple POLYLINE/LINE items when combining
them into polygons.
* DXF writer: HATCH entries are written in a compatible way now. Text formatting
flags are fixed (top and bottom formatting was swapped).

0.22.3

* Bugfix: a segmentation fault sometimes happened in the drawing engine
* DXF reader enhancements:
Anisotropic scaling of instances is supported. LWPOLYLINES with both common and
variable width are handled more gracefully. Closed polylines produce closed shapes
now, not closed paths.
* Selecting of instances with non-orthogonal transformations is easier now
* The local config files now override the global one again like this was in 0.21.x.
* A compile problem with older gcc's (namely gcc 4.4) was fixed.
* Selection of cells in the cell tree now has been fixed (before that sometimes
cells were selected in addition to current ones instead of being the only
one selected).
* The RVE DB reader was enhanced to read error waivers and certain new forms of the
RVE file.
* The align operation now works also if there is not a primary and secondary
selection (i.e. selection by box)
* "Layer pollution" does not happen when instantiating a PCell or library cell
which is instantiated in another panel
* PCell layer parameters now can be set to any layer which is present in the
layer list, not just the ones which are created already in the database
* The round corners function has been fixed for certain cases. In particular
the limitations are less strict (for example it is possible now to create
a donut from a square with a hole). Changing of the radius later now works
more reliably.
* "Shallow copy mode" now works again for copy & paste of instances. Previously
instances were always copies in deep copy mode which creates new cells.
* Move of partial selection now works like the move function for other objects:
select a subset of edges, click on them to start dragging and click again to
drop them.
* Arrow keys don't interfere with move by mouse mode any longer. Previously using
the arrow keys while moving objects with the mouse had strange effects.

0.22.2

* Copy & and paste of PCell or library instances across layouts did not work
Instead, the cell was duplicated, but it's no longer a PCell or library cell.
* "klayout -v" was segmentation faults
The -v option is supposed to print the version number. After printing it,
the executable terminates with a segmentation fault.
* 'Real' unicode file names could not be used
Using Unicode filenames (i.e. Chinese) file names did not work properly.
In particular these files were not opened on Windows. Unicode file names were
not recorded properly in the "recently used" list.
In version 0.22.2, unicode files names can be used in all places on Windows
and Linux.
* Some LEF import issues solved
The outline layer was not always generated correctly. Pin labels were not generated
on pin shapes for LEF import.
* KLayout was crashing on exit when the clipboard contained something
The application issued a segmentation fault on exit (or "is not working" on Windows)
when the clipboard contained data.
* Ruby debugger crashed in some cases
In some cases (i.e. breakpoint in a widget callback) the debugger crashed with a
"Stack level too deep" message.
* Instances of leaf cells were always copied "flat" to another layout
There was no way to copy the instance plus cells before this was fixed.
* Sometimes PCell variants remain as top level cells
If the Instance function was cancelled and a PCell was active, a new top cell remained
which held the PCell that was about to be placed. These cells could be deleted manually,
but that may be annoying.
* Help index cache was growing large in some cases
When switching between versions, the help index that KLayout creates once grew larger
every time a new program version was used. This increased startup times of the program.
* An "abs" function was missing expressions
* Experimental support for 64bit coordinates is provided.
To enable 64bit coordinates, use "-with-64bit-coord" on the build script. This feature
requires gcc >= 4.4 and a 64bit platform. 64bit coordinate support is "experimental"
because of some known issues (i.e. it is possible to write corrupt GDS files with such large
coordinates). OASIS on the other hand supports 64bit coordinates.

0.22.1

* Edit/Select/Disable All was not working
This function was supposed to disable all selectable items. Instead, an internal
error message was issued.
* Build problems with gcc 4.0 were solved
* GDS text size as based on micron instead of user units
Because of this the text object size were not be correct if the user unit was not micron.
* Arrow keys behaved differently
This had annoying effects if one was used to a particular behavior. The operation of the
arrow keys was restored in some places but still moving with the keys in move mode is
possible.
* -z option worked differently
"-z" is not a true "non-GUI" mode, in which no XServer connection is made on
Linux. The advantage of this is that KLayout can be used as a engine on display-less
servers. In 0.22, some user-interface related objects were not available in Ruby code.
Some scripts depending on MainWindow or LayoutView objects were not working
because these objects are no longer available. In 0.22.1 the original behavior of "-z"
was restored and instead, "-zz" was implemented as a different, true display-less mode
* KLayout was crashing when using custom key bindings on some platforms
On some platforms, apparently Linux and recent Qt versions, KLayout crashed when
custom key bindings are defined and the respective key is pressed.
* Some issues with the macro tree solved
Drag & drop was not working correctly within the macro tree on Windows. KLayout
crashed when trying to open a macro file that is not writable.

0.22

New available features:
* A script (macro) development environment is now integrated into KLayout.
It features a simple debugger, a syntax highlighting editor. For details
see About Macro Development at http://www.klayout.de/doc/about/macro_editor.html.
* KLayout now features an integrated help system (available through the "Help/Assistant" menu entry).
* Support for libraries. See About Libraries for details.
http://www.klayout.de/doc/about/about_libraries.html
* KLayout now supports parametrized cells (PCells).
There is a cool feature called "guiding shapes". Learn more about that here:
About PCell's (http://www.klayout.de/doc/about/about_pcells.html).
* A basic library is provided adding text generation for example to KLayout.
See About The Basic Library for details.
* The net tracer now allows to use layer combinations (derived by boolean operations)
for the conductive and via layers. See The Net Tracing Feature for details.
* A technology management is integrated into Klayout.
That allows to switch various settings depending on the chosen technology.
See About Technology Management for details about this feature.
* The drawing can now be rotated or flipped without having to modify the layout.
This function can be found in the "Display" menu under "Global Transformation".
* The "background" combination mode allows to erase parts of existing shapes or
add new parts to existing shapes. The background combination mode is available
as a new drop-down button in the toolbar.
* A "cell variant" generation function simplifies hiearchical editing.
See Create Cell Variants for details about this feature.
* General performance improvement of the render.
This has been achieved by bitmap caching of cells and various optimisation measures.
* Images now can be aligned with a layout using landmark points.
The possible image transformations now include shear and perspective distortions.
See Using Landmarks To Align Images
* Images can now be stacked and moved to the bottom and to the top.
The configuration now is stored along with additional configuration data
(i.e. libraries) in a per-user directory in "~/.klayout" on Linux and in the application
data path on Windows. The configuration file now is found there and is called "klayoutrc".
New locations can be added using $KLAYOUT_PATH.
* The database unit of the layout can be changed now in the layout properties page
(menu: "File/Layout Properties").
* Most numeric input boxes now accept formulas,
i.e. "1254+3221" instead of a single value.
* By clicking a on single point multiple times you can now cycle the selection through all objects below the point.
* Layers can be copied (menu: "Edit/Layer/Copy Layer").
* The selection can be duplicated (menu: "Edit/Duplicate" or Ctrl+B).
* The size of the default font can now be adjusted (choose between small (current),
medium and large on the Display/General page of the setup dialog).
* The number of points used for circle interpolation can now be adjusted
on the Application/Circles page of the setup dialog.
* Some changes to make the user interface more consistent, i.e. "Synchonized views"
has been moved to "Display" where most users where expecting it to be.
* The selection now can be moved with the cursor keys in move mode.
* The cell selection dialog allows to specify glob pattern wildcards in the filter box now.
* OASIS CBLOCK compression and strict mode writing is supported now.
* Multiple cells now can be selected in the cell tree. Some functions operate on that set (i.e. delete, copy, hide).
* KLayout now has a LEF/Def import feature. See About LEF/DEF Import for details.
* This feature is somewhat experimental. Feedback is welcome about that feature.

Solved bugs:
* Edit/Select/Disable All not working
This function is supposed to disable all selectable items. Instead, an internal error message is issued.
* Build problems with gcc 4.0
* GDS text size is based on micron instead of user units
Because of this the text object size may not be correct if the user unit is not micron.
* Arrow keys may behave differently
This can be annoying effects if you are used to a particular behavior. On the other hand, moving with
the arrow keys now is possible in move mode.
* -z option works differently
"-z" not is a true "non-GUI" mode, in which no XServer connection is made on Linux. The advantage of this
is that KLayout can be used as a engine on display-less servers. But some scripts depending on MainWindow or
LayoutView objects will not work because these objects are no longer available. The solution will be to
restore the original behavior of "-z" and implement a different, true display-less mode (i.e. "-zz").
* Crash when using custom key bindings on some platforms
On some platforms, apparently Linux and recent Qt versions, KLayout crashes when custom key bindings
are defined and the respective key is pressed.
* Issues with the macro tree
Drag & drop does not work correctly within the macro tree on Windows. KLayout crashes when trying to
open a macro file that is not writable.

0.21.920110420

* Bugfix: Loading of layer files with tabs was not working properly: the
first tab's name was discarded.

Page 17 of 24

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.