0.27.11 (2022-08-10):
* Bugfix: %GITHUB%/issues/1098 Normalize zero dimension when generating regular array instance
* Enhancement: %GITHUB%/issues/1103 Add setting to disable Save Needed dialog box
* Bugfix: %GITHUB%/issues/1106 "move by" does not move instances from partial selection
* Bugfix: %GITHUB%/issues/1111 GenericDeviceExtractor#define_opt_layer not working
* Bugfix: %GITHUB%/issues/1114 MSYS2 compatibility with latest revision (based on gcc 12.1)
* Bugfix: %GITHUB%/issues/1126 Internal error on DRC operation
* Bugfix: %GITHUB%/issues/1135 LVS mismatch on parallel devices and issue on ambiguity resolution
* Enhancement: Support for Python 3.11
* Enhancement: L2N and LVSDB readers made compatible with potential future extensions
* Enhancement: DRC Antenna check now can be given a text layer which receives output describing the measured and computed values
* Bugfix: *= method (e.g. Point, DPoint) properly listed in help and reflection API
* Bugfixes: Fixed a number of potential segfaults due to memory corruption found during master branch refactoring
## 0.9.0 2022-08-21 (Date from timestamp)
### Fixed
- Bug when saving OASIS files with missing references.
### Added
- `Reference.get_polygons`, `Reference.get_paths`, `Reference.get_labels`
- `Library.rename_cell`
- `Library::rename_cell` and `Library::replace_cell` in the C++ API
### Changed
- `Cell.filter` arguments modified to match `read_gds`.
- Changed default tolerance for `read_gds` and `read_oas` to be the library's rounding size.
- `Reference::polygons` renamed to `Reference::get_polygons` in the C++ API.
- `Reference::flexpaths` renamed to `Reference::get_flexpaths` in the C++ API.
- `Reference::robustpaths` renamed to `Reference::get_robustpaths` in the C++ API.
- `Reference::labels` renamed to `Reference::get_labels` in the C++ API.
- Removed magnification argument from `Reference::init` and `Label::init` in the C++ API.
The package changed with the addition of its libepoll-shim dependency.
Otherwise, we can get:
ERROR: libepoll-shim>=0.0.20210418 is not installed; can't buildlink files.
Gdstk (GDSII Tool Kit) is a C++ library for creation and manipulation of
GDSII and OASIS files. It is also available as a Python module meant to be
a successor to Gdspy.
Key features for the creation of complex CAD layouts are included:
- Boolean operations on polygons (AND, OR, NOT, XOR) based on clipping
algorithm
- Polygon offset (inward and outward rescaling of polygons)
- Efficient point-in-polygon solutions for large array sets
Typical applications of Gdstk are in the fields of electronic chip design,
planar lightwave circuit design, and mechanical engineering.
0.27.10 (2022-06-04):
* Bugfix: %GITHUB%/issues/1081 Using a layer properties file from
recent list without layout loaded crashes KLayout
* Enhancement: %GITHUB%/issues/1079 PCell update: Library#refresh should call coerce_parameters_impl
* Bugfix: %GITHUB%/issues/1075 Edit layer specification doesn't work well with PCells
* Bugfix: %GITHUB%/issues/1071 Issues with GDS text format and "Save As"
* Bugfix: %GITHUB%/issues/1068 Circle handle not shown sometimes
* Bugfixes: two potential segfaults fixed due to early delete of LayoutView and access to non-initialized memory
0.27.9 (2022-04-23):
* Bugfix: %GITHUB%/issues/1008 Don't optimize away points on path edit
* Bugfix: %GITHUB%/issues/1011 DRC in deep mode highlights erroneous width violation with text
* Bugfix: %GITHUB%/issues/1012 Warning requested if LEF/DEF map file does not capture certain layers
* Bugfix: %GITHUB%/issues/1013 OASIS writer bug with certain irregular arrays
* Bugfix: %GITHUB%/issues/1017 DXF export: better handling of PCB zone fills
* Bugfix: %GITHUB%/issues/1021 LVS unexpectedly failing
* Bugfix: %GITHUB%/issues/1029 Problem with Qt binding
* Bugfix: %GITHUB%/issues/1031 Buddy tools + OASIS: invalid warning about unexpected strict mode
* Bugfix: %GITHUB%/issues/1040 pip install klayout doesn't seem to work on M1 MacBookPro
* Bugfix: %GITHUB%/issues/1054 Qt binding: crash due to Python allocation-while-deallocating
* Bugfix: Ctrl+F will always enter search box in Macro IDE now
* Bugfix: LEF/DEF reader options - could not clear suffix or set datatype to none
* Bugfix: netlist/LVS result browser - do not clip texts, provide texts as tool tips as well for inspection
* Bugfix: the library selected box listed technology-specific libraries even if no technology was selected
* Bugfixes and enhancements for the LEF/DEF reader
Includes %GITHUB%/issues/1050, %GITHUB%/issues/1065 and %GITHUB%/issues/1047
plus a number of standard compatibility issues. Bugfixes and enhancements for the
strm2xyz buddy tool's LEF/DEF reader implementations.
* Enhancement: %GITHUB%/issues/1057 Include PCell update in Library#refresh
* Enhancement: %GITHUB%/issues/1058 Backspace to delete last point from polygon or path
* Enhancement: Split gates option for LVS (new keyword is "split_gates") - see documentation for details
* Enhancement: generate labels for PCB X2 net names
* Enhancement: PCell errors are now shown on a separate layer
(formerly only if the PCell featured at least one layer-type
parameter) This layer is available with the same style and
configuration than the guiding shape layer.
3.27.6 (2022/05/18)
Bug fixes:
FS#2366 - File > Advanced SVG Export: not launching
FS#2367 - Command line arguments not correctly encoded
FS#2368 - Projections: attributes are not projected
3.27.5 (2022/05/07)
Bug fixes:
FS#2271 - Unpredictable Crashing on Mac M1 Arm64
FS#2357 - Reference points not cleared when deleting selection
FS#2361 - View > Property Editor: Draw order property not working
FS#2362 - View > Property Editor: Scale property cannot be edited
FS#2363 - Context menu of line entry fields: inserting symbol broken
3.27.4 (2022/05/04)
Bug fixes:
FS#2358 - Paste: flip vertical broken
3.27.3 (2022/04/29)
Translations:
Tier 2 (complete, updated, automatic):
Czech
Hungarian
Lithuanian
Polish
Slovak
Slovenian
Bug fixes:
FS#2355 - Viewport: Crash when moving, rotating, mirroring or stretching viewport
FS#2356 - File > Close: Closing dialog stays open after clicking Save
3.27.2 (2022/04/25)
Misc > Block:
Export Block List
Sort by block name
Export Block References List
Export block references to CSV with block name, X, Y
File > Print / Print Preview:
Show dialog to auto adjust paper size if custom paper size is used
Show dialog to fit drawing to paper size if drawing overlaps paper border
Bug fixes:
FS#2329 - Viewport: arcs in scaled viewports are not rendered correctly
FS#2333 - Ordinate dimensions: scale option ignored
FS#2334 - Modify > Break Out Segment: Line Selection Mode fails on Ray and Infinity lines
FS#2335 - Rendering solid hatches in scaled blocks
FS#2342 - Layer > Edit Layer: Changing Color of Invisible Layer
FS#2343 - Modify > Projection: Dimension entities offset
FS#2344 - Draw > Polyline > Polyline along Segments: Crash on cancel
FS#2345 - File > Print: printing multiple copies prints too many copies
3.27.1 (2021/12/13)
Misc > Draw:
Text Aligned Leader
Bug fixes:
FS#2320 - Viewport: text misplaced if viewport is set to not plottable
FS#2322 - Edit > Convert Drawing Unit: dimension problem
FS#2324 - dwg2csv: exception when listing properties (-l)
3.27.0 (2021/12/01)
Performance:
Performance improvements for entity selection and updating the property editor
Edit > Application Preferences:
Graphics View > Appearance:
Add preference "Apply line weight to points"
If checked: apply line weight to points (render as blobs)
If unchecked: always render points as dots or with chosen point mode (cross, etc.) and thin lines
Add preference "Maximum selected entities with reference points"
Configures the maximum number of selected entities that will have operational reference points
Add preference "Maximum selected entities with displayed reference points"
Configures the maximum number of selected entities that will display reference points
Widgets > Property Editor:
Add preference for decimals / precision used to display property values
Misc > Draw:
Leader from Selected Text
Translations:
Tier 2 (complete, updated, automatic):
Danish
Swedish
Bug fixes:
FS#2250 - CAM > Add Profile Toolpath: lead out type / size not saved
FS#2251 - Modify > Explode: spline explodes into line
FS#2254 - Dimension > Continue: does not always continue at chosen extension line
FS#2257 - Images from Windows file cannot be loaded under Linux / macOS
FS#2258 - Selected entities send to an 'Off' layer retain their selection color
FS#2256 - Getting the end direction of a zero-length polyline leads to AppCrash
FS#2259 - Insert file as block: crash when inserting block with attribute definitions
FS#2262 - Block referece attributes are orpaned when using "edit in place"
FS#2263 - dwg2svg -min-lineweight option parsing broken
FS#2265 - QCAD/CAM: startup crash if disabling hierarchical layers
FS#2267 - In-place block editing: some block references not faded
FS#2268 - Not all dimension overrides written to DXF/DWG
FS#2269 - Inner block reference attributes disappear when editing outer block in-place
FS#2270 - Draw > Dimension > Ordinate: Ordinate dimension values scale with viewport
FS#2273 - Block attribute duplicates after copy / paste, explode, edit and reload
FS#2274 - View > Screen-based Linetypes: rendering of arcs with dashes
FS#2275 - Snap > Center: snapping to center of polyline arc segments
FS#2279 - Edit > Application Preferences > File > Open/Save: wrong initial value shown for default format
FS#2281 - Block > Attributes > Synchronize Attributes: Multiple attributes in block with the same Tag
FS#2285 - Draw > Circle > 2 Tangents and Point: fails for Circle, Line, Point where Point is on Line
FS#2286 - Draw > Circle > 2 Tangents and Point: fails for Circle, Circle, Point
FS#2291 - Rulers empty if auto grid scale is off
FS#2305 - Invisible XLine under visible XLine may prevent selection of visible XLine
FS#2309 - SVG Export - hatch patterns with dots not visible
FS#2310 - File > Print: Number of copies and page range ignored
FS#2317 - Crash / lag when selecting splines with clamped knots (OpenDesign)
3.26.3 (2021/05/31)
Bug fixes:
FS#2198 - International characters change when saving and reloading the file [OpenDesign 4]
FS#2230 - Dimension: CAD font label displayed with wrong lineweight
FS#2234 - CAM > Nesting: Cancel button not working
FS#2236 - Draw > Text: unreadable black text in text dialog (macOS dark mode)
FS#2238 - Projection: exception when projecting polyline with single arc segment
FS#2239 - Snap > Coordinate: Confirm coordinate with number block Enter key
FS#2241 - CAM Simulation: stops working after closing a file
FS#2243 - Graphics View: rendering of splines with line pattern
FS#2246 - Undo menu text crippled (Windows)
3.26.2 (2021/04/15)
Modify > Projection:
retain uniform global segment width of polylines
Misc > Draw > Polyline break symbol from two points:
Insert break symbol
Add local data location to search path for resources files (patterns, linetypes, fonts, postprocessors, etc.)
Windows: C:/Users/[Username]/AppData/Local/QCAD/QCAD
macOS: ~/Library/Application Support/QCAD/QCAD
Linux: ~/.local/share/QCAD/QCAD
Bug fixes:
FS#2175 - Edit > Application Preferences > Draw > Text: Uncheck all/Check all buttons not disabled
FS#2203 - Ruler: not all labels shown
FS#2204 - Modify > Break out Manual: point order matters with open polyline
FS#2206 - View > Selection Filter: Polyline area selection not working
FS#2207 - File > SVG Export: dimension labels invisible with TTF fonts
FS#2208 - Snap: Cannot snap to block arrays
FS#2209 - Modify > Explode: incorrect results with almost circular ellipse arcs
FS#2210 - Modify > Break out Manual: unexpected results with arc
FS#2217 - Text: spacing problem when switching to CAD font (\F)
FS#2221 - Unpredictable linetype pattern scale for polylines using polyline pattern
FS#2222 - Block attribute definition: default text displayed instead of tag
FS#2223 - Block > Insert Block: duplicate entries in attributes combo
FS#2224 - Command line tools: -block argument does not accept layout names
FS#2225 - Filenames containing an ampersand do not render correctly in the tab bar and Window menu
3D - CADCAM - software
gCAD3D has its own:
import and export-programs (Step, Iges, VRML, DXF, SVG ..),
integrated 3D-OpenGL viewer,
program interpreter for geometry and NC commands in 3D,
integrated NC processor.
programming interface for userprograms (plugins)
programming interface for RemoteControl
fstl is a very fast .stl file viewer, designed to quickly load and
render very high-polygon models; showing 2 million triangles at 60+
FPS on a mid-range laptop.
New sketch features:
New intersection boolean operation for solid models.
New groups, revolution and helical extrusion.
Extrude, lathe, translate and rotate groups can use the "assembly"
boolean operation, to increase performance.
The solid model of extrude and lathe groups can be suppressed, for
splitting a single model in multiple parts to export, or if only
the generated entities are desired, without the mesh.
Translate and rotate groups can create n-dimensional arrays using
the "difference" and "assembly" boolean operations.
A new sketch in workplane group can be created based on existing workplane.
TTF text request has two additional points on the right side, which
allow constraining the width of text.
Image requests can now be created, similar to TTF text requests. This
replaces the "style → background image" feature.
Irrelevant points (e.g. arc center point) are not counted when estimating
the bounding box used to compute chord tolerance.
When adding a constraint which has a label and is redundant with another
constraint, the constraint is added as a reference, avoiding an error.
Datum points can be copied and pasted.
"Split Curves at Intersection" can now split curves at point lying on
curve, not just at intersection of two curves.
Property browser now shows amount of degrees of freedom in group list. It
also shows a yellow "err" if the sketch has problems (e.g. self
intersecting) that would propagate in subsequent groups.
It is now possible to press "g" to toggle construction on new objects
while they are still being drawn.
Allow right click to end sketching of all entities.
New constraint features:
When dragging an arc or rectangle point, it will be automatically
constrained to other points with a click.
When selecting a constraint, the requests it constraints can be
selected in the text window.
When selecting an entity, the constraints applied to it can be
selected in the text window.
Distance constraint labels can now be formatted to use SI prefixes.
Values are edited in the configured unit regardless of label format.
When creating a constraint, if an exactly identical constraint already
exists, it is now selected instead of adding a redundant constraint.
It is now possible to turn off automatic creation of horizontal/vertical
constraints on line segments.
Automatic creation of constraints no longer happens if the constraint
would have been redundant with other ones.
New option to open the constraint editor for newly created constraints
with a value.
New "redundant constraint timeout (in ms)" option to prevent UI freeze
when looking for redundant constraints.
Swap vertical and horizontal constraints when pasting rotated by 90/270
degrees.
New export/import features:
Link IDF circuit boards in an assembly (.emn files)
Three.js: allow configuring projection for exported model, and initially
use the current viewport projection.
Wavefront OBJ: a material file is exported alongside the model, containing
mesh color information.
DXF/DWG: 3D DXF files are imported as construction entities, in 3d.
VRML (WRL) triangle meshes can now be exported, useful for e.g. KiCAD.
Export 2d section: custom styled entities that lie in the same plane as
the exported section are included.
Added ExportBackgroundColor in configuration for EPS, PDF, and SVG files.
STEP export includes object colors and transparency.
Default "line styles" have a new "export these objects" option.
New rendering features:
The "Show/hide hidden lines" button is now a tri-state button that
allows showing all lines (on top of shaded mesh), stippling occluded
lines or not drawing them at all.
The "Show/hide outlines" button is now independent from "Show/hide edges".
"View | Darken Inactive Solids" added. When turned off and a "sketch in
plane" group is active solids form previous groups will not be "darkened"
(have the s000d-#def-dim-solid style applied to them).
New measurement/analysis features:
New choice for base unit, meters.
New command for measuring total length of selected entities,
"Analyze → Measure Perimeter".
New command for measuring center of mass, with live updates as the
sketch changes, "Analyze → Center of Mass".
New option for displaying areas of closed contours.
When calculating volume of the mesh, volume of the solid from the current
group is now shown alongside total volume of all solids.
When calculating area, and faces are selected, calculate area of those
faces instead of the closed contour in the sketch.
When selecting a point and a line, projected distance to current
workplane is displayed.
Other new features:
Improvements to the text window for selected entities and constraints.
Ambient light source added in text window to allow flat shaded
renderings.
New command-line interface, for batch exporting and more.
The graphical interface now supports HiDPI screens on every OS.
New option to lock Z axis to be always vertical when rotating the
view, a.k.a. "turntable navigation".
New button to hide all construction entities.
New link to match the on-screen size of the sketch with its actual
size, "view → set to full scale".
When zooming to fit, constraints are also considered.
Ctrl-clicking entities now deselects them, as the inverse of clicking.
When clicking on an entity that shares a place with other entities,
the entity from the current group is selected.
When dragging an entity that shares a place with other entities, the
entity from a request is selected. For example, dragging a point on
a face of an extrusion coincident with the source sketch plane will
drag the point from the source sketch.
The default font for TTF text is now Bitstream Vera Sans, which is
included in the resources such that it is available on any OS.
In expressions, numbers can contain the digit group separator, "_".
The "=" key is bound to "Zoom In", like "+" key.
The numpad decimal separator key is bound to "." regardless of locale.
On Windows, full-screen mode is implemented.
On Linux, native file chooser dialog can be used.
New edit menu items "Line Styles", "View Projection" and "Configuration"
that are shortcuts to the respective configuration screens.
New cmake build options using -DENABLE_OPENMP=yes and -DENABLE_LTO=yes
to enable support for multi-threading and link-time optimization.
"Shift+Scroll" for ten times finer zoom.
Translations: Chinese, French, German, Russian, Turkish, Ukrainian.
Bugs fixed:
Fixed broken --view options for command line thumbnail image creation.
Some errors in Triangulation of surfaces.
Some NURNS boolean operations that failed particularly on surfaces
created with Lathe, Revolve, or Helix.
Segfault in Remove Spline Point context menu.
A point in 3d constrained to any line whose length is free no longer
causes the line length to collapse.
Curve-line constraints (in 3d), parallel constraints (in 3d), and
same orientation constraints are more robust.
Adding some constraints (vertical, midpoint, etc) twice errors out
immediately, instead of later and in a confusing way.
Constraining a newly placed point to a hovered entity does not cause
spurious changes in the sketch.
Points highlighted with "Analyze → Show Degrees of Freedom" are drawn
on top of all other geometry.
A step rotate/translate group using a group forced to triangle mesh as
a source group also gets forced to triangle mesh.
Paste Transformed with a negative scale does not invert arcs.
The tangent arc now modifies the original entities instead of deleting
them, such that their constraints are retained.
When linking a sketch file, missing custom styles are now imported
from the linked file.
3Dconnexion SpaceMouse should now work (on Windows and macOS X).
Improved NURBS boolean operations on curved surfaces in some cases.
Show only usable fonts in the font selector.
Currently cad/oce does not build on Darwin, in part because sed
substitutions in CMakeFiles fail because the suffixes (.dylib) differ
from expected (.so). There are, however, two additional problems.
First, frameworks are not used by pkgsrc, yet CMakeLists.txt expects
them on Darwin and uses special installation steps. Instead, use the
standard installation steps. Additionally, there are a few PLIST
differences between Darwin and other platforms, which are handled with
PLIST.* variables that differentiate Darwin from other systems.
0.27.8 (2022-02-13):
* Bugfix: %GITHUB%/issues/971 Double compare fails in LVS
* Bugfix: %GITHUB%/issues/972 CIF writer generates unreadable file with invalid cell or layer names
* Bugfix: %GITHUB%/issues/973 Enhanced timeout in package manager on large file download
* Bugfix: %GITHUB%/issues/979 Backup file generation fails with relative paths
* Bugfix: %GITHUB%/issues/982 Heal option for tiled XOR
* Bugfix: %GITHUB%/issues/983 Bug changing PCell parameters of multiple cell instance
* Bugfix: %GITHUB%/issues/984 Crash in debug mode when placing a "slow cell"
* Bugfix: %GITHUB%/issues/994 Loss of selection when clicking at wrong position
To make this problem less annoying, the capture range was increased when
clicking at already selected items for "Move".
* Bugfix: %GITHUB%/issues/995 New top cell appearing after load
* Enhancement: %GITHUB%/issues/996 Refresh function to trigger update from within library
* Bugfix: %GITHUB%/issues/997 Wrong display of negative extensions of paths
* Bugfix: scale and grids were wrong in case of oversampling
Version 1.6.11 (Jan 14, 2022)
Fix in Cell.write_svg when missing references.
Speed improvements in Cell.remove_polygons (thanks Troy for the contribution).
Version 1.6.10 (Nov 14, 2021)
Fix in Cell.get_polygons
Version 1.6.9 (Sep 23, 2021)
Fix in Cell.get_polygons with specified layer and datatype.
Raise error for duplicate cells when reading a GDSII file.
Version 1.6.8 (Aug 2, 2021)
Fix in boolean for complex geometries that freeze the operation.
Version 1.6.7 (Jul 14, 2021)
Fixes in boolean for bugs with self-intersecting holes and holes horizontal edges.
Fix bug in warning message.
Version 1.6.6 (Jun 09, 2021)
Fix error in Path.smooth not finding _hobby function.
Allow precision specification in SVG output.
Version 1.6.5 (Jun 08, 2021)
Support GDSII files with 0-padding at the end.
Allow fixing and modifying GDSII file timestamps.
Thanks Troy Tamas and Joaquin Matres for the fixes
Version 1.6.4 (Apr 23, 2021)
Fix missing module import (thanks Troy Tamas for the fix).
Version 1.6.3 (Dec 28, 2020)
Fix bounding box edge case (thanks Troy Tamas for the fix).
Version 1.6.2 (Dec 18, 2020)
More efficient bounding box calculation (thanks to Troy Tamas for the contribution).
Fix Label creation bug.
Version 1.6.1 (Oct 22, 2020)
Fix SVG output when Label contains special characters.
0.27.7 (2022-01-12):
* Bugfix: %GITHUB%/issues/969 PCell error (infinite recursion)
0.27.6 (2022-01-04):
* Enhancement: %GITHUB%/issues/963 Display snapped position in main window
* Bugfix: %GITHUB%/issues/960 Cap values range now shown in netlist browser
* Bugfix: %GITHUB%/issues/954 Fixed a device extraction glitch
* Bugfix: %GITHUB%/issues/951 Internal error fixed when deleting the cell you're sitting at
Side effect: copy & paste of cells is correctly disabled now in viewer mode
* Bugfix: %GITHUB%/issues/942 Technology file routing suffix string typo
* Bugfix: %GITHUB%/issues/946 Python: __file__ returns quoted path string
* Bugfix: DRC check for equal width now returns more consistent results
Previously, a check like "layer.drc(width == something)" was not flagging
all candidates correctly.
* Enhancement: A PCell can request "lazy evaluation" now
This means that a parameter change needs to be committed in the UI before
it is being taken. This way, slow PCell evaluation will not make the
application stall. To add this feature, reimplement "wants_lazy_evaluation"
in the PCell class to return "true".
* Enhancement: "lvs_data" is a global function now in LVS scripts
* Bugfix: less liberal evaluation of expressions in string to numeric conversion
This will fix a potential vulnerability which allows someone to sneak
in expression code through malicious configuration, technology or layer properties
files.