Draft WorkingPlaneProxy

From FreeCAD Documentation
Revision as of 18:33, 4 August 2021 by Roy 043 (talk | contribs)
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 WorkingPlaneProxy

Menu location
Utilities → Create working plane proxy
Workbenches
Draft, Arch
Default shortcut
None
Introduced in version
-
See also
Draft SelectPlane

Description

This command will place a Plane Proxy object aligned to the current Working Plane.

This proxy object can be used like a face to quickly change the working plane using the Draft SelectPlane tool. The camera position and visibility of the objects in the 3D view can be saved in the proxy object, and restored at anytime when the Draft SelectPlane tool is used.

Three working plane proxies showing different orientations and offsets

Usage

  1. Make sure the Working Plane is set as you want.
  2. Then go to the menu Utilities → Create Working Plane Proxy.

Notes

  • The working plane stored in the Proxy object can be restored by double-clicking the object in the tree view, or by selecting the Proxy object and using the Draft SelectPlane button.
  • The position of the camera is stored in the Proxy object upon creation. This position can be updated anytime: zoom, pan and rotate the view as you wish, then right-click the Proxy object in the tree view, and select Write camera position.
  • The visibility state of all objects is also stored in the Proxy object upon creation. This state can be updated anytime: set the ViewVisibility property of the objects to true or false as desired, then right-click the Proxy object in the tree view, and select Write objects state.
  • Plane proxies can be moved and rotated like any other object so that they define the desired working plane. Their visual appearance can also be changed in the Property editor.

Properties

Data

Base

  • DataPlacement (Placement): specifies the position of the proxy object in the 3D view. See Placement.
  • Data (Hidden)Shape (PartShape): specifies the shape of the proxy object.

View

Arch

  • ViewArrow Size (Length): specifies the size of the arrow symbols displayed at the tip of the three axes.
  • ViewDisplay Size (Length): specifies the length and width of the proxy object. The proxy object can be invisible in the 3D view if this value is very small.

Base

  • ViewLine Color (Color): specifies the color of all elements of the proxy object.
  • ViewLine Width (Float): specifies the line width of the axes and arrow symbols.
  • ViewRestore State (Bool): specifies if the ViewVisibility Map is restored when the proxy object is double-clicked in the Tree view or used with the Draft SelectPlane command.
  • ViewRestore View (Bool): specifies if the ViewView Data is restored when the proxy object is double-clicked in the Tree view or used with the Draft SelectPlane command.
  • ViewTransparency (Percent): specifies the transparency of the face of the proxy object.
  • ViewView Data (FloatList): specifies the camera position and settings.
  • View (Hidden)Visibility Map (Map): specifies the visibility state of objects.

Scripting

See also: Autogenerated API documentation and FreeCAD Scripting Basics.

To create a WP proxy use the make_workingplaneproxy method of the Draft module.

If the Draft Workbench is active the FreeCAD application object has a DraftWorkingPlane property which stores the current Draft working plane. The Placement from the getPlacement method of the DraftWorkingPlane object can be used to create an aligned WP proxy. The Placement of a WP proxy in turn can be used to realign the Draft working plane.

# This code only works if the Draft Workbench is active!

import FreeCAD as App
import FreeCADGui as Gui
import Draft

doc = App.newDocument()

workplane = App.DraftWorkingPlane
place = workplane.getPlacement()

proxy = Draft.make_workingplaneproxy(place)
proxy.ViewObject.DisplaySize = 3000
proxy.ViewObject.ArrowSize = 200

axis2 = App.Vector(1, 1, 1)
point2 = App.Vector(3000, 0, 0)
place2 = App.Placement(point2, App.Rotation(axis2, 90))

proxy2 = Draft.make_workingplaneproxy(place2)
proxy2.ViewObject.DisplaySize = 3000
proxy2.ViewObject.ArrowSize = 200

workplane.setFromPlacement(proxy2.Placement, rebase=True)
Gui.Snapper.setGrid()

doc.recompute()