Draft Facebinder: Difference between revisions

From FreeCAD Documentation
(Module to Workbench renaming.)
(16 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Page_in_progress}}
<languages/>
<languages/>
<translate>
<translate>
Line 7: Line 6:
|[[Draft_Point|Point]]
|[[Draft_Point|Point]]
|[[Draft_ShapeString|ShapeString]]
|[[Draft_ShapeString|ShapeString]]
|[[Draft_Module|Draft]]
|[[Draft_Workbench|Draft]]
|IconL=Draft_Point.svg
|IconL=Draft_Point.svg
|IconR=Draft_ShapeString.svg
|IconR=Draft_ShapeString.svg
Line 17: Line 16:
|Name=Draft Facebinder
|Name=Draft Facebinder
|MenuLocation=Drafting → Facebinder
|MenuLocation=Drafting → Facebinder
|Workbenches=[[Draft_Module|Draft]], [[Arch_Module|Arch]]
|Workbenches=[[Draft_Workbench|Draft]], [[Arch_Workbench|Arch]]
|Shortcut={{KEY|F}} {{KEY|F}}
|Shortcut={{KEY|F}} {{KEY|F}}
|Version=0.14
|Version=0.14
|SeeAlso=[[Arch_Wall|Arch Wall]]
}}
}}


Line 26: Line 24:


<!--T:3-->
<!--T:3-->
The [[Image:Draft_Facebinder.svg|24px]] [[Draft_Facebinder|Draft Facebinder]] command creates a surface object from the selected faces of solid objects. A Draft Facebinder is parametric, meaning that if you modify the original object, it will update accordingly. Even if you move and rotate a Draft 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. A typical use is in architectural design to build an object that covers several walls, for example a 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}}


==Usage== <!--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:
# There are several ways to invoke the command:
#* Press the {{Button|[[Image:Draft_Facebinder.svg|16px]] [[Draft_Facebinder|Draft Facebinder]]}} button.
#* Press the {{Button|[[Image:Draft_Facebinder.svg|16px]] [[Draft_Facebinder|Draft Facebinder]]}} button.
Line 46: Line 44:
#* Use the keyboard shortcut: {{KEY|F}} then {{KEY|F}}.
#* Use the keyboard shortcut: {{KEY|F}} then {{KEY|F}}.


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


<!--T:14-->
<!--T:25-->
See also: [[Property_editor|Property editor]].
* A Draft Facebinder can be edited with the [[Draft_Edit|Draft Edit]] command. Faces can be added or removed.


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


<!--T:28-->
* {{PropertyData|Extrusion}}: specifies an extrusion thickness to apply to all faces of the shape.
{{TitleProperty|Draft}}
* {{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.
* {{PropertyData|Offset}}: specifies an offset distance to apply betweenthe facebinder and the original faces, prior to extrusion.
* {{PropertyData|Area}}: the total area of this facebinder.


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


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


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


<!--T:7-->
<!--T:7-->
Line 110: Line 117:
import FreeCADGui as Gui
import FreeCADGui as Gui
import Draft
import Draft

doc = App.newDocument()


# Insert a solid box
# Insert a solid box
box = App.ActiveDocument.addObject("Part::Box", "Box")
box = doc.addObject("Part::Box", "Box")
box.Length = 2300
box.Length = 2300
box.Width = 800
box.Width = 800
Line 122: Line 131:
facebinder.Extrusion = 50
facebinder.Extrusion = 50


App.ActiveDocument.recompute()
doc.recompute()


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


App.ActiveDocument.recompute()
doc.recompute()
}}
}}
<translate>
<translate>
Line 136: Line 145:
|[[Draft_Point|Point]]
|[[Draft_Point|Point]]
|[[Draft_ShapeString|ShapeString]]
|[[Draft_ShapeString|ShapeString]]
|[[Draft_Module|Draft]]
|[[Draft_Workbench|Draft]]
|IconL=Draft_Point.svg
|IconL=Draft_Point.svg
|IconR=Draft_ShapeString.svg
|IconR=Draft_ShapeString.svg

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