Even though the development cycle was a bit shorter than last time, it's still
been almost 2 years and this has collected quite a long list of new features and
bugixes for this release.
The big language change is the introduction of
function
literals but there are a number of other useful changes too, like the
new exponent operator (^
) and much better and more general support for tail
recursion optimization.
The GUI and especially the Editor has seen a huge amount of new features. Most
visible is probably the auto-complete which can propose built-in functions and
modules.
Another much anticipated feature is the "jump to code" from the 3d preview.
While it's not possible to go into the deepest levels of the design in all cases,
it's a great tool to navigate designs.
But it's worth highlighting also some of the not so obvious smaller features which
might improve the editing workflow.
- Bookmarks - Ctrl+F2 to toggle bookmarks, F2 / Shift+F2 for jumping to next/previous bookmark.
- Changing numbers via mouse - Similar to ALT+Cursor-Up/Down, numbers can be modified by placing the cursor at the number and using the mouse scroll wheel while pressing the ALT key.
- Code snippets - Insert often used code snippets using ALT+Insert or via editor context menu, custom templates can be added as simple files.
Thanks to everyone who has contributed to this release through development
and community management, bug reports and fixes, documentation, translation,
discussions, as well as testing the release candidates!
A special thank you goes to the Google Summer of Code students who have
joined the OpenSCAD team for a couple of month and have helped to make some of those
new features possible (details on those projects can be found in the
project reports
on github). It's been a nice time and an opportunity learn and discuss ideas.
The source code, as well as binaries for Mac OS X, Windows and Linux are ready
for download.
An overview of changes since last release follows, for all the details
including a list of bugfixes, see the
release
page on github.
Enjoy,
The OpenSCAD Development Team.
Language Features
New
- Add function literals
- Add exponent function (e.g. 2^3)
- Add convexity parameter to resize()
- Add support for generic tail recursion
- Add $vpf for viewport field of view
- Add warnings for ranges with begin < end
- Add warnings for matrix structure problems
Changed
- Allow random seeds to stick between rands() calls
- Make comparison operators on mixed types return undef
- Track reason for values turning undef
Fixed
- Fix Range precision
- Fix empty geometry handling
- Fix search order for imported modules
- Improve internal handling of data values
- Improve performance of array concatenation
- Improve float accuracy of mirror matrix calculation
- Improve polygon and polyhedron warnings/errors
Program Features
GUI
- Add jump to source code from 3D preview
- Add Error-Log window for tracking errors and warnings
- Add window menu to allow keyboard access to all docked windows
- Enable default binary stl output, and ascii option
- Show message in console when caches are flushed
- Disable HTML rendering in console
- Enable color scheme for CGAL 2D render
- Simplified OpenCSG edge shader, with added smoothing
- New and updated translations: Chinese, Armenian, French, Russian, Polish, German
Editor
- Edit multiple files in tabs
- Switch tabs via Ctrl+Tab / Ctrl+Shift+Tab
- Modify numbers via mouse scroll (when holding ALT)
- Add auto-complete & call-tips for built-ins
- Add configurable code snippets
- Add (line) bookmarks
- Add jump to error
- Add support for line/block copy and move
- Add convenience context menu to tab header
- Open include<>/use<> files via inline link
- Fix search highlight for utf8 text
- Fix display of matches in search field
- Add Find/Find Next/Find Previous to editor context menu
Command line
- Support reading scripts from STDIN
- Support export to STDOUT
- Add multi-export on command line
- Add --animate command line option
- Add --export-format command line option
- Allow view-port variables in command-line mode
- Allow export to .ast, .csg, .echo and .term in preview mode
- Print statistics in cmdline mode as in GUI
General
- Add PDF export (single page only)
- Add support for line-cap and line-join in SVG import
- Add support stroke-linejoin in SVG import
- Change CGAL Union to join least complex geometries first
- Install start shortcut for all users on Windows
- Install icons with defined sizes (e.g. required by flathub)
- Switch to C++14 and allow usage of header-only CGAL
- Add support for lib3MF v2.0 API
- Update AppStream release info