Surface Filling

Description
creates a surface from a series of connected boundary edges.

The surface can be modified by adding constraint edges and vertices which the surface must pass through.



Usage

 * 1) Make sure you have at least three edges or curves in space forming a closed contour. For example, these can be created with tools of the Workbench_Draft.svg Draft or the Workbench_Sketcher.svg Sketcher workbenches. Using three edges would create a triangular surface; four edges a quadrilateral surface.
 * 2) * Optionally, curves can be drawn inside the closed contour, not necessarily touching the edges. These curves can be used to control the curvature of the resulting surface.
 * 3) * Likewise, a number of vertices can be used with the same purpose to indicate where the surface must go through.
 * 4) Press the  button.
 * 5) Inside the  section, press.
 * 6) Use the pointer to pick the desired edges in the 3D view; a preview of the final shape will be shown after selecting valid edges that form a closed contour.
 * 7) * Optionally, go to the section, press, and pick the desired edges from the 3D view.
 * 8) * Optionally, go to the section, press, and pick the desired vertices from the 3D view.
 * 9) Press  to complete the operation.

The base edges that form the closed contour, as well as the auxiliary vertices and edges, can belong to 2D curves from Draft or the  Sketcher, but can also belong to 3D solid objects such as those created with the  Part or  PartDesign Workbenches.

Options

 * section:
 * : press once to start picking in the 3D view. Straight edges such as  and, or curved edges such as  and  can be chosen, as well as any edge from solid objects, like those of  and.
 * : press once to start picking edges in the 3D view; these edges must have been previously picked with.
 * : open the context menu and select, or press in the keyboard, to remove the currently selected edge in the list.


 * section; the button is available to pick auxiliary edges (straight lines or B-Splines) to control the curvature of the surface. The surface will be forced to pass through these auxiliary edges. This works best when the auxiliary edges lie inside the region delimited by the.
 * section; similar to the non-boundary edges, the user can pick auxiliary vertices to control the curvature. These vertices may be free standing or, or may belong to any edge (straight lines or B-Splines), or be a corner vertex in a solid object. In this case, the surface will be constrained to pass through these auxiliary points.
 * Press or  to abort the current operation.

Example
The option can be used to set an initial surface instead of the automatically generated one. The filled surface is computed by deformation of the support surface in order to satisfy the given constraints. The can also be an additional constraint for the final surface. To get an idea of what it's doing you can try this simple example:


 * 1) In the Workbench_Part.svg Part Workbench create a Part_Cylinder.svgder and set its  to.
 * 2) Switch to the Workbench_Surface.svg Surface Workbench and press the  button.
 * 3) Select the two semi-circular edges and the two straight edges that connect them.
 * 4) The result matches the four boundary edges, but the inner shape is quite different from the cylindrical face.
 * 5) Edit the Surface object and for the  select the cylindrical surface.
 * 6) The modified shape matches the cylindrical surface pretty well.

Limitations
The surface code from the internal OpenCASCADE modelling kernel is fragile, and cannot handle wrong input properly. The following situations may cause problems, and may crash the program, so they should be avoided:
 * Adding to that would result in several closed faces. In this case, those edges should be added as  to control the curvature only.
 * Using parametric (for example, ) that when recomputed fail to produce a closed boundary. That is, the edges to be used as  must always form a closed shape, even if their internal properties change.

Properties
A Surface Filling ( class) is derived from the basic Part Feature ( class, through the subclass), therefore it shares all the latter's properties.

In addition to the properties described in Part Feature, the Surface Filling has the following properties in the property editor.

Data

 * : boundary edges; C0 is required for edges without a corresponding face.
 * : order of constraint on boundary faces;, , and are possible.
 * : unbound constraint edges; C0 is required for edges without a corresponding face.
 * : order of constraint on unbound faces;, , and are possible.
 * : free constraint on a face.
 * : order of constraint on free faces.
 * : constraint points on surface.
 * : initial surface to use.
 * : starting degree, it defaults to.
 * : number of points on an edge for constraint.
 * : number of iterations, it defaults to.
 * : it defaults to.
 * : 2D tolerance, it defaults to.
 * : 3D tolerance, it defaults to.
 * : G1 tolerance, it defaults to.
 * : G2 tolerance, it defaults to.
 * : maximum curve degree, it defaults to.
 * : maximum number of segments, it defaults to.
 * : maximum curve degree, it defaults to.
 * : maximum number of segments, it defaults to.

View

 * : it defaults to ; if set to, it will show an overlay with the control points of the surface.

Scripting
FreeCAD Scripting Basics.

The Surface Filling tool can be used in macros and from the Python console by adding the object.
 * The edges to be used to define the surface must be assigned as a LinkSubList to the property of the object.
 * Auxiliary edges and vertices must be assigned as a LinkSubLists to the and  properties of the object.
 * All objects with edges need to be computed before they can be used as input for the properties of the Filling object.