Difference between revisions of "Free and open-source computer-aided design"
Line 15: | Line 15: | ||
<div style="float:right; width:49%"> <!-- This margin should be right of the above --> | <div style="float:right; width:49%"> <!-- This margin should be right of the above --> | ||
{{frame1|Easy scenario and illustrative modelling}} | {{frame1|Easy scenario and illustrative modelling}} | ||
− | {{frame1| | + | {{frame1|Creating a high quality open-source CAD application}} |
{{frame1|What exists already?}} | {{frame1|What exists already?}} | ||
{{frame1|See also}} | {{frame1|See also}} |
Revision as of 03:15, 8 January 2007
One of the core components necessary for open collaborative design to truly take flight is an advanced free and open-source computer-aided design (CAD) program to allow anyone to easily generate new designs or customise existing ones. The program should include a special browser to enable finding and importing open-source components and machines from the 'universal commons' as well as analytical tools and 'physics engine' The availability of user-friendly open source CAD software will be essential to allow the widest number of people to engage in this creative activity, which should help create a more diverse ecosystem of objects, machines and solutions. There is no reason, with thoughtful implementation, why this software shouldn't be intuitive enough for children to use easily. It could explain mechanical and engineering principles along the way if the user wished, and also be a place to store detailed contextual development notes, wiki style, to help others understand the workings and decisions made. The virtual nature of the designs mean that far-flung people via the internet can easily work together on the same design, either working individually on various sub-assemblies of the whole or collaborating directly on the same part. The restrictions of having to finding people local to yourself with similar interests and desires becomes much less of an issue.
With many people contributing to open design projects, as happens currently with software, a universal commons will emerge made up of vast libraries of designs for everything from components and sub-assemblies through to complete artefacts, machines and complex systems, available for anyone to download and incorporate into their own designs, or help evolve as part of a wider project.
As in software, it would be useful for components and assemblies to be as 're-usable' as possible in the sense of being able to be incorporated in many different machine designs. To aid this it should be possible to specify the vital dynamic functions of a component or assembly in the CAD software, so that it can easily be modified in shape and scale so it can be incorporated into a new design while ensuring it still works correctly. This will enable a huge reduction in duplication of effort and allow people to focus their efforts on creating new machines of increasing complexity and building on the work of others. One interesting side-effect of open collaboration is that it tends to lead to highly modular design. FireFox and Linux are examples of this. Modularity also leads to a high degree of reusability; someone designing a new piece of hardware or software can pick-and-mix parts of existing projects. This works well in software, but may have to be abstracted somewhat to work in physical systems where dimensions are obviously important to fit with other components. 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 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 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 FreeCAD is designed to be a feature based parametric CAD modeller and CAE 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 programsThe 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 Art of Illusion Other interesting modelling programsTinkerCAD 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. |


