SolveSpace

Last updated
SolveSpace
Developer(s) Jonathan Westhues
Initial release2008;15 years ago (2008)
Stable release
3.1 [1]   OOjs UI icon edit-ltr-progressive.svg / 1 June 2022;14 months ago (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.com
Hart's A-frame created in SolveSpace. Hart's A-frame.gif
Hart's A-frame created in 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.

Contents

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

SolveSpace
Filename extension
.slvs
Internet media type
text/plain
Developed byJonathan 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]

Linking

SolveSpace can link its own *.slvs, STL and IDF files as external parts into complex assembly. [14]

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.[ citation needed ]

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.[ citation needed ]

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.[ citation needed ]

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.[ citation needed ]

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

  1. According to Jonathan Westhues himself. [21]

Related Research Articles

<span class="mw-page-title-main">Computer-aided design</span> Constructing a product by means of computer

Computer-Aided Design (CAD) is the use of computers to aid in the creation, modification, analysis, or optimization of a design. This software is used to increase the productivity of the designer, improve the quality of design, improve communications through documentation, and to create a database for manufacturing. Designs made through CAD software are helpful in protecting products and inventions when used in patent applications. CAD output is often in the form of electronic files for print, machining, or other manufacturing operations. The terms computer-aided drafting (CAD) and computer-aided design and drafting (CADD) are also used.

Creo Parametric, formerly known, together with Creo Elements/Pro, as Pro/Engineer and Wildfire, is a solid modeling or CAD, CAM, CAE, and associative 3D modeling application, running on Microsoft Windows.

<span class="mw-page-title-main">Constructive solid geometry</span> Creating a complex 3D surface or object by combining primitive objects

Constructive solid geometry is a technique used in solid modeling. Constructive solid geometry allows a modeler to create a complex surface or object by using Boolean operators to combine simpler objects, potentially generating visually complex objects by combining a few primitive ones.

A geometric modeling kernel is a solid modeling software component used in computer-aided design (CAD) packages. Available modelling kernels include:

<span class="mw-page-title-main">Open Cascade Technology</span> Open-source 3D modelling software

Open Cascade Technology (OCCT), formerly called CAS.CADE, is an open-source software development platform for 3D CAD, CAM, CAE, etc. that is developed and supported by Open Cascade SAS company.

<span class="mw-page-title-main">Rhinoceros 3D</span> 3D computer graphics software

Rhinoceros is a commercial 3D computer graphics and computer-aided design (CAD) application software that was developed by Robert McNeel & Associates, an American, privately held, and employee-owned company that was founded in 1978. Rhinoceros geometry is based on the NURBS mathematical model, which focuses on producing mathematically precise representation of curves and freeform surfaces in computer graphics.

SketchUp is a suite of subscription products that include SketchUp Pro Desktop, a 3D modeling Computer-Aided Design (CAD) program for a broad range of drawing and design applications — including architectural, interior design, industrial and product design, landscape architecture, civil and mechanical engineering, theater, film and video game development.

<span class="mw-page-title-main">T-FLEX CAD</span> Parametric CAD software application

T-FLEX CAD (T-FLEX) – is a Russian-made parametric computer-aided design (CAD) software application for 2D design, drafting, and 3D solid modeling based on commercial Parasolid geometric kernel. It's primarily developed and distributed by Russian software company Top Systems based in Russia. Supported platforms are limited to Microsoft Windows. Amongst features T-FLEX offers support for various CAD formats and diverse localizations.

The table below provides an overview of notable computer-aided design (CAD) software. It does not judge power, ease of use, or other user-experience aspects. The table does not include software that is still in development. For all-purpose 3D programs, see Comparison of 3D computer graphics software. CAD refers to a specific type of drawing and modelling software application that is used for creating designs and technical drawings. These can be 3D drawings or 2D drawings.

<span class="mw-page-title-main">BricsCAD</span> Computer-aided design software

BricsCAD is a software application for computer-aided design (CAD), developed by Bricsys nv. The company was founded in 2002 by Erik de Keyser, a longtime CAD entrepreneur. In 2011 Bricsys acquired the intellectual property rights from Ledas for constraints-based parametric design tools, permitting the development of applications in the areas of direct modeling and assembly design. Bricsys is headquartered in Ghent, Belgium, and has additional development centers in Nizhny Novgorod and Novosibirsk, Russia; Bucharest, Romania and Singapore. Bricsys is a founding member of the Open Design Alliance, and joined the BuildingSMART International consortium in December 2016.

3D computer graphics software refers to programs used to create 3D computer-generated imagery.

<span class="mw-page-title-main">FreeCAD</span> Free and open-source 3D CAD software

FreeCAD is a general-purpose parametric 3D computer-aided design (CAD) modeler and a building information modeling (BIM) software application with finite element method (FEM) support. It is intended for mechanical engineering product design but also expands to a wider range of uses around engineering, such as architecture or electrical engineering. FreeCAD is free and open-source, under the LGPL-2.0-or-later license, and available for Linux, macOS, and Windows operating systems. Users can extend the functionality of the software using the Python programming language.

<span class="mw-page-title-main">OpenSCAD</span> Free software for creating 3D objects

OpenSCAD is a free software application for creating solid 3D computer-aided design (CAD) objects. It is a script-only based modeller that uses its own description language; the 3D preview can be manipulated interactively, but cannot be interactively modified in 3D. Instead, an OpenSCAD script specifies geometric primitives and defines how they are modified and combined to render a 3D model. As such, the program performs constructive solid geometry (CSG). OpenSCAD is available for Windows, Linux, and macOS.

<span class="mw-page-title-main">Cobalt (CAD program)</span> 3D computer graphics software

Cobalt is a parametric-based computer-aided design (CAD) and 3D modeling program that runs on both Macintosh and Microsoft Windows operating systems. The program combines the direct-modeling way to create and edit objects and the highly structured, history-driven parametric way exemplified by programs like Pro/ENGINEER. A product of Ashlar-Vellum, Cobalt is Wireframe-based and history-driven with associativity and 2D equation-driven parametrics and constraints. It offers surfacing tools, mold design tools, detailing, and engineering features. Cobalt includes a library of 149,000 mechanical parts.

<span class="mw-page-title-main">Digital Geometric Kernel</span>

Digital Geometric Kernel, is a software development framework and a set of components for enabling 3D/CAD functionality in Windows applications, developed by DInsight.

<span class="mw-page-title-main">LibreCAD</span> Free and open-source 2D CAD software

LibreCAD is a computer-aided design (CAD) application for 2D design. It is free and open-source, and available for Linux, macOS, and Windows operating systems.

<span class="mw-page-title-main">C3D Toolkit</span> Geometric modelling kernel

C3D Toolkit is a geometric modeling kit originally developed by ASCON Group, now by C3D Labs, using C++ and written in Visual Studio. It can be licensed by other companies for use in their 3D computer graphics software products. The most widely known software in which C3D Toolkit is typically used are computer aided design (CAD), computer-aided manufacturing (CAM), and computer-aided engineering (CAE) systems.

<span class="mw-page-title-main">OpenVSP</span> Open source parametric aircraft geometry tool

OpenVSP, also known as Open Vehicle Sketch Pad, is an open source parametric aircraft geometry tool originally developed by NASA. It can be used to create 3D models of aircraft and to support engineering analysis of those models. Predecessors to OpenVSP including VSP and Rapid Aircraft Modeler (RAM) were developed by J.R. Gloudemans and others for NASA beginning in the early 1990s. OpenVSP v2.0 was released as open source under the NOSA license in January 2012. Development has been led by Rob McDonald since around 2012 and has been supported by NASA and AFRL among other contributions.

References

  1. "Release 3.1".
  2. "SolveSpace - Buy". solvespace.com. 2008-10-09. Archived from the original on 2008-10-09. Retrieved 2023-02-19.
  3. "SketchFlat: 2d CAD, with Constraints".
  4. "SolveSpace - parametric 3d CAD". solvespace.com. 2012-03-07. Archived from the original on 2012-03-07. Retrieved 2023-02-19.
  5. "SolveSpace - parametric 3d CAD". solvespace.com. 2013-08-01. Archived from the original on 2013-08-01. Retrieved 2023-02-19.
  6. 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.
  7. "SolveSpace - parametric 3d CAD". solvespace.com. 2016-06-13. Archived from the original on 2016-06-13. Retrieved 2023-02-19.
  8. Asay, Matt (2020-08-07). "The secret to becoming an open source project lead". TechRepublic. Retrieved 2022-02-08.
  9. 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.
  10. "Stepping down as a maintainer · Issue #714 · solvespace/solvespace". GitHub. Retrieved 2022-02-08.
  11. "SolveSpace CAD Software | AnyTechTrial". www.anytechtrial.com. Retrieved 2022-02-08.
  12. "SolveSpace - parametric 3d CAD".
  13. 1 2 3 4 5 "SolveSpace - Features". solvespace.github.io. Retrieved 2022-02-12.
  14. "SolveSpace - Tutorial - Assemblies". solvespace.com. Retrieved 2023-01-23.
  15. 1 2 3 4 5 6 7 "SolveSpace - Reference". solvespace.com. Retrieved 2022-02-08.
  16. Cook, Jeremy (2022-12-01). "SolveSpace: Light Weight Open Source 3D CAD". Embedded Computing Design. Retrieved 2023-01-23.
  17. "SolveSpace CAD", Build Your Own, Linux Out Loud, vol. 46, TuxDigital, 2023-01-11, retrieved 2023-01-23
  18. "make chamfers as easy as fillets · Issue #149 · solvespace/solvespace". GitHub. Retrieved 2023-01-23.
  19. "Tips'n'Tricks Sampes · Issue #1 · Symbian9/SolveSpace-Daily-Engineering". GitHub. Retrieved 2023-01-23.
  20. "SolveSpace - Tutorial - Drawing an Angle Bracket". solvespace.com. Retrieved 2023-01-23.
  21. "SolveSpace - Forum". solvespace.com. Retrieved 2022-11-27.
  22. "Open Source Parametric CAD", Open Source CAD & Selling Stuff Online, The Meltzone Podcast, vol. 54, 2021-12-30, retrieved 2023-01-23
  23. 1 2 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.
  24. 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