Sketcher ConstrainCoincident/de

Beschreibung
Erstellen einer deckungsgleichen Zwangsbedingung für das ausgewählte Element

Dieses Zwangsbedingungswerkzeug 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 Zwangsbedingungswerkzeug 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 erwähnt, benötigt dieses Werkzeug zwei Argumente - beide sind Punkte.
 * 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) Wenn Du zwei Punkte markiert hast, klickst Du mit der linken Maustaste auf die 'PunktaufPunkt' [[Image:Constraint_PointOnPoint.png|32px]] Zwangsbedingung, werden die beiden Punkte deckungsgleich und durch einen einzigen Punkt ersetzt.

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

Allgemeine Skriptsteuerung
Die Zwangsbedingung kann aus Makros und aus der Python Konsole mit dem folgenden Befehl erstellt werden:

wo :
 * Skizze ist ein Skizzenobjekt.
 * LinieFixiert ist die Nummer der Zeile, die sich durch die Anwendung der Zwangsbedingung nicht bewegt.
 * PunktderfixiertenLinie ist die Nummer des Scheitelpunktes der Linie fixiertenLinie, der die Bedingung erfüllen muss.
 * LinieBewegt ist die Nummer der Zeile, die sich durch Anwendung der Zwangsbedingung bewegt.
 * PunktderbewegtenLinie ist die Nummer der Zeile LineMoving, die die Zwangsbedingung erfüllen muss.

Das Hauptproblem bei der Verwendung dieser Funktion ist die korrekte Identifizierung der Zeilennummer und der Scheitelpunktnummer 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 Zeile
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 Eckpunkte einer Linie können nur den Wert 1 oder 2 haben. (Frag mich nicht, warum die Nummerierung der Knoten nicht bei 0 beginnt....) 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.



blauer Text = Nummerierung der Linie, schwarzer Text = Nummerierung der Eckpunkte

Der Befehl

ergibt das folgende Ergebnis:



Der Befehl ergibt das folgende Ergebnis: