Draft Move/en: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
 
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
<languages/>
{{GuiCommand|Name=Draft Move|Workbenches=[[Draft Module|Draft]], [[Arch Module|Arch]]|MenuLocation=Draft → Move|Shortcut=M V}}

{{Docnav
|[[Draft_AnnotationStyleEditor|AnnotationStyleEditor]]
|[[Draft_Rotate|Rotate]]
|[[Draft_Workbench|Draft]]
|IconL=Draft_AnnotationStyleEditor.svg
|IconR=Draft_Rotate.svg
|IconC=Workbench_Draft.svg
}}

{{GuiCommand
|Name=Draft Move
|MenuLocation=Modification → Move
|Workbenches=[[Draft_Workbench|Draft]], [[Arch_Workbench|Arch]]
|Shortcut={{KEY|M}} {{KEY|V}}
|Version=0.7
|SeeAlso=[[Draft_SubelementHighlight|Draft SubelementHighlight]]
}}


==Description==
==Description==


The Move tool moves or copies the selected objects from one point to another on the current [[Draft SelectPlane|work plane]]. If no object is selected, you will be invited to select one.
The [[Image:Draft_Move.svg|24px]] '''Draft Move''' command moves or copies selected objects from one point to another. In subelement mode the command moves selected points and edges, or copies selected edges, of [[Draft_Line|Draft Lines]] and [[Draft_Wire|Draft Wires]].

The command can be used on 2D objects created with the [[Draft_Workbench|Draft Workbench]] or [[Sketcher_Workbench|Sketcher Workbench]], but also on many 3D objects such as those created with the [[Part_Workbench|Part Workbench]], [[PartDesign_Workbench|PartDesign Workbench]] or [[Arch_Workbench|Arch Workbench]].


[[Image:Draft_Move_example.jpg|400px]]
[[Image:Draft_Move_example.jpg|400px]]
{{Caption|Moving an object from one point to another}}


==How to use==
==Usage==


See also: [[Draft_Snap|Draft Snap]] and [[Draft_Constrain|Draft Constrain]].
# Select objects you wish to move or copy
# Press the {{KEY|[[Image:Draft Move.png|16px]] [[Draft Move]]}} button, or press {{KEY|M}} then {{KEY|V}} keys
# Click a first point on the 3D view, or type a [[Draft_Coordinates|coordinate]]
# Click another point on the 3D view, or type a [[Draft_Coordinates|coordinate]]


# Optionally select one or more objects, or one or more subelements of [[Draft_Line|Draft Lines]] or [[Draft_Wire|Draft Wires]].
== Snapping, Constraining, and more ==
# There are several ways to invoke the command:
#* Press the {{Button|[[Image:Draft_Move.svg|16px]] [[Draft_Move|Move]]}} button.
#* Select the {{MenuCommand|Modification → [[Image:Draft_Move.svg|16px]] Move}} option from the menu.
#* Use the keyboard shortcut: {{KEY|M}} then {{KEY|V}}.
# If you have not yet selected an object: select an object in the [[3D_view|3D view]].
# The {{MenuCommand|Move}} task panel opens. See [[#Options|Options]] for more information.
# If subelements have been selected: check the {{MenuCommand|Modify subelements}} checkbox to switch on subelement mode.
# Pick the first point, the base point, in the [[3D_view|3D view]], or type coordinates and press the {{Button|[[Image:Draft_AddPoint.svg|16px]] Enter point}} button.
# Pick the second point, the target point, in the [[3D_view|3D view]], or type coordinates and press the {{Button|[[Image:Draft_AddPoint.svg|16px]] Enter point}} button.


=== Preferences ===
==Options==


The single character keyboard shortcuts available in the task panel can be changed. See [[Draft_Preferences|Draft Preferences]]. The shortcuts mentioned here are the default shortcuts (for version 0.22).
Moving object around in 3D can be dreadful, and is most likely '''not''' what you want. FreeCAD comes with a lot more power to move object around, but first you must check your preferences to see how to activate those commands.


* To manually enter coordinates enter the X, Y and Z component, and press {{KEY|Enter}} after each. Or you can press the {{Button|[[Image:Draft_AddPoint.svg|16px]] Enter point}} button when you have the desired values. It is advisable to move the pointer out of the [[3D_view|3D view]] before entering coordinates.
Go to {{KEY|Edit}} -> {{KEY|Preferences}} -> {{KEY|DRAFT}}, then open the {{KEY|Grid and snapping}} tab.
* To use polar coordinates enter a value for the {{MenuCommand|Length}} and a value for the {{MenuCommand|Angle}}, and press {{KEY|Enter}} after each.
* Check the {{MenuCommand|Angle}} checkbox to constrain the pointer to the specified angle.
* Press {{KEY|L}} to change the focus from the {{MenuCommand|X}} input box to the {{MenuCommand|Length}} input box and back. Depending on the input box that receives the focus the {{MenuCommand|Angle}} checkbox is checked or unchecked.
* Press {{KEY|R}} or click the {{MenuCommand|Relative}} checkbox to toggle relative mode. If relative mode is on, the coordinates of the second point are relative to the first point, else they are relative to the coordinate system origin.
* Press {{KEY|G}} or click the {{MenuCommand|Global}} checkbox to toggle global mode. If global mode is on, coordinates are relative to the global coordinate system, else they are relative to the [[Draft_SelectPlane|working plane]] coordinate system. {{Version|0.20}}
* Press {{KEY|N}} or click the {{MenuCommand|Continue}} checkbox to toggle continue mode. If continue mode is on, the command will restart after finishing. This mode really only makes sense if copy mode is switched on. Depending on the {{MenuCommand|Select base objects after copying}} preference, either the original objects are selected for the next command call or the copies that were created last. See [[#Preferences|Preferences]].
* Press {{KEY|C}} or click the {{MenuCommand|Copy}} checkbox to toggle copy mode. If copy mode is on, the command will create moved copies instead of moving the original objects.
* Press {{KEY|B}} or click the {{MenuCommand|Modify subelements}} checkbox to toggle subelement mode. If subelement mode is on, the command will use the selected subelements instead of the whole objects. The subelements must belong to [[Draft_Line|Draft Lines]] or [[Draft_Wire|Draft Wires]].
* If copy mode and subelement mode are both on, and edges of [[Draft_Wire|Draft Wires]] are selected, new wires will be created from those edges.
* Holding down {{KEY|Alt}} after picking the base point will also toggle copy mode. While {{KEY|Alt}} is held down multiple target points can be picked. Release {{KEY|Alt}} to finish the command and see the created copies.
* Press {{KEY|S}} to switch [[Draft_Snap|Draft snapping]] on or off.
* Press {{KEY|Esc}} or the {{Button|Close}} button to abort the command.


==Notes==
You will see there several options:


* An Object that is [[Part_EditAttachment|attached]] cannot be moved with the Draft Move command. To move it either its {{PropertyData|Support}} object has to be moved, or its {{PropertyData|Attachment Offset}} has to be changed.
[[File:Pref_Draft_Snapping.png]]


==Preferences==
By default the option "Always snap (disable snap mod)" is activated, which means that the snapping tools will always be active (you don't need to press a key to activate them), note here what keys are assigned to activate the different modes, by default:


See also: [[Preferences_Editor|Preferences Editor]] and [[Draft_Preferences|Draft Preferences]].
* {{KEY|SHIFT}} activate the {{KEY|Constrain}} mode (move along an axis vector only)
* {{KEY|Ctl}} activate the {{KEY|SNAP}} mode (cursor will snap on specific points)
* {{KEY|Alt}} activate the {{KEY|ALT}}


* To change the initial focus of the task panel to the {{MenuCommand|Length}} input box: {{MenuCommand|Edit → Preferences... → Draft → General → Set focus on Length instead of X coordinate}}. Note that you must move the pointer in the [[3D_view|3D view]] for the change to take effect.
=== Moving along a specific axis ===
* To reselect the base objects after copying objects: {{MenuCommand|Edit → Preferences... → Draft → General → Select base objects after copying}}.


==Scripting==
In order to move along a specific axis, you must first select a working plane containing this axis (see the [[Draft_SelectPlane|selecting working plane]] page for more information).


See also: [https://freecad.github.io/SourceDoc/ Autogenerated API documentation] and [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]].
After selecting the first point to move, start to move roughly in the axis direction and hold the {{KEY|SHIFT}} key. FreeCAD will automatically find which axis you are trying to follow and stick to this axis.


To move objects use the {{incode|move}} method of the Draft module.
(This tool is especially powerful if you want to align a point to another one, regarding to an axis only).


{{Code|code=
More on constrain move [[Draft_Constrain|here]]
moved_list = move(objectslist, vector, copy=False)
}}


* {{incode|objectslist}} contains the objects to be moved. It is either a single object or a list of objects.
=== Snapping ===
* {{incode|vector}} is the displacement.
* If {{incode|copy}} is {{incode|True}} copies are created instead of moving the original objects.
* {{incode|moved_list}} is returned with the original moved objects, or with the new copies. It is either a single object or a list of objects, depending on {{incode|objectslist}}.


Example:
If you have a point that you want to directly match on a solid, you can use snapping see the [[Draft_Snap|snapping]] page on how to activate the snap. Select the first point (using snap or not), and then hover to the second point until you see it highlighted.


{{Code|code=
By default the snapping mode is activated, but you may have it deactivated in the preferences (see preceding section), in that case, you will have to hold the Snapping key {{KEY|Ctrl}} by default.
import FreeCAD as App
import Draft


doc = App.newDocument()
=== Alt Mode ===


polygon1 = Draft.make_polygon(5, radius=1000)
Alt mode allows you to copy and object instead of moving it only.
polygon2 = Draft.make_polygon(3, radius=500)
polygon3 = Draft.make_polygon(6, radius=220)


Draft.move(polygon1, App.Vector(500, 500, 0))
==Options==
Draft.move(polygon1, App.Vector(500, 500, 0))
Draft.move(polygon2, App.Vector(1000, -1000, 0))
Draft.move(polygon3, App.Vector(-500, -500, 0))


list1 = [polygon1, polygon2, polygon3]
* Press {{KEY|X}}, {{KEY|Y}} or {{KEY|Z}} after a point to constrain the next point on the given axis.
* To enter coordinates manually, simply enter the numbers, then press {{KEY|ENTER}} between each X, Y and Z component.
* Press {{KEY|R}} or click the checkbox to check/uncheck the {{KEY|'''Relative'''}} button. If relative mode is on, the coordinates of the next point are relative to the last one. If not, they are absolute, taken from the (0,0,0) origin point.
* Press {{KEY|T}} or click the checkbox to check/uncheck the {{KEY|'''Continue'''}} button. If continue mode is on, the Move tool will restart after you finish or close it, allowing you to move or copy the objects another time without pressing the Move button again.
* Pressing {{KEY|ALT}} or {{KEY|C}} or clicking the {{KEY|'''Copy'''}} button will make a copy of the objects, instead of moving them. If you keep {{KEY|ALT}} pressed after clicking the second point, you will be able to place more copies, until you release the {{KEY|ALT}} key.
* Press {{KEY|CTRL}} while drawing to force [[Draft_Snap|snapping]] your point to the nearest snap location, independently of the distance.
* Press {{KEY|SHIFT}} while drawing to [[Draft_Constrain|constrain]] your next point horizontally or vertically in relation to the last one.
* Press {{KEY|ESC}} or the {{KEY|'''Cancel'''}} button to abort the current command.


vector = App.Vector(-2000, -2000, 0)
==Scripting==
list2 = Draft.move(list1, vector, copy=True)
list3 = Draft.move(list1, -2*vector, copy=True)


doc.recompute()
The Move tool can by used in [[macros]] and from the python console by using the following function:

{{Code|code=
move (FreeCAD.Object or list, Vector, [copymode])
}}
}}


* Moves the given object or the objects contained in the given list in the direction and distance indicated by the given vector.
* If copymode is True, the actual objects are not moved, but copies are created instead. Returns the object(s) (or their copies if copymode was True)
* A list of the moved object (or the copies) is returned


{{Docnav
Example:
|[[Draft_AnnotationStyleEditor|AnnotationStyleEditor]]
|[[Draft_Rotate|Rotate]]
|[[Draft_Workbench|Draft]]
|IconL=Draft_AnnotationStyleEditor.svg
|IconR=Draft_Rotate.svg
|IconC=Workbench_Draft.svg
}}


{{Draft Tools navi{{#translation:}}}}
{{Code|code=
{{Userdocnavi{{#translation:}}}}
import FreeCAD,Draft
Draft.move(FreeCAD.ActiveDocument.ActiveObject,FreeCAD.Vector(2,2,0))
}}
==Limitations==
* When moving (or changing Placement of) a document object (eg: Pad, Revolution, etc) which is based on a Sketch (from Sketcher/Part Design), you must move the original sketch. If you move the derived object, it will just go back to the position defined by the sketch.
<languages/>

Latest revision as of 04:58, 9 January 2024

Draft Move

Menu location
Modification → Move
Workbenches
Draft, Arch
Default shortcut
M V
Introduced in version
0.7
See also
Draft SubelementHighlight

Description

The Draft Move command moves or copies selected objects from one point to another. In subelement mode the command moves selected points and edges, or copies selected edges, of Draft Lines and Draft Wires.

The command can be used on 2D objects created with the Draft Workbench or Sketcher Workbench, but also on many 3D objects such as those created with the Part Workbench, PartDesign Workbench or Arch Workbench.

Moving an object from one point to another

Usage

See also: Draft Snap and Draft Constrain.

  1. Optionally select one or more objects, or one or more subelements of Draft Lines or Draft Wires.
  2. There are several ways to invoke the command:
    • Press the Move button.
    • Select the Modification → Move option from the menu.
    • Use the keyboard shortcut: M then V.
  3. If you have not yet selected an object: select an object in the 3D view.
  4. The Move task panel opens. See Options for more information.
  5. If subelements have been selected: check the Modify subelements checkbox to switch on subelement mode.
  6. Pick the first point, the base point, in the 3D view, or type coordinates and press the Enter point button.
  7. Pick the second point, the target point, in the 3D view, or type coordinates and press the Enter point button.

Options

The single character keyboard shortcuts available in the task panel can be changed. See Draft Preferences. The shortcuts mentioned here are the default shortcuts (for version 0.22).

  • To manually enter coordinates enter the X, Y and Z component, and press Enter after each. Or you can press the Enter point button when you have the desired values. It is advisable to move the pointer out of the 3D view before entering coordinates.
  • To use polar coordinates enter a value for the Length and a value for the Angle, and press Enter after each.
  • Check the Angle checkbox to constrain the pointer to the specified angle.
  • Press L to change the focus from the X input box to the Length input box and back. Depending on the input box that receives the focus the Angle checkbox is checked or unchecked.
  • Press R or click the Relative checkbox to toggle relative mode. If relative mode is on, the coordinates of the second point are relative to the first point, else they are relative to the coordinate system origin.
  • Press G or click the Global checkbox to toggle global mode. If global mode is on, coordinates are relative to the global coordinate system, else they are relative to the working plane coordinate system. introduced in version 0.20
  • Press N or click the Continue checkbox to toggle continue mode. If continue mode is on, the command will restart after finishing. This mode really only makes sense if copy mode is switched on. Depending on the Select base objects after copying preference, either the original objects are selected for the next command call or the copies that were created last. See Preferences.
  • Press C or click the Copy checkbox to toggle copy mode. If copy mode is on, the command will create moved copies instead of moving the original objects.
  • Press B or click the Modify subelements checkbox to toggle subelement mode. If subelement mode is on, the command will use the selected subelements instead of the whole objects. The subelements must belong to Draft Lines or Draft Wires.
  • If copy mode and subelement mode are both on, and edges of Draft Wires are selected, new wires will be created from those edges.
  • Holding down Alt after picking the base point will also toggle copy mode. While Alt is held down multiple target points can be picked. Release Alt to finish the command and see the created copies.
  • Press S to switch Draft snapping on or off.
  • Press Esc or the Close button to abort the command.

Notes

  • An Object that is attached cannot be moved with the Draft Move command. To move it either its DataSupport object has to be moved, or its DataAttachment Offset has to be changed.

Preferences

See also: Preferences Editor and Draft Preferences.

  • To change the initial focus of the task panel to the Length input box: Edit → Preferences... → Draft → General → Set focus on Length instead of X coordinate. Note that you must move the pointer in the 3D view for the change to take effect.
  • To reselect the base objects after copying objects: Edit → Preferences... → Draft → General → Select base objects after copying.

Scripting

See also: Autogenerated API documentation and FreeCAD Scripting Basics.

To move objects use the move method of the Draft module.

moved_list = move(objectslist, vector, copy=False)
  • objectslist contains the objects to be moved. It is either a single object or a list of objects.
  • vector is the displacement.
  • If copy is True copies are created instead of moving the original objects.
  • moved_list is returned with the original moved objects, or with the new copies. It is either a single object or a list of objects, depending on objectslist.

Example:

import FreeCAD as App
import Draft

doc = App.newDocument()

polygon1 = Draft.make_polygon(5, radius=1000)
polygon2 = Draft.make_polygon(3, radius=500)
polygon3 = Draft.make_polygon(6, radius=220)

Draft.move(polygon1, App.Vector(500, 500, 0))
Draft.move(polygon1, App.Vector(500, 500, 0))
Draft.move(polygon2, App.Vector(1000, -1000, 0))
Draft.move(polygon3, App.Vector(-500, -500, 0))

list1 = [polygon1, polygon2, polygon3]

vector = App.Vector(-2000, -2000, 0)
list2 = Draft.move(list1, vector, copy=True)
list3 = Draft.move(list1, -2*vector, copy=True)

doc.recompute()