Draft Workbench: Difference between revisions

From FreeCAD Documentation
No edit summary
(Docnav)
(342 intermediate revisions by 22 users not shown)
Line 1: Line 1:
<languages/>
The draft Module is a work-in-progress and quite experimental module made to add basic 2d drawing functionality to FreeCAD. It is written entirely in python, and is also intended to showcase how far you can extend FreeCAD entirely in python, without even touching the source code.
<translate>


<!--T:32-->
Currently it is not really usable for production work, but already contains a couple of working basic functions. Feel free to test, and give us a feedback on the [[Talk:Draft_Module|discussion page]].
{{Docnav
|[[CAM_Workbench|CAM Workbench]]
|[[FEM_Workbench|FEM Workbench]]
|IconL=Workbench_CAM.svg
|IconR=Workbench_FEM.svg
}}


<!--T:38-->
[[Image:Draftscreenshot.jpg|center|The draft interface with the buttons toolbar and the function toolbar]]
[[Image:Workbench_Draft.svg|thumb|128px|Draft workbench icon]]
The draft workbench is available in your workbenches list. When you activate it, two toolbars will appear; a classical '''toolbar''' containing the standard draft commands listed below and a special '''command bar''' that has no tool icon on it, but that is used by the different functions to display their controls. On that command bar, you can also change general things like current line color and width. As a sidenote, the command bar (and, IMHO, the whole QT interface) looks much better if you choose the "cleanlooks" style in FreeCAD general preferences...


</translate>
=== Tutorial ===
{{TOCright}}
<translate>


== Introduction == <!--T:68-->
For an in-depth explanation, read the [[Draft tutorial]] (work in progress), or read the quickstart section below to get you quickly on rails.


<!--T:1-->
=== Quickstart ===
The [[File:Workbench_Draft.svg|32px]] '''Draft Workbench''' is primarily focused on the creation and modification of 2D objects in FreeCAD. But it is not restricted to the XY plane of the global coordinate system. Its objects can have any orientation and position in 3D space, and some Draft objects can either be planar or non-planar.


<!--T:29-->
Not all Draft commands work well in 3D at the moment. So, the best thing to do is to put yourself in orthographic 2D view before starting to draw. To do that, open or create a new document, then press the {{KEY|O}} key (or menu view -> orthographic view) to switch to orthographic mode. Then press the {{KEY|2}} key (or menu view -> standard views -> top) to put you in top view. Now, you are ready to draw. You can also configure freecad (menu edit -> preferences) to always start in orthographic mode.
Draft objects can be used for general drafting, similar to what can be done with Inkscape or AutoCAD. But they can also form the base for the creation of 3D objects in other workbenches. A [[Draft_Wire|Draft Wire]] may define the path of an [[Arch_Wall|Arch Wall]], a [[Draft_Polygon|Draft Polygon]] can be extruded with [[Part_Extrude|Part Extrude]], etc. Many of the [[#Modification|Draft modifier tools]] can be applied to 2D and 3D objects created with other workbenches as well. You can, for example, [[Draft_Move|move]] a [[Sketcher_Workbench|Sketch]] or create a [[Draft_OrthoArray|Draft OrthoArray]] from a [[Part_Workbench|Part]] object.


<!--T:109-->
All draft commands follow more or less the same rules: Drawing tools will ask you to pick points on the screen or enter numeric coordinates, while modification tools will ask you to choose an object to work on first, in case no object is selected. In almost all commands, pressing the {{KEY|CTRL}} key will allow you to snap to existing points, {{KEY|SHIFT}} will constrain your movement horizontally, verically or in relation to an existing segment, and in some tools {{KEY|ALT}} will give you extra options such as creating a new object instead of transforming an existing one. The {{KEY|ESC}} key will always cancel the active command.
The Draft Workbench also provides tools to define a [[Draft_SelectPlane|working plane]], a [[Draft_Snap_Grid|grid]], and a [[Draft_Snap|snapping system]] to precisely control the position of geometry.


<!--T:30-->
'''Note'''
If your primary goal is the production of complex 2D drawings and [[DXF|DXF]] files, and you don't need 3D modelling, FreeCAD may not be the right choice for you. You may wish to consider a dedicated software program for technical drafting instead, such as [https://en.wikipedia.org/wiki/LibreCAD LibreCAD] or [https://en.wikipedia.org/wiki/QCad QCad].
On some desktop systems (ex. Gnome, Kde), the {{KEY|ALT}} key is bound by default to moving windows on the desktop.
You might need to change that shortcut key in your desktop preferences.


</translate>
Some commands work in non-horizontal planes too, just make sure the Z coordinate is unlocked when drawing, and place yourself in the appropriate view. Below you will find a more complete description of all available tools.
[[Image:Draft_Workbench_Example.png]]
<translate>
<!--T:110-->
{{Caption|The image shows the [[Draft_Snap_Grid|grid]] aligned with the XY plane.<br>
On the left, in white, several planar objects.<br>
On the right a non-planar [[Draft_Wire|Draft Wire]] used as the Path Object of a [[Draft_PathArray|Draft PathArray]].}}


== Drafting == <!--T:111-->
===Importing & exporting===


<!--T:112-->
These are functions for opening, importing or exporting other file formats. Opening will open a new document with the contents of the file, while importing will append the file content to the current document. Exporting will save the selected objects to a file. If nothing is selected, then all objects will be exported. Be aware that since the purpose of the Draft module is to work with 2d objects, those importers focus only on 2d objects, and, although DXF and OCA formats do support objects definitions in 3D space (objects are not necessarily flat), they won't import volumetric objects like meshes, 3D faces, etc, but rather lines, circles, texts or flat shapes. Currently supported file formats are:
* [[Image:Draft_Line.svg|32px]] [[Draft_Line|Line]]: creates a straight line.


<!--T:113-->
* [[Draft_DXF|Autodesk .DXF]]: Imports and exports DXF files created with other CAD applications
* [[Image:Draft_Wire.svg|32px]] [[Draft_Wire|Polyline]]: creates a polyline (also called wire), a sequence of several connected line segments.
* [[Draft_SVG|SVG (as geometry)]]: Imports and exports SVG files created with vector drawing applications
* [[Draft_OCA|Open Cad format .OCA]]: Imports and exports OCA/GCAD files, a potentially new [http://groups.google.com/group/open_cad_format open CAD file format]


<!--T:114-->
{{Draft Tools}}
* [[Image:Draft_Fillet.svg|32px]] [[Draft_Fillet|Fillet]]: creates a fillet, a rounded corner, or a chamfer, a straight edge, between two [[Draft_Line|Draft Lines]].


<!--T:194-->
===Common behaviours===
* <span id="Draft_ArcTools">[[Image:Draft_Arc.svg|x32px]][[Image:Toolbar_flyout_arrow_blue_background.svg|x32px]] Arc tools:</span><!--Do not edit span id: the Draft_ArcTools pages redirect here-->


<!--T:116-->
* [[Draft_Snap|Snapping]]: Allows to place new points on special places on existing objects
:* [[Image:Draft_Arc.svg|32px]] [[Draft_Arc|Arc]]: creates a circular arc from a center, a radius, a start angle and an aperture angle.
* [[Draft_Constrain|Constraining]]: Allows to place new points horizontally or vertically in relation to previous points
* [[Draft_Coordinates|Working with manual coordinates]]: Allows to enter manual coordinates instead of clicking on screen
* Copying: All modification tools can either modify the selected objects or create a modified copy of them. Pressing {{KEY|ALT}} while using the tool will make a copy
* [[Draft_ConstructionMode|Construction Mode]]: Allows you to put geometry apart from the rest, for easy switch on/switch off
* All newly created objects adopt current Draft [[Draft Linestyle|color and width]]
* The Draft module also has its [[Draft Preferences|preferences]] screen


<!--T:117-->
===API===
:* [[Image:Draft_Arc_3Points.svg|32px]] [[Draft_Arc_3Points|Arc by 3 points]]: creates a circular arc from three points that define its circumference.


<!--T:118-->
See the [[Draft API]] page for a complete description of the Draft functions that you can use in scripts and macros
* [[Image:Draft_Circle.svg|32px]] [[Draft_Circle|Circle]]: creates a circle from a center and a radius.


<!--T:119-->
{{docnav|Raytracing Module|Image Module}}
* [[Image:Draft_Ellipse.svg|32px]] [[Draft_Ellipse|Ellipse]]: creates an ellipse from two points defining a rectangle in which the ellipse will fit.


<!--T:120-->
{{languages | {{es|Draft Module/es}} {{se|Draft Module/se}} {{pl|Draft Module/pl}} }} {{ru|Draft Module/ru}}
* [[Image:Draft_Rectangle.svg|32px]] [[Draft_Rectangle|Rectangle]]: creates a rectangle from two points.


<!--T:121-->
[[Category:User Documentation]]
* [[Image:Draft_Polygon.svg|32px]] [[Draft_Polygon|Polygon]]: creates a regular polygon from a center and a radius.

<!--T:122-->
* [[Image:Draft_BSpline.svg|32px]] [[Draft_BSpline|B-spline]]: creates a B-spline curve from several points.

<!--T:195-->
* <span id="Draft_BezierTools">[[Image:Draft_CubicBezCurve.svg|x32px]][[Image:Toolbar_flyout_arrow_blue_background.svg|x32px]] Bézier tools:</span><!--Do not edit span id: the Draft_BezierTools pages redirect here-->

<!--T:124-->
:* [[Image:Draft_CubicBezCurve.svg|32px]] [[Draft_CubicBezCurve|Cubic Bézier curve]]: creates a Bézier curve of the third degree.

<!--T:125-->
:* [[Image:Draft_BezCurve.svg|32px]] [[Draft_BezCurve|Bézier curve]]: creates a Bézier curve from several points.

<!--T:126-->
* [[Image:Draft_Point.svg|32px]] [[Draft_Point|Point]]: creates a simple point.

<!--T:127-->
* [[Image:Draft_Facebinder.svg|32px]] [[Draft_Facebinder|Facebinder]]: creates a surface object from selected faces.

<!--T:128-->
* [[Image:Draft_ShapeString.svg|32px]] [[Draft_ShapeString|ShapeString]]: creates a compound shape that represents a text string.

<!--T:190-->
* [[Image:Draft_Hatch.svg|32px]] [[Draft_Hatch|Hatch]]: creates hatches on the planar faces of a selected object. {{Version|0.20}}

== Annotation == <!--T:129-->

<!--T:130-->
* [[Image:Draft_Text.svg|32px]] [[Draft_Text|Text]]: creates a multi-line text at a given point.

<!--T:131-->
* [[Image:Draft_Dimension.svg|32px]] [[Draft_Dimension|Dimension]]: creates a linear dimension, a radial dimension or an angular dimension.

<!--T:132-->
* [[Image:Draft_Label.svg|32px]] [[Draft_Label|Label]]: creates a multi-line text with a 2-segment leader line and an arrow.

<!--T:133-->
* [[Image:Draft_AnnotationStyleEditor.svg|32px]] [[Draft_AnnotationStyleEditor|Annotation styles...]]: allows you to define styles that affect the visual properties of annotation-like objects.

== Modification == <!--T:134-->

<!--T:135-->
* [[Image:Draft_Move.svg|32px]] [[Draft_Move|Move]]: moves or copies selected objects from one point to another.

<!--T:136-->
* [[Image:Draft_Rotate.svg|32px]] [[Draft_Rotate|Rotate]]: rotates or copies selected objects around a center point by a given angle.

<!--T:137-->
* [[Image:Draft_Scale.svg|32px]] [[Draft_Scale|Scale]]: scales or copies selected objects around a base point.

<!--T:138-->
* [[Image:Draft_Mirror.svg|32px]] [[Draft_Mirror|Mirror]]: creates mirrored copies from selected objects.

<!--T:139-->
* [[Image:Draft_Offset.svg|32px]] [[Draft_Offset|Offset]]: offsets each segment of a selected object over a given distance, or creates an offset copy of the selected object.

<!--T:140-->
* [[Image:Draft_Trimex.svg|32px]] [[Draft_Trimex|Trimex]]: trims or extends a selected object.

<!--T:141-->
* [[Image:Draft_Stretch.svg|32px]] [[Draft_Stretch|Stretch]]: stretches objects by moving selected points.

<!--T:142-->
* [[Image:Draft_Clone.svg|32px]] [[Draft_Clone|Clone]]: creates linked copies, clones, of selected objects.

<!--T:196-->
* <span id="Draft_ArrayTools">[[Image:Draft_OrthoArray.svg|x32px]][[Image:Toolbar_flyout_arrow_blue_background.svg|x32px]] Array tools:</span><!--Do not edit span id: the Draft_ArrayTools pages redirect here-->

<!--T:144-->
:* [[Image:Draft_OrthoArray.svg|32px]] [[Draft_OrthoArray|Array]]: creates an orthogonal array from a selected object. It can optionally create a [[App_Link|Link]] array.

<!--T:145-->
:* [[File:Draft_PolarArray.svg|32px]] [[Draft_PolarArray|Polar array]]: creates an array from a selected object by placing copies along a circumference. It can optionally create a [[App_Link|Link]] array.

<!--T:146-->
:* [[File:Draft_CircularArray.svg|32px]] [[Draft_CircularArray|Circular array]]: creates an array from a selected object by placing copies along concentric circumferences. It can optionally create a [[App_Link|Link]] array.

<!--T:147-->
:* [[Image:Draft_PathArray.svg|32px]] [[Draft_PathArray|Path array]]: creates an array from a selected object by placing copies along a path.

<!--T:148-->
:* [[Image:Draft_PathLinkArray.svg|32px]] [[Draft_PathLinkArray|Path link array]]: idem, but create a [[App_Link|Link]] array instead of a regular array.

<!--T:149-->
:* [[Image:Draft_PointArray.svg|32px]] [[Draft_PointArray|Point array]]: creates an array from a selected object by placing copies at the points from a point compound.

<!--T:150-->
:* [[File:Draft_PointLinkArray.svg|32px]] [[Draft_PointLinkArray|Point link array]]: idem, but create a [[App_Link|Link]] array instead of a regular array.

<!--T:151-->
* [[Image:Draft_Edit.svg|32px]] [[Draft_Edit|Edit]]: puts selected objects in Draft Edit mode. In this mode the properties of objects can be edited graphically.

<!--T:152-->
* [[Image:Draft_SubelementHighlight.svg|32px]] [[Draft_SubelementHighlight|Subelement highlight]]: temporarily highlights selected objects, or the base objects of selected objects.

<!--T:153-->
* [[Image:Draft_Join.svg|32px]] [[Draft_Join|Join]]: joins [[Draft_Line|Draft Lines]] and [[Draft_Wire|Draft Wires]] into a single wire.

<!--T:154-->
* [[Image:Draft_Split.svg|32px]] [[Draft_Split|Split]]: splits a [[Draft_Line|Draft Line]] or [[Draft_Wire|Draft Wire]] at a specified point or edge.

<!--T:155-->
* [[Image:Draft_Upgrade.svg|32px]] [[Draft_Upgrade|Upgrade]]: upgrades selected objects.

<!--T:156-->
* [[Image:Draft_Downgrade.svg|32px]] [[Draft_Downgrade|Downgrade]]: downgrades selected objects.

<!--T:157-->
* [[Image:Draft_WireToBSpline.svg|32px]] [[Draft_WireToBSpline|Wire to B-spline]]: converts [[Draft_Wire|Draft Wires]] to [[Draft_BSpline|Draft BSplines]] and vice versa.

<!--T:158-->
* [[Image:Draft_Draft2Sketch.svg|32px]] [[Draft_Draft2Sketch|Draft to sketch]]: converts Draft objects to [[Sketcher_NewSketch|Sketcher Sketches]] and vice versa.

<!--T:159-->
* [[Image:Draft_Slope.svg|32px]] [[Draft Slope|Set slope]]: slopes selected [[Draft_Line|Draft Lines]] or [[Draft_Wire|Draft Wires]] by increasing, or decreasing, the Z coordinate of all points after the first one.

<!--T:160-->
* [[Image:Draft_FlipDimension.svg|32px]] [[Draft_FlipDimension|Flip dimension]]: rotates the dimension text of selected [[Draft_Dimension|Draft Dimensions]] 180° around the dimension line.

<!--T:161-->
* [[Image:Draft_Shape2DView.svg|32px]] [[Draft_Shape2DView|Shape 2D view]]: creates 2D projections from selected objects.

== Draft Tray == <!--T:57-->

<!--T:58-->
The [[Draft_Tray|Draft Tray]] allows selecting the working plane, defining style settings, toggling construction mode, and specifying the active layer or group.

</translate>
[[Image:Draft_tray_default.png]]
<translate>

<!--T:59-->
* [[Image:Draft_tray_button_plane.png]] [[Draft_SelectPlane|Select plane]]: defines the current Draft working plane. Also available in the menu: {{MenuCommand|Draft → Utilities → [[Image:Draft_SelectPlane.svg|16px]] Select Plane}}.

<!--T:76-->
* [[Image:Draft_tray_button_style.png]] [[Draft_SetStyle|Set style]]: sets the default style for new objects. Also available in the menu: {{MenuCommand|Draft → Utilities → [[Image:Draft_SetStyle.svg|16px]] Set style}}.

<!--T:77-->
* [[Image:Draft_tray_button_construction.png]] [[Draft_ToggleConstructionMode|Toggle construction mode]]: switches Draft construction mode on or off. Also available in the menu: {{MenuCommand|Draft → Utilities → [[Image:Draft_ToggleConstructionMode.svg|16px]] Toggle construction mode}}.

<!--T:78-->
* [[Image:Draft_tray_button_layer.png]] [[Draft_AutoGroup|AutoGroup]]: changes the active [[Draft_Layer|Draft Layer]] or, optionally, the active [[Std_Group|Std Group]] or group-like [[Arch_Workbench|Arch]] object.

== Draft annotation scale widget == <!--T:69-->

<!--T:70-->
With the [[Draft_annotation_scale_widget|Draft annotation scale widget]] the Draft annotation scale can be specified.

</translate>
[[Image:Draft_annotation_scale_widget_button.png]]
<translate>

== Draft snap widget == <!--T:72-->

<!--T:73-->
The [[Draft_snap_widget|Draft snap widget]] can be used as an alternative for the [[#Draft_snap_toolbar|Draft snap toolbar]].

</translate>
[[Image:Draft_snap_widget_button.png]]
<translate>

== Draft snap toolbar == <!--T:60-->

<!--T:61-->
The Draft snap toolbar allows selecting the active snap options. The buttons belonging to active options stay depressed. For general information about snapping see: [[Draft_Snap|Draft Snap]].

<!--T:162-->
* [[Image:Draft_Snap_Lock.svg|32px]] [[Draft_Snap_Lock|Snap lock]]: enables or disables snapping globally.

<!--T:163-->
* [[Image:Draft_Snap_Endpoint.svg|32px]] [[Draft_Snap_Endpoint|Snap endpoint]]: snaps to the endpoints of edges.

<!--T:164-->
* [[Image:Draft_Snap_Midpoint.svg|32px]] [[Draft_Snap_Midpoint|Snap midpoint]]: snaps to the midpoint of edges.

<!--T:165-->
* [[Image:Draft_Snap_Center.svg|32px]] [[Draft_Snap_Center|Snap center]]: snaps to the center point of faces and circular edges, and to the {{PropertyData|Placement}} point of [[Draft_WorkingPlaneProxy|Draft WorkingPlaneProxies]] and [[Arch_BuildingPart|Arch BuildingParts]].

<!--T:166-->
* [[Image:Draft_Snap_Angle.svg|32px]] [[Draft_Snap_Angle|Snap angle]]: snaps to the special cardinal points on circular edges, at multiples of 30° and 45°.

<!--T:167-->
* [[Image:Draft_Snap_Intersection.svg|32px]] [[Draft_Snap_Intersection|Snap intersection]]: snaps to the intersection of two edges.

<!--T:168-->
* [[Image:Draft_Snap_Perpendicular.svg|32px]] [[Draft_Snap_Perpendicular|Snap perpendicular]]: snaps to the perpendicular points on faces ({{Version|0.21}}) and edges.

<!--T:169-->
* [[Image:Draft_Snap_Extension.svg|32px]] [[Draft_Snap_Extension|Snap extension]]: snaps to an imaginary line that extends beyond the endpoints of straight edges.

<!--T:170-->
* [[Image:Draft_Snap_Parallel.svg|32px]] [[Draft_Snap_Parallel|Snap parallel]]: snaps to an imaginary line parallel to straight edges.

<!--T:171-->
* [[Image:Draft_Snap_Special.svg|32px]] [[Draft_Snap_Special|Snap special]]: snaps to special points defined by the object.

<!--T:172-->
* [[Image:Draft_Snap_Near.svg|32px]] [[Draft_Snap_Near|Snap near]]: snaps to the nearest point on faces and edges.

<!--T:173-->
* [[Image:Draft_Snap_Ortho.svg|32px]] [[Draft_Snap_Ortho|Snap ortho]]: snaps to imaginary lines that cross the previous point at multiples of 45°.

<!--T:174-->
* [[Image:Draft_Snap_Grid.svg|32px]] [[Draft_Snap_Grid|Snap grid]]: snaps to the intersections of grid lines.

<!--T:175-->
* [[Image:Draft_Snap_WorkingPlane.svg|32px]] [[Draft_Snap_WorkingPlane|Snap working plane]]: projects snap points onto the current [[Draft_SelectPlane|working plane]].

<!--T:176-->
* [[Image:Draft_Snap_Dimensions.svg|32px]] [[Draft_Snap_Dimensions|Snap dimensions]]: shows temporary X and Y dimensions.

<!--T:177-->
* [[Image:Draft_ToggleGrid.svg|32px]] [[Draft_ToggleGrid|Toggle grid]]: changes the visibility of the grid.

== Draft utility tools toolbar == <!--T:22-->

<!--T:201-->
* [[Image:Draft_LayerManager.svg|32px]] [[Draft_LayerManager|Manage layers...]]: allows to manage the layers in a document. {{Version|0.21}}

<!--T:191-->
* [[Image:Draft_AddNamedGroup.svg|32px]] [[Draft_AddNamedGroup|Add a new named group]]: creates a named [[Std_Group|Std Group]] and moves selected objects to that group. {{Version|0.20}}

<!--T:181-->
* [[Image:Draft_AddToGroup.svg|32px]] [[Draft_AddToGroup|Move to group...]]: moves objects to a [[Std_Group|Std Group]]. It can also ungroup objects.

<!--T:182-->
* [[Image:Draft_SelectGroup.svg|32px]] [[Draft_SelectGroup|Select group]]: selects the contents of [[Std_Group|Std Groups]] or group-like [[Arch_Workbench|Arch]] objects.

<!--T:183-->
* [[Image:Draft_AddConstruction.svg|32px]] [[Draft_AddConstruction|Add to construction group]]: moves objects to the [[Draft_ToggleConstructionMode|Draft construction group]].

<!--T:180-->
* [[Image:Draft_ToggleDisplayMode.svg|32px]] [[Draft_ToggleDisplayMode|Toggle normal/wireframe display]]: switches the {{PropertyView|Display Mode}} property of selected objects between {{Value|Flat Lines}} and {{Value|Wireframe}}.

<!--T:179-->
* [[Image:Draft_WorkingPlaneProxy.svg|32px]] [[Draft_WorkingPlaneProxy|Create working plane proxy]]: creates a working plane proxy to save the current [[Draft_SelectPlane|Draft working plane]].

== Additional tools == <!--T:64-->

<!--T:23-->
The {{MenuCommand|Draft → Utilities}} menu contains several tools. Most of them can also be accessed from toolbars or the [[Draft_Tray|Draft Tray]] and have already been mentioned above. For the following tools this is not the case:

<!--T:186-->
* [[Image:Draft_ApplyStyle.svg|32px]] [[Draft_ApplyStyle|Apply current style]]: applies the current style settings to selected objects.

<!--T:178-->
* [[Image:Draft_Layer.svg|32px]] [[Draft_Layer|Layer]]: creates a [[Draft_Layer|Draft Layer]]. Available in the [[Draft_Workbench#Draft_utility_tools_toolbar|Draft utility tools toolbar]] in {{VersionMinus|0.20}}.

<!--T:184-->
* [[Image:Draft_Heal.svg|32px]] [[Draft_Heal|Heal]]: heals problematic Draft objects found in very old files.

<!--T:187-->
* [[Image:Draft_ShowSnapBar.svg|32px]] [[Draft_ShowSnapBar|Show snap toolbar]]: shows the [[#Draft_snap_toolbar|Draft snap toolbar]].

== Additional features == <!--T:6-->

<!--T:7-->
* [[Draft_SelectPlane|Working plane]]: the plane in the [[3D_view|3D view]] where new Draft objects are created.
* [[Draft_Snap|Snapping]]: select exact geometric points on, or defined by, existing objects or the grid.
* [[Draft_Constrain|Constraining]]: for each subsequent point you can constrain the movement of the cursor to the X, Y, or Z direction.
* [[Draft_ToggleConstructionMode|Construction mode]]: places new Draft objects in a dedicated group making it easier to hide or delete them.
* [[Draft_Pattern|Pattern]]: Draft objects with a {{PropertyData|Make Face}} property can display an SVG pattern instead of a solid face color.

== Tree view context menu == <!--T:79-->

<!--T:80-->
The following additional options are available in the [[Tree_view|Tree view]] context menu:

=== Default options === <!--T:192-->

<!--T:197-->
For most Draft objects the following option is available:

<!--T:198-->
* Edit: edits the object. Depending on the object type either [[Draft_Edit|Draft Edit]] or a dedicated edit solution is used. {{Version|0.21}}

<!--T:199-->
If there is an active document the context menu contains an additional sub-menu:

<!--T:82-->
* Utilities: a subset of the tools available in the main Draft Utilities menu.

=== Layer container options === <!--T:86-->

<!--T:87-->
For a [[Draft_Layer|Draft LayerContainer]] these additional options are available:

<!--T:88-->
* [[Image:Draft_Layer.svg|32px]] [[Draft_Layer#Layer_container_options|Merge layer duplicates]]: merges all layers with the same base label.

<!--T:89-->
* [[Image:Draft_NewLayer.svg|32px]] [[Draft_Layer#Layer_container_options|Add new layer]]: adds a new layer to the current document.

=== Layer options === <!--T:90-->

<!--T:91-->
For a [[Draft_Layer|Draft Layer]] these additional options are available:

<!--T:92-->
* [[Image:button_right.svg|32px]] [[Draft_AutoGroup|Activate this layer]]: activates the selected layer.

<!--T:93-->
* [[Image:Draft_SelectGroup.svg|32px]] [[Draft_SelectGroup|Select layer contents]]: selects the objects inside the selected layer.

=== Text options === <!--T:202-->

<!--T:203-->
For a [[Draft_Text|Draft Text]] and a [[Draft_Label|Draft Label]] that contains one or more hyperlinks, to a local or remote file or an URL, this additional option is available:

<!--T:204-->
* Open hyperlinks: the hyperlinks are opened in the appropriate application (as defined by the OS). There is a warning in the case of multiple hyperlinks. {{Version|0.22}}

=== Wire options === <!--T:83-->

<!--T:84-->
For a [[Draft_Line|Draft Line]] and a [[Draft_Wire|Draft Wire]] this additional option is available:

<!--T:85-->
* [[Image:Draft_Edit.svg|32px]] Flatten: flattens the wire on the current [[Draft_SelectPlane|Draft working plane]]. This option does not work properly in {{VersionMinus|0.19}}.

=== Working plane proxy options === <!--T:94-->

<!--T:95-->
For a [[Draft_WorkingPlaneProxy|Draft WorkingPlaneProxy]] these additional options are available:

<!--T:96-->
* [[Image:Draft_SelectPlane.svg|32px]] [[Draft_WorkingPlaneProxy#Context_menu|Write camera position]]: updates the {{PropertyView|View Data}} property of the working plane proxy with the current [[3D_view|3D view]] camera settings.

<!--T:97-->
* [[Image:Draft_SelectPlane.svg|32px]] [[Draft_WorkingPlaneProxy#Context_menu|Write objects state]]: updates the {{PropertyView|Visibility Map}} property of the working plane proxy with the current visibility state of objects in the document.

== 3D view context menu == <!--T:98-->

<!--T:99-->
The following additional options are available in the [[3D_view|3D view]] context menu:

=== Default options === <!--T:193-->

<!--T:200-->
If there is an active document the context menu contains one additional sub-menu:

<!--T:101-->
* Utilities: a subset of the tools available in the main Draft Utilities menu.

=== Text options === <!--T:205-->

<!--T:206-->
See [[#Text_options|above]].

== Obsolete tools == <!--T:65-->

<!--T:67-->
* [[Image:Draft_Array.svg|32px]] [[Draft_Array|Array]]: creates an orthogonal array from a selected object. The created array can be turned into a [[Draft_PolarArray|polar array]] or a [[Draft_CircularArray|circular array]] by changing its {{PropertyData|Array Type}} property. Not available in {{VersionPlus|0.21}}.

<!--T:104-->
* [[Image:Draft_Drawing.svg|32px]] [[Draft_Drawing|Drawing]]: inserts views of selected objects into a [[Drawing_Workbench|drawing]] page. Not available in {{VersionPlus|0.21}}.

<!--T:185-->
* [[Image:Draft_ToggleContinueMode.svg|32px]] [[Draft_ToggleContinueMode|Toggle continue mode]]: switches continue mode on or off. Not available in {{VersionPlus|0.22}}.

== Preferences == <!--T:25-->

<!--T:28-->
* [[Image:Preferences-draft.svg|32px]] [[Draft_Preferences|Preferences]]: general preferences for the Draft Workbench.

<!--T:188-->
* [[Image:Preferences-import-export.svg|32px]] [[Import_Export_Preferences|Import Export Preferences]]: preferences available for importing from and exporting to different file formats.

== File formats == <!--T:3-->

<!--T:4-->
The Draft Workbench provides FreeCAD with importers and exporters for several file formats. These are used by the [[Std_Import|Std Import]] and [[Std_Export|Std Export]] commands.

<!--T:5-->
* [[Draft_DXF|Autodesk .DXF]]: imports and exports [http://en.wikipedia.org/wiki/AutoCAD_DXF Drawing Exchange Format] files. See also [[FreeCAD_and_DXF_Import|FreeCAD and DXF Import]].
* [[Draft_DXF|Autodesk .DWG]]: imports and exports DWG files via an external DWG converter. See also [[FreeCAD_and_DWG_Import|FreeCAD and DWG Import]].
* [[Draft_SVG|Scalable Vector Graphics .SVG]]: imports and exports [http://en.wikipedia.org/wiki/Scalable_Vector_Graphics Scalable Vector Graphics] files.
* [[Draft_OCA|Open Cad format .OCA]]: imports and exports [http://groups.google.com/group/open_cad_format OCA/GCAD] files.
* [[Draft_DAT|Airfoil Data Format .DAT]]: imports DAT files describing Airfoil profiles.

== Unit tests == <!--T:39-->

<!--T:40-->
See also: [[Testing|Test Workbench]].

<!--T:41-->
To run the unit tests of the workbench execute the following from the operating system terminal:

</translate>
{{Code|code=
freecad -t TestDraft
}}
<translate>

== Scripting == <!--T:10-->

<!--T:11-->
See also: [https://freecad.github.io/SourceDoc/ Autogenerated API documentation] and [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]].

<!--T:42-->
The workbench includes a module to create samples of all objects in a new document.

<!--T:43-->
Use this to test that all objects are produced correctly:

</translate>
{{Code|code=
import drafttests.draft_test_objects as dto
doc = dto.create_test_file()
}}
<translate>

<!--T:44-->
Inspecting the code of this module can help to understand the programming interface.

== Tutorials == <!--T:189-->

<!--T:14-->
* [[Draft_tutorial|Draft tutorial]]
* [[Draft_ShapeString_tutorial|Draft ShapeString tutorial]]


<!--T:12-->
{{Docnav
|[[CAM_Workbench|CAM Workbench]]
|[[FEM_Workbench|FEM Workbench]]
|IconL=Workbench_CAM.svg
|IconR=Workbench_FEM.svg
}}

</translate>
{{Draft Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
[[Category:Workbenches{{#translation:}}]]

Revision as of 13:24, 17 March 2024

Draft workbench icon

Introduction

The Draft Workbench is primarily focused on the creation and modification of 2D objects in FreeCAD. But it is not restricted to the XY plane of the global coordinate system. Its objects can have any orientation and position in 3D space, and some Draft objects can either be planar or non-planar.

Draft objects can be used for general drafting, similar to what can be done with Inkscape or AutoCAD. But they can also form the base for the creation of 3D objects in other workbenches. A Draft Wire may define the path of an Arch Wall, a Draft Polygon can be extruded with Part Extrude, etc. Many of the Draft modifier tools can be applied to 2D and 3D objects created with other workbenches as well. You can, for example, move a Sketch or create a Draft OrthoArray from a Part object.

The Draft Workbench also provides tools to define a working plane, a grid, and a snapping system to precisely control the position of geometry.

If your primary goal is the production of complex 2D drawings and DXF files, and you don't need 3D modelling, FreeCAD may not be the right choice for you. You may wish to consider a dedicated software program for technical drafting instead, such as LibreCAD or QCad.

The image shows the grid aligned with the XY plane.
On the left, in white, several planar objects.
On the right a non-planar Draft Wire used as the Path Object of a Draft PathArray.

Drafting

  • Line: creates a straight line.
  • Polyline: creates a polyline (also called wire), a sequence of several connected line segments.
  • Fillet: creates a fillet, a rounded corner, or a chamfer, a straight edge, between two Draft Lines.
  • Arc tools:
  • Arc: creates a circular arc from a center, a radius, a start angle and an aperture angle.
  • Arc by 3 points: creates a circular arc from three points that define its circumference.
  • Circle: creates a circle from a center and a radius.
  • Ellipse: creates an ellipse from two points defining a rectangle in which the ellipse will fit.
  • Rectangle: creates a rectangle from two points.
  • Polygon: creates a regular polygon from a center and a radius.
  • B-spline: creates a B-spline curve from several points.
  • Bézier tools:
  • Point: creates a simple point.
  • Facebinder: creates a surface object from selected faces.
  • ShapeString: creates a compound shape that represents a text string.

Annotation

  • Text: creates a multi-line text at a given point.
  • Dimension: creates a linear dimension, a radial dimension or an angular dimension.
  • Label: creates a multi-line text with a 2-segment leader line and an arrow.
  • Annotation styles...: allows you to define styles that affect the visual properties of annotation-like objects.

Modification

  • Move: moves or copies selected objects from one point to another.
  • Rotate: rotates or copies selected objects around a center point by a given angle.
  • Scale: scales or copies selected objects around a base point.
  • Mirror: creates mirrored copies from selected objects.
  • Offset: offsets each segment of a selected object over a given distance, or creates an offset copy of the selected object.
  • Trimex: trims or extends a selected object.
  • Stretch: stretches objects by moving selected points.
  • Clone: creates linked copies, clones, of selected objects.
  • Array tools:
  • Array: creates an orthogonal array from a selected object. It can optionally create a Link array.
  • Polar array: creates an array from a selected object by placing copies along a circumference. It can optionally create a Link array.
  • Circular array: creates an array from a selected object by placing copies along concentric circumferences. It can optionally create a Link array.
  • Path array: creates an array from a selected object by placing copies along a path.
  • Point array: creates an array from a selected object by placing copies at the points from a point compound.
  • Edit: puts selected objects in Draft Edit mode. In this mode the properties of objects can be edited graphically.
  • Subelement highlight: temporarily highlights selected objects, or the base objects of selected objects.
  • Upgrade: upgrades selected objects.

Draft Tray

The Draft Tray allows selecting the working plane, defining style settings, toggling construction mode, and specifying the active layer or group.

  • Select plane: defines the current Draft working plane. Also available in the menu: Draft → Utilities → Select Plane.
  • Set style: sets the default style for new objects. Also available in the menu: Draft → Utilities → Set style.
  • Toggle construction mode: switches Draft construction mode on or off. Also available in the menu: Draft → Utilities → Toggle construction mode.

Draft annotation scale widget

With the Draft annotation scale widget the Draft annotation scale can be specified.

Draft snap widget

The Draft snap widget can be used as an alternative for the Draft snap toolbar.

Draft snap toolbar

The Draft snap toolbar allows selecting the active snap options. The buttons belonging to active options stay depressed. For general information about snapping see: Draft Snap.

  • Snap lock: enables or disables snapping globally.
  • Snap angle: snaps to the special cardinal points on circular edges, at multiples of 30° and 45°.
  • Snap extension: snaps to an imaginary line that extends beyond the endpoints of straight edges.
  • Snap parallel: snaps to an imaginary line parallel to straight edges.
  • Snap special: snaps to special points defined by the object.
  • Snap near: snaps to the nearest point on faces and edges.
  • Snap ortho: snaps to imaginary lines that cross the previous point at multiples of 45°.
  • Snap grid: snaps to the intersections of grid lines.

Draft utility tools toolbar

Additional tools

The Draft → Utilities menu contains several tools. Most of them can also be accessed from toolbars or the Draft Tray and have already been mentioned above. For the following tools this is not the case:

  • Heal: heals problematic Draft objects found in very old files.

Additional features

  • Working plane: the plane in the 3D view where new Draft objects are created.
  • Snapping: select exact geometric points on, or defined by, existing objects or the grid.
  • Constraining: for each subsequent point you can constrain the movement of the cursor to the X, Y, or Z direction.
  • Construction mode: places new Draft objects in a dedicated group making it easier to hide or delete them.
  • Pattern: Draft objects with a DataMake Face property can display an SVG pattern instead of a solid face color.

Tree view context menu

The following additional options are available in the Tree view context menu:

Default options

For most Draft objects the following option is available:

If there is an active document the context menu contains an additional sub-menu:

  • Utilities: a subset of the tools available in the main Draft Utilities menu.

Layer container options

For a Draft LayerContainer these additional options are available:

Layer options

For a Draft Layer these additional options are available:

Text options

For a Draft Text and a Draft Label that contains one or more hyperlinks, to a local or remote file or an URL, this additional option is available:

  • Open hyperlinks: the hyperlinks are opened in the appropriate application (as defined by the OS). There is a warning in the case of multiple hyperlinks. introduced in version 0.22

Wire options

For a Draft Line and a Draft Wire this additional option is available:

  • Flatten: flattens the wire on the current Draft working plane. This option does not work properly in version 0.19 and below.

Working plane proxy options

For a Draft WorkingPlaneProxy these additional options are available:

  • Write objects state: updates the ViewVisibility Map property of the working plane proxy with the current visibility state of objects in the document.

3D view context menu

The following additional options are available in the 3D view context menu:

Default options

If there is an active document the context menu contains one additional sub-menu:

  • Utilities: a subset of the tools available in the main Draft Utilities menu.

Text options

See above.

Obsolete tools

  • Array: creates an orthogonal array from a selected object. The created array can be turned into a polar array or a circular array by changing its DataArray Type property. Not available in version 0.21 and above.
  • Drawing: inserts views of selected objects into a drawing page. Not available in version 0.21 and above.

Preferences

  • Preferences: general preferences for the Draft Workbench.

File formats

The Draft Workbench provides FreeCAD with importers and exporters for several file formats. These are used by the Std Import and Std Export commands.

Unit tests

See also: Test Workbench.

To run the unit tests of the workbench execute the following from the operating system terminal:

freecad -t TestDraft

Scripting

See also: Autogenerated API documentation and FreeCAD Scripting Basics.

The workbench includes a module to create samples of all objects in a new document.

Use this to test that all objects are produced correctly:

import drafttests.draft_test_objects as dto
doc = dto.create_test_file()

Inspecting the code of this module can help to understand the programming interface.

Tutorials