|
Menu location |
---|
Modification → Downgrade Modify → Downgrade |
Workbenches |
Draft, BIM |
Default shortcut |
D N |
Introduced in version |
- |
See also |
Draft Upgrade, Part Cut |
The Draft Downgrade command downgrades selected objects. The result depends on the number of selected objects and their type. The command can for example deconstruct a 3D solid into separate faces and a wire into separate edges. If two face are selected a Part Cut object is created from them. Note that not all objects can be downgraded. This command is the counterpart of the Draft Upgrade command.
Two overlapping faces are downgraded to a Part Cut object, which is downgraded to a face. That face is then downgraded to a closed wire, which is finally downgraded to separate edges.
See also: Autogenerated API documentation and FreeCAD Scripting Basics.
To downgrade objects use the downgrade
method of the Draft module.
downgrade_list = downgrade(objects, delete=False, force=None)
objects
contains the objects to be downgraded. It is either a single object or a list of objects.delete
is True
the source objects are deleted.force
forces a certain way of downgrading by calling a specific internal function. It can be: "explode"
, "shapify"
, "subtr"
, "splitFaces"
, "cut2"
, "getWire"
, "splitWires"
or "splitCompounds"
.downgrade_list
is returned. It is a list containing two lists: a list of new objects and a list of objects to be deleted. If delete
is True
the 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=True)
compound = add_list1[0]
add_list2, delete_list2 = Draft.downgrade(compound, delete=False)
face = add_list2[0]
add_list3, delete_list3 = Draft.downgrade(face, delete=False)
box = doc.addObject("Part::Box", "Box")
box.Length = 2300
box.Width = 800
box.Height = 1000
add_list4, delete_list4 = Draft.downgrade(box, delete=True)
doc.recompute()