Sketcher Workbench/sv: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
 
(86 intermediate revisions by the same user not shown)
Line 1: Line 1:
<languages/>
<languages/>


{{Docnav
The '''Sketcher Workbench''' is used to create 2D geometries intended for use in the '''[[PartDesign Workbench|Part Design Workbench]]''' and other workbenches.
|[[Robot_Workbench|Robot Workbench]]
Generally a 2D geometry is considered the starting-point for most CAD models - a simple 2D sketch can be "extruded" into a 3D shape, further 2D sketches can be used to create pockets in the surface of this shape and sketches can be used to define 'pads' (extrusions) on the surface of 3D objects. Along with [[Part Module|Boolean operations]], the Sketcher forms the core of generative solid shape design.
|[[Spreadsheet_Workbench|Spreadsheet Workbench]]
|IconL=Workbench_Robot.svg
|IconR=Workbench_Spreadsheet.svg
}}


[[Image:Workbench_Sketcher.svg|thumb|128px|Sketcher workbench icon]]
The Sketcher workbench itself features constraints - allowing 2D shapes to be constrained to precise geometrical definitions. And a constraint solver which calculates the constrained-extent of 2D geometry and allows interactive exploration of sketch degrees-of-freedom.


{{TOCright}}
{{TOCright}}

[[File:FC_ConstrainedSketch.png|none]]
== Introduction ==

The FreeCAD [[Image:Workbench_Sketcher.svg|24px]] [[Sketcher_Workbench|Sketcher Workbench]] is used to create 2D Sketches intended for use in the [[Image:Workbench_PartDesign.svg|24px]] [[PartDesign_Workbench|PartDesign Workbench]], [[Image:Workbench_Arch.svg|24px]] [[Arch_Workbench|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 [[Image:Workbench_Part.svg|24px]] [[Part Workbench|Part Workbench]], the Sketcher forms the basis of the [[constructive solid geometry|constructive solid geometry]] (CSG) method of building solids. Moreover, together with the [[Image:Workbench_PartDesign.svg|24px]] [[PartDesign_Workbench|PartDesign Workbench]] operations, the Sketcher also forms the basis of the [[feature editing|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.

[[File:FC_ConstrainedSketch.png|450px]]
<div class="mw-translate-fuzzy">
''A basic, fully-constrained sketch‎.''
''A basic, fully-constrained sketch‎.''
</div>


== Basics of constraint sketching ==
== Basics of constraint sketching ==

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


==== Traditional Drafting ====
==== Traditional Drafting ====

The traditional way of CAD drafting inherits from the old [http://en.wikipedia.org/wiki/Drawing_board drawing board]. [http://en.wikipedia.org/wiki/Multiview_orthographic_projection 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.
The traditional way of CAD drafting inherits from the old [http://en.wikipedia.org/wiki/Drawing_board drawing board]. [http://en.wikipedia.org/wiki/Multiview_orthographic_projection 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 ====
==== 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.
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? ====
==== 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|Degrees Of Freedom]] (abbreviated as " DOF "): it can be moved horizontally or vertically, it can be stretched, and it can be rotated.
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'''.
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.
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 [[#The tools|'The tools']] section below.
There are two kinds of constraints: geometric and dimensional. They are detailed in the [[#Tools|'Tools']] section below.


==== What the Sketcher is not good for ====
==== 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.
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 Module|Draft workbench]] (keep in mind though that the Draft workbench can also be useful to create 2D geometry not available in the Sketcher at this time, like B-Splines.)
If you only need to produce 2D views for print, and don't want to create 3D models, check out the [[Draft_Workbench|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_Workbench|Part]] and [[PartDesign_Workbench|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|Arch Workbench]].

The tool [[Draft_Draft2Sketch|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 ==
== 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.


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 the 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. The exception to this rule is that it doesn't apply to Construction (blue) Geometry.


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.


Inside the enclosed area we can have smaller non-overlapping areas. These will become voids when the 3D solid is created.
== The tools ==
The Sketcher Workbench tools are all located in the Sketch menu that appears when you load the Sketcher Workbench.


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 [[Image:Workbench_Part.svg|24px]] [[Part_Workbench|Part Workbench]] and running {{Button|[[File:Part_CheckGeometry.svg|16px]] [[Part_CheckGeometry|Check geometry]]}} to ensure there are no features in the Sketch which may cause later problems.
* [[Image:Sketcher_NewSketch.png‎‎|32px]] [[Sketcher_NewSketch|New 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.


== Tools ==
* [[Image:Sketcher_EditSketch.png|32px]] [[Sketcher_EditSketch|Edit sketch]]: Edit the selected Sketch.


The Sketcher Workbench tools are located in the Sketch menu and/or several toolbars. {{Version|0.21}}: Almost all Sketcher toolbars are only displayed while a sketch is in edit mode. The only exception is the [[#Sketcher_toolbar|Sketcher toolbar]] which is only displayed if no sketch is in edit mode.
* [[Image:Sketcher_LeaveSketch.png|32px]] [[Sketcher_LeaveSketch|Leave sketch]]: Leave the Sketch editing mode.


{{Version|0.21}}: If a sketch is in edit mode the Structure toolbar is hidden as none of its tools can then be used.
* [[Image:Sketcher_ViewSketch.png‎|32px]] [[Sketcher_ViewSketch|View sketch]]: Sets the model view perpendicular to the sketch plane.


=== General ===
* [[Image:Sketcher ViewSection.png|32px]] [[Sketcher_ViewSection|View section]]: <span style="font-size:x-small;color:green;">v0.18 and above</span> Creates a section plane that temporarily hides any matter in front of the sketch plane.


==== Sketcher toolbar ====
* [[Image:Sketcher_MapSketch.png‎|32px]] [[Sketcher_MapSketch|Map sketch to face]]: Maps a sketch to the previously selected face of a solid.


* [[Image:Sketcher_NewSketch.svg‎‎|32px]] [[Sketcher_NewSketch|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_Reorient|Reorient sketch ]]: Allows you to change the position of a sketch


* [[Image:Sketcher_EditSketch.svg|32px]] [[Sketcher_EditSketch|Edit sketch]]: Edit the selected Sketch. This will open the [[Sketcher_Dialog|Sketcher Dialog]].
* [[Sketcher_Validate|Validate sketch]]: It allows you to check if there are in the tolerance of different points and to match them.


* [[Image:Sketcher MergeSketch.png‎|32px]] [[Sketcher MergeSketch|Merge sketches]]: Merge two or more sketches. [v 0.15]
* [[Image:Sketcher_MapSketch.svg|32px]] [[Sketcher_MapSketch|Map sketch to face]]: Maps a sketch to the previously selected face of a solid.


* [[Image:Sketcher MirrorSketch.png‎|32px]] [[Sketcher MirrorSketch|Mirror sketch]]: Mirror a sketch along the x-axis, the y-axis or the origin [v 0.16]
* [[File:Sketcher_ReorientSketch.svg|32px]] [[Sketcher_ReorientSketch|Reorient sketch]]: Allows you to attach the sketch to one of the main planes.

* [[File:Sketcher_ValidateSketch.svg|32px]] [[Sketcher_ValidateSketch|Validate sketch]]: Analyze and repair a sketch that is no longer editable, has invalid constraints, or is missing coincident constraints.

* [[Image:Sketcher_MergeSketches.svg|32px]] [[Sketcher_MergeSketches|Merge sketches]]: Merge two or more sketches.

* [[Image:Sketcher_MirrorSketch.svg|32px]] [[Sketcher_MirrorSketch|Mirror sketch]]: Mirror a sketch along the x-axis, the y-axis or the origin.

==== Sketcher Edit Mode toolbar ====

* [[Image:Sketcher_LeaveSketch.svg|32px]] [[Sketcher_LeaveSketch|Leave sketch]]: Leave the Sketch editing mode.

* [[Image:Sketcher_ViewSketch.svg|32px]] [[Sketcher_ViewSketch|View sketch]]: Sets the model view perpendicular to the sketch plane.

* [[Image:Sketcher_ViewSection.svg|32px]] [[Sketcher_ViewSection|View section]]: Creates a section plane that temporarily hides any matter in front of the sketch plane.

==== Sketcher edit tools toolbar ====

* [[Image:Sketcher_Grid.svg|32px]] [[Sketcher_Grid|Toggle grid]]: Toggles the grid in the sketch currently being edited. Settings can be changed in the related menu. {{Version|0.21}}

* [[Image:Sketcher_Snap.svg|32px]] [[Sketcher_Snap|Toggle snap]]: Toggles snapping in all sketches. Settings can be changed in the related menu. {{Version|0.21}}

* [[Image:Sketcher_RenderingOrder.svg|32px]] [[Sketcher_RenderingOrder|Configure rendering order]]: The rendering order of all sketches can be changed in the related menu. {{Version|0.21}}

==== Other ====

* [[File:Sketcher_StopOperation.svg|32px]] [[Sketcher_StopOperation|Stop operation]]: When in edit mode, stop the current operation, whether that is drawing, setting constraints, etc.


===Sketcher geometries===
===Sketcher geometries===
Line 67: Line 113:
These are tools for creating objects.
These are tools for creating objects.


* [[Image:Sketcher_CreatePoint.png|32px]] [[Sketcher_Point|Point]]: Draws a point.
* [[Image:Sketcher_CreatePoint.svg|32px]] [[Sketcher_CreatePoint|Point]]: Draws a point.


* [[Image:Sketcher_Line.png|32px]] [[Sketcher_Line|Line by 2 point]]: Draws a line segment from 2 points.
* [[Image:Sketcher_CreateLine.svg|32px]] [[Sketcher_CreateLine|Line]]: Draws a line segment between 2 points. Lines are infinite regarding certain constraints.


* <span id="Sketcher_CompCreateArc">[[Image:Sketcher_CreateArc.svg|x32px]][[Image:Toolbar_flyout_arrow_blue_background.svg|x32px]] Create arc:</span><!--Do not edit span id: the Sketcher_CompCreateArc pages redirect here-->
* [[Image:Sketcher_Arc.png|32px]] [[Sketcher_Arc|Arc]]: Draws an arc segment from center, radius, start angle and end angle.


* [[Image:Sketcher CreateArc3Point.png|32px]] [[Sketcher_Arc3Point|Arc by 3 Point]]: Draws an arc segment from two endpoints and another point on the circumference.
:* [[Image:Sketcher_CreateArc.svg|32px]] [[Sketcher_CreateArc|Arc]]: Draws an arc segment from center, radius, start angle and end angle.


* [[Image:Sketcher_Circle.png|32px]] [[Sketcher_Circle|Circle]]: Draws a circle from center and radius.
:* [[Image:Sketcher_Create3PointArc.svg|32px]] [[Sketcher_Create3PointArc|Arc by 3 points]]: Draws an arc segment from two endpoints and another point on the circumference.


* <span id="Sketcher_CompCreateCircle">[[Image:Sketcher_CreateCircle.svg|x32px]][[Image:Toolbar_flyout_arrow_blue_background.svg|x32px]] Create circle:</span><!--Do not edit span id: the Sketcher_CompCreateCircle pages redirect here-->
* [[Image:Sketcher CreateCircle3Point.png|32px]] [[Sketcher_Circle3Point|Circle by 3 Point]] : Draws a circle from three points on the circumference.


:* [[Image:Sketcher_CreateCircle.svg|32px]] [[Sketcher_CreateCircle|Circle]]: Draws a circle from center and radius.
* [[Image:Sketcher_Conics.png|32px]] [[Sketcher_CompCreateConic|Create a conic]]:
** [[Image:Sketcher_CreateEllipse.png|32px]] [[Sketcher CreateEllipseByCenter|Ellipse by center]] : Draws an ellipse by center point, major radius point and minor radius point. (v0.15)
** [[Image:Sketcher_CreateEllipse_3points.png|32px]] [[Sketcher CreateEllipseBy3Points|Ellipse by 3 points]] : Draws an ellipse by major diameter (2 points) and minor radius point. (v0.15)
** [[Image:Sketcher_Elliptical_Arc.png|32px]] [[Sketcher_CreateArcOfEllipse|Arc of ellipse]] : Draws an arc of ellipse by center point, major radius point, starting point and ending point. (v0.15)
**[[Image:Sketcher_Hyperbolic_Arc.png|32px]] [[Sketcher_CreateArcOfHyperbola|Arc of hyperbola]]: Draws an arc of hyperbola. (v0.17)
**[[Image:Sketcher_Parabolic_Arc.png|32px]] [[Sketcher_CreateArcOfParabola|Arc of parabola]]: Draws an arc of parabola. (v0.17)


:* [[Image:Sketcher_Create3PointCircle.svg|32px]] [[Sketcher_Create3PointCircle|Circle by 3 points]]: Draws a circle from three points on the circumference.
* [[Image:Sketcher_CreatePolyline.png|32px]] [[Sketcher_Polyline|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.


* <span id="Sketcher_CompCreateConic">[[Image:Sketcher_Conics.svg|x32px]][[Image:Toolbar_flyout_arrow_blue_background.svg|x32px]] Create conic:</span><!--Do not edit span id: the Sketcher_CompCreateConic pages redirect here-->
* [[Image:Sketcher_CreateRectangle.png|32px]] [[Sketcher_Rectangle|Rectangle]]: Draws a rectangle from 2 opposite points.


* [[Image:Sketcher_CreateTriangle.png|32px]] [[Sketcher_Triangle|Triangle]]: Draws a regular triangle inscribed in a construction geometry circle. (v0.15)
:* [[Image:Sketcher_CreateEllipseByCenter.svg|32px]] [[Sketcher_CreateEllipseByCenter|Ellipse by center]]: Draws an ellipse by center point, major radius point and minor radius point.


* [[Image:Sketcher_CreateSquare.png|32px]] [[Sketcher_Square|Square]]: Draws a regular square inscribed in a construction geometry circle. (v0.15)
:* [[Image:Sketcher_CreateEllipseBy3Points.svg|32px]] [[Sketcher_CreateEllipseBy3Points|Ellipse by 3 points]]: Draws an ellipse by major diameter (2 points) and minor radius point.


:* [[Image:Sketcher_CreateArcOfEllipse.svg|32px]] [[Sketcher_CreateArcOfEllipse|Arc of ellipse]]: Draws an arc of ellipse by center point, major radius point, starting point and ending point.
* [[Image:Sketcher_CreatePentagon.png|32px]] [[Sketcher_Pentagon|Pentagon]]: Draws a regular pentagon inscribed in a construction geometry circle. (v0.15)


:* [[Image:Sketcher_CreateArcOfHyperbola.svg|32px]] [[Sketcher_CreateArcOfHyperbola|Arc of hyperbola]]: Draws an arc of hyperbola.
* [[Image:Sketcher_CreateHexagon.png|32px]] [[Sketcher_Hexagon|Hexagon]]: Draws a regular hexagon inscribed in a construction geometry circle. (v0.15)


:* [[Image:Sketcher_CreateArcOfParabola.svg|32px]] [[Sketcher_CreateArcOfParabola|Arc of parabola]]: Draws an arc of parabola.
* [[Image:Sketcher_CreateHeptagon.png|32px]] [[Sketcher_Heptagon|Heptagon]]: Draws a regular heptagon inscribed in a construction geometry circle. (v0.15)


* <span id="Sketcher_CompCreateBSpline">[[Image:Sketcher_CreateBSpline.svg|x32px]][[Image:Toolbar_flyout_arrow_blue_background.svg|x32px]] B-spline:</span><!--Do not edit span id: the Sketcher_CompCreateBSpline pages redirect here-->
* [[Image:Sketcher_CreateOctagon.png|32px]] [[Sketcher_Octagon|Octagon]]: Draws a regular octagon inscribed in a construction geometry circle. (v0.15)


:* [[File:Sketcher_CreateBSpline.svg|32px]] [[Sketcher_CreateBSpline|B-spline by control points]]: Draws a B-spline curve by its control points.
* [[Image:Sketcher_CreateSlot.png|32px]] [[Sketcher_Slot|Slot]]: Draws an oval by selecting the center of one semicircle and an endpoint of the other semicircle.


:* [[File:Sketcher_CreatePeriodicBSpline.svg|32px]] [[Sketcher_CreatePeriodicBSpline|Periodic B-spline by control points]]: Draws a periodic (closed) B-spline curve by its control points.
* [[Image:Sketcher_CreateFillet.png|32px]] [[Sketcher_Fillet|Fillet]]: Makes a fillet between two lines joined at one point. Select both lines or click on the corner point, then activate the tool.


:* [[File:Sketcher_CreateBSplineByInterpolation.svg|32px]] [[Sketcher_CreateBSplineByInterpolation|B-spline by knots]]: Draws a B-spline curve by its knots. {{Version|0.21}}
* [[Image:Sketcher_Trimming.png|32px]] [[Sketcher_Trimming|Trimming]]: Trims a line, circle or arc with respect to the clicked point.


:* [[File:Sketcher_CreatePeriodicBSplineByInterpolation.svg|32px]] [[Sketcher_CreatePeriodicBSplineByInterpolation|Periodic B-spline by knots]]: Draws a periodic (closed) B-spline curve by its knots. {{Version|0.21}}
* [[Image:Sketcher_External.png|32px]] [[Sketcher_External|External Geometry]]: Creates an edge linked to external geometry.


* [[Image:Sketcher_CreatePolyline.svg|32px]] [[Sketcher_CreatePolyline|Polyline (multiple-point line)]]: Draws a line made of multiple line segments. Pressing the {{KEY|M}} key while drawing a Polyline toggles between the different polyline modes.
* [[Image:Sketcher_ToggleConstruction.png|32px]] [[Sketcher_ToggleConstruction|Construction Mode]]: Toggles sketch geometry from/to construction mode. Construction geometry is shown in blue and is discarded outside of Sketch editing mode.

* <span id="Sketcher_CompCreateRectangles">[[Image:Sketcher_CreateRectangle.svg|x32px]][[Image:Toolbar_flyout_arrow_blue_background.svg|x32px]] Create rectangle:</span><!--Do not edit span id: the Sketcher_CompCreateRectangles pages redirect here-->

:* [[Image:Sketcher_CreateRectangle.svg|32px]] [[Sketcher_CreateRectangle|Rectangle]]: Draws a rectangle from 2 opposite points.

:* [[Image:Sketcher_CreateRectangle_Center.svg|32px]] [[Sketcher_CreateRectangle_Center|Centered rectangle]]: Draws a rectangle from a central point and an edge point. {{Version|0.20}}

:* [[Image:Sketcher_CreateOblong.svg|32px]] [[Sketcher_CreateOblong|Rounded rectangle]]: Draws a rounded rectangle from 2 opposite points. {{Version|0.20}}

* <span id="Sketcher_CompCreateRegularPolygon">[[Image:Sketcher_CreateHexagon.svg|x32px]][[Image:Toolbar_flyout_arrow_blue_background.svg|x32px]] Create regular polygon:</span><!--Do not edit span id: the Sketcher_CompCreateRegularPolygon pages redirect here-->

:* [[Image:Sketcher_CreateTriangle.svg|32px]] [[Sketcher_CreateTriangle|Triangle]]: Draws a regular triangle inscribed in a construction geometry circle.

:* [[Image:Sketcher_CreateSquare.svg|32px]] [[Sketcher_CreateSquare|Square]]: Draws a regular square inscribed in a construction geometry circle.

:* [[Image:Sketcher_CreatePentagon.svg|32px]] [[Sketcher_CreatePentagon|Pentagon]]: Draws a regular pentagon inscribed in a construction geometry circle.

:* [[Image:Sketcher_CreateHexagon.svg|32px]] [[Sketcher_CreateHexagon|Hexagon]]: Draws a regular hexagon inscribed in a construction geometry circle.

:* [[Image:Sketcher_CreateHeptagon.svg|32px]] [[Sketcher_CreateHeptagon|Heptagon]]: Draws a regular heptagon inscribed in a construction geometry circle.

:* [[Image:Sketcher_CreateOctagon.svg|32px]] [[Sketcher_CreateOctagon|Octagon]]: Draws a regular octagon inscribed in a construction geometry circle.

:* [[Image:Sketcher_CreateRegularPolygon.svg|32px]] [[Sketcher_CreateRegularPolygon|Regular polygon]] : Draws a regular polygon by selecting the number of sides and picking two points: the center and one corner.

* <span id="Sketcher_CompSlot">[[Image:Sketcher_CreateSlot.svg|x32px]][[Image:Toolbar_flyout_arrow_blue_background.svg|x32px]] Create slot:</span><!--Do not edit span id: the Sketcher_CompSlot pages redirect here-->

:* [[Image:Sketcher_CreateSlot.svg|32px]] [[Sketcher_CreateSlot|Slot]]: Draws an oval by selecting the center of one semicircle and an endpoint of the other semicircle.

:* [[Image:Sketcher_CreateArcSlot.svg|32px]] [[Sketcher_CreateArcSlot|Arc slot]]: TBD. {{Version|0.22}}

* <span id="Sketcher_CompCreateFillets">[[Image:Sketcher_CreateFillet.svg|x32px]][[Image:Toolbar_flyout_arrow_blue_background.svg|x32px]] Create fillet:</span><!--Do not edit span id: the Sketcher_CompCreateFillets pages redirect here-->

:* [[Image:Sketcher_CreateFillet.svg|32px]] [[Sketcher_CreateFillet|Fillet]]: Creates a fillet between two non-parallel lines.

:* [[Image:Sketcher_CreatePointFillet.svg|32px]] [[Sketcher_CreatePointFillet|Corner-preserving fillet]]: Creates a fillet between two non-parallel lines while preserving their (virtual) intersection.

* <span id="Sketcher_CompCurveEdition">[[Image:Sketcher_Trimming.svg|x32px]][[Image:Toolbar_flyout_arrow_blue_background.svg|x32px]] Edit edge:</span><!--Do not edit span id: the Sketcher_CompCurveEdition pages redirect here-->

:* [[Image:Sketcher_Trimming.svg|32px]] [[Sketcher_Trimming|Trim]]: Trims a line, circle or arc with respect to the clicked point.

:* [[Image:Sketcher_Split.svg|32px]] [[Sketcher_Split|Split]]: Splits an edge into two while keeping most of the constraints. {{Version|0.20}}

:* [[File:Sketcher_Extend.svg|32px]] [[Sketcher_Extend|Extend]]: Extends a line or an arc to a boundary line, arc, ellipse, arc of ellipse or a point in space.

* [[Image:Sketcher_External.svg|32px]] [[Sketcher_External|External geometry]]: Creates an edge linked to external geometry.

* [[File:Sketcher_CarbonCopy.svg|32px]] [[Sketcher_CarbonCopy|Carbon copy]]: Copies the geometry of another sketch.

* [[File:Sketcher_ToggleConstruction.svg|32px]] [[Sketcher_ToggleConstruction|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===
===Sketcher constraints===
Line 116: Line 207:
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 [[Sketcher_helper_constraint|Helper 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 [[Sketcher_helper_constraint|Helper constraints]].


* [[File:Sketcher_ConstrainCoincidentUnified.svg|32px]] [[Sketcher_ConstrainCoincidentUnified|Coincident (unified)]]: TBD. {{Version|0.22}}
====Geometric constraints====
These constraints are not associated with numeric data.


* [[Image:Constraint_PointOnPoint.png|32px]] [[Sketcher ConstrainCoincident|Coincident]]: Affixes a point onto (coincident with) one or more other points.
* [[File:Sketcher_ConstrainCoincident.svg|32px]] [[Sketcher_ConstrainCoincident|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.


* [[Image:Constraint_PointOnObject.png|32px]] [[Sketcher ConstrainPointOnObject|Point On Object]]: Affixes a point onto another object such as a line, arc, or axis.
* [[File:Sketcher_ConstrainPointOnObject.svg|32px]] [[Sketcher_ConstrainPointOnObject|Point on object]]: Affixes a point onto another object such as a line, arc, or axis.


* <span id="Sketcher_CompHorVer">[[Image:Sketcher_ConstrainHorVer.svg|x32px]][[Image:Toolbar_flyout_arrow_blue_background.svg|x32px]]Horizontal/Vertical constraints:</span><!--Do not edit span id: the Sketcher_CompHorVer pages redirect here-->
* [[Image:Constraint_Vertical.png|32px]] [[Sketcher_ConstrainVertical|Vertical]]: Constrains the selected lines or polyline elements to a true vertical orientation. More than one object can be selected before applying this constraint.


:* [[File:Sketcher_ConstrainHorVer.svg|32px]] [[Sketcher_ConstrainHorVer|Horizontal/Vertical]]: TBD. {{Version|0.22}}
* [[Image:Constraint_Horizontal.png|32px]] [[Sketcher_ConstrainHorizontal|Horizontal]]: Constrains the selected lines or polyline elements to a true horizontal orientation. More than one object can be selected before applying this constraint.


:* [[File:Sketcher_ConstrainHorizontal.svg|32px]] [[Sketcher_ConstrainHorizontal|Horizontal]]: Constrains the selected lines or polyline elements to a true horizontal orientation. More than one object can be selected before applying this constraint.
* [[Image:Constraint_Parallel.png|32px]] [[Sketcher_ConstrainParallel|Parallel]]: Constrains two or more lines parallel to one another.


* [[Image:Constraint_Perpendicular.png|32px]] [[Sketcher_ConstrainPerpendicular|Perpendicular]]: Constrains two lines perpendicular to one another, or constrains a line perpendicular to an arc endpoint.
:* [[File:Sketcher_ConstrainVertical.svg|32px]] [[Sketcher_ConstrainVertical|Vertical]]: Constrains the selected lines or polyline elements to a true vertical orientation. More than one object can be selected before applying this constraint.


* [[File:Sketcher_ConstrainParallel.svg|32px]] [[Sketcher_ConstrainParallel|Parallel]]: Constrains two or more lines parallel to one another.
* [[Image:Constraint_Tangent.png|32px]] [[Sketcher ConstrainTangent|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.


* [[Image:Constraint_EqualLength.png|32px]] [[Sketcher_ConstrainEqual|Equal Length]]: Constrains two selected entities equal to one another. If used on circles or arcs their radii will be set equal.
* [[File:Sketcher_ConstrainPerpendicular.svg|32px]] [[Sketcher_ConstrainPerpendicular|Perpendicular]]: Constrains two lines perpendicular to one another, or constrains a line perpendicular to an arc endpoint.


* [[File:Sketcher_ConstrainTangent.svg|32px]] [[Sketcher_ConstrainTangent|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.
* [[Image:Constraint_Symmetric.png|32px]] [[Sketcher_ConstrainSymmetric|Symmetric]]: Constrains two points symmetrically about a line, or constrains the first two selected points symmetrically about a third selected point.


* [[File:Sketcher_ConstrainEqual.svg|32px]] [[Sketcher_ConstrainEqual|Equal]]: Constrains two selected entities equal to one another. If used on circles or arcs their radii will be set equal.
* [[Image:Sketcher_ConstrainBlock.png|32px]] [[Sketcher_ConstrainBlock|Constrain Block]]: <span style="font-size:x-small;color:green;">v0.17 and above</span> Basically allows to block a geometric element in place with a single constraint. It should be particularly useful to work with B-Splines. See the [https://forum.freecadweb.org/viewtopic.php?f=9&t=26572 Block Constraint forum topic].


* [[File:Sketcher_ConstrainSymmetric.svg|32px]] [[Sketcher_ConstrainSymmetric|Symmetric]]: Constrains two points symmetrically about a line, or constrains the first two selected points symmetrically about a third selected point.
====Dimensional constraints ====
These are constraints associated with numeric data, for which you can use the [[Expressions|expressions]]. The data may be taken from a [[Spreadsheet_Workbench|spreadsheet]].


* [[Image:Sketcher_ConstrainBlock.svg|32px]] [[Sketcher_ConstrainBlock|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 [https://forum.freecadweb.org/viewtopic.php?f=9&t=26572 Block Constraint forum topic].
* [[Image:Sketcher_ConstrainLock.png‎|32px]] [[Sketcher ConstrainLock|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.


* <span id="Sketcher_CompDimensionTools">[[Image:Sketcher_Dimension.svg|x32px]][[Image:Toolbar_flyout_arrow_blue_background.svg|x32px]] Dimensional constraints:</span><!--Do not edit span id: the Sketcher_CompDimensionTools pages redirect here-->
* [[Image:Constraint_HorizontalDistance.png‎|32px]] [[Sketcher ConstrainDistanceX|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.


:* [[File:Sketcher_Dimension.svg|32px]] [[Sketcher_Dimension|Dimension]]: TBD. {{Version|0.22}}
* [[Image:Constraint_VerticalDistance.png|32px]] [[Sketcher_ConstrainDistanceY|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.


:* [[File:Sketcher_ConstrainLock.svg|32px]] [[Sketcher_ConstrainLock|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.
* [[Image:Constraint_Length.png|32px]] [[Sketcher_ConstrainDistance|Distance]]: Defines the distance of a selected line by constraining its length, or defines the distance between two points by constraining the distance between them.


:* [[File:Sketcher_ConstrainDistanceX.svg|32px]] [[Sketcher_ConstrainDistanceX|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.
* [[Image:Constraint_Radius.png|32px]] [[Sketcher_ConstrainRadius|Radius]]: Defines the radius of a selected arc or circle by constraining the radius.
* [[Image:Constraint_InternalAngle.png|32px]] [[Constraint_InternalAngle|Internal Angle]]: Defines the internal angle between two selected lines.


:* [[File:Sketcher_ConstrainDistanceY.svg|32px]] [[Sketcher_ConstrainDistanceY|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.
* [[Image:Constraint_SnellsLaw.png|32px]] [[Constraint_SnellsLaw|Snell's Law]]: Constrains two lines to obey a refraction law to simulate the light going through an interface. (v 0.15)


:* [[File:Sketcher_ConstrainDistance.svg|32px]] [[Sketcher_ConstrainDistance|Distance]]: Defines the length of a line, the perpendicular distance between a point and a line, the distance between two points, or, {{Version|0.21}}, the distance between the edges of two circles.
* [[Image:Constraint_InternalAlignment.png |32px]] [[Constraint_Internal_Alignment|Internal Alignment]]: Aligns selected elements to selected shape (e.g. a line to become major axis of an ellipse).


:* <span id="Sketcher_CompConstrainRadDia">[[File:Sketcher_ConstrainRadius.svg|32px]] [[Sketcher_ConstrainRadius|Radius]]: Defines the radius of an arc or circle or the weight of a B-spline pole.</span><!--Do not edit span id: the Sketcher_CompConstrainRadDia pages redirect here-->
* [[Image:Sketcher_ToggleConstraint.png |32px]] [[Sketcher_ToggleConstraint|Toggle Constraint]]: Toggles the toolbar or the selected constraints to/from reference mode. v0.16

:* [[File:Sketcher_ConstrainDiameter.svg|32px]] [[Sketcher_ConstrainDiameter|Diameter]]: Defines the diameter of an arc or circle.

:* [[File:Sketcher_ConstrainRadiam.svg|32px]] [[Sketcher_ConstrainRadiam|Auto radius/diameter]]: Defines the radius of an arc, the diameter of a circle or the weight of a B-spline pole. {{Version|0.20}}

:* [[File:Sketcher_ConstrainAngle.svg|32px]] [[Sketcher_ConstrainAngle|Angle]]: Defines the internal angle between two selected lines.

==== Special constraints ====

* [[File:Sketcher_ConstrainSnellsLaw.svg|32px]] [[Sketcher_ConstrainSnellsLaw|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:

* [[File:Sketcher_ToggleDrivingConstraint.svg|32px]] [[Sketcher_ToggleDrivingConstraint|Toggle driving/reference constraint]]: Toggles the toolbar or the selected constraints to/from reference mode.

* [[File:Sketcher_ToggleActiveConstraint.svg|32px]] [[Sketcher_ToggleActiveConstraint|Activate/deactivate constraint]]: Enable or disable an already placed constraint.


===Sketcher tools===
===Sketcher tools===


* [[File:Sketcher SelectElementsWithDoFs.svg|32px]] [[Sketcher_SelectElementsWithDoFs|Select solver DOFs]]: <span style="font-size:x-small;color:green;">v0.18 and above</span> Highlights in green the geometry with degrees of freedom (DOFs), i.e. not fully constrained.
* [[File:Sketcher_SelectElementsWithDoFs.svg|32px]] [[Sketcher_SelectElementsWithDoFs|Select unconstrained DoF]]: Highlights in green the geometry with degrees of freedom (DOFs), i.e. not fully constrained.


* [[File:Sketcher_SelectConstraints.svg|32px]] [[Sketcher_SelectConstraints|Select associated constraints]]: Selects the constraints of a sketcher element.
* [[Image:Sketcher CloseShape.png‎|32px]] [[Sketcher CloseShape|Close Shape]]: Creates a closed shape by applying coincident constraints to endpoints [v 0.15]


* [[Image:Sketcher ConnectLines.png‎|32px]] [[Sketcher ConnectLines|Connect Edges]]: Connect sketcher elements by applying coincident constraints to endpoints [v 0.15]
* [[File:Sketcher_SelectElementsAssociatedWithConstraints.svg|32px]] [[Sketcher_SelectElementsAssociatedWithConstraints|Select associated geometry]]: Select sketcher elements associated with constraints.


* [[Image:Sketcher SelectConstraints.png‎|32px]] [[Sketcher SelectConstraints|Select Constraints]]: Selects the constraints of a sketcher element [v 0.15]
* [[File:Sketcher_SelectRedundantConstraints.svg|32px]] [[Sketcher_SelectRedundantConstraints|Select redundant constraints]]: Selects redundant constraints of a sketch.


* [[Image:Sketcher SelectOrigin.png‎|32px]] [[Sketcher SelectOrigin|Select Origin]]: Selects the origin of a sketch [v 0.15]
* [[File:Sketcher_SelectConflictingConstraints.svg|32px]] [[Sketcher_SelectConflictingConstraints|Select conflicting constraints]]: Selects conflicting constraints of a sketch.


* [[File:Sketcher_RestoreInternalAlignmentGeometry.svg|32px]] [[Sketcher_RestoreInternalAlignmentGeometry|Show/hide internal geometry]]: Recreates missing/deletes unneeded internal geometry of a selected ellipse, arc of ellipse/hyperbola/parabola or B-spline.
* [[Image:Sketcher SelectVerticalAxis.png‎|32px]] [[Sketcher SelectVerticalAxis|Select Vertical Axis]]: Selects the vertical axis of a sketch [v 0.15]


* [[Image:Sketcher SelectHorizontalAxis.png‎|32px]] [[Sketcher SelectHorizontalAxis|Select Horizontal Axis]]: Selects the horizontal axis of a sketch [v 0.15]
* [[File:Sketcher_SelectOrigin.svg|32px]] [[Sketcher_SelectOrigin|Select origin]]: Selects the origin of a sketch.


* [[Image:Sketcher SelectRedundantConstraints.png‎|32px]] [[Sketcher SelectRedundantConstraints|Select Redundant Constraints]]: Selects redundant constraints of a sketch [v 0.15]
* [[File:Sketcher_SelectHorizontalAxis.svg|32px]] [[Sketcher_SelectHorizontalAxis|Select horizontal axis]]: Selects the horizontal axis of a sketch.


* [[Image:Sketcher SelectConflictingConstraints.png‎|32px]] [[Sketcher SelectConflictingConstraints|Select Conflicting Constraints]]: Selects conflicting constraints of a sketch [v 0.15]
* [[File:Sketcher_SelectVerticalAxis.svg|32px]] [[Sketcher_SelectVerticalAxis|Select vertical axis]]: Selects the vertical axis of a sketch.


* [[File:Sketcher_Offset.svg|32px]] [[Sketcher_Offset|Offset geometry]]: Adds an equidistant outline around selected edges. {{Version|0.22}}
* [[Image:Sketcher SelectElementsAssociatedWithConstraints.png‎|32px]] [[Sketcher SelectElementsAssociatedWithConstraints|Select Elements Associated with constraints]]: Select sketcher elements associated with constraints [v 0.15]


* [[File:Sketcher_Rotate.svg|32px]] [[Sketcher_Rotate|Polar transform]]: TBD. {{Version|0.22}}
* [[File:Sketcher_Element_Ellipse_All.png‎|32px]] [[Sketcher_RestoreInternalAlignmentGeometry|Show/Hide internal geometry]]: Recreates missing/deletes unneeded internal geometry of a selected ellipse, arc of ellipse/hyperbola/parabola or B-spline.


* [[Image:Sketcher Symmetry.png‎|32px]] [[Sketcher Symmetry|Symmetry]]: Copies a sketcher element symmetrical to a chosen line [v 0.16]
* [[File:Sketcher_Symmetry.svg|32px]] [[Sketcher_Symmetry|Symmetry]]: Copies a sketcher element symmetrical to a chosen line.


* [[Image:Sketcher Clone.png‎|32px]] [[Sketcher Clone|Clone]]: Clones a sketcher element [v 0.16]
* [[File:Sketcher_Clone.svg|32px]] [[Sketcher_Clone|Clone]]: Clones a sketcher element.


* [[Image:Sketcher Copy.png‎|32px]] [[Sketcher Copy|Copy]]: Copies a sketcher element [v 0.16]
* [[File:Sketcher_Copy.svg|32px]] [[Sketcher_Copy|Copy]]: Copies a sketcher element.


* [[File:Sketcher_Move.svg|32px]] [[Sketcher_Move|Move]]: <span style="font-size:x-small;color:green;">v0.18 and above</span> Moves the selected geometry taking as reference the last selected point.
* [[File:Sketcher_Move.svg|32px]] [[Sketcher_Move|Move]]: Moves the selected geometry taking as reference the last selected point.


* [[Image:Sketcher RectangularArray.png‎|32px]] [[Sketcher RectangularArray|Rectangular Array]]: Creates an array of selected sketcher elements [v 0.16]
* [[File:Sketcher_RectangularArray.svg|32px]] [[Sketcher_RectangularArray|Rectangular array]]: Creates an array of selected sketcher elements.


* [[File:Sketcher_RemoveAxesAlignment.svg|32px]] [[Sketcher_RemoveAxesAlignment|Remove axes alignment]]: Remove axes alignment while trying to preserve the constraint relationship of the selection. {{Version|0.20}}
* [[File:Sketcher Element SelectionTypeInvalid.svg|32px]] [[Sketcher_DeleteAllGeometry|Delete All Geometry]]: <span style="font-size:x-small;color:green;">v0.18 and above</span> Deletes all geometry from the sketch.


* [[File:Sketcher Element SelectionTypeInvalid.svg|32px]] [[Sketcher_DeleteAllConstraints|Delete All Constraints]]: <span style="font-size:x-small;color:green;">v0.18 and above</span> Deletes all constraints from the sketch.
* [[File:Sketcher_DeleteAllGeometry.svg|32px]] [[Sketcher_DeleteAllGeometry|Delete all geometry]]: Deletes all geometry from the sketch.

* [[File:Sketcher_DeleteAllConstraints.svg|32px]] [[Sketcher_DeleteAllConstraints|Delete all constraints]]: Deletes all constraints from the sketch.


===Sketcher B-spline tools===
===Sketcher B-spline tools===


* [[File:Sketcher_BSplineApproximate.svg|32px]] [[Sketcher_BSplineApproximate|Convert geometry to B-spline]]: Converts compatible geometry, edges and curves, into a B-spline.
* [[File:Sketcher_BSplineDegree.svg|32px]] [[Sketcher_BSplineDegree|Show/Hide B-spline degree]]


* [[File:Sketcher_BSplinePolygon.svg|32px]] [[Sketcher_BSplinePolygon|Show/Hide B-spline control polygon]]
* [[File:Sketcher_BSplineIncreaseDegree.svg|32px]] [[Sketcher_BSplineIncreaseDegree|Increase B-spline degree]]: Increases the degree (order) of a B-spline.


* [[File:Sketcher_BSplineComb.svg|32px]] [[Sketcher_BSplineComb|Show/Hide B-spline curvature comb]]
* [[File:Sketcher_BSplineDecreaseDegree.svg|32px]] [[Sketcher_BSplineDecreaseDegree|Decrease B-spline degree]]: Decreases the degree (order) of a B-spline.


* [[File:Sketcher_BSplineKnotMultiplicity.svg|32px]] [[Sketcher_BSplineKnotMultiplicity|Show/Hide B-spline knot multiplicity]]
* [[File:Sketcher_BSplineIncreaseKnotMultiplicity.svg|32px]] [[Sketcher_BSplineIncreaseKnotMultiplicity|Increase knot multiplicity]]: Increases the multiplicity of a B-spline knot.


* [[File:Sketcher_BSplineDecreaseKnotMultiplicity.svg|32px]] [[Sketcher_BSplineDecreaseKnotMultiplicity|Decrease knot multiplicity]]: Decreases the multiplicity of a B-spline knot.
* [[File:Sketcher_BSplineApproximate.svg|32px]] [[Sketcher_ConvertToNURB|Convert Geometry to B-spline]]


* [[File:Sketcher_BSplineInsertKnot.svg|32px]] [[Sketcher_BSplineInsertKnot|Insert knot]]: Inserts a knot into an existing B-spline. {{Version|0.20}}
* [[File:Sketcher_BSplineIncreaseDegree.svg|32px]] [[Sketcher_BSplineIncreaseDegree|Increase degree]]


* [[File:Sketcher_JoinCurves.svg|32px]] [[Sketcher_JoinCurves|Join curves]]: Joins two curves at selected end points. {{Version|0.21}}
* [[File:Sketcher_BSplineIncreaseKnotMultiplicity.svg|32px]] [[Sketcher_BSplineIncreaseKnotMultiplicity|Increase knot multiplicity]]


===Sketcher visual===
* [[File:Sketcher_BSplineDecreaseKnotMultiplicity.svg|32px]] [[Sketcher_BSplineDecreaseKnotMultiplicity|Decrease knot multiplicity]]


* [[File:Sketcher_SwitchVirtualSpace.svg|32px]] [[Sketcher_SwitchVirtualSpace|Switch virtual space]]: Allows you to hide all constraints of a sketch and make them visible again.
===Sketcher virtual space===


* [[File:Sketcher_BSplineDegree.svg|32px]] [[Sketcher_BSplineDegree|Show/hide B-spline degree]]: Shows or hides the display of the degree of a B-spline.
* [[Image:Sketcher SwitchVirtualSpace.png‎|32px]] [[Sketcher_SwitchVirtualSpace|Switch Virtual Space]]: <span style="font-size:x-small;color:green;">v0.17</span> Allows you to "hide" constraints and make them visible again. See https://forum.freecadweb.org/viewtopic.php?f=9&t=26614


* [[File:Sketcher_BSplinePolygon.svg|32px]] [[Sketcher_BSplinePolygon|Show/hide B-spline control polygon]]: Shows or hides the display of the defining polygon of a B-spline.
===Preferences===


* [[File:Sketcher_BSplineComb.svg|32px]] [[Sketcher_BSplineComb|Show/hide B-spline curvature comb]]: Shows or hides the display of the curvature comb of a B-spline.
* [[Image:Std_DlgParameter.png|32px]] [[Sketcher_Preferences|Preferences...]]: Preferences disposable in Sketcher Tools.

* [[File:Sketcher_BSplineKnotMultiplicity.svg|32px]] [[Sketcher_BSplineKnotMultiplicity|Show/hide B-spline knot multiplicity]]: Shows or hides the display of the knot multiplicity of a B-spline.

* [[File:Sketcher_BSplinePoleWeight.svg|32px]] [[Sketcher_BSplinePoleWeight|Show/hide B-spline control point weight]]: Shows or hides the display of the weights for the control points of a B-spline.

* [[File:Sketcher_ArcOverlay.svg|32px]] [[Sketcher_ArcOverlay|Show/hide circular helper for arcs]]: TBD. {{Version|0.22}}

===Obsolete tools===

* [[File:Sketcher_CloseShape.svg|32px]] [[Sketcher_CloseShape|Close shape]]: Creates a closed shape by applying coincident constraints to endpoints. Not available in {{VersionPlus|0.21}}.

* [[File:Sketcher_ConnectLines.svg|32px]] [[Sketcher_ConnectLines|Connect edges]]: Connect sketcher elements by applying coincident constraints to endpoints. Not available in {{VersionPlus|0.21}}.

== Preferences ==

* [[Image:Workbench_Sketcher.svg|32px]] [[Sketcher_Preferences|Preferences]]: Preferences for the '''Sketcher''' workbench.


== Best Practices ==
== Best Practices ==

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


Line 230: Line 355:
* Use the auto constraints feature to limit the number of constraints you'll have to add manually.
* 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.
* 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. In v0.12, external constraints (constraining the sketch to existing 3D geometry like edges or to other sketches) are not implemented. This means that to locate following sketches geometry to your first sketch, you'll need to set distances relative to your first sketch manually. A lock constraint of (25,75) from the origin is more easily remembered than (23.47,73.02).
* 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.
* 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.
* 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 [[Image:Workbench_Part.svg|24px]] [[Part_Workbench|Part Workbench]] and run {{Button|[[File:Part_CheckGeometry.svg|16px]] [[Part_CheckGeometry|Check geometry]]}}.



== Tutorials ==
== Tutorials ==

* [[Sketcher_Tutorial|Sketcher Tutorial]]
* [https://forum.freecadweb.org/viewtopic.php?f=36&t=30104 Sketcher tutorial] by chrisb. This is a 70-page long PDF document that serves as a detailed manual for the sketcher. It explains the basics of Sketcher usage, and goes into a lot of detail about the creation of geometrical shapes, and each of the constraints.
* [[Sketcher_tutorial|Sketcher tutorial]] for beginner
* [[Basic_Sketcher_Tutorial|Basic Sketcher Tutorial]] for beginners
* [[Sketcher_Micro_Tutorial_-_Constraint_Practices|Sketcher Micro Tutorial - Constraint Practices]]
* [[Sketcher_Micro_Tutorial_-_Constraint_Practices|Sketcher Micro Tutorial - Constraint Practices]]
* [[Sketcher_requirement_for_a_sketch|Sketcher requirement for a sketch]] Minimum requirement for a sketch and Complete determination of a sketch


== Scripting ==

The [[Sketcher_scripting|Sketcher scripting]] page contains examples on how to create constraints from Python scripts.

== Examples ==

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

[[Image:Sketcher_ExampleHinge-01.gif|80px|link=]]
[[Image:Sketcher ExampleHinge-15.png|90px|link=]]


<div class="mw-translate-fuzzy">
[[Category:User Documentation/sv]]
[[Category:User Documentation/sv]]
</div>

{{Sketcher_Tools_navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
[[Category:Workbenches{{#translation:}}]]

Latest revision as of 10:11, 24 January 2024

Sketcher workbench icon

Introduction

The FreeCAD Sketcher Workbench is used to create 2D Sketches intended for use in the PartDesign Workbench, 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 Part Workbench, the Sketcher forms the basis of the constructive solid geometry (CSG) method of building solids. Moreover, together with the 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.

A basic, 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 Part Workbench and running Check geometry to ensure there are no features in the Sketch which may cause later problems.

Tools

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.

General

Sketcher toolbar

  • 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.
  • Reorient sketch: Allows you to attach the sketch to one of the main planes.
  • Validate sketch: Analyze and repair a sketch that is no longer editable, has invalid constraints, or is missing coincident constraints.
  • Mirror sketch: Mirror a sketch along the x-axis, the y-axis or the origin.

Sketcher Edit Mode toolbar

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

Sketcher edit tools toolbar

Other

  • 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.

  • Line: Draws a line segment between 2 points. Lines are infinite regarding certain constraints.
  • Create arc:
  • Arc: Draws an arc segment from center, radius, start angle and end angle.
  • Arc by 3 points: Draws an arc segment from two endpoints and another point on the circumference.
  • Create circle:
  • Circle: Draws a circle from center and radius.
  • Create conic:
  • Ellipse by center: Draws an ellipse by center point, major radius point and minor radius point.
  • Arc of ellipse: Draws an arc of ellipse by center point, major radius point, starting point and ending point.
  • B-spline:
  • 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.
  • Create rectangle:
  • Rectangle: Draws a rectangle from 2 opposite points.
  • Create regular polygon:
  • Triangle: Draws a regular triangle inscribed in a construction geometry circle.
  • Square: Draws a regular square inscribed in a construction geometry circle.
  • Pentagon: Draws a regular pentagon inscribed in a construction geometry circle.
  • Hexagon: Draws a regular hexagon inscribed in a construction geometry circle.
  • Heptagon: Draws a regular heptagon inscribed in a construction geometry circle.
  • Octagon: Draws a regular octagon inscribed in a construction geometry circle.
  • Regular polygon : Draws a regular polygon by selecting the number of sides and picking two points: the center and one corner.
  • Create slot:
  • Slot: Draws an oval by selecting the center of one semicircle and an endpoint of the other semicircle.
  • Create fillet:
  • Fillet: Creates a fillet between two non-parallel lines.
  • Corner-preserving fillet: Creates a fillet between two non-parallel lines while preserving their (virtual) intersection.
  • Edit edge:
  • Trim: Trims a line, circle or arc with respect to the clicked point.
  • Extend: Extends a line or an arc to a boundary line, arc, ellipse, arc of ellipse or a point in space.
  • 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.

  • 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.
  • Point on object: Affixes a point onto another object such as a line, arc, or axis.
  • Horizontal/Vertical constraints:
  • Horizontal: Constrains the selected lines or polyline elements to a true horizontal orientation. More than one object can be selected before applying this constraint.
  • Vertical: Constrains the selected lines or polyline elements to a true vertical orientation. More than one object can be selected before applying this constraint.
  • Parallel: Constrains two or more lines parallel to one another.
  • Perpendicular: Constrains two lines perpendicular to one another, or constrains a line perpendicular to an arc endpoint.
  • 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.
  • Equal: Constrains two selected entities equal to one another. If used on circles or arcs their radii will be set equal.
  • Symmetric: Constrains two points symmetrically about a line, or constrains the first two selected points symmetrically about a third selected point.
  • 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:
  • 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.
  • 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.
  • 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.
  • 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.
  • Radius: Defines the radius of an arc or circle or the weight of a B-spline pole.
  • Diameter: Defines the diameter of an arc or circle.
  • Angle: Defines the internal angle between two selected lines.

Special constraints

  • 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

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

Sketcher B-spline tools

Sketcher visual

Obsolete tools

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

Preferences

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 Part Workbench and run Check geometry.

Tutorials

Scripting

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

Examples

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