Sketcher ConstrainSnellsLaw/de: Difference between revisions
No edit summary |
No edit summary |
||
Line 69: | Line 69: | ||
:* {{Incode|n2byn1}} eine Gleitkommazahl ist, die dem Verhältnis der Brechungsindizes ''n2''/''n1'' entspricht. |
:* {{Incode|n2byn1}} eine Gleitkommazahl ist, die dem Verhältnis der Brechungsindizes ''n2''/''n1'' entspricht. |
||
Die [[Sketcher_scripting/de| |
Die Seite [[Sketcher_scripting/de|Sketcher Skripterstellung]] erklärt die Werte, die für {{incode|line1}}, {{incode|pointpos1}}, {{incode|line2}}, {{incode|pointpos2}} und {{incode|interface}} verwendet werden können und enthält weitere Beispiele, wie man Randbedingungen mit Python-Skripten erstellt. |
||
Beispiel: |
Beispiel: |
Latest revision as of 22:44, 1 June 2024
|
Menüeintrag |
---|
Sketch → Skizzen-Beschränkungen → Lichtbrechung (nach Snellius-Gesetz) festlegen |
Arbeitsbereich |
Sketcher |
Standardtastenkürzel |
K W |
Eingeführt in Version |
0.15 |
Siehe auch |
Keiner |
Beschreibung
Das Werkzeug Sketcher ConstrainSnellsLaw Legt zwei Linien so fest, dass sie der Lichtbrechung entsprechen, die beim Passieren einer Grenzfläche auftritt, an der zwei Werkstoffe mit unterschiedlichen Brechungsindizes aufeinander treffen. Siehe Snelliussches_Brechungsgesetz.
Snelliussches Gesetz
Anwendung
Die Reihenfolge der Klicks wird durch gelbe Pfeile mit Zahlen angezeigt. n1, n2 zeigen, wo sich die Brechungsindizes befinden.
- Zwei Linien, die einen Lichtstrahl darstellen, und eine Kante, die eine Grenzschicht darstellt, vorbereiten. Die Linien sollten sich auf unterschiedlichen Seiten der Grenzschichtkante befinden, die eine Linie, ein Kreisbogen, ein Kreis oder ein Kegelschnitt sein kann.
- Einen Endpunkt der ersten Linie, einen Endpunkt der zweiten Linie und die Grenzschichtkante auswählen. Bei der Auswahl ist die Reihenfolge zu beachten.
- Es gibt mehrere Möglichkeiten, das Werkzeug aufzurufen:
- Der Dialog Brechungsindex-Verhältnis wird geöffnet.
- einen Wert für Verhältnis n2/n1 eingeben, wobei n2 für das Medium gilt, in dem sich die zweite ausgewählte Linie befindet, und n1 für das Medium der ersten Linie gilt.
- Eine Randbedingung Lichtbrechung (nach Snellius-Gesetz) festlegen wird hinzugefügt. Wenn nötig, werden die Endpunkte mit den Randbedingungen Koinzident festlegen und Punkt auf Objekt festlegen mit der Grenzschichtkante verbunden. Diese zusätzlichen Randbedingungen werden Helferrandbedingungen genannt.
Hinweise
- Die eigentliche Randbedingung nach Snellius-Gesetz verwendet die einfache Gleichung n1 * sin(theta1) = n2 * sin(theta2). Es erfordert, dass die Linienenden durch andere Randbedingungen deckungsgleich (koinzident) und auf der Grenzlinie liegend festgelegt werden, andernfalls ist ihr Verhalten nicht definiert. Die notwendigen Helferrandbedingungen werden automatisch auf Grundlage der aktuellen Koordinaten der Elemente hinzugefügt.
- In Python müssen die Helferrandbedingungen manuell hinzugefügt werden (siehe Skripten).
- Diese Helferrandbedingungen können vorübergehend gelöscht und die Endpunkte auseinandergezogen werden, was nützlich sein kann, wenn man einen reflektierten Strahl oder einen Doppelbrechungsstrahl konstruieren möchte.
- Im Gegensatz zur Realität sind Brechungsindizes mit Lichtstrahlen verknüpft, aber nicht den Seiten der Grenze entsprechend. Dies ist nützlich, um die Doppelbrechung zu emulieren, Pfade verschiedener Wellenlängen aufgrund der Brechung zu konstruieren und den Winkel des Auftretens der Totalreflexion leicht zu konstruieren.
- Beide Strahlen können sich auf der gleichen Seite der Grenzfläche befinden und gleichzeitig die Gleichung der Randbedingung erfüllen. Dies ist physikalischer Unfug, es sei denn, das Verhältnis n2 / n1 ist 1,0; in diesem Fall emuliert die Randbedingung eine Reflexion.
- Kreis- und Ellipsenbögen werden auch als Strahlen akzeptiert. Aber auch dies ist physikalischer Unfug.
Skripten
Die Randbedingungen können in Makros und von der Python-Konsole aus mit dem folgenden Befehl erstellt werden:
Sketch.addConstraint(Sketcher.Constraint('SnellsLaw',line1,pointpos1,line2,pointpos2,interface,n2byn1))
wobei
Sketch
ein Skizzenobjekt ist.line1
undpointpos1
zwei ganze Zahlen sind, die den Endpunkt der Linie im Medium mit dem Brechungsindex von n1 identifizieren.line1
ist der Index der Linie in der Skizze (der Rückgabewert von Sketch.addGeometry), undpointpos1
sollte 1 für den Startpunkt und 2 für den Endpunkt sein.line2
undpointpos2
die Indizes sind, die den Endpunkt der zweiten Linie angeben (in Medium n2)interface
der Index der Linie ist, die die Position der Grenzfläche zwischen Medium n1 und Medium n2 darstellt.n2byn1
eine Gleitkommazahl ist, die dem Verhältnis der Brechungsindizes n2/n1 entspricht.
Die Seite Sketcher Skripterstellung erklärt die Werte, die für line1
, pointpos1
, line2
, pointpos2
und interface
verwendet werden können und enthält weitere Beispiele, wie man Randbedingungen mit Python-Skripten erstellt.
Beispiel:
import Sketcher
import Part
import FreeCAD
StartPoint = 1
EndPoint = 2
f = App.activeDocument().addObject("Sketcher::SketchObject","Sketch")
# add geometry to the sketch
icir = f.addGeometry(Part.Circle(App.Vector(-547.612366,227.479736,0),App.Vector(0,0,1),68.161979))
iline1 = f.addGeometry(Part.LineSegment(App.Vector(-667.331726,244.127090,0),App.Vector(-604.284241,269.275238,0)))
iline2 = f.addGeometry(Part.LineSegment(App.Vector(-604.284241,269.275238,0),App.Vector(-490.940491,256.878265,0)))
# add constraints
# helper constraints:
f.addConstraint(Sketcher.Constraint('Coincident',iline1,EndPoint,iline2,StartPoint))
f.addConstraint(Sketcher.Constraint('PointOnObject',iline1,EndPoint,icir))
# the Snell's law:
f.addConstraint(Sketcher.Constraint('SnellsLaw',iline1,EndPoint,iline2,StartPoint,icir,1.47))
App.ActiveDocument.recompute()
(FIXME)
- Die Werkzeuge: Skizze erstellen, Skizze bearbeiten, Skizze verlassen, Skizze anzeigen, View section, Skizze einer Fläche zuordnen..., Reorient sketch, Skizze überprüfen, Skizzen zusammenführen, Skizze spiegeln
- Skizzen-Geometrien: Punkt, Linie, Bögen erstellen, Bogen, Kreisbogen durch drei Punkte, Kreise erstellen, Kreis, Kreis durch drei Punkte, Kegelförmige Körper erstellen, Ellipse mit Mittelpunkt, Ellipse durch drei Punkte, Ellipsenbogen, Hyperbel erstellen, Parabel erstellen, B-splines erstellen, B-spline, Create periodic B-spline, Linienzug (Mehrpunktlinie), Rechteck, Reguläres Polygon erstellen, Dreieck, Quadrat, Fünfeck, Sechseck, Siebeneck, Achteck, Create Regular Polygon, Nut, Abrundung erstellen, Kante zuschneiden, Verlängern, Externe Geometrie, CarbonCopy, Konstruktionsmodus
- Skizzenbeschränkungen
- Geometrische Beschränkungen Koinzidenz erzwingen, Punkt auf Objekt festlegen, Vertikal, Horizontal, Parallel, Orthogonal, Tangente, Gleichheit, Symmetrisch, Constrain Block
- Dimensional constraints Sperren, Horizontaler Abstand, Vertikaler Abstand, Distanz festlegen, Radius festlegen, Winkel festlegen, Snell's Law, Umschalten auf steuernde Bemaßung,
- Sketcher tools Select solver DOFs, Close Shape, Connect Edges, Select Constraints, Select Origin, Select Vertical Axis, Select Horizontal Axis, Select Redundant Constraints, Select Conflicting Constraints, Select Elements Associated with constraints, Show/Hide internal geometry, Symmetry, Clone, Copy, Move, Rectangular Array, Delete All Geometry, Delete All Constraints
- Sketcher B-spline tools Show/Hide B-spline degree, Show/Hide B-spline control polygon, Show/Hide B-spline curvature comb, Show/Hide B-spline knot multiplicity, Convert Geometry to B-spline, Increase degree, Increase knot multiplicity, Decrease knot multiplicity
- Sketcher virtual space Switch Virtual Space
![](/images/thumb/9/94/User_hub.png/24px-User_hub.png)
- Erste Schritte
- Installation: Herunterladen, Windows, Linux, Mac, Zusätzlicher Komponenten, Docker, AppImage, Ubuntu Snap
- Grundlagen: Über FreeCAD, Graphische Oberfläche, Mausbedienung, Auswahlmethoden, Objektname, Programmeinstellungen, Arbeitsbereiche, Dokumentstruktur, Objekteigenschaften, Hilf FreeCAD, Spende
- Hilfe: Tutorien, Video Tutorien
- Arbeitsbereiche: Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework