Final Update of Changelog for 3.0 (#1025)

* Final Update of Changelog for 3.0

* Fix markdownlint warnings on CHANGELOG.md

* Remove Q3D mention from 3.0 release changelog.

Co-authored-by: Ryan Pavlik <ryan.pavlik@collabora.com>
pull/1029/head
ruevs 2021-04-23 14:29:22 +03:00 committed by GitHub
parent 8fbefa1ae5
commit bedf72180e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 244 additions and 230 deletions

View File

@ -5,279 +5,293 @@ Changelog
--- ---
New sketch features: New sketch features:
* New intersection boolean operation for solid models.
* New groups, revolution and helical extrusion. * New intersection boolean operation for solid models.
* Extrude, lathe, translate and rotate groups can use the "assembly" * New groups, revolution and helical extrusion.
* Extrude, lathe, translate and rotate groups can use the "assembly"
boolean operation, to increase performance. boolean operation, to increase performance.
* The solid model of extrude and lathe groups can be suppressed, * The solid model of extrude and lathe groups can be suppressed,
for splitting a single model in multiple parts to export, for splitting a single model in multiple parts to export,
or if only the generated entities are desired, without the mesh. or if only the generated entities are desired, without the mesh.
* Translate and rotate groups can create n-dimensional arrays using * Translate and rotate groups can create n-dimensional arrays using
the "difference" and "assembly" boolean operations. the "difference" and "assembly" boolean operations.
* A new sketch in workplane group can be created based on existing workplane. * 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 * TTF text request has two additional points on the right side, which allow
constraining the width of text. constraining the width of text.
* Image requests can now be created, similar to TTF text requests. * Image requests can now be created, similar to TTF text requests.
This replaces the "style → background image" feature. This replaces the "style → background image" feature.
* Irrelevant points (e.g. arc center point) are not counted when estimating * Irrelevant points (e.g. arc center point) are not counted when estimating
the bounding box used to compute chord tolerance. the bounding box used to compute chord tolerance.
* When adding a constraint which has a label and is redundant with another * When adding a constraint which has a label and is redundant with another
constraint, the constraint is added as a reference, avoiding an error. constraint, the constraint is added as a reference, avoiding an error.
* Datum points can be copied and pasted. * Datum points can be copied and pasted.
* "Split Curves at Intersection" can now split curves at point lying on curve, * "Split Curves at Intersection" can now split curves at point lying on curve,
not just at intersection of two curves. not just at intersection of two curves.
* Property browser now shows amount of degrees of freedom in group list. * 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 It also shows a yellow "err" if the sketch has problems (e.g. self
intersecting) that would propagate in subsequent groups. intersecting) that would propagate in subsequent groups.
* It is now possible to press "g" to toggle construction on new objects while * It is now possible to press "g" to toggle construction on new objects while
they are still being drawn. they are still being drawn.
* Allow right click to end sketching of all entities.
New constraint features: New constraint features:
* When dragging an arc or rectangle point, it will be automatically
* When dragging an arc or rectangle point, it will be automatically
constrained to other points with a click. constrained to other points with a click.
* When selecting a constraint, the requests it constraints can be selected * When selecting a constraint, the requests it constraints can be selected
in the text window. in the text window.
* When selecting an entity, the constraints applied to it can be selected * When selecting an entity, the constraints applied to it can be selected
in the text window. in the text window.
* Distance constraint labels can now be formatted to use SI prefixes. * Distance constraint labels can now be formatted to use SI prefixes.
Values are edited in the configured unit regardless of label format. Values are edited in the configured unit regardless of label format.
* When creating a constraint, if an exactly identical constraint already * When creating a constraint, if an exactly identical constraint already
exists, it is now selected instead of adding a redundant constraint. exists, it is now selected instead of adding a redundant constraint.
* It is now possible to turn off automatic creation of horizontal/vertical * It is now possible to turn off automatic creation of horizontal/vertical
constraints on line segments. constraints on line segments.
* Automatic creation of constraints no longer happens if the constraint * Automatic creation of constraints no longer happens if the constraint
would have been redundant with other ones. would have been redundant with other ones.
* New option to open the constraint editor for newly created constraints * New option to open the constraint editor for newly created constraints
with a value. with a value.
* New "redundant constraint timeout (in ms)" option to prevent UI freeze * New "redundant constraint timeout (in ms)" option to prevent UI freeze
when looking for redundant constraints. when looking for redundant constraints.
* Swap vertical and horizontal constraints when pasting rotated by 90/270 * Swap vertical and horizontal constraints when pasting rotated by 90/270
degrees. degrees.
New export/import features: New export/import features:
* Link IDF circuit boards in an assembly (.emn files)
* Three.js: allow configuring projection for exported model, and initially * Link IDF circuit boards in an assembly (.emn files)
* Three.js: allow configuring projection for exported model, and initially
use the current viewport projection. use the current viewport projection.
* Wavefront OBJ: a material file is exported alongside the model, containing * Wavefront OBJ: a material file is exported alongside the model, containing
mesh color information. mesh color information.
* DXF/DWG: 3D DXF files are imported as construction entities, in 3d. * DXF/DWG: 3D DXF files are imported as construction entities, in 3d.
* [ADDED 2019-02-25](https://github.com/solvespace/solvespace/pull/384) and [REMOVED 2020-11-13](https://github.com/solvespace/solvespace/issues/795): * VRML (WRL) triangle meshes can now be exported, useful for e.g. [KiCAD](http://kicad.org).
Q3D: [Q3D](https://github.com/q3k/q3d/) triangle meshes can now be * Export 2d section: custom styled entities that lie in the same
exported. This format allows to easily hack on triangle mesh data created
in SolveSpace, supports colour information and is more space efficient than
most other formats.
* VRML (WRL) triangle meshes can now be exported, useful for e.g. [KiCAD](http://kicad.org).
* Export 2d section: custom styled entities that lie in the same
plane as the exported section are included. plane as the exported section are included.
* Added ExportBackgroundColor in configuration for EPS, PDF, and SVG files. * Added ExportBackgroundColor in configuration for EPS, PDF, and SVG files.
* STEP export includes object colors and transparency. * STEP export includes object colors and transparency.
* Default "line styles" have a new "export these objects" option.
New rendering features: New rendering features:
* The "Show/hide hidden lines" button is now a tri-state button that allows
* 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 showing all lines (on top of shaded mesh), stippling occluded lines
or not drawing them at all. or not drawing them at all.
* The "Show/hide outlines" button is now independent from "Show/hide edges". * 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" * "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 group is active solids form previous groups will not be "darkened" (have the
s000d-#def-dim-solid style applied to them). s000d-#def-dim-solid style applied to them).
New measurement/analysis features: New measurement/analysis features:
* New choice for base unit, meters.
* New command for measuring total length of selected entities, * New choice for base unit, meters.
* New command for measuring total length of selected entities,
"Analyze → Measure Perimeter". "Analyze → Measure Perimeter".
* New command for measuring center of mass, with live updates as the sketch * New command for measuring center of mass, with live updates as the sketch
changes, "Analyze → Center of Mass". changes, "Analyze → Center of Mass".
* New option for displaying areas of closed contours. * New option for displaying areas of closed contours.
* When calculating volume of the mesh, volume of the solid from the current * When calculating volume of the mesh, volume of the solid from the current
group is now shown alongside total volume of all solids. group is now shown alongside total volume of all solids.
* When calculating area, and faces are selected, calculate area of those faces * When calculating area, and faces are selected, calculate area of those faces
instead of the closed contour in the sketch. instead of the closed contour in the sketch.
* When selecting a point and a line, projected distance to current * When selecting a point and a line, projected distance to current
workplane is displayed. workplane is displayed.
Other new features: 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. * Improvements to the text window for selected entities and constraints.
* New command-line interface, for batch exporting and more. * Ambient light source added in text window to allow flat shaded renderings.
* The graphical interface now supports HiDPI screens on every OS. * New command-line interface, for batch exporting and more.
* New option to lock Z axis to be always vertical, like in SketchUp. * The graphical interface now supports HiDPI screens on every OS.
* New button to hide all construction entities. * New option to lock Z axis to be always vertical, like in SketchUp.
* New link to match the on-screen size of the sketch with its actual size, * 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". "view → set to full scale".
* When zooming to fit, constraints are also considered. * When zooming to fit, constraints are also considered.
* Ctrl-clicking entities now deselects them, as the inverse of clicking. * Ctrl-clicking entities now deselects them, as the inverse of clicking.
* When clicking on an entity that shares a place with other entities, * When clicking on an entity that shares a place with other entities,
the entity from the current group is selected. the entity from the current group is selected.
* When dragging an entity that shares a place with other entities, * When dragging an entity that shares a place with other entities,
the entity from a request is selected. For example, dragging a point on 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 a face of an extrusion coincident with the source sketch plane will
drag the point from the source sketch. drag the point from the source sketch.
* The default font for TTF text is now Bitstream Vera Sans, which is * 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. included in the resources such that it is available on any OS.
* In expressions, numbers can contain the digit group separator, "_". * In expressions, numbers can contain the digit group separator, "_".
* The "=" key is bound to "Zoom In", like "+" key. * The "=" key is bound to "Zoom In", like "+" key.
* The numpad decimal separator key is bound to "." regardless of locale. * The numpad decimal separator key is bound to "." regardless of locale.
* On Windows, full-screen mode is implemented. * On Windows, full-screen mode is implemented.
* On Linux, native file chooser dialog can be used. * On Linux, native file chooser dialog can be used.
* New edit menu items "Line Styles", "View Projection" and "Configuration" * New edit menu items "Line Styles", "View Projection" and "Configuration"
that are shortcuts to the respective configuration screens. that are shortcuts to the respective configuration screens.
* New cmake build options using -DENABLE_OPENMP=yes and -DENABLE_LTO=yes * New cmake build options using -DENABLE_OPENMP=yes and -DENABLE_LTO=yes
to enable support for multi-threading and link-time optimization. to enable support for multi-threading and link-time optimization.
* "Shift+Scroll" for ten times finer zoom. * "Shift+Scroll" for ten times finer zoom.
* Chinese translation * Translations: Chinese, French, German, Russian, Turkish, Ukrainian.
Bugs fixed: Bugs fixed:
* Fixed broken --view options for command line thumbnail image creation.
* Some errors in Triangulation of surfaces. * Fixed broken --view options for command line thumbnail image creation.
* Some NURNS boolean operations that failed particularly on surfaces * Some errors in Triangulation of surfaces.
* Some NURNS boolean operations that failed particularly on surfaces
created with Lathe, Revolve, or Helix. created with Lathe, Revolve, or Helix.
* Segfault in Remove Spline Point context menu. * Segfault in Remove Spline Point context menu.
* A point in 3d constrained to any line whose length is free no longer * A point in 3d constrained to any line whose length is free no longer
causes the line length to collapse. causes the line length to collapse.
* Curve-line constraints (in 3d), parallel constraints (in 3d), and * Curve-line constraints (in 3d), parallel constraints (in 3d), and
same orientation constraints are more robust. same orientation constraints are more robust.
* Adding some constraints (vertical, midpoint, etc) twice errors out * Adding some constraints (vertical, midpoint, etc) twice errors out
immediately, instead of later and in a confusing way. immediately, instead of later and in a confusing way.
* Constraining a newly placed point to a hovered entity does not cause * Constraining a newly placed point to a hovered entity does not cause
spurious changes in the sketch. spurious changes in the sketch.
* Points highlighted with "Analyze → Show Degrees of Freedom" are drawn * Points highlighted with "Analyze → Show Degrees of Freedom" are drawn
on top of all other geometry. on top of all other geometry.
* A step rotate/translate group using a group forced to triangle mesh * A step rotate/translate group using a group forced to triangle mesh
as a source group also gets forced to triangle mesh. as a source group also gets forced to triangle mesh.
* Paste Transformed with a negative scale does not invert arcs. * Paste Transformed with a negative scale does not invert arcs.
* The tangent arc now modifies the original entities instead of deleting * The tangent arc now modifies the original entities instead of deleting
them, such that their constraints are retained. them, such that their constraints are retained.
* When linking a sketch file, missing custom styles are now imported from * When linking a sketch file, missing custom styles are now imported from
the linked file. the linked file.
* 3Dconnexion SpaceMouse should now work (on Windows and macOS X). * 3Dconnexion SpaceMouse should now work (on Windows and macOS X).
* Improved NURBS boolean operations on curved surfaces in some cases. * Improved NURBS boolean operations on curved surfaces in some cases.
* Show only usable fonts in the font selector. * Show only usable fonts in the font selector.
2.x 2.x
--- ---
Bug fixes: Bug fixes:
* Do not crash when changing an unconstrained lathe group between
* Do not crash when changing an unconstrained lathe group between
union and difference modes. union and difference modes.
2.3 2.3
--- ---
Bug fixes: Bug fixes:
* Do not crash when applying a symmetry constraint to two points.
* Fix TTF font metrics again (properly this time). * Do not crash when applying a symmetry constraint to two points.
* Fix the "draw back faces in red" option. * Fix TTF font metrics again (properly this time).
* Fix export of wireframe as 3D DXF. * Fix the "draw back faces in red" option.
* Various minor crashes. * Fix export of wireframe as 3D DXF.
* Various minor crashes.
2.2 2.2
--- ---
Other new features: Other new features:
* OS X: support 3Dconnexion devices (SpaceMouse, SpaceNavigator, etc).
* GTK: files with uppercase extensions can be opened. * OS X: support 3Dconnexion devices (SpaceMouse, SpaceNavigator, etc).
* GTK: files with uppercase extensions can be opened.
Bug fixes: Bug fixes:
* Do not remove autosaves after successfully opening a file, preventing
* Do not remove autosaves after successfully opening a file, preventing
data loss in case of two abnormal terminations in a row. data loss in case of two abnormal terminations in a row.
* Do not crash when changing autosave interval. * Do not crash when changing autosave interval.
* Unbreak the "Show degrees of freedom" command. * Unbreak the "Show degrees of freedom" command.
* Three.js: correctly respond to controls when browser zoom is used. * Three.js: correctly respond to controls when browser zoom is used.
* OS X: do not completely hide main window when defocused. * OS X: do not completely hide main window when defocused.
* GTK: unbreak 3Dconnexion support. * GTK: unbreak 3Dconnexion support.
* When pasting transformed entities, multiply constraint values by scale. * When pasting transformed entities, multiply constraint values by scale.
* Fix TTF font metrics (restore the behavior from version 2.0). * Fix TTF font metrics (restore the behavior from version 2.0).
* Forcibly show the current group once we start a drawing operation. * Forcibly show the current group once we start a drawing operation.
* DXF export: always declare layers before using them. * DXF export: always declare layers before using them.
* Do not truncate operations on selections to first 32 selected entities. * Do not truncate operations on selections to first 32 selected entities.
* Translate and rotate groups inherit the "suppress solid model" setting. * Translate and rotate groups inherit the "suppress solid model" setting.
* DXF: files with paths containing non-ASCII or spaces can be exported * DXF: files with paths containing non-ASCII or spaces can be exported
or imported. or imported.
* Significantly improved performance when dragging an entity. * Significantly improved performance when dragging an entity.
* Various crashes and minor glitches. * Various crashes and minor glitches.
2.1 2.1
--- ---
New sketch features: New sketch features:
* Lathe groups create circle and face entities.
* New toolbar button for creating lathe groups. * Lathe groups create circle and face entities.
* Chord tolerance is separated into two: display chord tolerance (specified * New toolbar button for creating lathe groups.
* Chord tolerance is separated into two: display chord tolerance (specified
in percents, relative to model bounding box), and export chord tolerance in percents, relative to model bounding box), and export chord tolerance
(specified in millimeters as absolute value). (specified in millimeters as absolute value).
* Bezier spline points can be added and removed after the spline is created. * Bezier spline points can be added and removed after the spline is created.
* When an unconstrained extrusion is switched between "union" and * When an unconstrained extrusion is switched between "union" and
"difference", its normal is flipped. "difference", its normal is flipped.
* Groups can be added in the middle of the stack. Note that this results * Groups can be added in the middle of the stack. Note that this results
in files incompatible with version 2.0. in files incompatible with version 2.0.
* Active group can be removed. * Active group can be removed.
* Removing an imported group does not cause all subsequent groups to also * Removing an imported group does not cause all subsequent groups to also
be removed. be removed.
* When a new group with a solid is created, the color is taken from * When a new group with a solid is created, the color is taken from
a previous group with a solid, if any. a previous group with a solid, if any.
* Entities in a newly active group do not become visible. * Entities in a newly active group do not become visible.
* When entities are selected, "Zoom to fit" zooms to fit only these * When entities are selected, "Zoom to fit" zooms to fit only these
entities and not the entire sketch. entities and not the entire sketch.
* Zero-length edges are reported with a "zero-length error", not * Zero-length edges are reported with a "zero-length error", not
"points not all coplanar". "points not all coplanar".
New constraint features: New constraint features:
* Height of the font used for drawing constraint labels can be changed.
* New constraint, length difference, placed with J. * Height of the font used for drawing constraint labels can be changed.
* New constraint, length difference, placed with J.
(Patch by Peter Ruevski) (Patch by Peter Ruevski)
* Horizontal/vertical constraints are automatically added if a line segment * Horizontal/vertical constraints are automatically added if a line segment
is close enough to being horizontal/vertical. This can be disabled by is close enough to being horizontal/vertical. This can be disabled by
holding Ctrl. holding Ctrl.
* Reference dimensions and angles can be placed with Shift+D and Shift+N. * Reference dimensions and angles can be placed with Shift+D and Shift+N.
* Copying and pasting entities duplicates any constraints that only involve * Copying and pasting entities duplicates any constraints that only involve
entities in the clipboard, as well as selected comments. entities in the clipboard, as well as selected comments.
* Diameter constraints can be shown as radius. * Diameter constraints can be shown as radius.
* The "pi" identifier can be used in expressions. * The "pi" identifier can be used in expressions.
* Constraint labels can be snapped to grid. * Constraint labels can be snapped to grid.
* Integer angles are displayed without trailing zeroes. * Integer angles are displayed without trailing zeroes.
* Angle constraints have proper reference lines and arrowheads. * Angle constraints have proper reference lines and arrowheads.
* Extension lines are drawn for point-line distance constraints. * Extension lines are drawn for point-line distance constraints.
New solver features: New solver features:
* Sketches with redundant and unsolvable constraints are distinguished.
* New group setting, "allow redundant constraints". Note that it makes * Sketches with redundant and unsolvable constraints are distinguished.
* New group setting, "allow redundant constraints". Note that it makes
the solver less stable. the solver less stable.
New rendering and styling features: New rendering and styling features:
* New line style parameter: stippling, based on ISO 128.
* Outlines of solids can be drawn in a particular style (by default, thick * New line style parameter: stippling, based on ISO 128.
* Outlines of solids can be drawn in a particular style (by default, thick
lines) controlled by the "Show outline of solid model" button. lines) controlled by the "Show outline of solid model" button.
* Occluded edges can be drawn in a particular style (by default, stippled * Occluded edges can be drawn in a particular style (by default, stippled
with short dashes) controlled by the "Show hidden lines" button. with short dashes) controlled by the "Show hidden lines" button.
* Solids can be made transparent. * Solids can be made transparent.
New export/import features: New export/import features:
* The old "import" command (for .slvs files) is renamed to "link".
* If a linked .slvs file is not found, first the relative path recorded * The old "import" command (for .slvs files) is renamed to "link".
* If a linked .slvs file is not found, first the relative path recorded
in the .slvs file is checked and then the absolute path; this is in the .slvs file is checked and then the absolute path; this is
an inversion of the previously used order. If it is still not found, an inversion of the previously used order. If it is still not found,
a dialog appears offering to locate it. a dialog appears offering to locate it.
* DXF and DWG files can be imported, with point-coincident, horizontal and * DXF and DWG files can be imported, with point-coincident, horizontal and
vertical constraints automatically inferred from geometry, and distance vertical constraints automatically inferred from geometry, and distance
and angle constraints created when a dimension placed against geometry and angle constraints created when a dimension placed against geometry
exists. exists.
* Triangle mesh can be exported for viewing in the browser through WebGL. * Triangle mesh can be exported for viewing in the browser through WebGL.
* Export dialogs remember the last file format used, and preselect it. * Export dialogs remember the last file format used, and preselect it.
* Exported DXF files have exact circles, arcs and splines instead of * Exported DXF files have exact circles, arcs and splines instead of
a piecewise linear approximation (unless hidden line removal was needed). a piecewise linear approximation (unless hidden line removal was needed).
* Exported DXF files preserve color and line thickness. * Exported DXF files preserve color and line thickness.
* In exported DXF files, constraints are represented as DXF dimensions, * In exported DXF files, constraints are represented as DXF dimensions,
instead of piecewise linear geometry. instead of piecewise linear geometry.
* When exporting 2d views, overlapping lines are removed. * When exporting 2d views, overlapping lines are removed.
Other new features: Other new features:
* Native Linux (GTK 2 and GTK 3) and Mac OS X ports.
* Automatically save and then restore sketches if SolveSpace crashes. * Native Linux (GTK 2 and GTK 3) and Mac OS X ports.
* Automatically save and then restore sketches if SolveSpace crashes.
(Patch by Marc Britten) (Patch by Marc Britten)
* Unicode is supported everywhere (filenames, group names, TTF text, * Unicode is supported everywhere (filenames, group names, TTF text,
comments), although RTL scripts and scripts making heavy use of ligatures comments), although RTL scripts and scripts making heavy use of ligatures
are not rendered correctly. are not rendered correctly.
* The vector font is grid-fitted when rendered on screen to make it easier * The vector font is grid-fitted when rendered on screen to make it easier
to read regardless of its size. to read regardless of its size.
2.0 2.0