TechDraw Enhancement Project

This page is describes a potential Google Summer of Code project regarding updates to the FreeCAD Technical Drawing workbench (TechDraw).

Outline
FreeCAD is first and foremost a 3D modeling tool. There are times, however, when we must produce 2D drawings for documentation, contracts, permits, etc. The Technical Drawing workbench (TechDraw) is used to produce basic technical drawings based on the 3D model. TechDraw is a recent addition to FreeCAD and requires many enhancements to bring it up to the level of sophistication seen in other workbenches.

Details

 * 1) Drawing Tools to be added include the ability to add leaders and callouts drawings. This is a prerequisite to many enhancements, particularly in the drawing annotation area, such as feature control frames.
 * 2) There is a need for Dimensions that do not rely on specific vertex/edges, but on extrema of the figure - for example, overall width/height. A related request is for an "arbitrary" measurement that can be added when an actual value can not be calculated automatically.
 * 3) A "Broken View" is required to depict very large objects.
 * 4) Conversion to Part Workbench 2D geometry.  The Part Workbench was recently enhanced with a full suite of 2D geometry tools.  These were not available when TechDraw was first coded.  For future maintainabilility a single suite of 2D tools would be preferred.

Expected Outcome

 * 1) A more robust and capable TechDraw workbench

Future Possibilities
This work will provide an introduction to the FreeCAD code base and the use of supporting software such as OpenCascade and Qt.

Skills

 * Programming language mainly C++, unit tests in python
 * Understand of FreeCAD API is obviously beneficial.
 * Familiarity with any or all of the following will be helpful
 * Qt Graphics View Framework
 * Scalable Vector Graphics (SVG) standard
 * Regular expressions
 * Experience in using CAD software is beneficial
 * Exposure to technical drawing standards

Difficulty
Medium