Klayout

Latest version: v0.29.2

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

Scan your dependencies

Page 12 of 23

0.24.2

* Bugfix: Flip and Rotate function did not work as expected when the view
was descended into the hierarchy.
* Enhancement: RBA::BrowserDialog now also accepts a parent parameter
which are important to better integrate such dialogs into the
application.
* Bugfix/enhancement: "klayout_vo.exe" now is a pure viewer application
again. By calling this executable, the edit functions cannot be
enabled and the save functions are disabled as well. Under Linux,
renaming the binary to "klayout_vo" switches KLayout into this
mode as well.
* Bugfix: The zoom and selection rectangle can now be dragged outside the
visible area and still define the zoom or selection rectangle.
* Bugfix: expressions were not coercing floating-point values consistently:
The expression "to_i(2)+1.4" rendered 3 instead of 3.4 as expected.
The sum was treated as an integer sum because the first operand is
an integer. Now the integer is converted into a floating-point value
as expected.

0.24.1

* Enhancement: switched to -O2 instead of -O3 to avoid issues with certain
gcc versions for which -O3 appears to be broken.
* Bugfix: fixed a backward compatibility issue in scripting. Specifically
"view.each_object_selected { |s| s.shape }" will work again.
* Bugfix: the layer matching algorithm in the .lyp file layer assignment
is compatible with the previous version again. This specifically applies
to "wildcard" specifications. In 0.24, named and unnamed layers were
considered different even if GDS layer and datatype numbers were identical.
The effect was that if a named layer was present, a .lyp file specification
without that name was not matching the named layer and with "add other layers"
the named layer was produced again.
* Enhancement: "Apply all" in the object properties dialog behaves somewhat
more intuitive now. Specifically changing the path endcap styles now
works as expected. For the other properties, a choice was provided
between applying changes in a relative or absolute way. For example,
when the left edge of a box is changed, the left edges of all selected
boxes are shifted by the same amount in relative mode. In absolute mode,
the left edge will be set to the specified position for all selected boxes.
* Bugfix: Python iterators will keep a reference to the source object now.
This avoids problems when fetching iterated properties (typically "each..." methods)
from short-living objects.
* Bugfix: Python's StopIteration exception does no longer appear in the debugger
now. This is an exception used internally to mark the end of an iteration
sequence.
* Bugfix: "Pathwidth=" does no longer reset the round end flag.
* Enhancement: the "Show All" mode of the marker browser is persisted now.

0.24

