Draft Facebinder: Difference between revisions

From FreeCAD Documentation
Line 49: Line 49:


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


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

Revision as of 12:13, 2 May 2021

This documentation is a work in progress. Please don't mark it as translatable since it will change in the next hours and days.

Draft Facebinder

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

Description

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

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.

Facebinder created from the faces of solid walls

Usage

  1. Pick one face, or hold Ctrl and pick several faces, from solid objects.
  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.

Notes

  • A Draft Facebinder can be edited with the Draft Edit command.

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

# Insert a solid box
box = App.ActiveDocument.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

App.ActiveDocument.recompute()

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

App.ActiveDocument.recompute()