|Draft → Utilities → Select Plane|
|Introduced in version|
|Draft SetWorkingPlaneProxy, Draft ToggleGrid|
- From a selected face.
- From three selected vertices.
- From the current view.
- From a preset: top, front, or side.
- None, in which case the working plane is adapted automatically to the current view when you start a command, or to a face if you start drawing on an existing face.
Different working planes can be set on which to draw shapes
Without element selected
- Press the button, or use → → from the top menu, or the keyboard shortcut then
- Select the offset, the grid spacing, and the main lines
- Select one of the presets: , , , , or .
Once the plane is set, the button will change to indicate the active plane, , , , .
You can show and hide the grid with the shortcut.
With element selected
- Select a face of an existing object in the 3D view, or hold and select three vertices of any object. introduced in version 0.17
- Press the SelectPlane. button, or right click and select Utilities →
The plane will be created aligned to the face of the object, or to the plane defined by the three vertices.
- Press the button to set the working plane on the XY plane. To easily draw on this plane, you should set the view to the top or bottom (the normal is in the positive or negative Z direction). Press or to quickly switch to these views.
- Press the button to set the working plane on the XZ plane. To easily draw on this plane, you should set the view to the front or rear (the normal is in the negative or positive Y direction). Press or to quickly switch to these views.
- Press the button to set the working plane on the YZ plane. To easily draw on this plane, you should set the view to the left or right side (the normal is in the positive or negative X direction). Press or to quickly switch to these views.
- Press the button to set the working plane to the current 3D view, perpendicular to the camera axis and passing through the origin (0,0,0).
- Press the button to unset any current working plane, and automatically set a working plane when a tool is used. When a drawing tool is selected the grid will be automatically updated to the current view; then, if the view is rotated, and another tool is selected, the grid redraws in the new view. This is equivalent of pressing automatically before using a tool.
- Set the "Offset" value to set the working plane at a certain perpendicular distance from the plane you selected.
- Set the "Grid spacing" value to define the space between each line in the grid.
- Set the "Main line every" value to draw a slightly thicker line in the grid at the set value. For example, if the grid spacing is 0.5 m, and there is a main line every 20 lines, there will be slightly thicker line every 10 m.
- Click on the "Center plane on view" checkbox to draw the plane and grid closer to the camera view in the 3D view.
- Press or the button to abort the current command.
- The grid displays an additional border with mainline spacing indicated in the bottom left corner introduced in version 0.19. This can be disabled via Edit->Preferences->Draft->Grid and snapping->Show grid border
You can access the current Draft working plane, and apply transformations to it:
import FreeCAD as App import FreeCADGui as Gui workplane = App.DraftWorkingPlane v1 = App.Vector(0, 0, 0) v2 = App.Vector(1, 1, 1).normalize() workplane.alignToPointAndAxis(v1, v2, 17) Gui.Snapper.toggleGrid() Gui.Snapper.toggleGrid()
You can create your own planes, and use them independently of the current working plane. This is useful if you need to make calculations or projections in these other planes.
import WorkingPlane my_plane = WorkingPlane.plane() v1 = App.Vector(0, 0, 0) v2 = App.Vector(1, 1, 1).normalize() my_plane.alignToPointAndAxis(v1, v2, 17) projection = my_plane.projectPoint(App.Vector(10, 15, 2)) print(projection)
To display a new grid use a new tracker object. First set up the normal working plane as you need, then create a new tracker object, then set it to the current plane, and then you can turn it on or off.
import FreeCAD as App import DraftTrackers App.DraftWorkingPlane.alignToPointAndAxis(App.Vector(0, 0, 0), App.Vector(1, 0, 0), 0) my_grid = DraftTrackers.gridTracker() my_grid.set() my_grid.on() my_grid.off()
This grid is merely a visual aid and doesn't allow snapping.
To have the possibility of switching quickly to different grids, in different positions, you should create a.