Sketcher ConstrainCoincident/de

Beschreibung
Erstelle eine deckungsgleichen Beschränkung für das ausgewählte Element

Dieses Beschränkungswerkzeug nimmt zwei Punkte als Argument und dient dazu, die beiden Punkte deckungsgleich zu machen. (Das bedeutet, sie wie einen Punkt zu setzen).

In der Praxis ist dieses Beschränkungswerkzeug nützlich, wenn es z.B. zu einem Bruch in einem Profil kommt - wenn zwei Linien nahe beieinander enden und verbunden werden müssen - wird eine deckungsgleiche Zwangsbedingung ihrer Endpunkte die Lücke schließen.

Anwendung
Wie bereits oben erwähnt, benötigt dieses Werkzeug zwei Argumente - beide sind Punkte. bewirkt der Befehl, dass die beiden Punkte deckungsgleich werden und durch einen einzigen Punkt ersetzt werden.
 * 1) Zunächst ist es notwendig, zwei verschiedene Punkte zu markieren. (Beachte, dass dies nicht funktioniert, wenn Du zum Beispiel versuchst, den Start- und Endpunkt der gleichen Linie auszuwählen.)
 * 2) Das Markieren eines Zeichnungselements erfolgt durch Bewegen der Maus über das Element und Anklicken der linken Maustaste.
 * 3) Ein markierter Eintrag ändert die Farbe in grün (Die Farbe kann mit ) bearbeitet werden.
 * 4) Nachfolgende Elemente können durch Wiederholung der obigen Prozedur(en) hervorgehoben werden HINWEIS: Es ist nicht erforderlich, eine spezielle Taste wie Strg gedrückt zu halten, um eine Mehrfachauswahl von Elementen in einer Zeichnung zu erreichen.
 * 5) Sobald du zwei Punkte markiert hast, kannst du den Befehl mit verschiedenen Methoden aufrufen:
 * 6) * Drücken auf die Beschränkungsschaltfläche in der Werkzeugleiste.
 * 7) * Verwendung der Tastenkombination.
 * 8) * Verwendung des Eintrags im oberen Menü.

Um zwei Punkte deckungsgleich zu machen, muss FreeCAD unbedingt einen oder beide der ursprünglichen Punkte verschieben.

Allgemeines Skripten
Die Beschränkung kann aus Makros und aus der Python Konsole mit dem folgenden Befehl erstellt werden:

wo :
 * ist ein Skizzenobjekt.
 * ist die Nummer der Zeile, die sich durch die Anwendung der Beschränkung nicht bewegt.
 * ist die Nummer des Knotens der Linie, der die Bedingung erfüllen muss.
 * ist die Nummer der Zeile, die sich durch Anwendung der Beschränkung bewegt.
 * ist die Nummer der Zeile LineMoving, die die Beschränkung erfüllen muss.

Das Hauptproblem bei der Verwendung dieser Funktion ist die korrekte Identifizierung der Zeilennummer und der Knotennummer der zu verarbeitenden Linien.

Der nächste Abschnitt erklärt Dir, wie Du die Nummerierung einer Linie und eines Scheitels einer Linie identifizieren kannst.

Identifizieren der Nummerierung einer Linie
Ich habe drei Linien gezeichnet, wie in der folgenden Abbildung dargestellt.



Durch Bewegen des Mauszeigers über die Linie siehst Du die Zeilennummer unten links in den FreeCAD Fenstern, siehe nächste Abbildung.



Leider beginnt die Nummerierung in den FreeCAD-Fenstern bei 1, während die Nummerierung der für das Skript verwendeten Zeile bei 0 beginnt: Dies bedeutet, dass Du jedes Mal eine abrufen musst, wenn Du auf eine Zeile verweisen möchtest.

Identifizieren der Nummerierung der Eckpunkte einer Linie
Die Knoten einer Linie können nur den Wert 1 oder 2 haben. (Beachte, dass die Nummerierung der Knoten nicht bei 0 beginnt, da in Bezug auf die Beschränkungen 0= Kante also kein Knoten ist, 1 = Anfangspunkt Knoten, 2 = Endpunkt Knoten, 3 = Mittelpunkt, der kein Knoten ist) Die Knoten sind entsprechend ihrer Reihenfolge der Erstellung nummeriert. Um die Reihenfolge ihrer Erstellung herauszufinden (Wenn Du viele Linien hast, kannst Du Dir nicht merken, welchen Knoten Du zuerst erstellt hast), musst Du nur den Mauszeiger über die beiden Knoten einer Linie bewegen, siehe folgende Abbildung.



Wenn Du z.B. 4 und 5 liest, bedeutet das, dass der Knoten 4 mit der Nummer 1 im Skriptbefehl und der Knoten 5 mit der Nummer 2 im Skriptbefehl referenziert wird. Usw.

Beispiel
Nehmen wir das vorherige Beispiel der drei Linien. Die folgende Abbildung zeigt die Nummerierung jeder Zeile und ihrer Eckpunkte gemäß der Konvention für Skriptsteuerung.



Der Befehl ergibt folgendes Ergebnis:



Der Befehl ergibt folgendes Ergebnis: