Feature list: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
Line 4: Line 4:


=== Base ===
=== Base ===
* Run as GUI Application with 3D Viewer
* Run as GUI application with 3D viewer
* Run as Command line Version with low memory footprint usable as Server
* Run as command line version with low memory footprint usable as server
* Run as a Python module
* Run as a Python module
* Plugin/Module framework for late loading of features/data-types
* Plugin/Module framework for late loading of features/data-types
* Built-in Scripting
* Built-in scripting
* Modular MSI Installer
* Modular MSI installer


=== Document ===
=== Document ===
Line 20: Line 20:
* GUI is fully customizable/scriptable
* GUI is fully customizable/scriptable
* Workbench concept
* Workbench concept
* Built-in python console
* Built-in Python console
* User interaction mirroring on the console
* User interaction mirroring on the console
* Full macro recording & editing
* Full macro recording & editing


== Application specific features ==
== Application specific features ==
As the functionality of FreeCAD is separated in Module which deal with special data types and applications, here is the
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 depended features:
the list of application/data-type dependent features:


=== Meshes ===
=== Meshes ===
Line 35: Line 35:


Modeling features:
Modeling features:
* offset (trivial or after Jung/Shin/Choi)
* Offset (trivial or after Jung/Shin/Choi)
* Boolean operations (add, cut, intersect)
* Boolean operations (add, cut, intersect)
* Primitive creation
* Primitive creation
Line 43: Line 43:


Imports:
Imports:
* Ascii or binary [http://en.wikipedia.org/wiki/STL_%28file_format%29 STL (Stereo Lithography format)] *.stl, *.ast
* ASCII or binary [http://en.wikipedia.org/wiki/STL_%28file_format%29 STL (Stereo lithography format)] *.stl, *.ast
* The [http://en.wikipedia.org/wiki/Obj OBJ format] *.obj
* The [http://en.wikipedia.org/wiki/Obj OBJ format] *.obj
* Limited [http://en.wikipedia.org/wiki/NASTRAN NASTRAN] support *.nas
* Limited [http://en.wikipedia.org/wiki/NASTRAN NASTRAN] support *.nas
* [http://en.wikipedia.org/wiki/Open_Inventor Open Inventor] meshes *.iv
* [http://en.wikipedia.org/wiki/Open_Inventor Open Inventor] meshes *.iv
* FreeCAD mesh kernel nativ *.bms
* FreeCAD mesh kernel native *.bms


Exports:
Exports:
* Ascii or binary [http://en.wikipedia.org/wiki/STL_%28file_format%29 STL (Stereo Lithography format)] *.stl, *.ast
* ASCII or binary [http://en.wikipedia.org/wiki/STL_%28file_format%29 STL (Stereo lithography format)] *.stl, *.ast
* The [http://en.wikipedia.org/wiki/Obj OBJ format] *.obj
* The [http://en.wikipedia.org/wiki/Obj OBJ format] *.obj
* Limited [http://en.wikipedia.org/wiki/NASTRAN NASTRAN] support *.nas *.brl
* Limited [http://en.wikipedia.org/wiki/NASTRAN NASTRAN] support *.nas *.brl
* [http://en.wikipedia.org/wiki/VRML VRML] meshes *.wrl
* [http://en.wikipedia.org/wiki/VRML VRML] meshes *.wrl
* FreeCAD mesh kernel nativ *.bms
* FreeCAD mesh kernel native *.bms
* Mesh as python module *.py
* Mesh as Python module *.py


==== Evaluation and Repair ====
==== Evaluation and Repair ====
* Tests solid
* Tests solid
* Tests non two-manifold
* Tests non-two-manifolds
* Tests self intersections
* Tests self intersections
* Hole filling
* Hole filling
Line 65: Line 65:


=== CAD ===
=== CAD ===
The [[Part Module]] deals with everything around CAD-modeling and the CAD data structures. The CAD functionality is under heave development see the [[PartDesign_project]] and [[Assembly_project]] in the [[Development_roadmap]].
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]].


[[Image:Part_BooleanOperations.png|300px|right|An example of union, intersection and difference]]
[[Image:Part_BooleanOperations.png|300px|right|An example of union, intersection and difference]]


==== Modeling ====
==== Modeling ====
The modeling functions for the end-user are under development, nevertheless are a lot modelling algortithems of [http://en.wikipedia.org/wiki/Open_CASCADE Open CASCADE] accesebly throug the
The modeling functions for the end-user are under development, nevertheless there are a lot of modeling algorithms of [http://en.wikipedia.org/wiki/Open_CASCADE Open CASCADE] accessible through the
script interfaces as described in [[Topological_data_scripting]].
script interfaces as described in [[Topological_data_scripting]].


* creation of primitives:
* Creation of primitives:
** parametric creation of box, sphere and cone
** Parametric creation of box, sphere and cone
** topologic creation of vertex, edges, wires and planes
** Topologic creation of vertex, edges, wires and planes
** modeling with extrudes and fillets
** Modeling with extrudes and fillets


* [http://en.wikipedia.org/wiki/Constructive_solid_geometry Boolean operations] like:
* [http://en.wikipedia.org/wiki/Constructive_solid_geometry Boolean operations] like:
Line 92: Line 92:


* writing CAD shapes as povray files
* writing CAD shapes as povray files
* writing viewing cameraposition as povray file
* writing viewing camera position as povray file


=== Drawing ===
=== Drawing ===
The [[Drawing Module]] is in place for bring the 3D world on a paper/drawing. It also is
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.
intended for reporting to paper or web.


* not implemented jet
* not implemented yet


=== Cam ===
=== Cam ===
The [[Cam Module]] is dedicated to mechanical machining like milling. This module is at the
The [[Cam Module]] is dedicated to mechanical machining like milling. This module is at the
very beginning and at the moment mostly dedicated to [http://en.wikipedia.org/wiki/Incremental_sheet_forming Incremental Sheet Forming]. Althoug
very beginning and at the moment mostly dedicated to [http://en.wikipedia.org/wiki/Incremental_sheet_forming Incremental Sheet Forming]. Although
there are some algorithems for toolpath planing they are not usable for the end-user at the
there are some algorithms for toolpath planing they are not usable for the end-user at the
moment.
moment.

Revision as of 15:26, 18 May 2009

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:

Exports:

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.

An example of union, intersection and difference
An example of union, intersection and difference

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.