Draft Upgrade

Description
The Upgrade tool upgrades the selected objects in different ways. If no object is selected, you will be invited to select one.

The Upgrade tool performs things such as creating faces and fusing different elements. This tool works with 2D Draft elements. To fuse 3D solids use Part Union and related Boolean operations of the Part Workbench, and PartDesign Boolean of the PartDesign Workbench.

The counterpart to this tool is the Draft Downgrade operation.



How to use

 * 1) Select one or more objects you wish to upgrade.
 * 2) Press the  button or press  then  keys.

The selected objects are modified or upgraded according to the following conditions, in order:
 * 1) If there are more than one face in the selection, the faces are merged (union).
 * 2) If there is only one face in the selection, nothing is done.
 * 3) If there is only one open wire in the selection, it gets closed, making a face.
 * 4) If there are only edges in the selection, all edges are joined into a wire, and the wire is closed if possible.
 * 5) If none of the above is possible, a compound object is created.

It is worth trying to upgrade a selection several times to see if a better shape is obtained. For example:
 * 1) Upgrading two Draft Lines connected at one end will result in a non-editable wire.
 * 2) Upgrading this element again will add a third line and close the non-editable wire.
 * 3) Upgrading this element again will add a face to the closed, non-editable wire.
 * 4) Upgrading this element again will turn it into a normal Draft Wire, which can be edited.

The resulting wire can be better manipulated than the original lines. The fusion of single lines can also be done directly with the Draft Wire tool.

Options
There are no options for this tool. Either it works with the selected objects or not.

Scripting
Draft API and FreeCAD Scripting Basics.

The Upgrade tool can be used in macros and from the Python console by using the following function:


 * Upgrades the given, which can be a single object or a list of objects.
 * If is, old objects are deleted.
 * If is given, it is the internal function to call to force a certain way of upgrading. It can be: "makeCompound", "closeGroupWires", "makeSolid", "closeWire", "turnToParts", "makeFusion", "makeShell", "makeFaces", "draftify", "joinFaces", "makeSketchFace", "makeWires", and "turnToLine".
 * is returned; it is a dictionary containing two lists, a list of new objects and a list of objects to be deleted by the operation.

Example: