- GuiCommand: Name:Draft Upgrade MenuLocation:Modification → Upgrade Workbenches:Draft, Arch Shortcut:U P SeeAlso:Draft Downgrade
The Draft Upgrade command upgrades selected objects. The result depends on the number of selected objects and their type. The command can for example fuse elements and create faces. It is worth trying to upgrade a selection several times to see if a better result can be obtained. See the example in the image. Note that not all objects can be upgraded. This command is the counterpart of the Draft Downgrade command.
- Optionally select one or more objects.
- There are several ways to invoke the command:
- Press the
Draft Upgrade button.
- Select the Modification →
Upgrade option from the menu.
- Use the keyboard shortcut: U then P.
- Press the
- If you have not yet selected an object: select an object in the 3D view.
- Draft Lines and Draft Wires can be joined with this command, but also with the Draft Join command or the Draft Wire command.
See also: Autogenerated API documentation and FreeCAD Scripting Basics.
To upgrade objects use the upgrade method of the Draft module.
upgrade_list = upgrade(objects, delete=False, force=None)-
objectscontains the objects to be upgraded. It is either a single object or a list of objects. -
If
deleteisTruethe source objects are deleted. -
forceforces a certain way of upgrading by calling a specific internal function. It can be:"makeCompound","closeGroupWires","makeSolid","closeWire","turnToParts","makeFusion","makeShell","makeFaces","draftify","joinFaces","makeSketchFace","makeWires"or"turnToLine". -
upgrade_listis returned. It is a list containing two lists: a list of new objects and a list of objects to be deleted. IfdeleteisTruethe second list is empty.
Example:
import FreeCAD as App
import Draft
doc = App.newDocument()
circle = Draft.make_circle(1000)
rectangle = Draft.make_rectangle(2000, 800)
doc.recompute()
add_list1, delete_list1 = Draft.upgrade([circle, rectangle], delete=False)
line1 = Draft.make_line(App.Vector(2000, 0, 0), App.Vector(2500, 1500, 0))
line2 = Draft.make_line(App.Vector(2500, 1500, 0), App.Vector(3000, -1000, 0))
doc.recompute()
add_list2, delete_list2 = Draft.upgrade([line1, line2], delete=False)
simple_wire = add_list2[0]
add_list3, delete_list3 = Draft.upgrade(simple_wire, delete=False)
closed_wire = add_list3[0]
add_list4, delete_list4 = Draft.upgrade(closed_wire, delete=False)
face = add_list4[0]
add_list5, delete_list5 = Draft.upgrade(face, delete=False)
doc.recompute()
documentation index > Draft > Draft Upgrade
