122 lines
9.9 KiB
HTML
122 lines
9.9 KiB
HTML
<html><head><title>Constraint SnellsLaw/fr</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link type='text/css' href='wiki.css' rel='stylesheet'></head><body><h1>Constraint SnellsLaw/fr</h1></div>
|
|
|
|
<div id="mw-content-text" lang="fr" dir="ltr" class="mw-content-ltr"><hr/><div class="mw-parser-output"><table class="fcinfobox wikitable ct" >
|
|
<tr>
|
|
<td class="ctTitle">
|
|
<h3><span class="mw-headline" id="Contrainte_de_r.C3.A9fraction"><a href="https://www.freecadweb.org/wiki/index.php?title=File:Constraint_SnellsLaw.png" class="image"><img alt="Constraint SnellsLaw.png" src="32px-Constraint_SnellsLaw.png" width="32" height="32" srcset="/wiki/images/thumb/9/9e/Constraint_SnellsLaw.png/48px-Constraint_SnellsLaw.png 1.5x, /wiki/images/9/9e/Constraint_SnellsLaw.png 2x" /></a> Contrainte de réfraction</span></h3>
|
|
</td></tr>
|
|
<tr>
|
|
<th class="ctOdd">Emplacement du menu
|
|
</th></tr>
|
|
<tr>
|
|
<td class="ctEven">Sketch → Sketcher Contraintes → Contrainte de réfraction (Loi de Snell)
|
|
</td></tr>
|
|
<tr>
|
|
<th class="ctOdd">Ateliers
|
|
</th></tr>
|
|
<tr>
|
|
<td class="ctEven"><a href="Sketcher_Workbench.html" title="Sketcher Workbench">Sketcher</a>, <a href="PartDesign_Workbench.html" title="PartDesign Workbench">Conception de Pièces</a>
|
|
</td></tr>
|
|
<tr>
|
|
<th class="ctOdd">Raccourci par défaut
|
|
</th></tr>
|
|
<tr>
|
|
<td class="ctEven">Aucun
|
|
</td></tr>
|
|
<tr>
|
|
<th class="ctOdd">Voir aussi
|
|
</th></tr>
|
|
<tr>
|
|
<td class="ctEven">Aucun
|
|
</td></tr>
|
|
<tr>
|
|
<td class="ctToc"><br /><div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
|
|
<ul>
|
|
<li class="toclevel-1"><a href="#Contrainte_de_r.C3.A9fraction"><span class="tocnumber">1</span> <span class="toctext">Contrainte de réfraction</span></a></li>
|
|
<li class="toclevel-1 tocsection-1"><a href="#Description"><span class="tocnumber">2</span> <span class="toctext">Description</span></a></li>
|
|
<li class="toclevel-1 tocsection-2"><a href="#Utilisation"><span class="tocnumber">3</span> <span class="toctext">Utilisation</span></a></li>
|
|
<li class="toclevel-1 tocsection-3"><a href="#Remarques"><span class="tocnumber">4</span> <span class="toctext">Remarques</span></a></li>
|
|
<li class="toclevel-1 tocsection-4"><a href="#Script"><span class="tocnumber">5</span> <span class="toctext">Script</span></a></li>
|
|
<li class="toclevel-1 tocsection-5"><a href="#Version"><span class="tocnumber">6</span> <span class="toctext">Version</span></a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
</td></tr></table>
|
|
<p><br />
|
|
</p>
|
|
<h2><span class="mw-headline" id="Description">Description</span></h2>
|
|
<p>Contraint deux lignes à suivre la loi de la réfraction de la lumière qui pénètre à travers une interface, où deux matériaux de différents indices de réfraction se rencontrent. Voir [ <a rel="nofollow" class="external free" href="http://fr.wikipedia.org/wiki/Loi_de_Snell_Descartes">http://fr.wikipedia.org/wiki/Loi_de_Snell_Descartes</a> Loi de Snell] sur Wikipedia pour plus d'info.
|
|
</p>
|
|
<div class="thumb tleft"><div class="thumbinner" style="width:202px;"><a href="https://www.freecadweb.org/wiki/index.php?title=File:Snells_law2_witheq.svg" class="image"><img alt="" src="Snells_law2_witheq.svg" width="200" height="359" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="https://www.freecadweb.org/wiki/index.php?title=File:Snells_law2_witheq.svg" class="internal" title="Enlarge"></a></div>Snell's law</div></div></div>
|
|
<div style="clear:both"></div>
|
|
<p><br />
|
|
</p>
|
|
<h2><span class="mw-headline" id="Utilisation">Utilisation</span></h2>
|
|
<div class="thumb tnone"><div class="thumbinner" style="width:502px;"><a href="https://www.freecadweb.org/wiki/index.php?title=File:Sketcher_SnellsLaw_Example1.png" class="image"><img alt="" src="500px-Sketcher_SnellsLaw_Example1.png" width="500" height="218" class="thumbimage" srcset="/wiki/images/thumb/3/30/Sketcher_SnellsLaw_Example1.png/750px-Sketcher_SnellsLaw_Example1.png 1.5x, /wiki/images/thumb/3/30/Sketcher_SnellsLaw_Example1.png/1000px-Sketcher_SnellsLaw_Example1.png 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="https://www.freecadweb.org/wiki/index.php?title=File:Sketcher_SnellsLaw_Example1.png" class="internal" title="Enlarge"></a></div>La séquence de clics est indiqué par des flèches jaunes avec des numéros. n1, n2 sont labelisées sur cette photo pour montrer où sont les indices de réfraction</div></div></div>
|
|
<ul><li> 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. </li>
|
|
<li> 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.</li>
|
|
<li> 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. </li>
|
|
<li> 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. </li></ul>
|
|
<p>Notez qu'il ya plusieurs puces ajoutées de<a href="Sketcher_helper_constraint.html" title="Sketcher helper constraint"> contraintes auxiliaires</a> (point sur objet, coïncidant), et elles peuvent être supprimées si elles provoquent la redondance, ou ajoutés manuellement si elles n'ont pas été ajoutées automatiquement. Pour la contrainte de la loi actuelle de Snell, les extrémités des lignes doivent coïncider et se trouver sur l'interface, sinon le comportement est indéfini.
|
|
</p><p>En utilisant l'outil de polyligne, il est possible d'accélérer le dessin des rayons de lumière. Dans ce cas, on peut sélectionner deux extrémités coïncidentes par la sélection de la boîte.
|
|
</p>
|
|
<h2><span class="mw-headline" id="Remarques">Remarques</span></h2>
|
|
<ul><li> La contrainte actuelle de la loi de Snell applique la plaine équation de la loi n1 * sin (theta1) = n2 * sin (theta2). Il a besoin que les extrémités des lignes soient confondues et sur l'interface par d'autres contraintes. Les contraintes auxiliaires nécessaires sont ajoutées automatiquement en fonction des coordonnées actuelles des éléments.</li>
|
|
<li> La routine de Python n'ajoute pas les contraintes d'aide. Celles-ci doivent être ajoutées manuellement par le script (voir l'exemple dans la section Script)</li>
|
|
<li> Ces contraintes auxiliaires peuvent être supprimées temporairement et les points terminaux traînés dehors, ce qui peut être utile au cas où on veut construire un rayon réfléchi ou des rayons biréfringent.</li>
|
|
<li> Contrairement à la réalité, les indices de réfraction sont associés à des rayons de lumière, mais non pas selon les côtés de la frontière. C'est utile pour émuler la biréfringence, construire des chemins de longueurs d'onde différentes en raison de la réfraction, et construire facilement l'angle de début de réflexion interne totale.</li>
|
|
<li> Les deux rayons peuvent être sur le même côté de l'interface, répondant à l'équation de contrainte. Cela n'a aucun sens physique, à moins que le rapport n2 / n1 est de 1,0, auquel cas la contrainte émule une réflexion.</li>
|
|
<li> Arcs de cercle et une ellipse sont également acceptés comme les rayons (non-sens physique).</li></ul>
|
|
<h2><span class="mw-headline" id="Script">Script</span></h2>
|
|
<p>Les contraintes peuvent être créées à partir de <a href="Macros.html" title="Macros">macros</a> et de la console python en utilisant la fonction suivante:
|
|
</p>
|
|
<pre>Sketch.addConstraint(Sketcher.Constraint('SnellsLaw',line1,pointpos1,line2,pointpos2,interface,n2byn1)) </pre>
|
|
<p>où:
|
|
</p>
|
|
<dl><dd> * <tt> Sketch </ tt> est un objet d'esquisse</dd>
|
|
<dd> * <Tt> ligne1 </ tt> et <tt> pointpos1 </ tt> sont deux entiers identifiant l'extrémité de la ligne dans le milieu d'indice de réfraction de <i> n1 </i>. <tt> ligne1 </ tt> est l'index de la ligne dans l'esquisse (la valeur retournée par Sketch.addGeometry), et <tt> pointpos1 </ tt> devrait être de 1 pour point de départ et 2 pour le point de fin.</dd>
|
|
<dd> * <Tt> line2 </ tt> et <tt> pointpos2 </ tt> sont les indices spécifiant le point final de la deuxième ligne (dans un milieu <i> n2 </i>)</dd>
|
|
<dd> * <Tt> n2byn1 </ tt> est un nombre à virgule flottante égal au rapport des indices de réfraction <i> n2 </i> / <i> n1 </i></dd></dl>
|
|
<p>Exemple:
|
|
</p>
|
|
<pre>from Sketcher import *
|
|
from Part import *
|
|
from FreeCAD import *
|
|
|
|
StartPoint = 1
|
|
EndPoint = 2
|
|
MiddlePoint = 3
|
|
|
|
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.Line(App.Vector(-667.331726,244.127090,0),App.Vector(-604.284241,269.275238,0)))
|
|
iline2 = f.addGeometry(Part.Line(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() </pre>
|
|
<h2><span class="mw-headline" id="Version">Version</span></h2>
|
|
<p>La contrainte a été introduit en FreeCAD v0.15.4387
|
|
</p>
|
|
<div style="clear:both"></div>
|
|
</div></tt>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div><div class="printfooter">
|
|
Online version: "<a dir="ltr" href="https://www.freecadweb.org/wiki/index.php?title=Constraint_SnellsLaw/fr&oldid=153268">http://www.freecadweb.org/wiki/index.php?title=Constraint_SnellsLaw/fr&oldid=153268</a>"</div>
|
|
<div id="catlinks" class="catlinks" data-mw="interface"></div><div class="visualClear"></div>
|
|
</div>
|
|
</div>
|
|
<div id="mw-navigation">
|
|
<h2>Navigation menu</h2>
|
|
|
|
</body></html> |