* Enhancement: Python support: Scripts and PCells can now be coded in Python as well. Python and Ruby
scripts may coexist in the same application and they can be debugged together. The macro
IDE features a Python tab in which Python scripts can be managed.
The language features of Python and Ruby are very similar, so the features of the
integration are highly comparable and easy to translate. The Python module
name is "pya".
* Bugfix: When using a layer with special hierarchy level settings (i.e. *), the ruler did not snap to that shapes.
* Bugfix: Qt item ownership is now transferred on some methods. For example, "QTreeWidgetinsertItem" now will
transfer ownership of the item to the tree widget. Hence, when the variable holding the item goes out of scope,
the tree item will not be destroyed.
* Enhancement: The shape selection can now be manipulated through scripts (new LayoutView methods "object_selection=",
"select_object" etc.)
* Enhancement: New edge vs. region operations are supported (edge AND region and edge MINUS region)
* Enhancement: RBA/pya objects now in general feature a "_manage" and "_unmanage" method will allows releasing
the ownership over an object in cases where object lifetime control is important (specifically when passing
objects around in Qt applications).
* Enhancement: Many new RBA methods, i.e.
- Annotationid
- Cellchange_pcell_parameters
- Cellpcell_parameters_by_name
- DPolygonassign_hull (raw argument)
- DPolygonassign_hole (raw argument)
- DPolygoneach_edge (with contour argument)
- DPolygoninsert_hole (raw argument)
- DPolygontransform
- DSimplePolygoninitialize (raw parameter)
- DSimplePolygoninitialize (raw parameter)
- DSimplePolygonset_points
- DSimplePolygontransform
- EdgePairs+
- Edges& (with Region)
- Edges&= (with Region)
- Edges- (with Region)
- Edges-= (with Region)
- Edgesinside_part
- Edgesselect_inside_part
- Edgesoutside_part
- Edgesselect_outside_part
- Instancechange_pcell_parameter
- Instancechange_pcell_parameters
- Instanceconvert_to_static
- Instanceflatten
- Instanceis_pcell?
- Instancepcell_declaration
- Instancepcell_parameters
- Instancepcell_parameters_by_name
- Layoutbegin_shapes (with cell ref)
- Layoutbegin_shapes_overlapping (with cell ref)
- Layoutbegin_shapes_touching (with cell ref)
- Layoutcreate_cell (with PCell parameters and/or lib name)
- Layoutdelete_property
- Layoutflatten_into
- Layouthas_prop_id?
- Layoutpcell_ids
- Layoutpcell_names
- Layoutprop_id
- Layoutprop_id=
- LayoutViewclear_object_selection
- LayoutViewobject_selection
- LayoutViewobject_selection=
- LayoutViewreplace_annotation
- LayoutViewselect_object
- LayoutViewunselect_object
- MainWindowcm_close_all
- MainWindowcm_save_all
- MainWindowcm_sel_move_to
- MainWindowinstance
- MainWindowmanager
- ObjectInstPath==
- ObjectInstPath!=
- ObjectInstPath<
- ObjectInstPathappend_path
- ObjectInstPathclear_path
- ObjectInstPathcv_index=
- ObjectInstPathlayer=
- ObjectInstPathseq=
- ObjectInstPathshape=
- ObjectInstPathtop
- ObjectInstPathtop=
- RdbItemValueinitialize (with float argument)
- RdbItemValuefloat
- RdbItemValueis_float?
- RdbItemValuetag_id
- RdbItemValuetag_id=
- SaveLayoutOptionsgds_write_file_properties
- SaveLayoutOptionsgds_write_file_properties=
- SaveLayoutOptionsoasis_write_std_properties
- SaveLayoutOptionsoasis_write_std_properties=
- Shapeeach_edge (with contour argument)
* Enhancement: Qt API is aligned better with C++ Qt notation. Several bug fixes, new features and stability enhancements.
For example:
New: RBA::Qt::white or RBA::Qt::GlobalColor::white
Old: RBA::Qt_GlobalColor::white
* Enhancement: the debugger can now be disabled in the macro editor IDE for enhanced
script execution performance with IDE window open and less interactions between
Qt code and Macro IDE
* Bugfix: DRC crashed when outputting shapes to a layer that was used as an input
in further parts of the script but has been declared as input befor the layer
was output.
* Bugfix: ".lyp wildcard replacement" now honors transformations as well
* Bugfix: Gerber import issues fixed: Zero-diameter circular apertures moves are translated into lines,
Zero-length moves must not be clear for G1 and circular apertures.
* Bugfix: The technology button now applies the technology even if the technology did not change.
* Enhancement: Polygons with holes are better supported now (for example in partial editing). Such
polygons cannot be written to GDS or OASIS (they will be converted to ones without holes), but
they may be created in DRC scripts.
* Bugfix: "Reload layout" now doesn't forget the technology that was attached to a layout.
* Bugfix: Box side setters now behave more consistently in scripting. Before this fix, it was not possible to
assign the sides of a box this way: "b = Box::new; b.left = 100; b.right = 300".
* Bugfix: recursive library references (library referencing itself indirectly) made the application
crash.
* Bugfix: Subclass mapping sometimes failed in certain cases. This was particular annoying in Qt's event
handlers since "QKeyEvent" (or similar classes) only showed up "QEvent".
* Enhancement: "Move selection to" function available in "Edit/Selection/Move To". With this function,
the selection (shapes are instances) can be moved to a specific position. You can specify the
reference point to use. For example the center of the bounding box.
* Bugfix: Menu icon assignment was not working in some cases within scripts.
* Bugfix: Readonly (global) macros could be edited but not saved.
* Bugfix: Instances could be selected even if they had only invalid layers.
* Enhancement: The application now features a crash handler. This handler gives some debugging information
about the crash which you can send together with a bug report. In some cases, the crash handler will
allow continuing to work with the application although it's highly advisable to save and close.
* Bugfix: Registering plugins through the script's plugin API sometimes disabled view features.
* Bugfix: The macro IDE is not automatically put in the foreground any more. This sometimes interfered with
modal dialogs shown from a macro.
* Enhancement: The macro IDE now features watch expressions which are automatically evaluated when in a
breakpoint.
* Enhancements: The "Save Layout" options are now separated from the save function. That means they can
be configured once and the dialog will not pop up always when saving. This way, "Save All" is provided
which will save all open files with the current options.
* Enhancement: A "Close All" function to close all open layouts.
* Enhancement: In scripted layout loads, multiple files can be loaded into the same layout object. In that
case, the content of the files are merged. This worked so far with GDS. Now this also works with OASIS.
* Bugfix: OASIS int-typed properties now as written as such. Before, they have been written as strings.
* Enhancement: sizing code and path to polygon translation now will better maintain 45-degree edges.
* Enhancement: DRC support for edge/polygon booleans ("edges AND polygons" will select the edges inside the polygons,
"edges MINUS polygons" will remove the edges inside the polygons)
* Enhancement: Global layout properties supported as well. Layout properties can be edited by selecting
"User Properties" in "File/Layout Properties". They are written to OASIS. Writing to GDS2 is optional since
that may create compatibility issues with other tools.
* Enhancement: The OASIS writer will now produce some standard properties: "S_TOP_CELL", "S_BOUNDING_BOX",
"S_CELL_OFFSET", "S_MAX_SIGNED_INTEGER_WIDTH", "S_MAX_UNSIGNED_INTEGER_WIDTH" and "S_BOUNDING_BOXES_AVAILABLE".
* Enhancement: User properties of cells are available in cell context menu too: this way there can be
browsed in non-editable mode too.
* Enhancement: "Degenerated" polygons (one or two points) can be created in scripts now when using "raw" mode.
Such polygons are useful in the context of Minkowsky sums for example.
* Bugfix: The application crashed when the macro currently running was deleted.
* Enhancement: "Search & replace" now is available in viewer mode too, but without the ability to replace or
delete.
* Enhancement: In menu paths, appending a "+" to the path means to add something after that item.
* Bugfix: Guiding shapes are only selected if the PCell corresponding to them is visible.
* Enhancement: there is a clearer indication now that 'Show layers without fill' is on.
* Enhancement: a new mode is available in which PCell content can be selected too. When editing things inside
PCells however, PCell recomputation may revert these edits.
The mode is found in "File/Setup", "Application/Selection" page.
* Enhancement: Edge set boolean operations have been too selective with respect to almost-parallel edges.
Now a tolerance is applied allowing edges to deviate by ~1 dbu.
* Enhancement: Search & replace: texts, paths and boxes are exported into report databases.
Shapes and instances are shown in micron coordinates and as seen in top.
* Enhancement: "Apply all" in properties dialogs: with this function, a specific change is applied to
all shapes or instances of the same class. For example a path width change is applied to all other selected
paths. The change will be applied smartly (hopefully), so that the intention of the change is preserved.
For example a left edge shift for a box will be turned into the same shift for all other selected boxes.
* Enhancement: multiple categories can be selected in the marker browser now.
* Enhancement: the instance properties page now shows the cell dimensions (which are not editable of course).
* Enhancement: box property editing is less tedious - the left and right coordinates will now swap if the order
changes and the mode (width/center or coordinates) is maintained.
* Enhancement: Report databases now support "tagged values" (values with a name) which are shown in the marker
list. The markers can be sorted by these values, provided they are string or numerical values.
RVE properties are read as tagged values.

0.23.11

* Bugfix: partial edit mode - a cell could be selected even if not visible
With the new version, the selection behavior of normal selection
and partial selection are somewhat more consistent.
* Bugfix: The CIF reader was not able to read CIF files with line breaks
Commands with line breaks separating arguments were not read
correctly.
* Bugfix: Printout now considers global transformation correctly
Previously, the global transformation was ignored on printout
and for screenshots.
* Enhancement: Partial edit mode now also supports polygons with holes
Polygons with holes are rare since they cannot be represented
in GDS or OASIS files. But they can be generated in DRC scripts.
Now, such polygons can be edited in partial edit mode too.
* Bugfix: LEF/DEF reader now correctly uses half the path width for path extension
Previously the default value was 0.
* Bugfix: Library update was not working properly for OASIS reader
OASIS files with library references had as issue when updating
the library cells: cell deleted in the library were not deleted
in the layout.
* Enhancement: Warning, when drawing on invisible layers
Previously there was not feedback: the shape was drawn, but not
visible. Now, a warning pops up when trying to draw on invisible
layers. This warning can be disabled.

0.23.10

* Bugfix/Enhancement: CIF compatibility. The reader was not fully
compatible with the specification. For example, lower-case
characters have not been ignored as specified. This has been
fixed among other compatibility issues.
* Enhancement: The CIF writer now has an option to use blank characters
as x/y separator. Some tools apparently don't like comma
characters for separators (that is still the default).
* Enhancement: The CIF writer now has an option to emit dummy cell
calls on top level to reference the top cells. The top-level
entity is unnamed and does not correspond to a cell. Despite
that some tools require these entities not to be empty and
hold dummy references to the real top cells at least.
* Bugfix: Key bindings to default grid menu entries were not working
* Bugfix: When a layer was deleted and a shape on that layer was
selected, the application crashed
* Bugfix: Search and replace sometimes gave an internal error, for
example with the following query:
'with * do cell.name = "A" + cell.name'
* Bugfix: Search and replace was crashing when trying to delete
instances.
* Bugfix: Net tracer bug: the first selected shape was always taken as
a whole even if parts were disabled through boolean NOT
operations.
* Bugfix: Net tracer was using the wrong origin when working in
"descend" mode.
* Bugfix/Enhancement: The technology setup now features "read all" and
"add other layers" flags for the reader mapping table and
the layer properties. Before, the global flags were used
causing some confusion. With the new options the behavior
can be configured consistently.
* Enhancement: The file dialogs now remember the file type chosen.
* Bugfix: The application issues a error message when trying to
write very big images instead of crashing
* Enhancement: Two new Ruby methods to write image files. These new
methods are LayoutViewsave_image_with_options and LayoutView
get_image_with_options. These methods allow configuration of
more features for the image generation like box to draw,
oversampling etc.
* Enhancement: DXF reader now converts ATTDEF entities to texts too.
* Bugfix: The application crashed when the top cell was deleted.

0.23.9

* Bugfix: DEF reader: E and W pin orientation was swapped.
* Bugfix: DEF reader: PIN definitions are read correctly even if
the PLACED statement comes before the LAYER statement.
* Enhancement: LEF reader: deprecated keyword TOPOPSTACKONLY is
ignored for VIA statements now instead of giving an error.
* Enhancement: DEF reader: the reader now is able to read BLOCKAGE
definitions. Currently, routing and placement blockages are
supported. The layers they appear on can be configured the
in the same fashion than for the other elements.
* Bugfix: Typing in the Macro Editor was slow if many macros were
bound to menus.
* Enhancement: GDS AREF's with pitches not a multiple of the database
unit are split into individual arrays rather than simply
rounding the pitch. The disadvantage of the rounding solution
was an accumulation of rounding errors over the array instances
leading to a substantial deviation from the target location.
* Bugfix: Paths have sometimes not been displayed properly,
specifically paths with a small segment length and sharp bends.
* Bugfix: DXF reader: bulges have not been ignored on the last vertex
of a non-closed POLYLINE as they should.

Page 12 of 23

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.