Sketcher helper constraint/de: Difference between revisions

From FreeCAD Documentation
(Created page with "Hilfsbeschränkungen wurden in v0.15.4387 eingeführt.")
(Created page with "==Übersicht==")
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<languages/>

<span id="Overview"></span>
==Übersicht==

<div class="mw-translate-fuzzy">
==Überblick==
==Überblick==
[[Image:Sketcher helper constraint example1.png|thumb|500px|Beispiel einer Hilfsbeschränkung (Beschränkung5 - Punkt auf Kreis) für eine Tangentialbeschränkung (Beschränkung6; im Tangens über Punkt Modus). In diesem Fall wird nur eine Hilfsbeschränkung verwendet, da der Tangentenpunkt der Endpunkt des Ellipsenhauptdurchmessers ist, der von Natur aus auf der Ellipse liegt.]]
[[Image:Sketcher helper constraint example1.png|thumb|500px|Beispiel einer Hilfsbeschränkung (Beschränkung5 - Punkt auf Kreis) für eine Tangentialbeschränkung (Beschränkung6; im Tangens über Punkt Modus). In diesem Fall wird nur eine Hilfsbeschränkung verwendet, da der Tangentenpunkt der Endpunkt des Ellipsenhauptdurchmessers ist, der von Natur aus auf der Ellipse liegt.]]
</div>


<div class="mw-translate-fuzzy">
Die Hilfsbeschränkung ist eine reguläre Skizzenbeschränkung, die als Teil einer komplexeren Beschränkung benötigt wird, aber in der Benutzeroberfläche offengelegt wird, um den Umgang mit Redundanz zu erleichtern. Für die Beschränkung [[Sketcher ConstrainSnellsLaw/de|Snellius Gesetz]] müssen beispielsweise die beiden Linien, die Lichtstrahlen darstellen, verbunden werden ([[ Sketcher ConstrainCoincident /de|Deckungsgleiche Beschränkung]]), und die Verbindung muss auf der Benutzeroberfläche liegen ([[Sketcher ConstrainPointOnObject/de|Punjkt Auf Objekt Beschränkung]]).
Die Hilfsbeschränkung ist eine reguläre Skizzenbeschränkung, die als Teil einer komplexeren Beschränkung benötigt wird, aber in der Benutzeroberfläche offengelegt wird, um den Umgang mit Redundanz zu erleichtern. Für die Beschränkung [[Sketcher_ConstrainSnellsLaw/de|Snellius Gesetz]] müssen beispielsweise die beiden Linien, die Lichtstrahlen darstellen, verbunden werden ([[Sketcher_ConstrainCoincident/de|Deckungsgleiche Beschränkung]]), und die Verbindung muss auf der Benutzeroberfläche liegen ([[Sketcher_ConstrainPointOnObject/de|Punkt Auf Objekt Beschränkung]]).
</div>


Hilfsbeschränkungen werden automatisch hinzugefügt, wenn sie benötigt werden. Die Entscheidung, ob sie benötigt werden, wird derzeit durch Auswertung des Hilfs Beschränkungs Fehlers für den aktuellen Zustand der Geometrie getroffen (dies kann sich in zukünftigen Versionen ändern). Wenn der Fehler klein genug ist, wird die Beschränkung als unnötig angesehen und nicht hinzugefügt. In einigen Fällen kann diese Logik zu Fehlern führen (die Beschränkung kann versehentlich erfüllt werden, was leicht passieren kann, wenn Skizzierer Gitterfang eingeschaltet ist).
Hilfsbeschränkungen werden automatisch hinzugefügt, wenn sie benötigt werden. Die Entscheidung, ob sie benötigt werden, wird derzeit durch Auswertung des Hilfs Beschränkungs Fehlers für den aktuellen Zustand der Geometrie getroffen (dies kann sich in zukünftigen Versionen ändern). Wenn der Fehler klein genug ist, wird die Beschränkung als unnötig angesehen und nicht hinzugefügt. In einigen Fällen kann diese Logik zu Fehlern führen (die Beschränkung kann versehentlich erfüllt werden, was leicht passieren kann, wenn Skizzierer Gitterfang eingeschaltet ist).
Line 9: Line 17:
Wenn dies geschieht (eine Hilfsbeschränkung fehlt, und die erforderliche Bedingung wird andernfalls nicht erfüllt), wird die komplexe Beschränkung gebrochen. Sie wird etwas tun, aber das tatsächliche Verhalten ist undefiniert. Eine solche kaputte Beschränkung kann durch manuelles Hinzufügen der fehlenden Hilfsbeschränkung repariert werden.
Wenn dies geschieht (eine Hilfsbeschränkung fehlt, und die erforderliche Bedingung wird andernfalls nicht erfüllt), wird die komplexe Beschränkung gebrochen. Sie wird etwas tun, aber das tatsächliche Verhalten ist undefiniert. Eine solche kaputte Beschränkung kann durch manuelles Hinzufügen der fehlenden Hilfsbeschränkung repariert werden.


