Sketcher BrechungNachSnelliusFestlegen
Sketcher ConstrainSnellsLaw |
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 Beschränkung nach Snelliussches Brechungsgesetz erzwingt die einfachgesetzliche Gleichung n1*sin(theta1) = n2*sin(theta2). Es ist notwendig, dass die Linienenden durch andere Zwangsbeschränkungen zufällig und auf der Schnittfläche gemacht werden. Die notwendigen Hilfsbeschränkungen werden automatisch auf der Grundlage der aktuellen Koordinaten der Elemente hinzugefügt.
- Die Pythonroutine fügt die Hilfsbeschränkungen nicht hinzu. Diese müssen vom Skript manuell hinzugefügt werden (siehe Beispiel im Abschnitt Skripten).
- Diese Hilfsbeschränkungen können vorübergehend gelöscht und die Endpunkte auseinandergezogen werden, was nützlich sein kann, wenn man einen reflektierten Strahl oder Doppelbrechungsstrahl konstruieren möchte.
- Im Gegensatz zur Realität sind Brechungsindizes mit Lichtstrahlen verknüpft, aber nicht entsprechend der Grenzseiten. 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 erfüllen damit die Randbedingung. Dies ist physikalischer Unfug, es sei denn, das Verhältnis n2/n1 ist 1,0, in diesem Fall emuliert die Einschränkung eine Reflexion.
- Kreis- und Ellipsenbögen werden auch als Strahlen (physikalischer Unfug) akzeptiert.
Skripten
Die Beschränkungen können aus Makros und aus der Python Konsole durch folgende Funktion verwendet werden:
Sketch.addConstraint(Sketcher.Constraint('SnellsLaw',line1,pointpos1,line2,pointpos2,interface,n2byn1))
wobei:
Sketch
ist ein Skizzenobjektline1
undpointpos1
sind zwei ganze Zahlen, die den Endpunkt der Linie im Medium mit dem Brechungsindex von n1 identifizieren.line1
ist der Index der Linie in der Skizze (der Wert, der von Sketch.addGeometry zurückgegeben wird), undpointpos1
sollte 1 für Startpunkt und 2 für Endpunkt sein.line2
undpointpos2
sind die Indizes, die den Endpunkt der zweiten Zeile angeben (in Medium n2)interface
ist der Index, der die Linie angibt, die auf die Position des Interface zwischen Medium n1 und Medium n2 hinweistn2byn1
ist eine Gleitkommazahl, die dem Verhältnis der Brechungsindizes n2/n1 entspricht
Die Skizzierer Skripten-Seite erklärt die Werte, die für iline1
, iline2
, pointpos2
und interface
verwendet werden können und enthält weitere Beispiele, wie man Beschränkungen aus 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
- Erste Schritte
- Installation: Herunterladen, Windows, Linux, Mac, Zusätzliche Komponenten, Docker, AppImage, Ubuntu Snap
- Grundlagen: Über FreeCAD, Graphische Oberfläche, Mausbedienung, Auswahlmethoden, Objektname, Voreinstellungseditor, Arbeitsbereiche, Dokumentstruktur, Objekteigenschaften, FreeCAD unterstützen, Spenden
- Hilfe: Anleitungen, Videoanleitungen
- Arbeitsbereiche: Std Base, Arch, Assembly, BIM, CAM, Draft, FEM, Inspection, Material, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework