Sketcher Workbench

    From FreeCAD Documentation
    This page is a translated version of the page Sketcher Workbench and the translation is 1% complete.
    Outdated translations are marked like this.
    Sketcher workbench icon


    The FreeCAD Workbench Sketcher.svg Sketcher Workbench is used to create 2D Sketches intended for use in the Workbench PartDesign.svg PartDesign Workbench, Workbench Arch.svg Arch Workbench, and other workbenches. Generally, a 2D drawing is considered the starting point for most CAD models, as a 2D sketch can be "extruded" to create a 3D shape; further 2D sketches can be used to create other features like pockets, ridges, or extrusions on top of the previously built 3D shapes. Together with boolean operations defined in the Workbench Part.svg Part Workbench, the Sketcher forms the basis of the constructive solid geometry (CSG) method of building solids. Moreover, together with the Workbench PartDesign.svg PartDesign Workbench operations, the Sketcher also forms the basis of the feature editing methodology of creating solids.

    The Sketcher workbench features "constraints", allowing 2D shapes to follow precise geometrical definitions in terms of length, angles, and relationships (horizontality, verticality, perpendicularity, etc.). A constraint solver calculates the constrained-extent of 2D geometry and allows interactive exploration of the degrees-of-freedom of the sketch.

    FC ConstrainedSketch.png

    A fully constrained sketch

    Basics of constraint sketching

    To explain how the Sketcher works, it may be useful to compare it to the "traditional" way of drafting.

    Traditional Drafting

    The traditional way of CAD drafting inherits from the old drawing board. Orthogonal (2D) views are drawn manually and intended for producing technical drawings (also known as blueprints). Objects are drawn precisely to the intended size or dimension. If you want to draw an horizontal line 100mm in length starting at (0,0), you activate the line tool, either click on the screen or input the (0,0) coordinates for the first point, then make a second click or input the second point coordinates at (100,0). Or you will draw your line without regard to its position, and move it afterwards. When you've finished drawing your geometries, you add dimensions to them.

    Constraint Sketching

    The Sketcher moves away from this logic. Objects do not need to be drawn exactly as you intend to, because they will be defined later on by constraints. Objects can be drawn loosely, and as long as they are unconstrained, can be modified. They are in effect "floating" and can be moved, stretched, rotated, scaled, and so on. This gives great flexibility in the design process.

    What are constraints?

    Instead of dimensions, Constraints are used to limit the degrees of freedom of an object. For example, a line without constraints has 4 Degrees Of Freedom (abbreviated as "DOF"): it can be moved horizontally or vertically, it can be stretched, and it can be rotated.

    Applying a horizontal or vertical constraint, or an angle constraint (relative to another line or to one of the axes), will limit its capacity to rotate, thus leaving it with 3 degrees of freedom. Locking one of its points in relation to the origin will remove another 2 degrees of freedom. And applying a dimension constraint will remove the last degree of freedom. The line is then considered fully-constrained.

    Multiple objects can be constrained between one another. Two lines can be joined through one of their points with the coincident point constraint. An angle can be set between them, or they can be set perpendicular. A line can be tangent to an arc or a circle, and so on. A complex Sketch with multiple objects will have a number of different solutions, and making it fully-constrained means that just one of these possible solutions has been reached based on the applied constraints.

    There are two kinds of constraints: geometric and dimensional. They are detailed in the 'Tools' section below.

    What the Sketcher is not good for

    The Sketcher is not intended for producing 2D blueprints. Once sketches are used to generate a solid feature, they are automatically hidden. Constraints are only visible in Sketch edit mode.

    If you only need to produce 2D views for print, and don't want to create 3D models, check out the Draft workbench. Unlike Sketcher elements, Draft objects don't use constraints; they are simple shapes defined at the moment of creation. Both Draft and Sketcher can be used for 2D geometry drawing, and 3D solid creation, although their preferred use is different:

    • The Sketcher Workbench is normally used together with the Part and PartDesign workbenches to create solids.
    • The Draft Workbench is normally used for simple planar drawings over a grid, as when drawing an architectural floor plan. In these situations Draft is mostly used together with the Arch Workbench.

    The tool Draft2Sketch converts a Draft object to a Sketch object, and vice versa. Many tools that require a 2D element as input work with either type of object as an internal conversion is done automatically.

    Sketching Workflow

    A Sketch is always 2-dimensional (2D). To create a solid, a 2D Sketch of a single enclosed area is created and then either Padded or Revolved to add the 3rd dimension, creating a 3D solid from the 2D Sketch.

    If a Sketch has segments that cross one another, places where a Point is not directly on a segment, or places where there are gaps between endpoints of adjacent segments, Pad or Revolve won't create a solid. Sometimes a Sketch which contains lines which cross one another will work for a simple operation such as Pad, but later operations such as Linear Pattern will fail. It is best to avoid crossing lines. The exception to this rule is that it doesn't apply to Construction (blue) Geometry.

    Inside the enclosed area we can have smaller non-overlapping areas. These will become voids when the 3D solid is created.

    Once a Sketch is fully constrained, the Sketch features will turn green; Construction Geometry will remain blue. It is usually "finished" at this point and suitable for use in creating a 3D solid. However, once the Sketch dialog is closed it may be worthwhile going to Workbench Part.svg Part Workbench and running Part CheckGeometry.svg Check geometry to ensure there are no features in the Sketch which may cause later problems.


    The Sketcher Workbench tools are located in the Sketch menu and/or several toolbars. introduced in version 0.21: Almost all Sketcher toolbars are only displayed while a sketch is in edit mode. The only exception is the Sketcher toolbar which is only displayed if no sketch is in edit mode.

    introduced in version 0.21: If a sketch is in edit mode the Structure toolbar is hidden as none of its tools can then be used.


    Sketcher toolbar

    • Sketcher NewSketch.svg Create sketch: Creates‎ a new sketch on a selected face or plane. If no face is selected while this tool is executed the user is prompted to select a plane from a pop-up window.
    • Sketcher ReorientSketch.svg Reorient sketch: Allows you to attach the sketch to one of the main planes.
    • Sketcher ValidateSketch.svg Validate sketch: Analyze and repair a sketch that is no longer editable, has invalid constraints, or is missing coincident constraints.
    • Sketcher MirrorSketch.svg Mirror sketch: Mirror a sketch along the x-axis, the y-axis or the origin.

    Sketcher Edit Mode toolbar

    • Sketcher ViewSketch.svg View sketch: Sets the model view perpendicular to the sketch plane.
    • Sketcher ViewSection.svg View section: Creates a section plane that temporarily hides any matter in front of the sketch plane.

    Sketcher edit tools toolbar


    • Sketcher StopOperation.svg Stop operation: When in edit mode, stop the current operation, whether that is drawing, setting constraints, etc.

    Sketcher geometries

    These are tools for creating objects.

    • Sketcher CreateLine.svg Line: Draws a line segment between 2 points. Lines are infinite regarding certain constraints.
    • Sketcher CompCreateArc.png Create arc: This is an icon menu in the Sketcher toolbar that holds the following commands:
    • Sketcher CreateArc.svg Arc: Draws an arc segment from center, radius, start angle and end angle.
    • Sketcher Create3PointArc.svg Arc by 3 points: Draws an arc segment from two endpoints and another point on the circumference.
    • Sketcher CompCreateCircle.png Create circle: This is an icon menu in the Sketcher toolbar that holds the following commands:
    • Sketcher CreateCircle.svg Circle: Draws a circle from center and radius.
    • Sketcher CreateEllipseByCenter.svg Ellipse by center: Draws an ellipse by center point, major radius point and minor radius point.
    • Sketcher CreateArcOfEllipse.svg Arc of ellipse: Draws an arc of ellipse by center point, major radius point, starting point and ending point.
    • Sketcher CompCreateBSpline.png Create B-spline: This is an icon menu in the Sketcher toolbar that holds the following commands:
    • Sketcher CreatePolyline.svg Polyline (multiple-point line): Draws a line made of multiple line segments. Pressing the M key while drawing a Polyline toggles between the different polyline modes.
    • Sketcher CreateRectangle.svg Rectangle: Draws a rectangle from 2 opposite points.
    • Sketcher CreateTriangle.svg Triangle: Draws a regular triangle inscribed in a construction geometry circle.
    • Sketcher CreateSquare.svg Square: Draws a regular square inscribed in a construction geometry circle.
    • Sketcher CreatePentagon.svg Pentagon: Draws a regular pentagon inscribed in a construction geometry circle.
    • Sketcher CreateHexagon.svg Hexagon: Draws a regular hexagon inscribed in a construction geometry circle.
    • Sketcher CreateHeptagon.svg Heptagon: Draws a regular heptagon inscribed in a construction geometry circle.
    • Sketcher CreateOctagon.svg Octagon: Draws a regular octagon inscribed in a construction geometry circle.
    • Sketcher CreateRegularPolygon.svg Regular polygon : Draws a regular polygon by selecting the number of sides and picking two points: the center and one corner.
    • Sketcher CreateSlot.svg Slot: Draws an oval by selecting the center of one semicircle and an endpoint of the other semicircle.
    • Sketcher CompCreateFillets.png Create fillet: This is an icon menu in the Sketcher toolbar that holds the following commands:
    • Sketcher CreateFillet.svg Fillet: Creates a fillet between two non-parallel lines.
    • Sketcher CreatePointFillet.svg Corner-preserving fillet: Creates a fillet between two non-parallel lines while preserving their (virtual) intersection.
    • Sketcher Trimming.svg Trim: Trims a line, circle or arc with respect to the clicked point.
    • Sketcher Extend.svg Extend: Extends a line or an arc to a boundary line, arc, ellipse, arc of ellipse or a point in space.
    • Sketcher ToggleConstruction.svg Toggle construction geometry: Toggles sketch geometry from/to construction mode. Construction geometry is shown in blue and is discarded outside of Sketch editing mode.

    Sketcher constraints

    Constraints are used to define lengths, set rules between sketch elements, and to lock the sketch along the vertical and horizontal axes. Some constraints require use of Helper constraints.

    Geometric constraints

    These constraints are not associated with numeric data.

    • Sketcher ConstrainCoincident.svg Coincident: Affixes a point onto (coincident with) one or more other points. It acts as a concentric constraint if two or more circles, arcs, ellipses or arcs of ellipses are selected.
    • Sketcher ConstrainPointOnObject.svg Point on object: Affixes a point onto another object such as a line, arc, or axis.
    • Sketcher ConstrainVertical.svg Vertical: Constrains the selected lines or polyline elements to a true vertical orientation. More than one object can be selected before applying this constraint.
    • Sketcher ConstrainHorizontal.svg Horizontal: Constrains the selected lines or polyline elements to a true horizontal orientation. More than one object can be selected before applying this constraint.
    • Sketcher ConstrainParallel.svg Parallel: Constrains two or more lines parallel to one another.
    • Sketcher ConstrainPerpendicular.svg Perpendicular: Constrains two lines perpendicular to one another, or constrains a line perpendicular to an arc endpoint.
    • Sketcher ConstrainTangent.svg Tangent: Creates a tangent constraint between two selected entities, or a co-linear constraint between two line segments. A line segment does not have to lie directly on an arc or circle to be constrained tangent to that arc or circle.
    • Sketcher ConstrainEqual.svg Equal: Constrains two selected entities equal to one another. If used on circles or arcs their radii will be set equal.
    • Sketcher ConstrainSymmetric.svg Symmetric: Constrains two points symmetrically about a line, or constrains the first two selected points symmetrically about a third selected point.
    • Sketcher ConstrainBlock.svg Block: it blocks an edge from moving, that is, it prevents its vertices from changing their current positions. It should be particularly useful to fix the position of B-Splines. See the Block Constraint forum topic.

    Dimensional constraints

    These are constraints associated with numeric data, for which you can use the expressions. The data may be taken from a spreadsheet.

    • Sketcher ConstrainLock.svg Lock: Constrains the selected item by setting vertical and horizontal distances relative to the origin, thereby locking the location of that item. These constraint distances can be edited later.
    • Sketcher ConstrainDistanceX.svg Horizontal distance: Fixes the horizontal distance between two points or line endpoints. If only one item is selected, the distance is set to the origin.
    • Sketcher ConstrainDistanceY.svg Vertical distance: Fixes the vertical distance between 2 points or line endpoints. If only one item is selected, the distance is set to the origin.
    • Sketcher ConstrainDistance.svg Distance: Defines the length of a line, the perpendicular distance between a point and a line, the distance between two points, or, introduced in version 0.21, the distance between the edges of two circles.
    • Sketcher ConstrainRadius.svg Radius or weight: Defines the radius of an arc or circle or the weight of a B-spline pole.
    • Sketcher ConstrainDiameter.svg Diameter: Defines the diameter of an arc or circle.
    • Sketcher ConstrainAngle.svg Angle: Defines the internal angle between two selected lines.

    Special constraints

    • Sketcher ConstrainSnellsLaw.svg Refraction (Snell's law): Constrains two lines to obey a refraction law to simulate the light going through an interface.

    Constraint tools

    The following tools can be used the change the effect of constraints:

    Sketcher tools

    • Sketcher RestoreInternalAlignmentGeometry.svg Show/hide internal geometry: Recreates missing/deletes unneeded internal geometry of a selected ellipse, arc of ellipse/hyperbola/parabola or B-spline.
    • Sketcher Symmetry.svg Symmetry: Copies a sketcher element symmetrical to a chosen line.
    • Sketcher Clone.svg Clone: Clones a sketcher element.
    • Sketcher Copy.svg Copy: Copies a sketcher element.
    • Sketcher Move.svg Move: Moves the selected geometry taking as reference the last selected point.

    Sketcher B-spline tools

    Sketcher virtual space

    Obsolete tools

    • Sketcher CloseShape.svg Close shape: Creates a closed shape by applying coincident constraints to endpoints. Not available in version 0.21 and above.
    • Sketcher ConnectLines.svg Connect edges: Connect sketcher elements by applying coincident constraints to endpoints. Not available in version 0.21 and above.


    Best Practices

    Every CAD user develops his own way of working over time, but there are some useful general principles to follow.

    • A series of simple sketches is easier to manage than a single complex one. For example, a first sketch can be created for the base 3D feature (either a pad or a revolve), while a second one can contain holes or cutouts (pockets). Some details can be left out, to be realized later on as 3D features. You can choose to avoid fillets in your sketch if there are too many, and add them as a 3D feature.
    • Always create a closed profile, or your sketch won't produce a solid, but rather a set of open faces. If you don't want some of the objects to be included in the solid creation, turn them to construction elements with the Construction Mode tool.
    • Use the auto constraints feature to limit the number of constraints you'll have to add manually.
    • As a general rule, apply geometric constraints first, then dimensional constraints, and lock your sketch last. But remember: rules are made to be broken. If you're having trouble manipulating your sketch, it may be useful to constrain a few objects first before completing your profile.
    • If possible, center your sketch to the origin (0,0) with the lock constraint. If your sketch is not symmetric, locate one of its points to the origin, or choose nice round numbers for the lock distances.
    • If you have the possibility to choose between the Length constraint and the Horizontal or Vertical Distance constraints, prefer the latter. Horizontal and Vertical Distance constraints are computationally cheaper.
    • In general, the best constraints to use are: Horizontal and Vertical Constraints; Horizontal and Vertical Length Constraints; Point-to-Point Tangency. If possible, limit the use of these: the general Length Constraint; Edge-to-Edge Tangency; Fix Point Onto a Line Constraint; Symmetry Constraint.
    • If in doubt about the validity of a sketch once it is complete (features turn green), close the Sketcher dialog, switch to the Workbench Part.svg Part Workbench and run Part CheckGeometry.svg Check geometry.



    The Sketcher scripting page contains examples on how to create constraints from Python scripts.


    For some ideas of what can be achieved with Sketcher tools, have a look at: Sketcher examples.

    Sketcher ExampleHinge-01.gif Sketcher ExampleHinge-15.png