光线跟踪和镜头设计框架
rayopt的Python项目详细描述
简介
光学设计(透镜,腔,高斯光学,激光)。 几何、傍轴和高斯射线追踪。
安装
像任何常用的python软件包一样使用pip、easy-install或plain进行安装 setup.py。来自三个操作系统和三个当前 python版本可通过Anaconda获得。安装时使用:
conda install -c https://conda.anaconda.org/jordens/channel/ci rayopt
分发内容已包含来自http://refractiveindex.info/的所有材料。
更多的材料和镜头目录可以从免费获得 oslo和zemax的版本,复制到目录中,然后使用 rayopt/library.py(有关文件的预期位置的详细信息,请参见此处):
get and install http://www.lambdares.com/images/OSLO/OSLO662_EDU_Installer.exe get and install http://downloads.radiantsourcemodels.com/Downloads/Zemax_2015-03-03_x32.exe $ python -m rayopt.library \ Users/Public/Documents/OSLO66\ EDU/bin/lmo \ Users/Public/Documents/OSLO66\ EDU/bin/glc \ Users/$USER/My\ Documents/Zemax/Glasscat \ Users/$USER/My\ Documents/Zemax/Stockcat
示例
用法示例位于其own repository中的IPython Notebooks, 特别是Tutorial。
注释
距离
处方规格的选择与大多数其他的有点不同 镜头设计和光线追踪程序。rayopt与元素关联 (表面):
- 距离(或方向偏移,在全局未旋转坐标中测量 相对于前一个元素的顶点。
- 方向(旋转框架中的x-y-z euler角度) 方向偏移
- 元素属性(元素类型,曲率,非球面和圆锥系数, 理想元件的焦距)
- (可选)元素之后的材质(在表面后面)
射线数据是在(射线截获)或之后(方向余弦, 旁轴斜率)除非另有说明(如发生率) 角度)。
关联“距离”而不是“后厚度”的选择 使用曲面有几个优点:可以实现位移、偏移、公差 以更直接的方式,光线传播变得更自然 有效(传输、截获、折射),表面顶点平面上的光线数据 不需要跟踪。“后厚度”在 光线跟踪数据,因为它只能在以后跟踪到下一个元素及其 方向通常是不明确的。与大多数其他程序相比 距离数据是一个元素向对象移动的厚度数据。
对象和图像
对象和图像位于第一个(索引0)和最后一个(索引1) 分别浮出水面。这自然可以追踪他们的位置, 材质和形状数据,支持自然弯曲的对象和图像。 进一步的数据,如学生数据,保存在 系统的共轭s。
因此,一个最小的单透镜系统由四个表面组成:物体, 两个镜头表面(其中一个可以是光圈挡块)和图像 表面。第一个(对象)曲面的偏移量 光线跟踪,但它可以用于定位全局坐标系的 起源。使用最后一个(图像)表面的材料 入射光线在图像表面消失。这也可以比较 与图像表面厚度无关的其他程序,或 物体空间中的物质和镜头的位置必须被跟踪 取决于实现的其他地方。