Sketcher ConstrainCoincident: Difference between revisions

From FreeCAD Documentation
(Marked this version for translation)
No edit summary
 
(97 intermediate revisions by 9 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{Page_in_progress}}
<translate>
<translate>

<!--T:37-->
<!--T:37-->
{{Docnav
{{Docnav|[[Sketcher_ToggleConstruction|Construction Mode]]|[[Sketcher ConstrainPointOnObject|Point On Object]]|[[Sketcher_Workbench|Sketcher]]|IconL=Sketcher_ToggleConstruction.png|IconC=Workbench_Sketcher.svg|IconR=Constraint_PointOnObject.png}}
|[[Sketcher_ConstrainCoincidentUnified|Coincident (unified)]]
|[[Sketcher_ConstrainPointOnObject|Point on object]]
|[[Sketcher_Workbench|Sketcher]]
|IconL=Sketcher_ConstrainCoincidentUnified.svg
|IconR=Constraint_PointOnObject.svg
|IconC=Workbench_Sketcher.svg
}}


<!--T:1-->
<!--T:1-->
{{GuiCommand
{{GuiCommand
|Name=Sketcher ConstrainCoincident
|Name=Sketcher ConstrainCoincident
|Icon=Constraint_PointOnPoint.svg
|Workbenches=[[Sketcher Workbench|Sketcher]]
|Shortcut={{KEY|C}}
|MenuLocation=Sketch → Sketcher constraints → Constrain coincident
|MenuLocation=Sketch → Sketcher constraints → Constrain coincident
|Workbenches=[[Sketcher_Workbench|Sketcher]]
|SeeAlso=[[Sketcher_ConstrainLock|Constrain Lock]], [[Sketcher ConstrainPointOnObject|Constrain Point onto Object]]
|Shortcut={{KEY|C}}
|SeeAlso=[[Sketcher_ConstrainCoincidentUnified|Sketcher ConstrainCoincidentUnified]], [[Sketcher_ConstrainPointOnObject|Sketcher ConstrainPointOnObject]]
}}
}}


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


<!--T:2-->
<!--T:47-->
The [[Image:Sketcher_ConstrainCoincident.svg|24px]] [[Sketcher_ConstrainCoincident|Sketcher ConstrainCoincident]] tool creates a coincident constraint between points, or ({{Version|0.21}}) a concentric constraint between circles, arcs and/or ellipses (by making their centers coincident).
Create a coincident constraint on the selected item


