Feature list: Difference between revisions

From FreeCAD Documentation
Line 19: Line 19:
* '''a modular MSI installer''' allows flexible installations on Windows systems. Packages for Ubuntu systems are also maintained.
* '''a modular MSI installer''' allows flexible installations on Windows systems. Packages for Ubuntu systems are also maintained.


=== Document ===
===Document structure===
* '''Undo/Redo framework''': Everything is undo/redoable, with access to the undo stack, so multiple steps can be undone at a time.
* Undo/Redo framework
* '''Transaction management''': The undo/redo stack stores document transactions and not single actions, allowing each tool to define exactly what must be undone or redone.
* Transaction management
* Parametric associative document objects
* '''Parametric associative document objects''': All objects in a FreeCAD document can be defined by parameters. Those parameters can be modified on the fly, and recomputed anytime.
* Compound (ZIP based) document save format
* '''Compound (ZIP based) document save format''': FreeCAD documents saved with .fcstd extension can contain many different types of information, such as geometry, scripts or thumbnail icons.


=== Gui ===
=== Gui ===

Revision as of 18:32, 7 July 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 application

  • FreeCAD is multi-platform. It runs and behaves exactly the same way on Windows and Linux platforms, and is expected to run just as well on Mac OSX in the near future.
  • FreeCAD is a full GUI application. FreeCAD has a complete Graphical User Interface based on the famous Qt framework, with a 3D viewer based on Open Inventor, allowing fast rendering of 3D scenes and a very accessible scene graph representation.
  • FreeCAD also runs as a command line application, with low memory footprint. In command line mode, FreeCAD runs without its interface, but with all its geometry tools. It can be, for example, used as server to produce content for other applications.
  • FreeCAD can be imported as a Python module, inside other applications that can run python scripts, or in a python console. Like in console mode, the interface part of FreeCAD is unavailable, but all geometry tools are accessible.
  • Plugin/Module framework for late loading of features/data-types. FreeCAD is divided into a core application and modules, that are loaded only when needed. Almost all the tools and geometry types are stored in modules. Modules behave like plugins, and can be added or removed to an existing installation of FreeCAD.
  • Built-in scripting: FreeCAD features a built-in Python interpreter, that has access to almost any part of the application, the interface, the geometry and the representation of this geometry in the 3D viewer. The interpreter can run single commands up to complex scripts, in fact entire modules can even be programmed completely in Python.
  • a modular MSI installer allows flexible installations on Windows systems. Packages for Ubuntu systems are also maintained.

Document structure

  • Undo/Redo framework: Everything is undo/redoable, with access to the undo stack, so multiple steps can be undone at a time.
  • Transaction management: The undo/redo stack stores document transactions and not single actions, allowing each tool to define exactly what must be undone or redone.
  • Parametric associative document objects: All objects in a FreeCAD document can be defined by parameters. Those parameters can be modified on the fly, and recomputed anytime.
  • Compound (ZIP based) document save format: FreeCAD documents saved with .fcstd extension can contain many different types of information, such as geometry, scripts or thumbnail icons.

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.