OpenSCAD 2013.XX ================ Features: o Recursive modules and functions is now supported (including cascading child() operations) o Console output is now enabled on Windows through the openscad.com executable o Added basic syntax highlighting in the editor o Mac: Added document icon o Mac: Added auto-update check o Commandline output to PNG, with various camera and rendering settings o resize() command introduced o Regression test now creates single monolithic .html file for easier uploading o value reassignment is now less strict o value assignments in parameters can now depend on already declared parameters Bugfixes: o Importing files is now always relative to the importing script, also for libraries o OpenCSG rendering sometimes crashed when rendering large models o We didn't always print a warning when CSG normalization created too many elements o Binary STLs can now be read on big endian architectures o Some binary STLs couldn't be read o Fixed some issues related to ARM builds o Changed multmatrix floating-point output to improve dumptest portability o Regression test auto-starts & stops Xvfb / Xvnc if on headless unix machine o CGAL triangulation more lenient- enables partial rendering of 'bad' DXF data o Fixes problem where local changes are overwritten on automatic reload when included files has changed. OpenSCAD 2013.01 ================ Features: o Snappier GUI while performing CGAL computations (computations running in separate thread) o The size of the misc. caches can now be adjusted from Preferences o The limit for when to disable OpenCSG can now be adjusted from Preferences o Added Dot product operator: vec * vec o Added Matrix multiplication operator: vec * mat, mat * mat o Added search() function o Dependencies are now tracked - any changes in uses/included files will be detected and cause a recompile o The OPENSCADPATH environment variable is now implemented will have precedence when searching for libraries o .csg files can now be opened from the GUI o linear_extrude() will now assume that the first parameter means 'height' if it's a number Bugfixes: o use'ing an non-existing file sometimes crashed under Windows o Better font handling: Ensure a monospace font is chosen as default o Division by zero caused hang in some cases (e.g. sin(1/0)) o Larger minkowski operations sometimes caused a crash after a CGAL assert was thrown o Fixed crashes in shared_ptr.hpp (or similar places) due bugs in cache management and CSG normalization o scale() with a scale factor of zero could cause a crash o Fixed a number of issues related to use/include o Providing an unknown parameter on the cmd-line caused a crash o cmd-line overrides using -D now also work for USEd modules o Modifier characters can now be used in front of if statements o rotate() with a vector argument with less that 3 elements used uninitialized variables, ending up being non-deterministic. o .csg files will now have relative filenames whenever possible o Don't just ignore geometric nodes having zero volume/area - when doing difference/intersection, they tend to turn negative objects into positive ones. o Always use utf-8 file encoding, also under Windows o A lot of build script fixes o Some other crash bugs fixes Deprecations: o The old include syntax "" without the include keyword is no longer supported and will cause a syntax error. OpenSCAD 2011.12 ================ Features: o The MCAD library is now bundled with OpenSCAD o Added len() function. Takes one vector or string parameter and returns its length. o The index operator [] now works on strings o The version() function will return the OpenSCAD version as a vector, e.g. [2011, 09] o The version_num() function will return the OpenSCAD version as a number, e.g. 20110923 o hull() Now supports 3D objects o hull() with 2D object can now use for loops and boolean operations as children o New import() statement reads the correct file format based on the filename extension (.stl, .dxf and .off is supported) o The color() statement now supports an alpha parameter, e.g. color(c=[1,0,0], alpha=0.4) o The color() statement now supports specifying colors as strings, e.g. color("Red") o The color() statement now overrides colors specified further down in the tree o if()/else() and the ternary operator can now take any value type as parameter. false, 0, empty string and empty vector or illegal value type will evaluate as false, everything else as true. o Strings can now be lexographically compared using the <, <=, >, >= operators o Added PI constant. o Number literals in scientific notation are now accepted by the parser o Added import and export of the OFF file format o Now uses standard shortcuts for save, reload and quit on Linux and Windows. F2/F3 will still work but is deprecated. Bugfixes: o Complex CSG models sometimes took extremely long time to normalize before OpenCSG preview o square() crashed if any of the dimensions were zero o Flush Caches didn't flush cached USE'd modules o STL export should be a bit more robust o Dropping a file into the editor under Windows didn't work (double C:/C:/ problem) o On some platforms it was possible to insertion rich text in the editor, causing confusion. o Less crashes due to CGAL assertions o OpenCSG should now work on systems with OpenGL 1.x, given that the right extensions are available o include now searches librarydir o The $fs parameter yielded only half the number of segments it should have o surface(center=true) is now correctly centered in the XY plane Deprecations: o dxf_linear_extrude() and dxf_rotate_extrude() are now deprecated. Use linear_extrude() and rotate_extrude() instead. o The file, layer, origin and scale parameters to linear_extrude() and rotate_extrude() are now deprecated. Use an import() child instead. o import_dxf(), import_stl() and import_off() are now deprecated. Use import() instead. o When exporting geometry from the cmd-line, use the universal -o option. It will export to the correct file format based on the given suffix (dxf, stl, off). The -x and -s parameters are still working but deprecated. o F2 and F3 for Save and Reload is now deprecated OpenSCAD 2011.06 ================ o Added "Export as Image" menu. Bugfixes: o Cylinder tesselation broke existing models which are using cylinders for e.g. captured nut slots and are dependent on the orientation not changing. o DXF output couldn't be imported into e.g. AutoCAD and Solidworks after updating to using the AutoCAD 2000 (AC1015) format. Reverted to the old entity-only output, causing LWPOLYLINES to not exported allowed anymore. OpenSCAD 2011.04 ================ o Added hull() for convex hulls (2D object only) o minkowski() now supports 2D objects o Added functions: rands(), sign() o Now supports escaping of the following characters in strings: \n, \t, \r, \\, \" o Support nested includes o Improved parsing of numbers o DXF: output LWPOLYLINE instead of just LINE entities o Bugfixes: More robust DXF export, setting $fs/$fa to 0 caused a crash o Some bugs fixed, maybe some new bugs added OpenSCAD 2010.05 ================ o Added functions and statements - Added abs() function - Added exp(x), log(b, x), log(x) and ln(x) functions - Added minkowski() statement for 3d minkowski sums o Added 'include ' and 'use ' statements - Old implicit '' include statement is now obsolete o Some bugs fixed, maybe some new bugs added OpenSCAD 2010.02 ================ o Added functions and statements - Added sqrt() function - Added round(), ceil() and floor() functions - Added lookup() function for linear interpolation in value list - Added projection(cut = true/false) statement - Added child() statement for accessing child nodes of module instances - Added mirror() statement o Improved DXF import code (more entities and some bugs fixed) o Added feature for dumping animation as PNG files o Added a preferences dialog o Now using CGAL's delaunay tesselator o Now using eigen2 for linear algebra o Reorganisation of the source tree o Some bugs fixed, maybe some new bugs added OpenSCAD 2010.01 ================ o Added functions and statements - Added intersection_for() - Added str function - Added min and max function - Added color() statement o Added 2D Subsystem - New primitives: circle(), square() and polygon() - 2D->3D path: linear_extrude() and rotate_extrude() - Import of DXF to 2d subsystem: import_dxf() - Export of 2D data as DXF files o Some bugs fixed, maybe some new bugs added