Surface CurveOnMesh

From FreeCAD Documentation

Surface CurveOnMesh

Menu location
Surface → Curve on mesh
Default shortcut
Introduced in version
See also


Surface CurveOnMesh creates approximated spline segments on top of a selected mesh.

If the object is not a Mesh, but a parametric Shape or surface, it must be converted first to a mesh using Mesh FromPartShape.

These edges created on top of the mesh may be further used to re-create the surface in a parametric way by using tools such as GeomFillSurface and Sections.

Above left: mesh object with selected points on the surface. Above right: splines created by picking several points on the mesh. Lower left: a parametric surface reconstructed from the approximated splines, using Surface Sections.


  1. Make sure you have a mesh object. This can be created by the Mesh Workbench, or by importing a mesh file type, like STL, OBJ, or DAE. If a solid object or solid file type (STEP) is used, it can be converted to a mesh using Mesh FromPartShape.
  2. Press Curve on mesh.
  3. Press Start.
  4. Using the mouse pointer, pick points on the surface of the mesh in the 3D view; pick as many points as necessary to draw a smooth preview line.
  5. When enough points have been added, right click on the 3D view to open the context menu, and select Create. Depending on how smooth the original mesh is, one spline or multiple splines will be created in the tree view.
  6. Repeat the sequence Start → Pick → Create, to add more approximated splines.
  7. The new spline will be created, and will appear in the tree view, immediately after choosing Create; the task panel will remain active.
  8. Press Close to close the task panel, and terminate the command completely.

After pressing Start, the context menu (right-click) in the 3D view shows various options beside Create.

  • Close wire: if at least three points have been picked, this option will be available to join the last point to the first point with a line.
  • Clear: it will erase the tentative points that have been picked on the mesh, and will allow you to pick new ones.
  • Cancel: it will erase the tentative points that have been picked, and will stop the picking operation. Press Start again to pick points once more.


(Editor: this information must be verified)

Wire section:

  • Snap tolerances to vertices: it defaults to 10 px; it indicates the minimum distance between one point and another when picking with the pointer.
  • Split threshold: it defaults to 45 deg; it indicates the angular deviation from one point in the mesh to another point necessary to create a new spline instead of extending the previous spline.

Spline approximation, if it is checked, it will create spline objects, otherwise, it will create simple straight line objects (polyline).

  • Tolerance to mesh: it defaults to 0.2. It is a parameter that takes into account the imperfections of the mesh; the smaller this number the more precise it will consider the mesh, particularly if it is a very fine mesh.
  • Continuity: it defaults to C2. It determines the continuity of the spline; it can be C0 (touching), C1 (tangent), C2 (curvature), and C3 (acceleration curvature).
  • Maximum curve degree: it defaults to 5. It determines the maximum degree of the spline to approximate the surface; it can be a value from 1 to 8.


If Spline approximation is unchecked, the Curve on mesh tool creates a basic Part Feature.

If Spline approximation is checked, the Curve on mesh tool creates a Part Spline (Part::Spline class) which is derived from the basic Part Feature (Part::Feature class), therefore it shares all the latter's properties.

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



  • ViewControl Points (Bool): it defaults to false; if set to true, it will show an overlay with the control points of the surface.