Draft Downgrade: Difference between revisions

From FreeCAD Documentation
(Spelling corrections)
(Add reference to Part Cut)
(36 intermediate revisions by 7 users not shown)
Line 1: Line 1:
<languages/>
<translate>
<translate>
<!--T:19-->
{{Docnav
|[[Draft_Upgrade|Upgrade]]
|[[Draft_Scale|Scale]]
|[[Draft_Module|Draft]]
|IconL=Draft_Upgrade.svg
|IconR=Draft_Scale.svg
|IconC=Workbench_Draft.svg
}}

<!--T:1-->
<!--T:1-->
{{GuiCommand
{{GuiCommand|Name=Draft Downgrade|Workbenches=[[Draft Module|Draft]], [[Arch Module|Arch]]|MenuLocation=Draft -> Downgrade|Shortcut=D N|SeeAlso=[[Draft Upgrade|Draft Upgrade]]}}
|Name=Draft Downgrade
|MenuLocation=Draft → Downgrade
|Workbenches=[[Draft_Module|Draft]], [[Arch_Module|Arch]]
|Shortcut={{KEY|D}} {{KEY|N}}
|SeeAlso=[[Draft_Upgrade|Draft Upgrade]], [[Part_Cut|Part Cut]]
}}


==Description== <!--T:2-->
==Description== <!--T:2-->


<!--T:3-->
<!--T:3-->
This tool downgrades selected objects in different ways. If no object is selected, you will be invited to select one.
The {{Button|[[Image:Draft Downgrade.svg|16px]] [[Draft_Downgrade|Draft Downgrade]]}} tool downgrades the selected objects in different ways.

<!--T:14-->
The Downgrade tool performs things such as breaking faces, and deconstructing wires into their individual edges. It can cut a shape with another shape in similar way to {{Button|[[Image:Part_Cut.svg|16px]] [[Part_Cut|Part Cut]]}}.

<!--T:15-->
The counterpart to this tool is the {{Button|[[Image:Draft Upgrade.svg|16px]] [[Draft Upgrade|Draft Upgrade]]}} operation.


</translate>
</translate>
[[Image:Draft_Downgrade_example.jpg|400px]]
[[Image:Draft_Downgrade_example.jpg|400px]]
<translate>
<translate>
<!--T:16-->
{{Caption|Face cut from another face; then face downgraded into a closed wire; then downgraded into individual lines}}


==How to use== <!--T:4-->
==Usage== <!--T:4-->


<!--T:5-->
<!--T:5-->
# Select one or more objects you widh to downgrade
# Select one or more objects that you want to downgrade.
# Press the {{KEY|[[Image:Draft Downgrade.png|16px]] [[Draft Downgrade]]}} button or press {{KEY|D}} then {{KEY|N}} keys
# Invoke the Draft Downgrade tool several ways:
#* Press the {{Button|[[Image:Draft_Downgrade.svg|16px]] [[Draft_Downgrade|Draft Downgrade]]}} button in the Draft toolbar
#* Press the {{KEY|D}} then {{KEY|N}} keyboard shortcut
#* Use the {{MenuCommand|Draft → Downgrade}} entry in the Draft menu
:Note: If no object is selected, you will be invited to select one.

<!--T:17-->
The selected objects are modified or downgraded, according to the following conditions, in order:
# If only one object is selected and it contains more than one face, each face becomes a separate object.
# If there are more than one face in the selection, the subsequent objects are subtracted from the first one. This modification is similar to {{Button|[[Image:Part_Cut.svg|16px]] [[Part_Cut|Part Cut]]}}.
# If there is only one face in the selection, it gets converted into a wire.
# Otherwise all wires found in the selection are exploded into single edges.


==Options== <!--T:6-->
==Options== <!--T:6-->


<!--T:7-->
<!--T:7-->
There are no options for this tool. Either it works with the selected objects or not.
The selected objects are modified/downgraded, according to the following conditions (in order):
* if only one object is selected and it contains more than one face, each face becomes a separate object
* if there are more than one face in the selection, the subsequent objects are subtracted from the first one
* if there is only one face in the selection, it gets converted into a wire
* otherwise all wires found in the selection are exploded into single edges


==Example== <!--T:8-->
==Example== <!--T:8-->
Line 36: Line 68:


==Scripting== <!--T:10-->
==Scripting== <!--T:10-->
{{Emphasis|See also:}} [[Draft API|Draft API]] and [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]].


<!--T:11-->
<!--T:11-->
The Downgrade tool can be used in python scripts and [[macros]] by using the following function:
The Downgrade tool can be used in [[macros|macros]] and from the [[Python|Python]] console by using the following function:


</translate>
</translate>
{{Code|code=
<syntaxhighlight>
downgrade (objects, [delete], [force])
downgrade_list = downgrade(objects, delete=False, force=None)
addList, deleteList = downgrade(objects, delete=False, force=None)
</syntaxhighlight>
}}
<translate>
<translate>


<!--T:12-->
<!--T:12-->
* Downgrades the given object(s) (can be an object or a list of objects).
* Downgrades the given {{incode|objects}}, which can be a single object or a list of objects.
* If delete is True, old objects are deleted.
* If {{incode|delete}} is {{incode|True}}, old objects are deleted.
* The force attribute can be used to force a certain way of downgrading. It can be: explode, shapify, subtr, splitFaces, cut2, getWire, splitWires.
* If {{incode|force}} is given, it is the internal function to call to force a certain way of downgrading. It can be: {{incode|"explode"}}, {{incode|"shapify"}}, {{incode|"subtr"}}, {{incode|"splitFaces"}}, {{incode|"cut2"}}, {{incode|"getWire"}}, or {{incode|"splitWires"}}.
* Returns a dictionary containing two lists, a list of new objects and a list of objects to be deleted
* {{incode|upgrade_list}} is returned, which is a list containing two lists: a list of new objects ({{incode|addList}}) and a list of objects to be deleted ({{incode|deleteList}}).


<!--T:13-->
<!--T:13-->
Line 56: Line 90:


</translate>
</translate>
{{Code|code=
<syntaxhighlight>
import FreeCADGui,Draft
import FreeCAD, Draft
selection = FreeCADGui.Selection.getSelection()
Draft.downgrade(selection)
</syntaxhighlight>


# Create an union
<languages/>
Circle = Draft.makeCircle(1000)
Rectangle = Draft.makeRectangle(2000, 800)

addList1, deleteList1 = Draft.upgrade([Circle, Rectangle], delete=True)
union = addList1[0]

# Downgrade the union twice
addList2, deleteList2 = Draft.downgrade(union, delete=False)
wire = addList2[0]

list_edges, deleteList3 = Draft.downgrade(wire, delete=False)

# Insert a solid box
Box = FreeCAD.ActiveDocument.addObject("Part::Box", "Box")
Box.Length = 2300
Box.Width = 800
Box.Height = 1000

list_faces, deleteList4 = Draft.downgrade(Box, delete=True)
}}
<translate>

<!--T:18-->
{{Docnav
|[[Draft_Upgrade|Upgrade]]
|[[Draft_Scale|Scale]]
|[[Draft_Module|Draft]]
|IconL=Draft_Upgrade.svg
|IconR=Draft_Scale.svg
|IconC=Workbench_Draft.svg
}}

</translate>
{{Draft Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{clear}}

Revision as of 16:53, 24 January 2021

Draft Downgrade

Menu location
Draft → Downgrade
Workbenches
Draft, Arch
Default shortcut
D N
Introduced in version
-
See also
Draft Upgrade, Part Cut

Description

The Draft Downgrade tool downgrades the selected objects in different ways.

The Downgrade tool performs things such as breaking faces, and deconstructing wires into their individual edges. It can cut a shape with another shape in similar way to Part Cut.

The counterpart to this tool is the Draft Upgrade operation.

Face cut from another face; then face downgraded into a closed wire; then downgraded into individual lines

Usage

  1. Select one or more objects that you want to downgrade.
  2. Invoke the Draft Downgrade tool several ways:
    • Press the Draft Downgrade button in the Draft toolbar
    • Press the D then N keyboard shortcut
    • Use the Draft → Downgrade entry in the Draft menu
Note: If no object is selected, you will be invited to select one.

The selected objects are modified or downgraded, according to the following conditions, in order:

  1. If only one object is selected and it contains more than one face, each face becomes a separate object.
  2. If there are more than one face in the selection, the subsequent objects are subtracted from the first one. This modification is similar to Part Cut.
  3. If there is only one face in the selection, it gets converted into a wire.
  4. Otherwise all wires found in the selection are exploded into single edges.

Options

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

Example

Scripting

See also: Draft API and FreeCAD Scripting Basics.

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

downgrade_list = downgrade(objects, delete=False, force=None)
addList, deleteList = downgrade(objects, delete=False, force=None)
  • Downgrades the given objects, which can be a single object or a list of objects.
  • If delete is True, old objects are deleted.
  • If force is given, it is the internal function to call to force a certain way of downgrading. It can be: "explode", "shapify", "subtr", "splitFaces", "cut2", "getWire", or "splitWires".
  • upgrade_list is returned, which is a list containing two lists: a list of new objects (addList) and a list of objects to be deleted (deleteList).

Example:

import FreeCAD, Draft

# Create an union
Circle = Draft.makeCircle(1000)
Rectangle = Draft.makeRectangle(2000, 800)

addList1, deleteList1 = Draft.upgrade([Circle, Rectangle], delete=True)
union = addList1[0]

# Downgrade the union twice
addList2, deleteList2 = Draft.downgrade(union, delete=False)
wire = addList2[0]

list_edges, deleteList3 = Draft.downgrade(wire, delete=False)

# Insert a solid box
Box = FreeCAD.ActiveDocument.addObject("Part::Box", "Box")
Box.Length = 2300
Box.Width = 800
Box.Height = 1000

list_faces, deleteList4 = Draft.downgrade(Box, delete=True)