Sketcher ConstrainSnellsLaw/fr: Difference between revisions
(Created page with "{{Userdocnavi/fr}}") |
No edit summary |
||
(77 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> |
<languages/> |
||
{{Docnav/fr |
{{Docnav/fr |
||
|[[ |
|[[Sketcher_ConstrainBlock/fr|Contrainte de blocage]] |
||
|[[Sketcher_ToggleDrivingConstraint/fr|Contraintes pilotantes]] |
|||
|[[Sketcher_ConstrainInternalAlignment/fr|Contrainte d'alignement interne Sketcher]] |
|||
|[[Sketcher_Workbench/fr|Atelier Sketcher]] |
|[[Sketcher_Workbench/fr|Atelier Sketcher]] |
||
|IconL= |
|IconL=Sketcher_ConstrainBlock.svg |
||
|IconR=Sketcher_ToggleDrivingConstraint.svg |
|||
|IconC=Workbench_Sketcher.svg |
|IconC=Workbench_Sketcher.svg |
||
}} |
}} |
||
{{GuiCommand/fr |
{{GuiCommand/fr |
||
|Name=Sketcher ConstrainSnellsLaw |
|||
|Name=Constraint SnellsLaw |
|||
|Name/fr=Contrainte de réfraction |
|Name/fr=Sketcher Contrainte de réfraction |
||
|MenuLocation= |
|MenuLocation=Esquisse → Contraintes d'esquisse → Contrainte de réfraction (Loi de Snell) |
||
|Workbenches=[[ |
|Workbenches=[[Sketcher_Workbench/fr|Sketcher]] |
||
|Shortcut={{KEY|K}} {{KEY|W}} |
|||
|Version=0.15 |
|Version=0.15 |
||
}} |
}} |
||
==Description== |
==Description== |
||
⚫ | |||
[[Image: Snells law2 witheq.svg|thumb|left|200px|Snell's law]] |
|||
{{clear}} |
|||
⚫ | L'outil [[Image:Sketcher_ConstrainSnellsLaw.svg|24px]] [[Sketcher_ConstrainSnellsLaw/fr|Sketcher Contrainte de 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 [http://fr.wikipedia.org/wiki/Loi_de_Snell_Descartes Loi de Snell]. |
||
⚫ | |||
[[Image: Sketcher SnellsLaw Example1.png|thumb|none|500px|La séquence de clics est indiqué par des flèches jaunes avec des numéros. n1, n2 sont labelisées sur cette photo uniquement pour montrer où sont les indices de réfraction.]] |
|||
[[Image:Snells_law2_witheq.svg|x400px]] |
|||
* Vous aurez besoin de deux lignes qui vont suivre un faisceau de lumière, et une courbe pour agir comme une interface. Les lignes doivent être sur des côtés différents de l'interface. |
|||
{{Caption|Loi de Snell}} |
|||
* Sélectionnez l'extrémité d'une ligne, un point d'extrémité d'une autre ligne, et le bord de l'interface. L'interface peut être une ligne, un cercle / arc, ellipse / arc d'ellipse. Notez l'ordre dans lequel vous avez sélectionné les paramètres. |
|||
* Appelez la contrainte. Une boîte de dialogue apparaît pour demander un rapport d'indices de réfraction n2 / n1. n2 correspond au milieu où la ligne du deuxième critère sélectionné réside, n1 est pour la première ligne. |
|||
* Les critères d'évaluation seront mis en coïncidence (si nécessaire), contraint à l'interface (si nécessaire), et la loi de Snell deviendront contraint. |
|||
<span id="Usage"></span> |
|||
Notez que plusieurs contraintes [[Sketcher helper constraint/fr|Sketcher Aide pour contraindre]] seront ajoutées intelligemment (point sur objet, coïncident). Ils peuvent être supprimés s'ils causent une redondance ou ajoutés manuellement s'ils n'ont pas été ajoutés automatiquement. Pour la contrainte de la loi de Snell, les extrémités des lignes doivent coïncider et reposer sur l'interface, sinon le comportement n'est pas défini. |
|||
⚫ | |||
[[Image:Sketcher_SnellsLaw_Example1.png|500px]] |
|||
En utilisant l'outil [[Sketcher_CreatePolyline/fr|Polyligne d'esquisse Sketcher]] [[Image: Sketcher_CreatePolyline.png|24px]], il est possible d'accélérer le tracé des rayons de lumière. Dans ce cas, il est possible de sélectionner deux extrémités coïncidentes par sélection de boîte. |
|||
{{Caption|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 [[Sketcher_CreateLine/fr|ligne]], un [[Sketcher_CompCreateArc/fr|arc]], un [[Sketcher_CompCreateCircle/fr|cercle]] ou un [[Sketcher_CompCreateConic/fr|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 : |
|||
#* Sélectionnez l'outil {{MenuCommand|Esquisse → Contraintes de l'esquisse → [[Image:Sketcher_ConstrainSnellsLaw.svg|16px]] Contrainte de réfraction (loi de Snell)}} du menu. |
|||
#* Utilisez le raccourci clavier : {{KEY|K}} puis {{KEY|W}}. |
|||
# La boîte de dialogue {{Commande de menu|Rapport d'indice de réfraction}} s'ouvre. |
|||
# Saisissez le {{MenuCommand|Rapport n2/n1}}, où {{MenuCommand|n2}} correspond au milieu où se trouve la deuxième ligne sélectionnée et {{MenuCommand|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 [[Sketcher_ConstrainCoincident/fr|coïncidentes]] et contraintes [[Sketcher_ConstrainPointOnObject/fr|sur l'interface]]. Ces contraintes supplémentaires sont appelées [[Sketcher_helper_constraint/fr|contraintes d'aide]]. |
|||
<span id="Notes"></span> |
|||
==Remarques== |
==Remarques== |
||
⚫ | * La contrainte |
||
⚫ | |||
⚫ | |||
⚫ | * Contrairement à la réalité, les indices de réfraction sont associés |
||
⚫ | |||
⚫ | |||
⚫ | * 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. |
||
⚫ | |||
⚫ | |||
⚫ | * 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. |
||
⚫ | |||
⚫ | |||
<span id="Scripting"></span> |
|||
==Script== |
==Script== |
||
Les contraintes peuvent être créées à partir de [[macros]] et de la console |
Les contraintes peuvent être créées à partir de [[Macros/fr|macros]] et de la console [[Python/fr|Python]] en utilisant la fonction suivante: |
||
{{Code|code= |
{{Code|code= |
||
Sketch.addConstraint(Sketcher.Constraint('SnellsLaw',line1,pointpos1,line2,pointpos2,interface,n2byn1)) |
Sketch.addConstraint(Sketcher.Constraint('SnellsLaw',line1,pointpos1,line2,pointpos2,interface,n2byn1)) |
||
}} |
}} |
||
où: |
où: |
||
: |
:* {{incode|Sketch}} est un objet d'esquisse |
||
: |
:* {{incode|line1}} et {{incode|pointpos1}} sont deux entiers identifiant l'extrémité de la ligne dans le milieu avec un indice de réfraction de ''n1''. {{incode|line1}} est l'index de la ligne dans l'esquisse (la valeur, retournée par Sketch.addGeometry), et {{incode|pointpos1}} doit être 1 pour le point de départ et 2 pour le point final. |
||
: |
:* {{incode|line2}} et {{incode|pointpos2}} sont les index spécifiant le point final de la seconde ligne (dans le support ''n2'') |
||
:* {{incode|interface}} est l'index spécifiant la ligne indiquant la position de l'interface entre le support ''n1'' et le support ''n2'' |
|||
: |
:* {{incode|n2byn1}} est un nombre à virgule flottante égal au rapport des indices de réfraction ''n2/n1'' |
||
La page [[Sketcher_scripting/fr|Sketcher Scripts]] explique les valeurs qui peuvent être utilisées pour {{incode|line1}}, {{incode|pointpos1}}, {{incode|line2}}, {{incode|pointpos2}} et {{incode|interface}} et contient d'autres exemples sur la façon de créer des contraintes à partir de scripts Python. |
|||
⚫ | |||
⚫ | |||
{{Code|code= |
{{Code|code= |
||
import Sketcher |
import Sketcher |
||
Line 61: | Line 78: | ||
StartPoint = 1 |
StartPoint = 1 |
||
EndPoint = 2 |
EndPoint = 2 |
||
MiddlePoint = 3 |
|||
f = App.activeDocument().addObject("Sketcher::SketchObject","Sketch") |
f = App.activeDocument().addObject("Sketcher::SketchObject","Sketch") |
||
Line 79: | Line 95: | ||
}} |
}} |
||
==Version== |
|||
La contrainte a été introduit en FreeCAD v0.15.4387 |
|||
{{Docnav/fr |
{{Docnav/fr |
||
|[[ |
|[[Sketcher_ConstrainBlock/fr|Contrainte de blocage]] |
||
|[[Sketcher_ToggleDrivingConstraint/fr|Contraintes pilotantes]] |
|||
|[[Sketcher_ConstrainInternalAlignment/fr|Contrainte d'alignement interne Sketcher]] |
|||
|[[Sketcher_Workbench/fr|Atelier Sketcher]] |
|[[Sketcher_Workbench/fr|Atelier Sketcher]] |
||
|IconL= |
|IconL=Sketcher_ConstrainBlock.svg |
||
|IconR=Sketcher_ToggleDrivingConstraint.svg |
|||
|IconC=Workbench_Sketcher.svg |
|IconC=Workbench_Sketcher.svg |
||
}} |
}} |
||
{{Sketcher_Tools_navi{{#translation:}}}} |
|||
{{Sketcher Tools navi/fr}} |
|||
⚫ | |||
⚫ | |||
{{clear}} |
Latest revision as of 00:33, 10 May 2024
Sketcher Contrainte de réfraction |
Emplacement du menu |
---|
Esquisse → Contraintes d'esquisse → Contrainte de réfraction (Loi de Snell) |
Ateliers |
Sketcher |
Raccourci par défaut |
K W |
Introduit dans la version |
0.15 |
Voir aussi |
Aucun |
Description
L'outil Sketcher Contrainte de 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 boîte de dialogue Template:Commande de menu 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ù:
Sketch
est un objet d'esquisseline1
etpointpos1
sont deux entiers identifiant l'extrémité de la ligne dans le milieu avec un indice de réfraction de n1.line1
est l'index de la ligne dans l'esquisse (la valeur, retournée par Sketch.addGeometry), etpointpos1
doit être 1 pour le point de départ et 2 pour le point final.line2
etpointpos2
sont les index spécifiant le point final de la seconde ligne (dans le support n2)interface
est l'index spécifiant la ligne indiquant la position de l'interface entre le support n1 et le support n2n2byn1
est 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 l'esquisse, Esquisse sur une face, Réorienter l'esquisse, Valider l'esquisse, Fusionner les esquisses, Esquisse miroir, Quitter l'esquisse, Vue de l'esquisse, Vue de section, Grille, Aimantation, Ordre de rendu, Arrêt de l'opération
- Géométries : Point, Ligne, Arc, Arc par 3 points, Cercle, Cercle par 3 points, Ellipse par son centre, Ellipse par 3 points, Arc d'ellipse, Arc d'hyperbole, Arc de parabole, B-spline simple, B-spline périodique, B-spline par des nœuds, B-spline périodique par des nœuds, Polyligne, Rectangle, Rectangle centré, Rectangle arrondi, Triangle, Carré, Pentagone, Hexagone, Heptagone, Octogone, Polygone régulier, Contour oblong, Congé, Congé avec contrainte, Ajuster, Prolonger, Diviser, Géométrie externe, Copie carbone, Géométrie de construction
- Contraintes :
- Contraintes geometriques : Coïncidence, Point sur objet, Vertical, Horizontal, Parallèle, Perpendiculaire, Tangente, Égalité, Symétrie, Blocage
- Contraintes de dimension : Fixe, Distance horizontale, Distance verticale, Dimensionnelle, Rayon ou poids, Diamètre, Rayon automatique, Angle, Contrainte de réfraction
- Outils de contraintes : Contraintes pilotantes, Activation des contraintes
- Outils : Degrés de liberté non contraints, Contraintes associées, Éléments associés aux contraintes, Contraintes redondantes, Contraintes conflictuelles, Géométrie interne, Origine, Axe horizontal, Axe vertical, Symétrie, Clone, Copie, Déplacer, Réseau rectangulaire, Supprimer l'alignement des axes, Supprimer tous les éléments de géométrie, Supprimer toutes les contraintes
- Outils B-spline : Degré de la B-spline, Polygone de contrôle de la B-spline, Peigne de courbure, Multiplicité des nœuds, Poids des points de contrôle, Convertir une géométrie en B-spline, Augmenter le degré, Diminuer le degré, Augmenter la multiplicité des nœuds, Diminuer la multiplicité des nœuds, Insérer un nœud, Joindre des courbes
- Espace virtuel : Espace virtuel
- 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, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test