<!--T:5-->
<!--T:49-->
{{Version|0.22}}: This tool is replaced by the [[Sketcher_ConstrainCoincidentUnified|Sketcher ConstrainCoincidentUnified]] tool if the '''Unify Coincident and PointOnObject''' option is selected in the [[Sketcher_Preferences#General|Sketcher Preferences]].
This constraint tool takes two points as its argument and serves to make the two points ''coincident''. (Meaning to make them as-one-point).


<!--T:6-->
==Usage== <!--T:41-->
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.


See also: [[Sketcher_Workbench#Drawing_aids|Drawing aids]].
==Usage== <!--T:41-->


===[[Sketcher_Workbench#Continue_modes|Continue mode]]===
<!--T:3-->
As stated above, this tool takes two arguments - both are points.
# 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).
# 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 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 {{KEY|Ctrl}} to achieve multiple item selection in a drawing.
# Once you have two points highlighted, you can invoke the command using several methods:
#* Pressing on the {{Button|[[Image:Constraint_PointOnPoint.svg|24px]] [[Sketcher_ConstrainCoincident|PointOnPoint]]}} constraint button in the toolbar.
#* Using the {{KEY|C}} keyboard shortcut.
#* Using the {{MenuCommand|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.


<!--T:7-->
<!--T:48-->
# Make sure there is no selection.
'''Note:''' In order to make two points coincident, FreeCAD must out of necessity move one (or both) of the original points.
# There are several ways to invoke the tool:
#* Press the {{Button|[[Image:Sketcher_ConstrainCoincident.svg|16px]] [[Sketcher_ConstrainCoincident|Constrain coincident]]}} button.
#* Select the {{MenuCommand|Sketch → Sketcher constraints → [[Image:Sketcher_ConstrainCoincident.svg|16px]] Constrain coincident}} option from the menu.
#* Use the keyboard shortcut: {{KEY|C}}.
# The cursor changes to a cross with the tool icon.
# Do one of the following:
#* Select two points.
#* Select two edges of circles, arcs, ellipses or arcs of ellipses.
# A constraint is added.
# Optionally keep creating constraints.
# To finish, right-click or press {{KEY|Esc}}, or start another geometry or constraint creation tool.


===Run-once mode===
==Scripting== <!--T:8-->

# Do one of the following:
#* Select two or more points.
#* Select two or more edges of circles, arcs, ellipses or arcs of ellipses.
# Invoke the tool as explained above.
# Depending on the selection one or more constraints are added.

==Notes==

* {{Version|0.22}}: Points with Coincident constraints are marked with the '''Constraint symbols''' [[Sketcher_Preferences#Display|color]].

== Alternatives to Coincident constraint == <!--T:42-->

<!--T:43-->
Some combinations which are not possible with a coincident constraint can be emulated using other constraints:
* The [[File:Sketcher_ConstrainSymmetric.svg|16px]] [[Sketcher_ConstrainSymmetric|Symmetric constraint]] can be used to place a point on the midpoint of a straight line.
* A midpoint-to-midpoint placement of two straight lines can be achieved by creating a new [[File:Sketcher_CreatePoint.svg|16px]] [[Sketcher_CreatePoint|Point]] and using two [[File:Sketcher_ConstrainSymmetric.svg|16px]] [[Sketcher_ConstrainSymmetric|Symmetric constraints]] so that it lies on the midpoint of both lines.
* A vertex can be constrained to lie along an edge using a [[File:Sketcher_ConstrainPointOnObject.svg|16px]] [[Sketcher_ConstrainPointOnObject|Point on object]] constraint. Note that with this constraint, the point can lie anywhere on the full extension of a segment or curve (i.e. also before the start point or beyond the end point).
* A collinear placement of two straight lines can be obtained by applying a [[File:Sketcher_ConstrainTangent.svg|16px]] [[Sketcher_ConstrainTangent|Tangent constraint]] to them.

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

<!--T:44-->
The constraint can be created from [[Macros|macros]] and from the [[Python|Python]] console by using the following command:


===General scripting=== <!--T:14-->
The constraint can be created from macros and from the python console by using the following command:
</translate>
</translate>
{{Code|code=Sketch.addConstraint(Sketcher.Constraint('Coincident',LineFixed,PointOfLineFixed,LineMoving,PointOfLineMoving)) }}
{{Code|code=Sketch.addConstraint(Sketcher.Constraint('Coincident',LineFixed,PointOfLineFixed,LineMoving,PointOfLineMoving)) }}
<translate>
<translate>

<!--T:9-->
<!--T:9-->
where :
where :
* {{incode|Sketch}} is a sketch object
* {{incode|Sketch}} is a sketch object
* {{incode|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
* {{incode|PointOfLineFixed}} is the number of the vertex of the line {{incode|LineFixed}} that has to fulfilled the constraint
* {{incode|PointOfLineFixed}} indicates which vertex of {{incode|LineFixed}} has to fulfill the constraint
* {{incode|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
* {{incode|PointOfLineMoving}} is the number of the line {{incode|LineMoving}}, that has to fulfilled the constraint
* {{incode|PointOfLineMoving}} indicates which vertex of {{incode|LineMoving}} has to fulfill the constraint


<!--T:10-->
<!--T:45-->
As the names {{incode|LineFixed}} and {{incode|LineMoving}} indicate, if both constrained vertices are free to move in any direction, the first one (first to be selected in the Gui) will remain fixed and the other one will move. In the presence of existing constraints, however, both edges may move.
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.


<!--T:11-->
<!--T:46-->
The [[Sketcher_scripting|Sketcher scripting]] page explains the values which can be used for {{incode|LineFixed}}, {{incode|PointOfLineFixed}}, {{incode|LineMoving}} and {{incode|PointOfLineMoving}}, and contains further examples on how to create constraints from Python scripts.
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=== <!--T:15-->

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

<!--T:16-->
[[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.

<!--T:18-->
[[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.

===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.

<!--T:22-->
[[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.

=== 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.

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

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

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

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

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


<!--T:33-->
<!--T:33-->
{{Docnav
{{Docnav|[[Sketcher_ToggleConstruction|Construction Mode]]|[[Sketcher ConstrainPointOnObject|Point On Object]]|[[Sketcher_Workbench|Sketcher]]|IconL=Sketcher_ToggleConstruction.png|IconC=Workbench_Sketcher.svg|IconR=Constraint_PointOnObject.png}}
|[[Sketcher_ConstrainCoincidentUnified|Coincident (unified)]]
|[[Sketcher_ConstrainPointOnObject|Point on object]]
|[[Sketcher_Workbench|Sketcher]]
|IconL=Sketcher_ConstrainCoincidentUnified.svg
|IconR=Constraint_PointOnObject.svg
|IconC=Workbench_Sketcher.svg
}}


<!--T:39-->
{{clear}}
</translate>
</translate>
{{Sketcher_Tools_navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}

Latest revision as of 08:02, 19 April 2024

This documentation is a work in progress. Please don't mark it as translatable since it will change in the next hours and days.

Sketcher ConstrainCoincident

Menu location
Sketch → Sketcher constraints → Constrain coincident
Workbenches
Sketcher
Default shortcut
C
Introduced in version
-
See also
Sketcher ConstrainCoincidentUnified, Sketcher ConstrainPointOnObject

Description

The Sketcher ConstrainCoincident tool creates a coincident constraint between points, or (introduced in version 0.21) a concentric constraint between circles, arcs and/or ellipses (by making their centers coincident).

introduced in version 0.22: This tool is replaced by the Sketcher ConstrainCoincidentUnified tool if the Unify Coincident and PointOnObject option is selected in the Sketcher Preferences.

Usage

See also: Drawing aids.

Continue mode

  1. Make sure there is no selection.
  2. There are several ways to invoke the tool:
    • Press the Constrain coincident button.
    • Select the Sketch → Sketcher constraints → Constrain coincident option from the menu.
    • Use the keyboard shortcut: C.
  3. The cursor changes to a cross with the tool icon.
  4. Do one of the following:
    • Select two points.
    • Select two edges of circles, arcs, ellipses or arcs of ellipses.
  5. A constraint is added.
  6. Optionally keep creating constraints.
  7. To finish, right-click or press Esc, or start another geometry or constraint creation tool.

Run-once mode

  1. Do one of the following:
    • Select two or more points.
    • Select two or more edges of circles, arcs, ellipses or arcs of ellipses.
  2. Invoke the tool as explained above.
  3. Depending on the selection one or more constraints are added.

Notes

Alternatives to Coincident constraint

Some combinations which are not possible with a coincident constraint can be emulated using other constraints:

  • The Symmetric constraint can be used to place a point on the midpoint of a straight line.
  • A midpoint-to-midpoint placement of two straight lines can be achieved by creating a new Point and using two Symmetric constraints so that it lies on the midpoint of both lines.
  • A vertex can be constrained to lie along an edge using a Point on object constraint. Note that with this constraint, the point can lie anywhere on the full extension of a segment or curve (i.e. also before the start point or beyond the end point).
  • A collinear placement of two straight lines can be obtained by applying a Tangent constraint to them.

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 indicates which vertex of LineFixed has to fulfill the constraint
  • LineMoving is the number of the line, that will move by applying the constraint
  • PointOfLineMoving indicates which vertex of LineMoving has to fulfill the constraint

As the names LineFixed and LineMoving indicate, if both constrained vertices are free to move in any direction, the first one (first to be selected in the Gui) will remain fixed and the other one will move. In the presence of existing constraints, however, both edges may move.

The Sketcher scripting page explains the values which can be used for LineFixed, PointOfLineFixed, LineMoving and PointOfLineMoving, and contains further examples on how to create constraints from Python scripts.