Difference between revisions of "Free and open-source computer-aided design/What exists already?"

From AdCiv
Jump to: navigation, search
 
(24 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Image:Blimp.png|120px|right|Screenshot of 'Art of Illusion' 3D modelling program]] There are many proprietary CAD programs on the market that range widely in cost, but we are focusing on [[free and open-source software]] here.
+
[[Image:FreeCAD boolean.png|180px|right|Screenshot of 'FreeCAD' parametric CAD program performing boolean operations on 3D shapes]]
 +
[[Image:Rim bling.png|180px|right|Screenshot of 'FreeCAD' constraints-based parametric sketcher module]]
 +
[[Image:FreeCAD robot.jpg|right|180px|FreeCAD robot simulation workbench]]
 +
[[Image:D-connector exploded.png|right|180px|OpenSCAD (showing part from RepRap/Hydraraptor)]]
 +
There are many proprietary CAD programs on the market that range widely in cost and capability, but we are focusing on [[free and open-source software]] here.
  
 
There are some two-dimensional (2D) open-source CAD programs such as [http://www.qcad.org/qcad.html '''QCAD'''] but these really only replicate the methods that were used to create hand-drawn paper engineering drawings and lack the advantages and power that modern 3D CAD offers.
 
There are some two-dimensional (2D) open-source CAD programs such as [http://www.qcad.org/qcad.html '''QCAD'''] but these really only replicate the methods that were used to create hand-drawn paper engineering drawings and lack the advantages and power that modern 3D CAD offers.
  
[http://www.brlcad.org '''BRL-CAD'''] is a 3D CAD package that came out American Military ballistics research and can be traced back to the 1970s. It is based on the older [http://en.wikipedia.org/wiki/Constructive_solid_geometry constructive solid geometry] paradigm that isn't as flexible as the parametric [http://en.wikipedia.org/wiki/Boundary_representation 'B-rep']-based software used by modern proprietary CAD programs, although it is very suitable for physical analysis, which is what it was designed for. The user interface and experience is rather lacking.
+
[http://www.brlcad.org '''BRL-CAD'''] is a 3D CAD package that came out American Military ballistics research and can be traced back to the 1970s. It is based on the older {{wp|Constructive_solid_geometry|constructive solid geometry}} (CSG) paradigm which isn't quite as sophisticated as the {{wp|Boundary_representation|'B-rep'-based}} software used by most modern CAD programs, although it is highly suited to physical analysis, which is what it was originally designed for.
  
[http://en.wikipedia.org/wiki/Blender_%28software%29 '''Blender'''] is a powerful 3D modelling, animation and rendering program designed primarily to create sophisticated computer graphics rather than being tailored for design and engineering. It is an advanced and capable piece of software, and might well form a good basis for a dedicated open-source CAD application {{en}} such are the possibilities when the software is open-source. There have been some attempts to create scripts extending Blender in this direction, but they are either no longer active or do not yet go far enough. The user interface is not known for being particularly intuitive, however those that know their way around it (including the many vital keyboard shortcuts) say it is very effective.
+
[http://www.openscad.org '''OpenSCAD'''] is procedural geometry construction program using scripting to generate 3D models via CSG or extruded 2D drawings (DXF). Designed for programmers to use. The nice thing about a script-based CAD system is that it is compatible with {{wp|Distributed_revision_control|distributed version control systems}} which many open-source software projects use these days.
  
[http://en.wikipedia.org/wiki/Art_of_Illusion '''Art of Illusion'''] is another interesting open-source 3D modelling and rendering application, although perhaps not quite as advanced as Blender. However the user interface is much more intuitive. Similarly it is designed for creating computer graphics rather than as a CAD program, but the required features could be added. The [[RepRap]] open-source 3D printer project are currently using this for their 3D modelling with some additional scripting.
+
The best of both worlds would be a CAD system that could interchangably be used with scripting or Graphical User Interface (where edits using the GUI are captured/simplified as procedural code) and also incorporate visual diffs and deal with merging.
  
However there is a real need to create (or evolve) an open-source CAD (or more ambitiously [http://en.wikipedia.org/wiki/Product_lifecycle_management product lifecycle management]) application that is highly intuitive to use, powerful, extendable and importantly hooks in to what should be a rapidly growing ecosystem of designs and physical systems available to all in the 'universal commons'.
+
However there is a real need to create (or evolve) a really sophisticated, easy to use, open-source CAD (or more ambitiously {{wp|Product_lifecycle_management|product lifecycle management}}) application that is highly intuitive to use, powerful, extendible and importantly hooks in to what should be a rapidly growing ecosystem of designs and physical systems available to all in the 'universal commons'.
 +
 
 +
[http://juergen-riegel.net/FreeCAD/Docu/index.php?title=Main_Page '''FreeCAD'''] is designed to be a feature based parametric CAD modeller and {{wp|Computer-aided_engineering|CAE}} platform, employing the [http://www.opencascade.org OpenCASCADE] geometric modelling kernel libraries. Extensions framework and integrated Python interpreter for powerful scripting capabilities. The images on the the right are from FreeCAD. Video overview showing current capabilities (as of early 2012) {{film icon}} [http://www.youtube.com/watch?v=oXJZ6c13F3s here].
 +
 
 +
[http://code.google.com/p/heekscad '''HeeksCAD'''] is a 3D modeller initially aimed at designed parts for CNC machining. Also based on OpenCascade. This has the ability to create 3D parts from 2D sketches using the graphical user interface. (Although Dan Heeks has recently indicated it will never be a general purpose parametric CAD platform like FreeCAD).
 +
 
 +
[http://www.pythonocc.org '''PythonOCC'''] is a development framework that makes all the [http://www.opencascade.org OpenCASCADE] functionality available for the python programming language, good for prototyping and experimentation
 +
{{clean break}}
 +
 
 +
=== Other open-source modelling programs ===
 +
 
 +
The following are capable 3D modelling programs that although they are designed for graphics and animation, it is possible to use them to create parts for physical designs. However they do not possess many features required for advanced mechanical CAD design.
 +
 
 +
{{wp|Blender_%28software%29|'''Blender'''}} is a powerful 3D modelling, animation and rendering program designed primarily to create sophisticated computer graphics rather than being tailored for design and engineering. It is an advanced and capable piece of software, and might well form a good basis for a dedicated open-source CAD application {{en}} such are the possibilities when the software is open-source. There have been some attempts to create scripts extending Blender in this direction, but they are either no longer active or do not yet go far enough. The user interface is not known for being particularly intuitive, however those that know their way around it (including the many vital keyboard shortcuts) say it is very effective.
 +
 
 +
{{wp|Art_of_Illusion|'''Art of Illusion'''}} is another interesting open-source 3D modelling and rendering application, although perhaps not quite as advanced as Blender. However the user interface is much more intuitive. Similarly it is designed for creating computer graphics rather than as a CAD program, but the required features could be added. The [[RepRap]] open-source 3D printer project are currently using this for their 3D modelling with some additional scripting.
 +
 
 +
=== Other interesting modelling programs ===
 +
 
 +
[http://tinkercad.com '''TinkerCAD'''] is a web-based program (employing hardware accelerated WebGL canvas which is a new capability in modern open-source browsers - i.e. Firefox and Google Chrome). This is proprietary software but gives a hint at some of the things that are becoming possible. Quite simple and aimed at people who are making geometry for 3D printing. Not a full CAD system that is needed to define sophisticated components and assemblies.
 +
 
 +
There is an interesting Google Tech talk giving an overview of how it looks but also how it works underneath the hood as a client-server system and the technologies and techniques employed to get it working in a web browser. {{film icon}} [http://www.youtube.com/watch?v=5aY4a9QnLhw See here]

Latest revision as of 04:41, 10 March 2012

Screenshot of 'FreeCAD' parametric CAD program performing boolean operations on 3D shapes
Screenshot of 'FreeCAD' constraints-based parametric sketcher module
FreeCAD robot simulation workbench
OpenSCAD (showing part from RepRap/Hydraraptor)

There are many proprietary CAD programs on the market that range widely in cost and capability, but we are focusing on free and open-source software here.

There are some two-dimensional (2D) open-source CAD programs such as QCAD but these really only replicate the methods that were used to create hand-drawn paper engineering drawings and lack the advantages and power that modern 3D CAD offers.

BRL-CAD is a 3D CAD package that came out American Military ballistics research and can be traced back to the 1970s. It is based on the older constructive solid geometry 11px-Wikipedia_logo.jpg (CSG) paradigm which isn't quite as sophisticated as the 'B-rep'-based 11px-Wikipedia_logo.jpg software used by most modern CAD programs, although it is highly suited to physical analysis, which is what it was originally designed for.

OpenSCAD is procedural geometry construction program using scripting to generate 3D models via CSG or extruded 2D drawings (DXF). Designed for programmers to use. The nice thing about a script-based CAD system is that it is compatible with distributed version control systems 11px-Wikipedia_logo.jpg which many open-source software projects use these days.

The best of both worlds would be a CAD system that could interchangably be used with scripting or Graphical User Interface (where edits using the GUI are captured/simplified as procedural code) and also incorporate visual diffs and deal with merging.

However there is a real need to create (or evolve) a really sophisticated, easy to use, open-source CAD (or more ambitiously product lifecycle management 11px-Wikipedia_logo.jpg) application that is highly intuitive to use, powerful, extendible and importantly hooks in to what should be a rapidly growing ecosystem of designs and physical systems available to all in the 'universal commons'.

FreeCAD is designed to be a feature based parametric CAD modeller and CAE 11px-Wikipedia_logo.jpg platform, employing the OpenCASCADE geometric modelling kernel libraries. Extensions framework and integrated Python interpreter for powerful scripting capabilities. The images on the the right are from FreeCAD. Video overview showing current capabilities (as of early 2012) Film_icon.png here.

HeeksCAD is a 3D modeller initially aimed at designed parts for CNC machining. Also based on OpenCascade. This has the ability to create 3D parts from 2D sketches using the graphical user interface. (Although Dan Heeks has recently indicated it will never be a general purpose parametric CAD platform like FreeCAD).

PythonOCC is a development framework that makes all the OpenCASCADE functionality available for the python programming language, good for prototyping and experimentation

Other open-source modelling programs

The following are capable 3D modelling programs that although they are designed for graphics and animation, it is possible to use them to create parts for physical designs. However they do not possess many features required for advanced mechanical CAD design.

Blender 11px-Wikipedia_logo.jpg is a powerful 3D modelling, animation and rendering program designed primarily to create sophisticated computer graphics rather than being tailored for design and engineering. It is an advanced and capable piece of software, and might well form a good basis for a dedicated open-source CAD application – such are the possibilities when the software is open-source. There have been some attempts to create scripts extending Blender in this direction, but they are either no longer active or do not yet go far enough. The user interface is not known for being particularly intuitive, however those that know their way around it (including the many vital keyboard shortcuts) say it is very effective.

Art of Illusion 11px-Wikipedia_logo.jpg is another interesting open-source 3D modelling and rendering application, although perhaps not quite as advanced as Blender. However the user interface is much more intuitive. Similarly it is designed for creating computer graphics rather than as a CAD program, but the required features could be added. The RepRap open-source 3D printer project are currently using this for their 3D modelling with some additional scripting.

Other interesting modelling programs

TinkerCAD is a web-based program (employing hardware accelerated WebGL canvas which is a new capability in modern open-source browsers - i.e. Firefox and Google Chrome). This is proprietary software but gives a hint at some of the things that are becoming possible. Quite simple and aimed at people who are making geometry for 3D printing. Not a full CAD system that is needed to define sophisticated components and assemblies.

There is an interesting Google Tech talk giving an overview of how it looks but also how it works underneath the hood as a client-server system and the technologies and techniques employed to get it working in a web browser. Film_icon.png See here