Feature list
This is an extensive, hence not complete, list of features FreeCAD implements. If you want to look into the future see the Development roadmap for a quick overview the Screenshots are a nice place to go.
General features
Base
- Run as GUI application with 3D viewer
- Run as command line version with low memory footprint usable as server
- Run as a Python module
- Plugin/Module framework for late loading of features/data-types
- Built-in scripting
- Modular MSI installer
Document
- Undo/Redo framework
- Transaction management
- Parametric associative document objects
- Compound (ZIP based) document save format
Gui
- GUI is fully customizable/scriptable
- Workbench concept
- Built-in Python console
- User interaction mirroring on the console
- Full macro recording & editing
Application specific features
As the functionality of FreeCAD is separated in modules which deal with special data types and applications, here is the list of application/data-type dependent features:
Meshes
The Mesh Module handles all kind of meshes.
Modeling
Modeling features:
- Offset (trivial or after Jung/Shin/Choi)
- Boolean operations (add, cut, intersect)
- Primitive creation
IO
The mesh module features following:
Imports:
- ASCII or binary STL (Stereo lithography format) *.stl, *.ast
- The OBJ format *.obj
- Limited NASTRAN support *.nas
- Open Inventor meshes *.iv
- FreeCAD mesh kernel native *.bms
Exports:
- ASCII or binary STL (Stereo lithography format) *.stl, *.ast
- The OBJ format *.obj
- Limited NASTRAN support *.nas *.brl
- VRML meshes *.wrl
- FreeCAD mesh kernel native *.bms
- Mesh as Python module *.py
Evaluation and Repair
- Tests solid
- Tests non-two-manifolds
- Tests self intersections
- Hole filling
- Uniform orientation
CAD
The Part Module deals with everything around CAD-modeling and the CAD data structures. The CAD functionality is under heavy development see the PartDesign_project and Assembly_project in the Development_roadmap.
Modeling
The modeling functions for the end-user are under development, nevertheless there are a lot of modeling algorithms of Open CASCADE accessible through the script interfaces as described in Topological_data_scripting.
- Creation of primitives:
- Parametric creation of box, sphere and cone
- Topologic creation of vertex, edges, wires and planes
- Modeling with extrudes and fillets
- Boolean operations like:
- Union - fuse shapes together
- Difference - substraction of two shapes
- Intersection - cut out the commen parts of two shapes
I/O
- STEP parts and assemblies
- IGES models
- BRep (*.brp), the native format of our Open CASCADE CAD kernel
Raytracing
The Raytracing Module brings all kind of shapes to renderers (like PovRay).
- writing CAD shapes as povray files
- writing viewing camera position as povray file
Drawing
The Drawing Module is in place to put the 3D world on a paper/drawing. It is also intended for reporting to paper or web.
- not implemented yet
Cam
The Cam Module is dedicated to mechanical machining like milling. This module is at the very beginning and at the moment mostly dedicated to Incremental Sheet Forming. Although there are some algorithms for toolpath planing they are not usable for the end-user at the moment.