<div class="mw-translate-fuzzy">
Helper constraints are currently required for:
Zurzeit sind Hilfsbeschränkungen erforderlich für:
* [[Sketcher ConstrainTangent|Constraint Tangent]] (in tangent-via-point mode; two point-on-object constraints are needed)
* [[Sketcher_ConstrainTangent/de|Beschränkungstangente]] (im Tangente über Punkt Modus; zwei Punkt auf Objekt-Beschränkungen sind erforderlich).
* [[Sketcher ConstrainPerpendicular|Constraint Perpendicular]] (in perpendicular-via-point mode; two point-on-object constraints are needed)
* [[Sketcher_ConstrainPerpendicular/de|Beschränkung Rechtwinklig]] (im Senkrecht über Punkt Modus; zwei Punkt auf Objekt Beschränkungen sind erforderlich)
* [[Sketcher ConstrainAngle|Constraint Angle]] (in angle-via-point mode; two point-on-object constraints are needed)
* [[Sketcher_ConstrainAngle/de|Beschränkung Winkel]] (im Winkel über Punkt Modus; zwei Punkt auf Objekt Beschränkungen sind erforderlich)
* [[Sketcher ConstrainSnellsLaw|Constraint SnellsLaw]] (coincident constraint and point-on-object constraint are needed)
* [[Sketcher_ConstrainSnellsLaw/de|Beschränkung SnelliusGesetz]] (Koinzidenzbeschränkung und Punkt auf Objekt Beschränkung sind erforderlich)
</div>


==Scripting==
==Scripting==

When constraints requiring helpers are added from Python, no helper constraints are automatically added. One can replicate the automatic decision-making of the UI commands in a script by testing the following functions, specifically added for the purpose and used in the UI routines:
<div class="mw-translate-fuzzy">
==Skripten==
Wenn Beschränkungen, die Helfer erfordern, aus Python hinzugefügt werden, werden keine Helferbeschränkungen automatisch hinzugefügt. Man kann die automatische Entscheidungsfindung der UI Befehle in einem Skript nachbilden, indem man die folgenden Funktionen testet, die speziell für diesen Zweck hinzugefügt und in den UI Routinen verwendet werden:
</div>

{{Code|code=
{{Code|code=
Sketch.isPointOnCurve(icurve,x,y)
Sketch.isPointOnCurve(icurve,x,y)
}}
}}

isPointOnCurve tests if a virtual point, given by sketch coordinates <tt>x,y</tt> (float values), happens to satisfy a virtual point-on-object constraint - i.e. lies on curve specified by curve index <tt>icurve</tt>. Returns True if the point is on curve, and False if it doesn't.
<div class="mw-translate-fuzzy">
istPunktAufKurve prüft, ob ein virtueller Punkt, der durch Skizzenkoordinaten <tt>x,y</tt> (Fließkommawerte) gegeben ist, zufällig eine virtuelle Punkt auf Objekt Beschränkung erfüllt - d.h. auf einer Kurve liegt, die durch den Kurvenindex <tt>Kurve</tt> festgelegt ist. Gibt True zurück, wenn der Punkt auf der Kurve liegt, und False, wenn er nicht auf der Kurve liegt.
</div>


{{Code|code=
{{Code|code=
Sketch.calculateConstraintError(iconstr)
Sketch.calculateConstraintError(iconstr)
}}
}}
calculateConstraintError evaluates an error function of a constraint specified by its index <tt>iconstr</tt> in the sketch. If there is only one error function in the constraint, the return value is the signed return value of the error function. If there is more than one error function associated with the constraint (i.e. the constraint removes more than one degree of freedom), the return value is the RMS of all the error functions (always positive).


