Draft Facebinder: Difference between revisions

From FreeCAD Documentation
No edit summary
(Button text.)
 
(75 intermediate revisions by 8 users not shown)
Line 1: Line 1:
<languages/>
{{GuiCommand|Name=Draft_Facebinder|Workbenches=[[Draft Module/it|Draft]], [[Arch Module|Arch]]|MenuLocation=Draft → Facebinder|Shortcut=F F}}
<translate>


<!--T:21-->
{{Template:UnfinishedDocu}}
{{Docnav
==Description==
|[[Draft_Point|Point]]
It's a very simple object that is constructed from selected faces of other objects. It is of course parametric, you can modify the original object and the facebinder object updates accordingly. It can then be used for example for making an extrusion.
|[[Draft_ShapeString|ShapeString]]
|[[Draft_Workbench|Draft]]
|IconL=Draft_Point.svg
|IconR=Draft_ShapeString.svg
|IconC=Workbench_Draft.svg
}}


<!--T:1-->
[[File:Facebinder_it.png|left]]
{{GuiCommand
{{clear}}
|Name=Draft Facebinder
==How to use==
|MenuLocation=Drafting → Facebinder
# Select faces on objects (with CTRL)
|Workbenches=[[Draft_Workbench|Draft]], [[Arch_Workbench|Arch]]
# Press the {{KEY|Facebinder}}, button, or press {{KEY|F}}, {{KEY|F}} keys
|Shortcut={{KEY|F}} {{KEY|F}}
# You can move the facebinder around, everything stays linked.
|Version=0.14
{{clear}}
}}
==Properties==


==Description== <!--T:2-->
===Data===
====Base====
* {{PropertyData|Label}}: nome
* {{PropertyData|Placement}}: [[Placement|placement]]
** {{PropertyData|Angle}}:
** {{PropertyData|Axis}}:
** {{PropertyData|Position}}:


<!--T:3-->
====Draft====
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).
{{clear}}
==Limitations==
* Not available in v0.13. See [http://sourceforge.net/apps/phpbb/free-cad/viewtopic.php?f=9&t=4709 Draft Facebeinder] nel forum.


<!--T:12-->
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>
[[Image:Draft_facebinder_example.jpg|400px]]
<translate>
<!--T:13-->
{{Caption|Facebinder created from the faces of walls}}


==Usage== <!--T:4-->
{{languages | {{fr|Draft_Facebinder/fr}} {{it|Draft_Facebinder/it}} }}

<!--T:5-->
# Select one or more faces.
# There are several ways to invoke the command:
#* Press the {{Button|[[Image:Draft_Facebinder.svg|16px]] [[Draft_Facebinder|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}}.

== Properties == <!--T:16-->

<!--T:25-->
See also: [[Property_editor|Property editor]].

<!--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=== <!--T:27-->

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

<!--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-->
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.

</translate>
{{Code|code=
facebinder = make_facebinder(selectionset)
}}
<translate>

<!--T:8-->
* 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}}.
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.

</translate>
{{Code|code=
PropertyLinkSubList = [tuple1, tuple2, tuple3, ...]
PropertyLinkSubList = [(object1, list1), (object2, list2), (object3, list3), ...]
PropertyLinkSubList = [(object1, ['Face1', 'Face4', 'Face6']), ...]
PropertyLinkSubList = [(object1, ('Face1', 'Face4', 'Face6')), ...]
}}
<translate>

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

<!--T:19-->
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-->
Example:

</translate>
{{Code|code=
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()
}}
<translate>


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

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

Latest revision as of 17:03, 3 December 2023

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