Surface Workbench

Introduction
The Surface Workbench introduced in FreeCAD 0.17 provides tools to create and modify simple NURBS surfaces. These tools have a similar functionality to the tool when the  option is used. However, unlike that tool, the tools of the Surface Workbench are parametric and provide additional options. In this respect, the tools in this workbench are similar to and.

Some of the features provided are:
 * Creation of surfaces from boundary edges.
 * Alignment of the curvature from neighboring faces.
 * Constraining of surfaces to additional curves and vertices.
 * Extension of faces.
 * A mesh can be used as a template to create spline curves on its surface.



Usage
The Surface Workbench intends to create faces with shapes, which is not possible to do with the standard tools in other workbenches. The OCCT kernel gives as example a rectangular box with a rounded corners of different radii.



The Surface Workbench integrates with other workbenches of FreeCAD. The above example was created from sketches placed on datum planes in the PartDesign Workbench. The design can be fully parametric, when all datum planes and sketches are defined accordingly. In most cases it is sufficient with drawing a closed sketch to define the border for a face; then options are available to further modify its shape.

The current state of FreeCAD (v0.17) does not allow to place the surfaces into a PartDesign Body. However, the surfaces can be placed inside of a Std Part container together with the PartDesign Body which holds all datum planes and sketches. The non parametric Part_Builder tool must still be used in order to create a shell and a regular solid out of the set of surfaces.

Tools

 * Surface_Filling.svg Filling: fills a series of boundary curves with a surface. The surface can be modified by adding constraint curves and vertices. The surface changes its shape so that the surface goes through the added constraint elements.
 * Surface_GeomFillSurface.svg Fill boundary curves: creates a surface from two, three or four boundary edges. Three different filling modes are available: Stretch, Coons, Curved.


 * Surface_Sections.svg Sections: creates a surface from edges that represent transversal sections of surface.
 * Surface_ExtendFace.svg Extend face: extrapolates the surface at the boundaries with its local u-parameter and v-parameter.
 * Surface_CurveOnMesh.svg Curve on mesh: create approximated spline segments on top of a selected mesh. If the object is not a Mesh, but a parametric Shape, it must be converted to a mesh using.

Limitations
The used surface code from the CAD-kernel OCCT is very fragile and can not handle wrong input properly. This can cause FreeCAD to crash. The following situations cause problems and may crash FreeCAD:
 * adding additional edges or wires as boundary to a surface, that would make up several faces. Add those edges only to Unbound Edges.
 * Using of boundary edges, that fails do build a closed boundary at parametric changes of the document.