<div class="mw-translate-fuzzy">
==Version==
rechneBeschränkungFehler wertet eine Fehlerfunktion einer Beschränkung aus, die durch ihren Index <tt>iconstr</tt> in der Skizze angegeben ist. Wenn es nur eine Fehlerfunktion in der Beschränkung gibt, ist der Rückgabewert der vorzeichenbehaftete Rückgabewert der Fehlerfunktion. Wenn der Beschränkung mehr als eine Fehlerfunktion zugeordnet ist (d.h. die Beschränkung entfernt mehr als einen Freiheitsgrad), ist der Rückgabewert der Effektivwert aller Fehlerfunktionen (immer positiv).
</div>


Hilfsbeschränkungen wurden in v0.15.4387 eingeführt.


{{Sketcher Tools navi{{#translation:}}}}
{{Sketcher_Tools_navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{clear}}

Latest revision as of 16:20, 1 May 2024

Übersicht

Überblick

Beispiel einer Hilfsbeschränkung (Beschränkung5 - Punkt auf Kreis) für eine Tangentialbeschränkung (Beschränkung6; im Tangens über Punkt Modus). In diesem Fall wird nur eine Hilfsbeschränkung verwendet, da der Tangentenpunkt der Endpunkt des Ellipsenhauptdurchmessers ist, der von Natur aus auf der Ellipse liegt.

Die Hilfsbeschränkung ist eine reguläre Skizzenbeschränkung, die als Teil einer komplexeren Beschränkung benötigt wird, aber in der Benutzeroberfläche offengelegt wird, um den Umgang mit Redundanz zu erleichtern. Für die Beschränkung Snellius Gesetz müssen beispielsweise die beiden Linien, die Lichtstrahlen darstellen, verbunden werden (Deckungsgleiche Beschränkung), und die Verbindung muss auf der Benutzeroberfläche liegen (Punkt Auf Objekt Beschränkung).

Hilfsbeschränkungen werden automatisch hinzugefügt, wenn sie benötigt werden. Die Entscheidung, ob sie benötigt werden, wird derzeit durch Auswertung des Hilfs Beschränkungs Fehlers für den aktuellen Zustand der Geometrie getroffen (dies kann sich in zukünftigen Versionen ändern). Wenn der Fehler klein genug ist, wird die Beschränkung als unnötig angesehen und nicht hinzugefügt. In einigen Fällen kann diese Logik zu Fehlern führen (die Beschränkung kann versehentlich erfüllt werden, was leicht passieren kann, wenn Skizzierer Gitterfang eingeschaltet ist).

Wenn dies geschieht (eine Hilfsbeschränkung fehlt, und die erforderliche Bedingung wird andernfalls nicht erfüllt), wird die komplexe Beschränkung gebrochen. Sie wird etwas tun, aber das tatsächliche Verhalten ist undefiniert. Eine solche kaputte Beschränkung kann durch manuelles Hinzufügen der fehlenden Hilfsbeschränkung repariert werden.

Zurzeit sind Hilfsbeschränkungen erforderlich für:

Scripting

Skripten

Wenn Beschränkungen, die Helfer erfordern, aus Python hinzugefügt werden, werden keine Helferbeschränkungen automatisch hinzugefügt. Man kann die automatische Entscheidungsfindung der UI Befehle in einem Skript nachbilden, indem man die folgenden Funktionen testet, die speziell für diesen Zweck hinzugefügt und in den UI Routinen verwendet werden:

Sketch.isPointOnCurve(icurve,x,y)

istPunktAufKurve prüft, ob ein virtueller Punkt, der durch Skizzenkoordinaten x,y (Fließkommawerte) gegeben ist, zufällig eine virtuelle Punkt auf Objekt Beschränkung erfüllt - d.h. auf einer Kurve liegt, die durch den Kurvenindex Kurve festgelegt ist. Gibt True zurück, wenn der Punkt auf der Kurve liegt, und False, wenn er nicht auf der Kurve liegt.

Sketch.calculateConstraintError(iconstr)

rechneBeschränkungFehler wertet eine Fehlerfunktion einer Beschränkung aus, die durch ihren Index iconstr in der Skizze angegeben ist. Wenn es nur eine Fehlerfunktion in der Beschränkung gibt, ist der Rückgabewert der vorzeichenbehaftete Rückgabewert der Fehlerfunktion. Wenn der Beschränkung mehr als eine Fehlerfunktion zugeordnet ist (d.h. die Beschränkung entfernt mehr als einen Freiheitsgrad), ist der Rückgabewert der Effektivwert aller Fehlerfunktionen (immer positiv).