Draft WorkingPlaneProxy: Difference between revisions
mNo edit summary |
(Button text.) |
||
(74 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> |
<languages/> |
||
<translate> |
<translate> |
||
<!--T:19--> |
<!--T:19--> |
||
{{Docnav |
|||
{{Docnav|[[Draft AutoGroup|AutoGroup]]|[[Draft_AddConstruction|Add to Construction group]]|[[Draft_Module|Draft]]|IconL=Draft_AutoGroup.svg|IconC=Workbench_Draft.svg|IconR=Draft_AddConstruction.png}} |
|||
|[[Draft_ToggleDisplayMode|ToggleDisplayMode]] |
|||
|[[Draft_ApplyStyle|ApplyStyle]] |
|||
|[[Draft_Workbench|Draft]] |
|||
|IconL=Draft_ToggleDisplayMode.svg |
|||
|IconR=Draft_ApplyStyle.svg |
|||
|IconC=Workbench_Draft.svg |
|||
}} |
|||
<!--T:1--> |
<!--T:1--> |
||
{{GuiCommand |
{{GuiCommand |
||
|Name=Draft |
|Name=Draft WorkingPlaneProxy |
||
|MenuLocation= |
|MenuLocation=Utilities → Create working plane proxy |
||
|Workbenches=[[ |
|Workbenches=[[Draft_Workbench|Draft]], [[Arch_Workbench|Arch]] |
||
|SeeAlso=[[Draft SelectPlane]] |
|SeeAlso=[[Draft_SelectPlane|Draft SelectPlane]] |
||
}} |
}} |
||
==Description== <!--T: |
==Description== <!--T:22--> |
||
This command will place a Plane Proxy object aligned to the current [[Draft SelectPlane|Working Plane]]. |
|||
<!--T: |
<!--T:2--> |
||
The [[Image:Draft_WorkingPlaneProxy.svg|24px]] '''Draft WorkingPlaneProxy''' command creates a working plane proxy to save the current [[Draft_SelectPlane|Draft working plane]]. A working plane proxy can be used to quickly restore a working plane. The camera position and visibility of the objects in the [[3D_view|3D view]] are also saved in the working plane proxy and can, [[#Properties|optionally]], be restored as well. |
|||
</translate> |
</translate> |
||
Line 24: | Line 31: | ||
{{Caption|Three working plane proxies showing different orientations and offsets}} |
{{Caption|Three working plane proxies showing different orientations and offsets}} |
||
==Usage== <!--T: |
==Usage== <!--T:23--> |
||
# Make sure the [[Draft SelectPlane|Working Plane]] is set as you want. |
|||
# Then go to the menu {{MenuCommand|Draft → Utilities → [[Image:Draft SetWorkingPlaneProxy.png|16px]] [[Draft SetWorkingPlaneProxy|Create Working Plane Proxy]]}}. |
|||
<!--T:3--> |
|||
# Optionally change the [[Draft_SelectPlane|working plane]]. |
|||
* 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 {{Button|[[Image:Draft SelectPlane.svg|16px]] [[Draft SelectPlane]]}} button. |
|||
# Optionally change the [[3D_view|3D view]]. |
|||
* 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 {{Button|[[Image:Draft SelectPlane.svg|16px]] Write camera position}}. |
|||
# Optionally change the visibility state of objects in the document. |
|||
* The visibility state of all objects is also stored in the Proxy object upon creation. This state can be updated anytime: set the {{PropertyView|Visibility}} property of the objects to {{TRUE}} or {{FALSE}} as desired, then right-click the Proxy object in the tree view, and select {{Button|[[Image:Draft SelectPlane.svg|16px]] Write objects state}}. |
|||
# There are several ways to invoke the command: |
|||
* 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]]. |
|||
#* Press the {{Button|[[Image:Draft_WorkingPlaneProxy.svg|16px]] [[Draft_WorkingPlaneProxy|Create working plane proxy]]}} button. |
|||
#* Select the {{MenuCommand|Utilities → [[Image:Draft_WorkingPlaneProxy.svg|16px]] Create working plane proxy}} option from the menu. |
|||
# A working plane proxy is created. |
|||
# To align the [[Draft_SelectPlane|working plane]] with a working plane proxy, double-click the working plane proxy in the [[Tree_view|Tree view]] or use it with the [[Draft_SelectPlane|Draft SelectPlane]] command. |
|||
== Context menu == <!--T:24--> |
|||
<!--T:25--> |
|||
For a Draft WorkingPlaneProxy these additional options are available in the [[Tree_view|Tree view]] context menu: |
|||
<!--T:26--> |
|||
* {{MenuCommand|[[Image:Draft_SelectPlane.svg|16px]] Write camera position}}: updates the {{PropertyView|View Data}} property of the working plane proxy with the current [[3D_view|3D view]] camera settings. |
|||
* {{MenuCommand|[[Image:Draft_SelectPlane.svg|16px]] Write objects state}}: updates the {{PropertyView|Visibility Map}} property of the working plane proxy with the current visibility state of objects in the document. |
|||
==Notes== <!--T:27--> |
|||
<!--T:11--> |
|||
* Working plane proxies can be [[Draft_Move|moved]] and [[Draft_Rotate|rotated]] like any other object. Use [[Image:Draft_Snap_Center.svg|16px]] [[Draft_Snap_Center|Draft Snap Center]] to snap to their {{PropertyData|Placement}} point. |
|||
==Properties== <!--T:7--> |
==Properties== <!--T:7--> |
||
<!--T:28--> |
|||
See also: [[Property_editor|Property editor]]. |
|||
* {{PropertyData|Placement}}: specifies the position of the proxy object and the corresponding working plane. |
|||
** {{PropertyData|Position}}: specifies the coordinates of the proxy object. |
|||
** {{PropertyData|Angle}}: specifies the rotation angle of the proxy object. |
|||
** {{PropertyData|Axis}}: specifies the axis to use for the rotation angle. |
|||
<!--T:29--> |
|||
A Draft WorkingPlaneProxy object is derived from an [[App_FeaturePython|App FeaturePython]] object and inherits all its properties. It also has the following additional properties: |
|||
* {{PropertyView|Display Size}}: specifies both length and width of the proxy object. If the object is created in the tree view but no element is visible in the 3D view, increase this value until it is visible. |
|||
* {{PropertyView|Arrow Size}}: specifies the size of the arrows indicating the three axes of the plane proxy. |
|||
=== Data === <!--T:30--> |
|||
* {{PropertyView|Restore View}}: if it is {{TRUE}} the camera position will be restored to the saved position when using the proxy with {{Button|[[Image:Draft SelectPlane.svg|16px]] [[Draft SelectPlane]]}} or by double-clicking on it. |
|||
* {{PropertyView|Restore State}}: if it is {{TRUE}} the visibility state of all objects will be restored to the saved state when using the proxy with {{Button|[[Image:Draft SelectPlane.svg|16px]] [[Draft SelectPlane]]}} or by double-clicking on it. |
|||
<!--T:31--> |
|||
{{TitleProperty|Base}} |
|||
<!--T:8--> |
|||
* {{PropertyData|Placement|Placement}}: specifies the position of the working plane proxy in the [[3D_view|3D view]]. See [[Placement|Placement]]. |
|||
* {{PropertyData|Shape|Shape|Hidden}}: specifies the shape of the working plane proxy. |
|||
=== View === <!--T:32--> |
|||
<!--T:34--> |
|||
{{TitleProperty|Base}} |
|||
<!--T:35--> |
|||
* {{PropertyView|Line Color|Color}}: specifies the color of all elements of the working plane proxy. |
|||
* {{PropertyView|Line Width|Float}}: specifies the line width of the axes and arrow symbols. |
|||
* {{PropertyView|Restore State|Bool}}: specifies if the {{PropertyView|Visibility Map}} is restored when the [[Draft_SelectPlane|working plane]] is aligned with the working plane proxy. |
|||
* {{PropertyView|Restore View|Bool}}: specifies if the {{PropertyView|View Data}} is restored when the [[Draft_SelectPlane|working plane]] is aligned with the working plane proxy. |
|||
* {{PropertyView|Transparency|Percent}}: specifies the transparency of the face of the working plane proxy. |
|||
* {{PropertyView|View Data|FloatList}}: specifies the camera position and settings. |
|||
* {{PropertyView|Visibility Map|Map|Hidden}}: specifies the visibility state of objects. |
|||
<!--T:36--> |
|||
{{TitleProperty|Draft}} |
|||
<!--T:12--> |
|||
* {{PropertyView|Arrow Size|Length}}: specifies the size of the arrow symbols displayed at the tip of the three axes. |
|||
* {{PropertyView|Display Size|Length}}: specifies the length and width of the working plane proxy. |
|||
==Scripting== <!--T:5--> |
==Scripting== <!--T:5--> |
||
<!--T:13--> |
<!--T:13--> |
||
See also: [https://freecad.github.io/SourceDoc/ Autogenerated API documentation] and [[FreeCAD_Scripting_Basics|FreeCAD Scripting Basics]]. |
|||
<!--T:14--> |
<!--T:14--> |
||
To create a Draft WorkingPlaneProxy use the {{incode|make_workingplaneproxy}} method of the Draft module. |
|||
Working plane proxy objects can be used in [[macros]] and from the [[Python]] console by using the following function: |
|||
</translate> |
|||
{{Code|code= |
|||
WPProxy = makeWorkingPlaneProxy(placement) |
|||
}} |
|||
<translate> |
|||
<!--T:15--> |
<!--T:15--> |
||
If the [[Draft_Workbench|Draft Workbench]] is active the FreeCAD application object has a {{incode|DraftWorkingPlane}} property which stores the current working plane. The {{Incode|Placement}} from the {{Incode|getPlacement}} method of the {{incode|DraftWorkingPlane}} object can be used to create an aligned working plane proxy. The {{Incode|Placement}} of a working plane proxy in turn can be used to realign the working plane. |
|||
* Creates a {{incode|WPProxy}} object from the given {{incode|placement}} which is a {{incode|FreeCAD.Placement}}. |
|||
** A placement is defined by a base point, given by its {{incode|FreeCAD.Vector}}, and a {{incode|FreeCAD.Rotation}}. |
|||
<!--T:16--> |
|||
The size of the Plane Proxy can be changed by overwriting its {{incode|ViewObject.DisplaySize}} and {{incode|ViewObject.ArrowSize}} attributes, with units in millimeters. |
|||
<!--T:17--> |
|||
The Plane Proxy has a "Face" object as its {{incode|Shape}} attribute. This face can be used to set the current working plane by calling its {{incode|alignToFace()}} method. |
|||
<!--T:6--> |
|||
Example: |
|||
</translate> |
</translate> |
||
{{Code|code= |
{{Code|code= |
||
# This code only works if the Draft Workbench is active! |
|||
import FreeCAD, FreeCADGui, Draft |
|||
import FreeCAD as App |
|||
import FreeCADGui as Gui |
|||
place = currentWP.getPlacement() |
|||
import Draft |
|||
doc = App.newDocument() |
|||
WPProxy = Draft.makeWorkingPlaneProxy(place) |
|||
WPProxy.ViewObject.DisplaySize = 3000 |
|||
WPProxy.ViewObject.ArrowSize = 200 |
|||
workplane = App.DraftWorkingPlane |
|||
YAxis = FreeCAD.Vector(0, 1, 0) |
|||
place = workplane.getPlacement() |
|||
point2 = FreeCAD.Vector(3000, 0, 0) |
|||
place2 = FreeCAD.Placement(point2, FreeCAD.Rotation(YAxis, 90)) |
|||
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 |
|||
FreeCAD.ActiveDocument.recompute() |
|||
workplane.setFromPlacement(proxy2.Placement, rebase=True) |
|||
currentWP.alignToFace(WPProxy3.Shape) |
|||
Gui.Snapper.setGrid() |
|||
doc.recompute() |
|||
}} |
}} |
||
<translate> |
<translate> |
||
<!--T:18--> |
|||
{{Docnav|[[Draft AutoGroup|AutoGroup]]|[[Draft_AddConstruction|Add to Construction group]]|[[Draft_Module|Draft]]|IconL=Draft_AutoGroup.svg|IconC=Workbench_Draft.svg|IconR=Draft_AddConstruction.png}} |
|||
<!--T: |
<!--T:18--> |
||
{{Docnav |
|||
{{Draft Tools navi}} |
|||
|[[Draft_ToggleDisplayMode|ToggleDisplayMode]] |
|||
|[[Draft_ApplyStyle|ApplyStyle]] |
|||
|[[Draft_Workbench|Draft]] |
|||
|IconL=Draft_ToggleDisplayMode.svg |
|||
|IconR=Draft_ApplyStyle.svg |
|||
|IconC=Workbench_Draft.svg |
|||
}} |
|||
<!--T:21--> |
|||
{{Userdocnavi}} |
|||
</translate> |
</translate> |
||
{{Draft Tools navi{{#translation:}}}} |
|||
{{clear}} |
|||
{{Userdocnavi{{#translation:}}}} |
Latest revision as of 17:30, 3 December 2023
Draft WorkingPlaneProxy |
Menu location |
---|
Utilities → Create working plane proxy |
Workbenches |
Draft, Arch |
Default shortcut |
None |
Introduced in version |
- |
See also |
Draft SelectPlane |
Description
The Draft WorkingPlaneProxy command creates a working plane proxy to save the current Draft working plane. A working plane proxy can be used to quickly restore a working plane. The camera position and visibility of the objects in the 3D view are also saved in the working plane proxy and can, optionally, be restored as well.
Three working plane proxies showing different orientations and offsets
Usage
- Optionally change the working plane.
- Optionally change the 3D view.
- Optionally change the visibility state of objects in the document.
- There are several ways to invoke the command:
- Press the Create working plane proxy button.
- Select the Utilities → Create working plane proxy option from the menu.
- A working plane proxy is created.
- To align the working plane with a working plane proxy, double-click the working plane proxy in the Tree view or use it with the Draft SelectPlane command.
For a Draft WorkingPlaneProxy these additional options are available in the Tree view context menu:
- Write camera position: updates the ViewView Data property of the working plane proxy with the current 3D view camera settings.
- Write objects state: updates the ViewVisibility Map property of the working plane proxy with the current visibility state of objects in the document.
Notes
- Working plane proxies can be moved and rotated like any other object. Use Draft Snap Center to snap to their DataPlacement point.
Properties
See also: Property editor.
A Draft WorkingPlaneProxy object is derived from an App FeaturePython object and inherits all its properties. It also has the following additional properties:
Data
Base
- DataPlacement (
Placement
): specifies the position of the working plane proxy in the 3D view. See Placement. - Data (Hidden)Shape (
Shape
): specifies the shape of the working plane proxy.
View
Base
- ViewLine Color (
Color
): specifies the color of all elements of the working plane proxy. - 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 working plane is aligned with the working plane proxy. - ViewRestore View (
Bool
): specifies if the ViewView Data is restored when the working plane is aligned with the working plane proxy. - ViewTransparency (
Percent
): specifies the transparency of the face of the working plane proxy. - ViewView Data (
FloatList
): specifies the camera position and settings. - View (Hidden)Visibility Map (
Map
): specifies the visibility state of objects.
Draft
- 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 working plane proxy.
Scripting
See also: Autogenerated API documentation and FreeCAD Scripting Basics.
To create a Draft WorkingPlaneProxy 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 working plane. The Placement
from the getPlacement
method of the DraftWorkingPlane
object can be used to create an aligned working plane proxy. The Placement
of a working plane proxy in turn can be used to realign the 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()
- Drafting: Line, Polyline, Fillet, Arc, Arc by 3 points, Circle, Ellipse, Rectangle, Polygon, B-spline, Cubic Bézier curve, Bézier curve, Point, Facebinder, ShapeString, Hatch
- Annotation: Text, Dimension, Label, Annotation styles, Annotation scale
- Modification: Move, Rotate, Scale, Mirror, Offset, Trimex, Stretch, Clone, Array, Polar array, Circular array, Path array, Path link array, Point array, Point link array, Edit, Subelement highlight, Join, Split, Upgrade, Downgrade, Wire to B-spline, Draft to sketch, Set slope, Flip dimension, Shape 2D view
- Draft Tray: Select plane, Set style, Toggle construction mode, AutoGroup
- Snapping: Snap lock, Snap endpoint, Snap midpoint, Snap center, Snap angle, Snap intersection, Snap perpendicular, Snap extension, Snap parallel, Snap special, Snap near, Snap ortho, Snap grid, Snap working plane, Snap dimensions, Toggle grid
- Miscellaneous: Apply current style, Layer, Manage layers, Add a new named group, Move to group, Select group, Add to construction group, Toggle normal/wireframe display, Create working plane proxy, Heal, Show snap toolbar
- Additional: Constraining, Pattern, Preferences, Import Export Preferences, DXF/DWG, SVG, OCA, DAT
- Context menu:
- Layer container: Merge layer duplicates, Add new layer
- Layer: Activate this layer, Select layer contents
- Text: Open hyperlinks
- Wire: Flatten
- Working plane proxy: Write camera position, Write objects state
- Getting started
- Installation: Download, Windows, Linux, Mac, Additional components, Docker, AppImage, Ubuntu Snap
- Basics: About FreeCAD, Interface, Mouse navigation, Selection methods, Object name, Preferences, Workbenches, Document structure, Properties, Help FreeCAD, Donate
- Help: Tutorials, Video tutorials
- Workbenches: Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Start, Surface, TechDraw, Test Framework, Web
- Hubs: User hub, Power users hub, Developer hub