Draft Downgrade/cs: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
Line 1: Line 1:
{{Page_in_progress}}
<languages/>
<languages/>


Line 20: Line 19:
Tento nástroj degraduje vybrané objekty různými způsoby. Není-li vybrán žádný objekt, budete vyzvání k výběru objektu.
Tento nástroj degraduje vybrané objekty různými způsoby. Není-li vybrán žádný objekt, budete vyzvání k výběru objektu.
</div>
</div>

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]]}}.

The counterpart to this tool is the {{Button|[[Image:Draft Upgrade.svg|16px]] [[Draft Upgrade|Draft Upgrade]]}} operation.


[[Image:Draft_Downgrade_example.jpg|400px]]
[[Image:Draft_Downgrade_example.jpg|400px]]
{{Caption|Face cut from another face; then face downgraded into a closed wire; then downgraded into individual lines}}
{{Caption|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.}}


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
Line 36: Line 31:
# Stiskněte tlačítko {{KEY|[[Image:Draft Downgrade.png|16px]] [[Draft Downgrade/cs|Degradace]]}} nebo klávesy {{KEY|D}} a {{KEY|N}}
# Stiskněte tlačítko {{KEY|[[Image:Draft Downgrade.png|16px]] [[Draft Downgrade/cs|Degradace]]}} nebo klávesy {{KEY|D}} a {{KEY|N}}
</div>
</div>

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.

==Volby==

<div class="mw-translate-fuzzy">
Vybrané objektu jsou upraveny/degradovány podle následujících podmínek (v tomto pořadí)::
* pokud je vybrán pouze jeden objekt a ten obsahuje více než jednu plochu, stane se každá plocha samostatným objektem
* je-li více než jedna plocha ve výběru, následující objekty jsou odebrány z prvního
* je-li ve výběru pouze jedna plocha, je zkonvertována na drát
* jinak jsou všechny dráty nalezené ve výběru rozděleny do samostatných hran
</div>

==Příklad==

<gallery widths="300" heights="200">
File:Draft Downgrade 01.png|Kompletní tvar
File:Draft Downgrade 02.png|Degradovaný tvar s rozpojenými a oddělenými plochami
</gallery>


==Scripting==
==Scripting==
Line 72: Line 44:
{{Code|code=
{{Code|code=
downgrade_list = downgrade(objects, delete=False, force=None)
downgrade_list = downgrade(objects, delete=False, force=None)
addList, deleteList = downgrade(objects, delete=False, force=None)
}}
}}


Line 85: Line 56:


{{Code|code=
{{Code|code=
import FreeCAD, Draft
import FreeCAD as App
import Draft

doc = App.newDocument()


circle = Draft.make_circle(1000)
# Create an union
Circle = Draft.makeCircle(1000)
rectangle = Draft.make_rectangle(2000, 800)
doc.recompute()
Rectangle = Draft.makeRectangle(2000, 800)


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


compound = add_list1[0]
# Downgrade the union twice
addList2, deleteList2 = Draft.downgrade(union, delete=False)
add_list2, delete_list2 = Draft.downgrade(compound, delete=False)
wire = addList2[0]
face = add_list2[0]
add_list3, delete_list3 = Draft.downgrade(face, delete=False)


box = doc.addObject("Part::Box", "Box")
list_edges, deleteList3 = Draft.downgrade(wire, delete=False)
box.Length = 2300
box.Width = 800
box.Height = 1000


add_list4, delete_list4 = Draft.downgrade(box, delete=True)
# Insert a solid box
Box = FreeCAD.ActiveDocument.addObject("Part::Box", "Box")
Box.Length = 2300
Box.Width = 800
Box.Height = 1000


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



Revision as of 09:26, 16 June 2021

Kreslení Degradace

Umístění Menu
Draft → Downgrade
Pracovní stoly
Kreslení, Architektura
Výchozí zástupce
D N
Představen ve verzi
-
Viz také
Draft Upgrade

Popis

Tento nástroj degraduje vybrané objekty různými způsoby. Není-li vybrán žádný objekt, budete vyzvání k výběru objektu.

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.

Použití

  1. Vyberte jeden nebo více objektů, které chcete degradovat
  2. Stiskněte tlačítko Degradace nebo klávesy D a N

Scripting

Skriptování

Nástroj Degradace může být použit ve skriptech Pythonu a v makrech použitím následující funkce:

downgrade_list = downgrade(objects, delete=False, force=None)
  • Degraduje zadaný objekt(y) (může to být objekt nebo seznam objektů).
  • Je-li delete True, staré objekty budou smazány.
  • Atribut force může být využit pro určení požadovaného způsobu degradace. Může to být: explode (oddělení), shapify, subtr(odebrání), splitFaces(rozděl plochy), cut2, getWire, splitWires(rozděl drát).
  • Vrací katalog obsahující dva seznamy, seznam nových objektů a seznam objektů ke smazání

Příklad:

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()