SolveSpace
SolveSpace is a free and open-source 2D/3D constraint-based parametric computer-aided design (CAD) software that supports basic 2D and 3D constructive solid geometry modeling.
Developer(s) | Jonathan Westhues |
---|---|
Initial release | 2008 |
Stable release | 3.1[1]
/ 1 June 2022 |
Repository | |
Written in | C++ |
Operating system | Microsoft Windows, Linux, Mac OS |
Platform | PC |
Type | CAD |
License | GPL-3.0-or-later |
Website | solvespace |
It is a constraint-based parametric modeler with simple mechanical simulation capabilities. Version 2.1 and onward runs on Windows, Linux and macOS. The Linux version is shipped as a snap and native packages. It supports STEP and DFX for import and export. By default, SolveSpace utilizes its own CAD file format called .slvs
for model storage. It is possible to export models as a whole or in part to various formats such as PDF, SVG, or Encapsulated PostScript (EPS).
It was initially created by Jonathan Westhues and as of 2022 is maintained by a community of volunteers.
History
Development of SolveSpace started in 2008 as commercial proprietary software for Microsoft Windows.[2] A previous software package called SketchFlat, also developed by Westhues, was replaced by SolveSpace.[3]
In 2012 version 1.9 released as unrestricted freeware proprietary software.[4] In 2013 version 2.0 released as free and open-source software.[5][6] In 2016 version 2.1 brings support for Linux and MacOS.[7]
According to an interview given in 2020 by a major maintainer SolveSpace aims to be backwards compatibile as much as possible. The codebase at the time was about 30,000 lines of code and it took Whitequark almost 2 years to familiarize herself with it.[8][9] On September 22, 2020, Whitequark stepped down as a maintainer.[10]
Overview
SolveSpace is free and open source software distributed under the GPL-3.0-or-later license.[11]
Features
SolveSpace is shipped with the following basic features:[12][13]
- 2D Sketch Modeling
- SolveSpace supports parametric 2D drawing of lines, circles, arcs, Cubic bézier curves etc; datum points and lines are also supported for general, reference based modeling.[13]
- 3D Solid Modeling
- Drawing, extrusion, rotation and revolution along a helix are supported in both modes. In 3D it is possible to use basic Boolean operations (union, difference, intersection), though as of version 3.0, SolveSpace had limitations on the order of application of these operations.[13]
- Mechanical design and analysis
- By using the built-in constraint solver it is possible to visualize planar or spatial linkages with pin, ball, or slide joints, trace their movements, and export its data in CSV format.
- Assembly
- SolveSpace allows solids to be imported in a special mode that does not allow modeling. These imported solids can then be constrained to ensure that the designed model's dimensions meet necessary requirements.
- Plane and solid geometry
- Replace hand-solved trigonometry and spreadsheets with a live dimensioned drawing.
Supported file formats
Importing
Filename extension |
.slvs |
---|---|
Internet media type |
text/plain |
Developed by | Jonathan Westhues, Whitequark, et al. |
Type of format | text/plain |
SolveSpace can open and import its own textual *.slvs
file formats for both editing and assembly. The DXF/DWG file format AutoCAD (version 2007) is supported for opening and editing.[13]
Exporting
SolveSpace v3.0 is able to export 2D sketches and surfaces into DXF/DWG (AutoCAD version 2007), PDF, SVG, EPS, and HPGL file formats. Wireframes can be exported as DXF and STEP files. Polygon meshes can be exported as STL and Wavefront OBJ; NURBS as STEP. SolveSpace is able to export models in STEP, STL, and G-code for reuse in third-party CAM software.[13]
Workflow
SolveSpace workflow starts either with opening an existing file or creating a new one and usually involves sketching. The basic shapes of a new physical part is sketched out and constrained to specific dimensions and locations. When the model is complete, it is either exported to one of the supported CAD formats or into a document for further processing.
Sketching
Modeling in SolveSpace is done by way of sketching in a workplane.[15] A workplane is plane with an origin for the new sketch where the SolveSpace draws entities. Users can make it active and draw basic primitives such as lines, circles, arcs, dots, and other points of references on the workplane, and constrain them to specific dimensions and relations.[15]
SolveSpace can split intersecting entities via a separate tool. Users can snap points to a grid.[15] There are no software limitations for the number of workplanes user can create.[15]
Constraints
Constraints include dimension limitation, angle, paralleling with another line, tangency, point, symmetry and alignment of a line with origin axes (to make them "vertical" or "horizontal").[15] The radius of a circle, for instance, can be constrained to a specific value, or can be influenced by some other entity dimension.
3D modeling
When sketching is complete, a 3D part can be extruded into a volumetric model for further modeling. An extruded model creates a group along a specified normal. Every group in SolveSpace encapsulates an action applied to the specified sketch created for every 3D operation, such as an extrusion, rotation, or translation. Created 3D models can also be further constrained with the basic tools mentioned above or combined with another one by Boolean operations.
It is also possible to draw a workplane on a specific "surface" of another 3D model; the surface is usually indicated by two line segments joined by a point.
Assembly
In order to verify a newly modeled concept in SolveSpace, users can "link" all the components and constrain them at specific positions to check whether the virtual end-product meets the original concept's design and constraints.[15]
Libraries
SolveSpace depends upon ANGLE, OpenGL Utility Library, zlib, libpng, libdxfrw, cairo, mimalloc, libsigc++ and some other C++ libraries, as well as freetype2, harfbuzz, and Pango for text rendering. On Linux Solvespace uses gtk-3.
Limitations
As of v2.1., SolveSpace reference lists a disclaimer on limited support for NURB-surface Boolean operations which may occasionally fail.[15]
As of v3.0 SolveSpace didn't provide functionality for chamfers/fillets on top of 3D solid body.[16][17] However there is a way to make it manually.[18][19] As for 2D sketch there is a way to create fillets as a tangent arc at corner point.[20]
SolveSpace may fit well for simpler CAM models, but not for sophisticated ones.[lower-alpha 1]
There is no extrude along the path.[22]
Criticism
A 2013 article and interview with the main developer published in Libre Graphics World has praised SolveSpace for its small executable file size, advanced constraints solver, and output formats.[23] However, it was also criticized for some drawbacks it had at the time, such as limited support for NURBS (i.e. boolean operations) and a lack of native Linux support, the latter of which has since been rectified.[23] On the other hand NURBS operations are parallel, instead of single-threaded.[24]
See also
Notes
- According to Jonathan Westhues himself.[21]
References
- "Release 3.1".
- "SolveSpace - Buy". solvespace.com. 2008-10-09. Archived from the original on 2008-10-09. Retrieved 2023-02-19.
- "SketchFlat: 2d CAD, with Constraints".
- "SolveSpace - parametric 3d CAD". solvespace.com. 2012-03-07. Archived from the original on 2012-03-07. Retrieved 2023-02-19.
- "SolveSpace - parametric 3d CAD". solvespace.com. 2013-08-01. Archived from the original on 2013-08-01. Retrieved 2023-02-19.
- Alexandre, Prokoudine (2023-02-06). "A survey of free CAD system". LWN.net. Archived from the original on 2023-02-19. Retrieved 2023-02-19.
- "SolveSpace - parametric 3d CAD". solvespace.com. 2016-06-13. Archived from the original on 2016-06-13. Retrieved 2023-02-19.
- Asay, Matt (2020-08-07). "The secret to becoming an open source project lead". TechRepublic. Retrieved 2022-02-08.
- Asay, Matt (2020-05-18). "Why slowing new feature development can be the best way to maintain an open source project". TechRepublic. Retrieved 2022-02-08.
- "Stepping down as a maintainer · Issue #714 · solvespace/solvespace". GitHub. Retrieved 2022-02-08.
- "SolveSpace CAD Software | AnyTechTrial". www.anytechtrial.com. Retrieved 2022-02-08.
- "SolveSpace - parametric 3d CAD".
- "SolveSpace - Features". solvespace.github.io. Retrieved 2022-02-12.
- "SolveSpace - Tutorial - Assemblies". solvespace.com. Retrieved 2023-01-23.
- "SolveSpace - Reference". solvespace.com. Retrieved 2022-02-08.
- Cook, Jeremy (2022-12-01). "SolveSpace: Light Weight Open Source 3D CAD". Embedded Computing Design. Retrieved 2023-01-23.
- "SolveSpace CAD", Build Your Own, Linux Out Loud, vol. 46, TuxDigital, 2023-01-11, retrieved 2023-01-23
- "make chamfers as easy as fillets · Issue #149 · solvespace/solvespace". GitHub. Retrieved 2023-01-23.
- "Tips'n'Tricks Sampes · Issue #1 · Symbian9/SolveSpace-Daily-Engineering". GitHub. Retrieved 2023-01-23.
- "SolveSpace - Tutorial - Drawing an Angle Bracket". solvespace.com. Retrieved 2023-01-23.
- "SolveSpace - Forum". solvespace.com. Retrieved 2022-11-27.
- "Open Source Parametric CAD", Open Source CAD & Selling Stuff Online, The Meltzone Podcast, vol. 54, 2021-12-30, retrieved 2023-01-23
- Prokoudine, Alexandre. "SolveSpace 2D/3D CAD software released under terms of GPL". Libre Graphics World, June 2013. Archived from the original on February 19, 2020. Retrieved 12 June 2016.
- Jessie, Frazelle (2021-06-06). "A New Era for Mechanical CAD". ACM Queue. 19 (2): 5–17. doi:10.1145/3466132.3469844. S2CID 235812676.
Publications
- Angelo, L. D.; Leali, F.; Stefano P. D. (May 2016). Can Open-Source 3D Mechanical CAD Systems Effectively Support University Courses?. International Journal of Engineering Education. 32 (3 (A)): 1313-1324
- Konapala, A.; Koona, R. (October 2016). Development of Web based Tool Path Generator (W-TPG). International Journal of Current Engineering and Technology. 6 (5): 1784-1791.
- Axelsson, M. T. (May 2017). Open source CAD - discover the best CAD packages for your next maker project. Linux Format. 223: 26-27.
- Rosendahl, M. (2017). Constraint representation of 2-dimensional models with respect to avoiding cycles. Computer-Aided Design and Applications. 14 (1): 117-126.
- Beuchat, B., & Scalisi, A. (January 11, 2019). Cellulo Learning Activity [Semester project report]. CHILI Lab, EPFL, Lausanne, Switzerland.
- Frazelle, J. (June 2021). A New Era for Mechanical CAD. ACM Queue. 19 (2): 5-17.
- Fundamentals of 3D Food Printing and Applications. (2018). Great Britain: Elsevier Science.
- Biron, M. (2018). Thermoplastics and Thermoplastic Composites. Great Britain: Elsevier Science.
- Advances in Human Factors of Transportation: Proceedings of the AHFE 2019 International Conference on Human Factors in Transportation, July 24-28, 2019, Washington D.C., USA. (2019). Germany: Springer International Publishing.
- Advances in Mechanism and Machine Science: Proceedings of the 15th IFToMM World Congress on Mechanism and Machine Science. (2019). Germany: Springer International Publishing.
- Staple, D. (2023). Robotics at Home with Raspberry Pi Pico: Build Autonomous Robots with the Versatile Low-cost Raspberry Pi Pico Controller and Python. (n.p.): Packt Publishing.