Sketcher Réfraction
|
|
| Emplacement du menu |
|---|
| Esquisse → Contraintes → Réfraction |
| Ateliers |
| Sketcher |
| Raccourci par défaut |
| K W |
| Introduit dans la version |
| 0.15 |
| Voir aussi |
| Aucun |
Description
L'outil Sketcher Réfraction contraint deux lignes à suivre la loi de réfraction de la lumière lorsqu'elle pénètre à travers une interface où deux matériaux ayant des indices de réfraction différents se rencontrent. Voir Loi de Snell.
Loi de Snell
Utilisation
La séquence des clics est indiquée par des flèches jaunes avec des nombres, n1 et n2 indiquent où les indices de réfraction se trouvent.
- Préparez deux lignes pour représenter un faisceau de lumière et une arête pour servir d'interface. Les lignes doivent être situées de part et d'autre de l'interface. L'interface peut être une ligne, un arc, un cercle ou un conique
- Sélectionnez une extrémité de la première ligne, une extrémité de la deuxième ligne et l'arête de l'interface. Notez l'ordre de sélection des extrémités.
- Il y a plusieurs façons de lancer l'outil :
- La fenêtre de dialogue Rapport d'indice de réfraction s'ouvre.
- Saisissez le Rapport n2/n1, où n2 correspond au milieu où se trouve la deuxième ligne sélectionnée et n1 correspond au milieu de la première ligne.
- Une contrainte de la loi de Snell est ajoutée. Si nécessaire, les extrémités sont rendues coïncidentes et contraintes sur l'interface. Ces contraintes supplémentaires sont appelées contraintes d'aide.
Remarques
- La contrainte de la loi de Snell applique l'équation de la loi simple n1*sin(theta1) = n2*sin(theta2). Elle a besoin que les extrémités des lignes coïncident et soient sur l'interface par d'autres contraintes, sinon le comportement n'est pas défini. Les contraintes d'aide nécessaires sont ajoutées automatiquement en fonction des coordonnées actuelles des éléments.
- En Python, les contraintes d'aide doivent être ajoutées manuellement (voir Script).
- Ces contraintes peuvent être temporairement supprimées et les extrémités déplacées, ce qui peut être utile si l'on veut construire un rayon réfléchi ou des rayons de biréfringence.
- Contrairement à la réalité, les indices de réfraction sont associés aux rayons de lumière, mais pas en fonction des côtés de la frontière. Ceci est utile pour émuler la biréfringence, construire des trajectoires de différentes longueurs d'onde dues à la réfraction, et construire facilement l'angle d'apparition de la réflexion interne totale.
- Les deux rayons peuvent se trouver du même côté de l'interface, satisfaisant ainsi à l'équation de contrainte. Il s'agit d'un non-sens physique, sauf si le rapport n2/n1 est de 1,0, auquel cas la contrainte émule une réflexion.
- Les arcs de cercle et les ellipses sont également acceptés comme des rayons. Mais c'est également un non-sens physique.
Script
Les contraintes peuvent être créées à partir de macros et de la console Python en utilisant la fonction suivante:
Sketch.addConstraint(Sketcher.Constraint('SnellsLaw',line1,pointpos1,line2,pointpos2,interface,n2byn1))
où:
Sketchest un objet d'esquisseline1etpointpos1sont deux entiers identifiant l'extrémité de la ligne dans le milieu avec un indice de réfraction de n1.line1est l'index de la ligne dans l'esquisse (la valeur, retournée par Sketch.addGeometry), etpointpos1doit être 1 pour le point de départ et 2 pour le point final.line2etpointpos2sont les index spécifiant le point final de la seconde ligne (dans le support n2)interfaceest l'index spécifiant la ligne indiquant la position de l'interface entre le support n1 et le support n2n2byn1est un nombre à virgule flottante égal au rapport des indices de réfraction n2/n1
La page Sketcher Scripts explique les valeurs qui peuvent être utilisées pour line1, pointpos1, line2, pointpos2 et interface et contient d'autres exemples sur la façon de créer des contraintes à partir de scripts Python.
Exemple :
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()
- Général : Créer une esquisse, Modifier une esquisse, Ancrer une esquisse, Réorienter une esquisse, Valider une esquisse, Fusionner des esquisses, Esquisse miroir, Quitter l'esquisse, Vue de l'esquisse, Vue en coupe, Arrêt de l'opération, Grille, Aimantation, Ordre d'affichage
- Géometries : Point, Polyligne, Ligne, Arc par centre, Arc par 3 Points, Arc d'ellipse, Arc d'hyberbole, Arc de parabole, Cercle par centre, Cercle par 3 points, Ellipse par centre, Ellipse par 3 points, Rectangle, Rectangle centré, Rectangle arrondi, Triangle équilatéral, Carré, Pentagone, Hexagone, Heptagone, Octogone, Polygone régulier, Contour oblong, Contour oblong en arc, B-spline, B-spline périodique, B-spline par des nœuds, B-spline périodique par des nœuds, Géométrie de construction
- Contraintes :
- Contraintes de dimension : dimensionnel, horizontale, verticale, de distance, de rayon/diamètre, de rayon, de diamètre, angulaire, fixage
- Contraintes géometriques : de coïncidence unifiée, de coïncidence, point sur objet, horizontale/verticale, horizontale, verticale, parallèle, perpendiculaire, de tangence, d'égalité, de symétrie, de blocage, de réfraction
- Outils de contraintes : Contraintes pilotantes, Activer les contraintes
- Outils d'esquisse : Congé, Chanfrein, Ajuster, Diviser, Prolonger, Projection, Intersection, Copie carbone, Sélectionner l'origine, Axe horizontal, Axe vertical, Déplacer/dupliquer, Pivoter/dupliquer, Mise à l'échelle, Décaler, Symétriser, Supprimer l'alignement des axes, Supprimer toute la géométrie, Supprimer toutes les contraintes, Copier, Couper, Coller
- Outils des B-Spline : Convertir en B-splines, Augmenter le degré, Diminuer le degré, Augmenter la multiplicité d'un nœud, Diminuer la multiplicité, Insérer un nœud, Joindre des courbes
- Aides visuelles : Degrés de liberté non contraints, Contraintes associées, Éléments associés aux contraintes, Contraintes redondantes, Contraintes conflictuelles, Cercle auxiliaire, Degré des B-splines, Polygone de contrôle des B-splines, Peigne de courbure des B-splines, Multiplicité des nœuds des B-splines, Poids des points de contrôle des B-splines, Géométrie interne, Basculer l'espace virtuel
- Additionnel : Fenêtre de dialogue, Préférences, Scripts
- Démarrer avec FreeCAD
- Installation : Téléchargements, Windows, Linux, Mac, Logiciels supplémentaires, Docker, AppImage, Ubuntu Snap
- Bases : À propos de FreeCAD, Interface, Navigation par la souris, Méthodes de sélection, Objet name, Préférences, Ateliers, Structure du document, Propriétés, Contribuer à FreeCAD, Faire un don
- Aide : Tutoriels, Tutoriels vidéo
- Ateliers : Std Base, Assembly, BIM, CAM, Draft, FEM, Inspection, Material, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test