Sketcher ConstrainCoincident/de: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
No edit summary
Line 71: Line 71:
===Identifizieren der Nummerierung der Eckpunkte einer Linie===
===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.
<div class="mw-translate-fuzzy">
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.
</div>


[[File:PartDesignConstraintPointOnPointScriptingFigure3.jpg|600px]]
[[File:PartDesignConstraintPointOnPointScriptingFigure3.jpg|600px]]

Revision as of 12:02, 18 October 2020

Skizzierer BeschränkeDeckungsgleich

Menüeintrag
Skizze → Skizzen Beschränkungen → Beschränke Deckungsgleich
Arbeitsbereich
Skizzierer
Standardtastenkürzel
C
Eingeführt in Version
-
Siehe auch
Beschränke Gesperrt, Beschränke Punkt auf Objekt

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.

  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 Template:MenuCommand/de) 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:

Ergebnis: bewirkt der Befehl, dass die beiden Punkte deckungsgleich werden und durch einen einzigen Punkt ersetzt werden.

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

Skripten

Allgemeines Skripten

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

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

wo :

  • Skizze ist ein Skizzenobjekt.
  • LinieFixiert ist die Nummer der Zeile, die sich durch die Anwendung der Beschränkung nicht bewegt.
  • PunktderfixiertenLinie ist die Nummer des Knotens der Linie fixiertenLinie, der die Bedingung erfüllen muss.
  • LinieBewegt ist die Nummer der Zeile, die sich durch Anwendung der Beschränkung bewegt.
  • PunktderbewegtenLinie 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.

blauer Text: Nummerierung der Linie, schwarzer Text: Nummerierung der Knoten

Der Befehl Sketch.addConstraint(Sketcher.Constraint('Coincident',1,2,2,1)) ergibt folgendes Ergebnis:

Der Befehl Sketch.addConstraint(Sketcher.Constraint('Coincident',0,2,2,2)) ergibt folgendes Ergebnis: