Draft Module

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. This module is currently developed outside of the main FreeCAD development structure.

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 discussion page.

I also maintain a workplan of the whole thing here.

Installation
The draft Module is currently not part of the FreeCAD package, so you'll need to download it from here: http://yorik.orgfree.com/scripts/Draft.zip The zipfile here above contains just a "draft" directory. To install the module, simply place that draft directory into the "Mod" directory of FreeCAD, as explained in the Installing more workbenches page.

Please note that the draft module requires two specific python modules to be installed and working on your system, PyQt4 and Pyvy. Instructions for installing or compiling these modules can be found on the extra python modules page. But if you are using an official FreeCAD package from the FreeCAD website, those two modules are usually already included in the package and you don't need to worry about it!

General use
Once installed, the draft workbench will be availible 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 toolbar, you can also change general things like current line color and width.

One thing is important to know, the draft workbench doesn't put you automatically in orthographic projection (why would it?). So before drawing, make sure you are in orthographic projection and in the appropriate view, since at the moment not all the commands work in 3D.

Import functions
These are functions for opening/importing 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.

Autodesk DXF
File Menu > Open File Menu > Import

This function opens a DXF file (any version from 12 to 2007) in a new drawing. The color and linetype of objects is currently not used. DXF object types currently read by this script + implementation in FreeCAD:


 * lines: converted to FreeCAD Line
 * polylines and lwpolylines: converted to FreeCAD Wire w/ arcs straigthened
 * circle: converted to FreeCAD Circle
 * arc: converted to FreeCAD Arc
 * layer: layers containing objects are conveted to FreeCAD Group
 * texts and mtexts: converted to FreeCAD Texts (Annotations)

Other DXF entities, like blocks, etc... are currently not imported because there is no corresponding FreeCAD object. As new functionality gets implemented, it will be possibleto import more entity types.

SVG
File Menu > Open File Menu > Import

A function to import SVG files as workable 2D objects, in opposition to the built-in drawing module which imports svg files as sheet drawings. SVG objects that get imported at the moment:


 * PATH objects with M, C, L or A commands: converted to FreeCAD polygon
 * RECT objects: converted to FreeCAD polygon

Drawing functions
These are tools for creating objects

2-point Line

Multiple-point Line (Polyline)

Circle

Arc

Rectangle

Text

Modification functions
These are tools for modifying objects

[[Image:Draft_Move.png]] Move


draft Toolbar > Move Context menu > draft > Move draft Menu > Move FreeCAD command: Draft_Move

This tool moves the selected objects from one point to another.
 * Pressing CTRL will snap you to availible snap locations. A filled symbol appears to notify you.
 * Pressing SHIFT will constrain you vertically or horizontally in relation to the center.
 * Pressing ESCAPE will cancel the move.
 * SPACE will switch you between relative and absolute coordinates.
 * C switches the copy mode on/off. With Copy on, objects will be copied instead of moved.
 * Pressing ALT will make a copy, even if the Copy check button is off.

[[Image:Draft_Rotate.png]] Rotate


draft Toolbar > Rotate Context menu > draft > Rotate draft Menu > Rotate FreeCAD command: Draft_Rotate

This tool rotates the selected objects. The user is asked for the rotation center, the start angle and the rotation angle.
 * Pressing CTRL will snap you to availible snap locations. A filled symbol appears to notify you.
 * Pressing SHIFT will constrain you vertically or horizontally in relation to the center.
 * Pressing ESCAPE will cancel the operation.
 * SPACE will switch you between relative and absolute coordinates.
 * C switches the copy mode on/off. With Copy on, new objects will be created instead of rotating existing objects.
 * Pressing ALT will make a copy, even if the Copy check button is off.

[[Image:Draft_Offset.png]] Offset


draft Toolbar > Offset Context menu > draft > Offset draft Menu > Offset FreeCAD command: Draft_Offset

This tool offsets the selected object. Only works if only one object is selected. You are simply asked for one point, giving the distance to offsrt from the selected object.
 * Pressing CTRL will snap you to availible snap locations. A filled symbol appears to notify you.
 * Pressing SHIFT will constrain you to the current segment, instead of picking the closest one.
 * Pressing ESCAPE will cancel the operation.
 * C switches the copy mode on/off. With Copy on, new objects will be created instead of rotating existing objects.
 * Pressing ALT will make a copy, even if the Copy check button is off.

Note that the offset tool currently doesn't work with wires containing arcs. You must first explode (downgrade) them before offsetting.

[[Image:Draft_Upgrade.png]] Upgrade


draft Toolbar > Upgrade Context menu > draft > Upgrade draft Menu > Upgrade FreeCAD command: Draft_Upgrade

This tool upgrades selected objects in different ways, following this list (in order):
 * if there are more than one faces, the faces are merged (union)
 * if there is only one face, nothing is done
 * if there are closed wires, they are transformed in a face
 * otherwise, if possible, all edges are joind into a wire (closed if applicable)

[[Image:Draft_Downgrade.png]] Downgrade


draft Toolbar > Downgrade Context menu > draft > Downgrade draft Menu > Downgrade FreeCAD command: Draft_Downgrade

This tool downgrades selected objects in different ways, following this list (in order):
 * if there are more than one faces, the subsequent faces are subtracted from the first one
 * if there is only one face, it gets converted into a wire
 * otherwise all wires are exploded into single edges

Other functions
These is a category for tools I don't know where else to put :)

[[Image:Drafticonapply.png]] Apply Style
Context menu > draft > Apply Style

This function applies current line width and color to selected objects. If groups are selected, all objects inside them will take the style too. This function is only availible when something is selected. It is also availible from the tree context menu.

Export functions
These are functions for exporting the current document to other file formats.

Autodesk DXF
File Menu > Export

The exported DXF is compatible with Autocad version 12 and up, so it should open in about any application that supports dxf format. Currently the following FreeCAD features get exported:


 * Lines get converted to dxf lines
 * Polylines get converted to single lines (provisory)
 * Circles get converted to circles
 * Arcs (open circles) get converted to arcs
 * colors are mapped from objects RGB colors to autocad color index (ACI). Black will always be "by layer"
 * layers are mapped from group names When groups are nested, the deepest group gives the layer name.

Snapping
CTRL while drawing

In all tools that support snapping, following snap locations are currently availible:
 * Endpoint of lines/polylines
 * Midpoint of lines/polylines
 * Center of circles and arcs
 * Quadrant points of circles and arcs
 * Endpoints of arcs
 * Vertically or horizontally aligned points on lines/polylines, if constraining (SHIFT)
 * Intersection between straight segments

In tools that support both snapping and constraining, the combination of both behaviours (SHIFT+CTRL) can extend much the snapping possibilities.

Constraining
SHIFT while drawing

In all tools that support constraining, you can force the next point to be constrained horizontally or vertically in relation to the last point entered. The vertical or horizontal constraining depends on where your mouse lies when you press SHIFT. If you are more north or south from the last point, it will be vertical. If you are more east or west, it will be horizontal. To change, just release SHIFT and press again at another location.

Copying
ALT while drawing

All modification tools can either modify the selected objects or create a modified copy of them. Pressing ALT while using the tool will make a copy.