Draft Facebinder: Difference between revisions

From FreeCAD Documentation
(Updated information on the inputs)
(Module to Workbench renaming.)
(36 intermediate revisions by 7 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
<translate>
<translate>

<!--T:21-->
<!--T:21-->
{{Docnav
{{Docnav|[[Draft_ShapeString|ShapeString]]|[[Draft_BezCurve|Bezier Curve]]|[[Draft_Module|Draft]]|IconL=Draft_ShapeString.svg |IconC=Workbench_Draft.svg|IconR=Draft_BezCurve.svg }}
|[[Draft_Point|Point]]
|[[Draft_ShapeString|ShapeString]]
|[[Draft_Workbench|Draft]]
|IconL=Draft_Point.svg
|IconR=Draft_ShapeString.svg
|IconC=Workbench_Draft.svg
}}


<!--T:1-->
<!--T:1-->
{{GuiCommand
{{GuiCommand
|Name=Draft Facebinder
|Name=Draft Facebinder
|MenuLocation=Draft → Facebinder
|MenuLocation=Drafting → Facebinder
|Workbenches=[[Draft Module|Draft]], [[Arch Module|Arch]]
|Workbenches=[[Draft_Workbench|Draft]], [[Arch_Workbench|Arch]]
|Shortcut=F F
|Shortcut={{KEY|F}} {{KEY|F}}
|SeeAlso=[[Part Box]], [[Arch Wall]]
|Version=0.14
|Version=0.14
}}
}}
Line 17: Line 24:


<!--T:3-->
<!--T:3-->
The Facebinder tool creates a surface object from the selected faces of a solid object. It is parametric, meaning that if you modify the original object, the Facebinder updates accordingly. If you move and rotate the Facebinder, it will stay linked to the original faces.
The [[Image:Draft_Facebinder.svg|24px]] '''Draft Facebinder''' command creates a surface object from selected faces. A Draft Facebinder is parametric, it will update if you modify its source object(s).


<!--T:12-->
<!--T:12-->
It can be used to create an extrusion from a collection of faces from other objects. A typical use is in architectural design to build an object that covers several walls, for example, a wall paper, or wall finish.
It can be used to create an extrusion from a collection of faces. This extrusion can for example represent a wall finish in architectural design.


</translate>
</translate>
[[Image:Draft facebinder example.jpg|400px]]
[[Image:Draft_facebinder_example.jpg|400px]]
<translate>
<translate>
<!--T:13-->
<!--T:13-->
{{Caption|Facebinder created from the faces of solid walls}}
{{Caption|Facebinder created from the faces of walls}}


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


<!--T:5-->
<!--T:5-->
# Pick one face, or hold {{KEY|Ctrl}} and pick several faces, from solid objects.
# Select one or more faces.
# There are several ways to invoke the command:
# Press the {{Button|[[Image:Draft_Facebinder.png|16px]] [[Draft_Facebinder|Facebinder]]}} button, or press {{KEY|F}} then {{KEY|F}} keys.
#* Press the {{Button|[[Image:Draft_Facebinder.svg|16px]] [[Draft_Facebinder|Draft Facebinder]]}} button.
#* Select the {{MenuCommand|Drafting → [[Image:Draft_Facebinder.svg|16px]] Facebinder}} option from the menu.
#* Use the keyboard shortcut: {{KEY|F}} then {{KEY|F}}.


<!--T:14-->
== Properties == <!--T:16-->
The Facebinder can be edited by double clicking on the element in the tree view. Then you can change the faces that are part of the object.
* To add a face, click on a face of a solid object in the 3D view, and then click on the {{Button|[[Image:Arch_Add.svg|16px]] Add}} button.
* To remove a face, select one of the sub-elements in the list, and then click on the {{Button|[[Image:Arch_Remove.svg|16px]] Remove}} button.
* Press {{KEY|Esc}} or the {{Button|OK}} button to complete the edition.


== Options == <!--T:15-->
<!--T:25-->
See also: [[Property_editor|Property editor]].
This object has no options when it's being created. Only selected faces will be used to create the Facebinder object.


== Properties == <!--T:16-->
<!--T:26-->
A Draft Facebinder object is derived from a [[Part_Feature|Part Feature]] object and inherits all its properties. It also has the following additional properties:
=== Data ===
* {{PropertyData|Extrusion}}: specifies an extrusion thickness to apply to all faces of the shape.
* {{PropertyData|Remove Splitter}}: if it is {{TRUE}} it tries to fuse the internal intersections of the Facebinder when it extruded.
* {{PropertyData|Sew}}: if it is {{TRUE}} it tries to perform a topological sewing operation on the Facebinder when it extruded.


=== View === <!--T:17-->
===Data=== <!--T:27-->
* {{PropertyView|Pattern}}: specifies a [[Draft Pattern]] with which to fill the face of the shape. This property only works if {{PropertyView|Display Mode}} is "Flat Lines".
* {{PropertyView|Pattern Size}}: specifies the size of the [[Draft Pattern]].


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

<!--T:29-->
* {{PropertyData|Area|Area}}: (read-only) specifies the total area of the linked faces of the facebinder.
* {{PropertyData|Extrusion|Distance}}: specifies the extrusion thickness of the facebinder.
* {{PropertyData|Faces|LinkSubList}}: specifies the linked faces of the facebinder.
* {{PropertyData|Offset|Distance}}: specifies an offset distance to apply between the facebinder and the original faces, prior to extrusion.
* {{PropertyData|Remove Splitter|Bool}}: Specifies whether to remove splitter lines that divide co-planar faces of the facebinder.
* {{PropertyData|Sew|Bool}}: Specifies whether to perform a topological sewing operation on the facebinder.

=== View === <!--T:30-->

<!--T:31-->
{{TitleProperty|Draft}}

<!--T:17-->
* {{PropertyView|Pattern|Enumeration}}: specifies the [[Draft_Pattern|Draft Pattern]] with which to fill the faces of the facebinder. This property only works if {{PropertyView|Display Mode}} is {{value|Flat Lines}}.
* {{PropertyView|Pattern Size|Float}}: specifies the size of the [[Draft_Pattern|Draft Pattern]].

==Scripting== <!--T:32-->

<!--T:6-->
See also: [https://freecad.github.io/SourceDoc/ Autogenerated API documentation] and [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]].


<!--T:7-->
<!--T:7-->
To create a Draft Facebinder use the {{incode|make_facebinder}} method ({{Version|0.19}}) of the Draft module. This method replaces the deprecated {{incode|makeFacebinder}} method.
The Facebinder tool can be used in [[macros]] and from the [[Python]] console by using the following function:

</translate>
</translate>
{{Code|code=
{{Code|code=
Facebinder = makeFacebinder(selectionset, name="Facebinder")
facebinder = make_facebinder(selectionset)
}}
}}
<translate>
<translate>

<!--T:8-->
<!--T:8-->
* Creates a {{incode|Facebinder}} object from the given {{incode|selectionset}}, which is a list of {{incode|SelectionObject}}s such as those returned by {{incode|FreeCADGui.Selection.getSelectionEx()}}.
* Creates a {{incode|facebinder}} object from the given {{incode|selectionset}}, which is a list of {{incode|SelectionObject}}s as returned by {{incode|FreeCADGui.Selection.getSelectionEx()}}. Only selected faces are taken into account.
** {{incode|selectionset}} can also be a {{incode|PropertyLinkSubList}}.
** {{incode|selectionset}} can also be a {{incode|PropertyLinkSubList}}.
* Only selected faces are taken into account.
A {{incode|PropertyLinkSubList}} is a list of tuples; each tuple contains as first element an {{incode|object}}, and as second element a list (or tuple) of strings; these strings indicate the names of the sub-elements (faces) of that object.


A {{incode|PropertyLinkSubList}} is a list of tuples; each tuple contains as first element an {{incode|object}}, and as second element a list of strings; these strings indicate the names of the sub-elements of that object.
</translate>
</translate>
{{Code|code=
{{Code|code=
Line 74: Line 99:
PropertyLinkSubList = [(object1, list1), (object2, list2), (object3, list3), ...]
PropertyLinkSubList = [(object1, list1), (object2, list2), (object3, list3), ...]
PropertyLinkSubList = [(object1, ['Face1', 'Face4', 'Face6']), ...]
PropertyLinkSubList = [(object1, ['Face1', 'Face4', 'Face6']), ...]
PropertyLinkSubList = [(object1, ('Face1', 'Face4', 'Face6')), ...]
}}
}}
<translate>
<translate>


<!--T:18-->
<!--T:18-->
The thickness of the ShapeString can be added by overwriting its {{incode|Extrusion}} attribute; the value is entered in millimeters.
The thickness of the Facebinder can be added by overwriting its {{incode|Extrusion}} attribute; the value is entered in millimeters.


<!--T:19-->
<!--T:19-->
The placement of the ShapeString can be changed by overwriting its {{incode|Placement}} attribute, or by individually overwriting its {{incode|Placement.Base}} and {{incode|Placement.Rotation}} attributes.
The placement of the Facebinder can be changed by overwriting its {{incode|Placement}} attribute, or by individually overwriting its {{incode|Placement.Base}} and {{incode|Placement.Rotation}} attributes.


<!--T:9-->
<!--T:9-->
Example:
Example:

</translate>
</translate>
{{Code|code=
{{Code|code=
import FreeCAD, FreeCADGui, Draft
import FreeCAD as App
import FreeCADGui as Gui
import Draft

doc = App.newDocument()


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


# selection = Gui.Selection.getSelectionEx()
# Pick any two side faces, and then
selection = [(box, ("Face1", "Face6"))]
# selection = FreeCADGui.Selection.getSelectionEx()
facebinder = Draft.make_facebinder(selection)
selection = [(Box, ["Face1", "Face6"])]
facebinder.Extrusion = 50
Facebinder = Draft.makeFacebinder(selection)
Facebinder.Extrusion = 50
FreeCAD.ActiveDocument.recompute()


doc.recompute()
Facebinder.Placement.Base = FreeCAD.Vector(1000, -1000, 100)

Facebinder.ViewObject.ShapeColor = (0.99, 0.99, 0.4)
facebinder.Placement.Base = App.Vector(1000, -1000, 100)
facebinder.ViewObject.ShapeColor = (0.99, 0.99, 0.4)

doc.recompute()
}}
}}
<translate>
<translate>


<!--T:20-->
{{Docnav|[[Draft_ShapeString|ShapeString]]|[[Draft_BezCurve|Bezier Curve]]|[[Draft_Module|Draft]]|IconL=Draft_ShapeString.svg |IconC=Workbench_Draft.svg|IconR=Draft_BezCurve.svg }}


<!--T:22-->
<!--T:20-->
{{Docnav
{{Draft Tools navi}}
|[[Draft_Point|Point]]
|[[Draft_ShapeString|ShapeString]]
|[[Draft_Workbench|Draft]]
|IconL=Draft_Point.svg
|IconR=Draft_ShapeString.svg
|IconC=Workbench_Draft.svg
}}


<!--T:23-->
{{Userdocnavi}}
</translate>
</translate>
{{Draft Tools navi{{#translation:}}}}
{{clear}}
{{Userdocnavi{{#translation:}}}}

Revision as of 18:04, 24 August 2021

Draft Facebinder

Menu location
Drafting → Facebinder
Workbenches
Draft, Arch
Default shortcut
F F
Introduced in version
0.14
See also
None

Description

The Draft Facebinder command creates a surface object from selected faces. A Draft Facebinder is parametric, it will update if you modify its source object(s).

It can be used to create an extrusion from a collection of faces. This extrusion can for example represent a wall finish in architectural design.

Facebinder created from the faces of walls

Usage

  1. Select one or more faces.
  2. There are several ways to invoke the command:
    • Press the Draft Facebinder button.
    • Select the Drafting → Facebinder option from the menu.
    • Use the keyboard shortcut: F then F.

Properties

See also: Property editor.

A Draft Facebinder object is derived from a Part Feature object and inherits all its properties. It also has the following additional properties:

Data

Draft

  • DataArea (Area): (read-only) specifies the total area of the linked faces of the facebinder.
  • DataExtrusion (Distance): specifies the extrusion thickness of the facebinder.
  • DataFaces (LinkSubList): specifies the linked faces of the facebinder.
  • DataOffset (Distance): specifies an offset distance to apply between the facebinder and the original faces, prior to extrusion.
  • DataRemove Splitter (Bool): Specifies whether to remove splitter lines that divide co-planar faces of the facebinder.
  • DataSew (Bool): Specifies whether to perform a topological sewing operation on the facebinder.

View

Draft

  • ViewPattern (Enumeration): specifies the Draft Pattern with which to fill the faces of the facebinder. This property only works if ViewDisplay Mode is Flat Lines.
  • ViewPattern Size (Float): specifies the size of the Draft Pattern.

Scripting

See also: Autogenerated API documentation and FreeCAD Scripting Basics.

To create a Draft Facebinder use the make_facebinder method (introduced in version 0.19) of the Draft module. This method replaces the deprecated makeFacebinder method.

facebinder = make_facebinder(selectionset)
  • Creates a facebinder object from the given selectionset, which is a list of SelectionObjects as returned by FreeCADGui.Selection.getSelectionEx(). Only selected faces are taken into account.
    • selectionset can also be a PropertyLinkSubList.

A PropertyLinkSubList is a list of tuples; each tuple contains as first element an object, and as second element a list (or tuple) of strings; these strings indicate the names of the sub-elements (faces) of that object.

PropertyLinkSubList = [tuple1, tuple2, tuple3, ...]
PropertyLinkSubList = [(object1, list1), (object2, list2), (object3, list3), ...]
PropertyLinkSubList = [(object1, ['Face1', 'Face4', 'Face6']), ...]
PropertyLinkSubList = [(object1, ('Face1', 'Face4', 'Face6')), ...]

The thickness of the Facebinder can be added by overwriting its Extrusion attribute; the value is entered in millimeters.

The placement of the Facebinder can be changed by overwriting its Placement attribute, or by individually overwriting its Placement.Base and Placement.Rotation attributes.

Example:

import FreeCAD as App
import FreeCADGui as Gui
import Draft

doc = App.newDocument()

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

# selection = Gui.Selection.getSelectionEx()
selection = [(box, ("Face1", "Face6"))]
facebinder = Draft.make_facebinder(selection)
facebinder.Extrusion = 50

doc.recompute()

facebinder.Placement.Base = App.Vector(1000, -1000, 100)
facebinder.ViewObject.ShapeColor = (0.99, 0.99, 0.4)

doc.recompute()