Sketcher ConstrainCoincident: Difference between revisions

From FreeCAD Documentation
mNo edit summary
No edit summary
(35 intermediate revisions by 7 users not shown)
Line 1: Line 1:
<languages/>
<translate>
<translate>
<!--T:37-->
{{Docnav
|[[Sketcher_ToggleConstruction|Construction Mode]]
|[[Sketcher_ConstrainPointOnObject|Point On Object]]
|[[Sketcher_Workbench|Sketcher]]
|IconL=Sketcher_ToggleConstruction.svg
|IconR=Constraint_PointOnObject.svg
|IconC=Workbench_Sketcher.svg
}}

<!--T:1-->
<!--T:1-->
{{GuiCommand
{{GuiCommand|Name=Constraint PointOnPoint|Workbenches=[[Sketcher Workbench|Sketcher]], [[PartDesign Workbench|PartDesign]]|MenuLocation=Sketch → Sketcher constraints → Constrain coincident|SeeAlso=[[Constraint Lock|Constraint Lock]], [[Constraint PointOnObject|Constraint Point onto Object]]}}
|Name=Sketcher ConstrainCoincident
|MenuLocation=Sketch → Sketcher constraints → Constrain coincident
|Workbenches=[[Sketcher_Workbench|Sketcher]]
|Shortcut={{KEY|C}}
|SeeAlso=[[Sketcher_ConstrainLock|Sketcher Constrain Lock]], [[Sketcher ConstrainPointOnObject|Sketcher Constrain Point onto Object]]
}}

==Description== <!--T:40-->


==Description== <!--T:2-->
<!--T:2-->
Create a coincident constraint on the selected item
Create a coincident constraint on the selected item


Line 12: Line 31:
In practical terms this constraint tool is useful when there is a break in a profile for example - where two lines end near each other and need to be joined - a coincident constraint on their end-points will close the gap.
In practical terms this constraint tool is useful when there is a break in a profile for example - where two lines end near each other and need to be joined - a coincident constraint on their end-points will close the gap.


==How to Use== <!--T:3-->
==Usage== <!--T:41-->

<!--T:3-->
As stated above, this tool takes two arguments - both are points.
As stated above, this tool takes two arguments - both are points.
#Firstly it is necessary to highlight two distinct points. (Note this will not work if, for example, you attempt to select the start and end point of the same line).
# First, it is necessary to highlight two distinct points. ({{Emphasis|Note:}} this will not work if, for example, you attempt to select the start and end point of the same line).
#Highlighting of a drawing item is achieved by moving the mouse over the item and clicking the left-mouse-button.
# Highlighting of a drawing item is achieved by moving the mouse over the item and clicking the left-mouse-button.
#A highlighted item will change colour to green.
# A highlighted item will change its color to green. (This color can be customized in {{MenuCommand|Editing → Preference → Display → Colors → Selection}})
#Subsequent items can be highlighted by repeating the above procedure(s) NOTE: There is no-need to hold-down any special key like Ctrl to achieve multiple item selection in a drawing.
# Subsequent items can be highlighted by repeating the above procedure(s). {{Emphasis|Note:}} it's unnecessary to hold-down any special key like {{KEY|Ctrl}} to achieve multiple item selection in a drawing.
#Once you have two points highlighted, left-clicking on the 'PointOnPoint' [[Image:Constraint_PointOnPoint.png|32px]] constraint will cause the two points to become ''coincident'' and be replaced by a single point.
# Once you have two points highlighted, you can invoke the command using several methods:
#* Pressing on the {{Button|[[File:Sketcher_ConstrainCoincident.svg|16px]] [[Sketcher_ConstrainCoincident|Coinstrain coincident]]}} constraint button in the toolbar.
#* Using the {{KEY|C}} keyboard shortcut.
#* Using the {{MenuCommand|Sketch → Sketcher constraints → Constrain coincident}} entry in the top menu.
{{Emphasis|Result:}} the command will cause the two points to become ''coincident'' and be replaced by a single point.


<!--T:7-->
<!--T:7-->
NOTE: In order to make two points coincident, FreeCAD must necessarily move one, or both, of the original points.
{{Emphasis|Note:}} In order to make two points coincident, FreeCAD must out of necessity move one (or both) of the original points.


==Scripting== <!--T:8-->
==Scripting== <!--T:8-->


===General scripting===
===General scripting=== <!--T:14-->
The constraint can be created from macros and from the python console by using the following command:
The constraint can be created from macros and from the python console by using the following command:
</translate>
</translate>
Line 32: Line 57:
<!--T:9-->
<!--T:9-->
where :
where :
*Sketch is a sketch object
* {{incode|Sketch}} is a sketch object
*LineFixed is the number of the line, that will not move by applying the constraint
* {{incode|LineFixed}} is the number of the line, that will not move by applying the constraint
*PointOfLineFixed is the number of the vertex of the line LineFixed that has to fulfilled the constraint
* {{incode|PointOfLineFixed}} is the number of the vertex of the line {{incode|LineFixed}} that has to fulfilled the constraint
*LineMoving is the number of the line, that will move by applying the constraint
* {{incode|LineMoving}} is the number of the line, that will move by applying the constraint
*PointOfLineMoving is the number of the line LineMoving, that has to fulfilled the constraint
* {{incode|PointOfLineMoving}} is the number of the line {{incode|LineMoving}}, that has to fulfilled the constraint


<!--T:10-->
<!--T:10-->
Line 44: Line 69:
The next paragraph will explain you how to identify the numbering of a line and of a vertex of a line.
The next paragraph will explain you how to identify the numbering of a line and of a vertex of a line.


===Identifying the numbering of a line===
===Identifying the numbering of a line=== <!--T:15-->


<!--T:12-->
<!--T:12-->
I have drawn three lines as shown in the following figure.
I have drawn three lines as shown in the following figure.


<!--T:16-->
[[File:PartDesignConstraintPointOnPointScriptingFigure1.jpg|600px]]
[[File:PartDesignConstraintPointOnPointScriptingFigure1.jpg|600px]]


<!--T:17-->
By moving the cursor of the mouse above the line you can see the line number at the bottom left of the FreeCAD windows, see next figure.
By moving the cursor of the mouse above the line you can see the line number at the bottom left of the FreeCAD windows, see next figure.


<!--T:18-->
[[File:PartDesignConstraintPointOnPointScriptingFigure2.jpg|600px]]
[[File:PartDesignConstraintPointOnPointScriptingFigure2.jpg|600px]]


<!--T:19-->
Unfortunately the numbering displayed on the FreeCAD windows start from 1 whereas the numbering of the line used to script start from 0: this means that you have to retrieve one each time you want to refer to a line.
Unfortunately the numbering displayed on the FreeCAD windows start from 1 whereas the numbering of the line used to script start from 0: this means that you have to retrieve one each time you want to refer to a line.


===Identifying the numbering of the vertices of a line===
===Identifying the numbering of the vertices of a line=== <!--T:20-->


<!--T:21-->
The vertices of one line can only have the value 1 or 2. (Don’t ask me, why the vertices numbering does not start from 0 :-) ) The vertices are numbered according to their order of creation. To find out the order of their creation (If you have a lot of lines, you cannot remember which vertex you have created first), you just have to move the cursor of your mouse above the two vertices of one line, see following figure.
The vertices of one line can only have the value 1 or 2. (Note that the vertices numbering does not start from 0, this is because with regards to Constraints 0= Edge hence not a vertex, 1 = starting point vertex, 2 = end point vertex, 3 = midpoint which is not a vertex) The vertices are numbered according to their order of creation. To find out the order of their creation (If you have a lot of lines, you cannot remember which vertex you have created first), you just have to move the cursor of your mouse above the two vertices of one line, see following figure.


<!--T:22-->
[[File:PartDesignConstraintPointOnPointScriptingFigure3.jpg|600px]]
[[File:PartDesignConstraintPointOnPointScriptingFigure3.jpg|600px]]


<!--T:23-->
If you read e.g. 4 and 5, it means that the vertex 4 will be referenced by using the number 1 in the script command and the vertex 5 will be referenced by using the number 2 in the script command. Etc.
If you read e.g. 4 and 5, it means that the vertex 4 will be referenced by using the number 1 in the script command and the vertex 5 will be referenced by using the number 2 in the script command. Etc.


=== Example ===
=== Example === <!--T:24-->


<!--T:25-->
Let us take the previous example of the three lines. The subsequent figure indicates the numbering of each line and their vertices according to the convention for scripting.
Let us take the previous example of the three lines. The subsequent figure indicates the numbering of each line and their vertices according to the convention for scripting.


<!--T:26-->
[[File:PartDesignConstraintPointOnPointScriptingFigure3Bis.jpg|600px| blue text = numbering of line, black text = numbering of vertices]]
[[Image:PartDesignConstraintPointOnPointScriptingFigure3Bis.jpg|600px]]
{{Caption|<b>blue text:</b> numbering of line, <b>black text:</b> numbering of vertices}}


<!--T:27-->
The command
The command {{incode|Sketch.addConstraint(Sketcher.Constraint('Coincident',1,2,2,1))}} yields following result:
</translate>
{{Code|code= Sketch.addConstraint(Sketcher.Constraint('Coincident',1,2,2,1)) }}
<translate>
yields following result:


<!--T:29-->
[[File:PartDesignConstraintPointOnPointScriptingFigure4.jpg|600px]]
[[Image:PartDesignConstraintPointOnPointScriptingFigure4.jpg|600px|center]]


<!--T:30-->
The command
The command {{incode|Sketch.addConstraint(Sketcher.Constraint('Coincident',0,2,2,2))}} yields following result:
</translate>
{{Code|code= Sketch.addConstraint(Sketcher.Constraint('Coincident',0,2,2,2)) }}
<translate>
yields following result:
</translate>


<!--T:38-->
[[File:PartDesignConstraintPointOnPointScriptingFigure5.jpg|600px]]
[[Image:PartDesignConstraintPointOnPointScriptingFigure5.jpg|600px|center]]


<!--T:33-->
{{Docnav
|[[Sketcher_ToggleConstruction|Construction Mode]]
|[[Sketcher_ConstrainPointOnObject|Point On Object]]
|[[Sketcher_Workbench|Sketcher]]
|IconL=Sketcher_ToggleConstruction.svg
|IconR=Constraint_PointOnObject.svg
|IconC=Workbench_Sketcher.svg
}}


</translate>
{{Sketcher Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{clear}}
{{clear}}
<languages/>

Revision as of 19:48, 2 December 2020

Sketcher ConstrainCoincident

Menu location
Sketch → Sketcher constraints → Constrain coincident
Workbenches
Sketcher
Default shortcut
C
Introduced in version
-
See also
Sketcher Constrain Lock, Sketcher Constrain Point onto Object

Description

Create a coincident constraint on the selected item

This constraint tool takes two points as its argument and serves to make the two points coincident. (Meaning to make them as-one-point).

In practical terms this constraint tool is useful when there is a break in a profile for example - where two lines end near each other and need to be joined - a coincident constraint on their end-points will close the gap.

Usage

As stated above, this tool takes two arguments - both are points.

  1. First, it is necessary to highlight two distinct points. (Note: this will not work if, for example, you attempt to select the start and end point of the same line).
  2. Highlighting of a drawing item is achieved by moving the mouse over the item and clicking the left-mouse-button.
  3. A highlighted item will change its color to green. (This color can be customized in Editing → Preference → Display → Colors → Selection)
  4. Subsequent items can be highlighted by repeating the above procedure(s). Note: it's unnecessary to hold-down any special key like Ctrl to achieve multiple item selection in a drawing.
  5. Once you have two points highlighted, you can invoke the command using several methods:
    • Pressing on the Coinstrain coincident constraint button in the toolbar.
    • Using the C keyboard shortcut.
    • Using the Sketch → Sketcher constraints → Constrain coincident entry in the top menu.

Result: the command will cause the two points to become coincident and be replaced by a single point.

Note: In order to make two points coincident, FreeCAD must out of necessity move one (or both) of the original points.

Scripting

General scripting

The constraint can be created from macros and from the python console by using the following command:

Sketch.addConstraint(Sketcher.Constraint('Coincident',LineFixed,PointOfLineFixed,LineMoving,PointOfLineMoving))

where :

  • Sketch is a sketch object
  • LineFixed is the number of the line, that will not move by applying the constraint
  • PointOfLineFixed is the number of the vertex of the line LineFixed that has to fulfilled the constraint
  • LineMoving is the number of the line, that will move by applying the constraint
  • PointOfLineMoving is the number of the line LineMoving, that has to fulfilled the constraint

The main issue by using this function is to identify correctly the line number and the vertex number of the lines you want to process.

The next paragraph will explain you how to identify the numbering of a line and of a vertex of a line.

Identifying the numbering of a line

I have drawn three lines as shown in the following figure.

By moving the cursor of the mouse above the line you can see the line number at the bottom left of the FreeCAD windows, see next figure.

Unfortunately the numbering displayed on the FreeCAD windows start from 1 whereas the numbering of the line used to script start from 0: this means that you have to retrieve one each time you want to refer to a line.

Identifying the numbering of the vertices of a line

The vertices of one line can only have the value 1 or 2. (Note that the vertices numbering does not start from 0, this is because with regards to Constraints 0= Edge hence not a vertex, 1 = starting point vertex, 2 = end point vertex, 3 = midpoint which is not a vertex) The vertices are numbered according to their order of creation. To find out the order of their creation (If you have a lot of lines, you cannot remember which vertex you have created first), you just have to move the cursor of your mouse above the two vertices of one line, see following figure.

If you read e.g. 4 and 5, it means that the vertex 4 will be referenced by using the number 1 in the script command and the vertex 5 will be referenced by using the number 2 in the script command. Etc.

Example

Let us take the previous example of the three lines. The subsequent figure indicates the numbering of each line and their vertices according to the convention for scripting.

blue text: numbering of line, black text: numbering of vertices

The command Sketch.addConstraint(Sketcher.Constraint('Coincident',1,2,2,1)) yields following result:

The command Sketch.addConstraint(Sketcher.Constraint('Coincident',0,2,2,2)) yields following result: