序列模式下如何使用全局坐标系
铛铛铛铛~
美丽周三又来到,
小Z准时出现了。
带来文章和技巧,
里头干货真不少!
本周让我们聚焦:
序列模式下如何使用全局坐标系
在序列模式光学系统中,使用局部坐标系通常更为方便。然而仍有一些情况适合使用全局坐标系,如在一个具有复杂三维倾斜和偏心系统中处理有限元分析扰动数据。这篇文章介绍了如何在序列模式中进行局部坐标和全局坐标的转换。
本文用到的示例文件请从以下链接中下载:
https://customers.zemax.com/support/knowledgebase/Knowledgebase-Attachments/How-to-Work-in-Global-Coordinates-in-a-Sequential/Global.aspx
引言
序列模式光学系统中,我们常使用局部坐标系,即表面的位置由Z轴上距前一个表面的距离定义。我们可以利用坐标间断面实现X、 Y轴的偏心以及关于X、Y和Z轴的倾斜。镜头数据编辑器的工具栏提供了实现常见操作的一系列工具,如添加或删除反射镜和旋转/偏心元件:
但有时,使用全局坐标系更为方便。一个常见的例子是,将光学系统转换到有限元分析中进行振动分析。从消费电子产品(如数码相机)到星载望远镜和卫星成像透镜,这一分析通常都是由光学设计实现的。 最终我们会得到一组振动引起的扰动数据,而后将这些数据导入OpticStudio中,评估机械位移对光学性能的影响。
在这种情况下,我们需要方便快捷地进行局部、全局坐标系的双向变换。这篇文章介绍了镜头数据编辑器工具栏上的全局到局部坐标系 (Global To Local) 和局部到全局坐标系 (Local To Global) 工具是如何工作的。
初始设计
让我们以一个足够复杂但又方便演示的光学系统开始。附件中包含名为single_prism.zmx的示例文件:
在开始之前,我们来花点时间研究一下该示例文件中的光学系统是如何搭建的。
准直光在表面1处进入系统(作为物面),表面2是一个矩形孔径的平面。
表面2相对于表面1倾斜了15°,面之后 (Aflter Surface) 选项,我们设置翻转此面(Reverse This Surface), 以便之后的表面回归到原始坐标系中。
用三维几何的术语来说,我们已经恢复了原来的坐标系。表面3也进行如此操作,只不过角度是-15°。
显示局部坐标轴 (Draw Local Axis),是另一个建立三维几何系统的实用功能。你可以在绘制 (Draw) 标签中找到它,并可以逐个面进行设置。
将每个面都勾选此项后,3D布局图将变成如下所示:
表面1(以橙色绘制)是全局坐标参考面 (Global Coordinate Reference Surface),定义了这个系统的起始坐标系。箭头代表它的局部Z轴,沿屏幕向上是它的局部Y轴,X轴垂直屏幕向外。
表面2关于X轴成15°倾斜,表面3关于X轴成-15°倾斜。
接下来,我们注意到表面4是一个坐标间断面 (Coordinate Break surface),滚动编辑器我们发现,其X、Y偏心 (Decenter X, Decenter Y) 和X、Y倾斜 (Tilt About X, Tilt About Y) 参数求解类型均为主光线 (Chief Ray):
表面4的X、Y偏心设置为主光线求解能够保证之后的面与主光线垂直,且主光线位于这些面的中央。
这表明了局部坐标系的一个主要优点:因为局部坐标系是由每个表面定义的,所以在光穿过光学系统过程中,可以很容易地修改它们。OpticStudio包含许多基于光线的解来满足常见的需求,还可以根据更具体的需求选择基于ZPL宏的求解类型。 现在,我们将继续扩展这个示例文件,令局部坐标系没那么有用,并了解如何轻松切换局部坐标系和全局坐标系。
扩展初始设计
在镜头数据编辑器中单击表面2,按住鼠标左键向下拖,选中表面2、3、4。
或者使用Shift和下方向键配合来实现上述操作。随后按Ctrl+C或在右键菜单选择复制表面,来将其拷贝进剪贴板。
之后点击表面5,按Ctrl+V或在右键菜单中选择粘贴表面。重复该操作10次,粘贴出本体的10个副本。更新后的3D布局图将如下所示:
结果是我们轻松地得到了能让光线约180°转弯的一系列棱镜。现在,镜头数据编辑器中包含35个表面。我们选择表面17、表面18作为扰动分析的目标对象。在镜头数据编辑器的工具栏选择转到表面 (Go To Surface),填写数字17以转到表面17。
对表面17和表面18进行备注,并将表面颜色 (Surface Color) 设置为黄绿色(颜色4)以方便显示。
现在,让我们设想一下,我们的目标是扰动目标棱镜的位置。如果在局部坐标系下,这会非常简单,我们只要用旋转/偏心元件 (Tilt/Decenter Element) 工具,选择我们要扰动的表面,直接输入数值即可。
然而,如果扰动参考的是光学系统中的其他位置,使用局部坐标系就不那么直观了。这种情况下,我们最好用全局坐标输入数据。根据需要转换为全局坐标和返回局部坐标系是很容易的。
转为全局坐标系
在镜头数据编辑器工具栏中有两个选项,分别负责局部坐标系与全局坐标系之间的反向和正向转换:全局到局部坐标系 (Global To Local) 和局部到全局坐标系 (Local To Global):
表面1被设置为当前的全局坐标参考面 (Global Coordinate Reference Surface),所有的面都以它为参考进行定位。注意,表面1不是必须的,我们可以挑选转换范围之前的任意表面作为参考,但有一个统一的全局参考是非常方便的。转换的设置方法如下:
请注意,转换后的镜头数据编辑器中,每个棱镜包含三个坐标间断面,可以通过我们的备注找到目标棱镜:
第一个坐标间断面采用坐标返回 (Coordinate Return solves) 求解类型,将位置返回到参考表面上。第二个坐标间断表示X、Y和Z轴的偏心(其中Z轴偏心就是厚度参数), 第三个坐标间断表示X、Y和Z轴的倾斜。因此,参考表面1,目标棱镜的前表面(现在是表面27)的参数为:
X偏心 (Decenter X) = 0.0
Y偏心 (Decenter Y) =-162.03
厚度 (Thickness) =191.384
倾斜X (Tile About X) =83.007
倾斜Y (Tile About Y) =0.0
倾斜Z (Tile About Z) =0.0
我们可以从第二和第三个坐标间断中读取到这些信息。更好的是,假如我们想把棱镜的位置改为:
X偏心 (Decenter X) =0.5
Y偏心 (Decenter Y) =-164
厚度 (Thickness) =198
倾斜X (Tile About X) =84
倾斜Y (Tile About Y) =-2.3
倾斜Z (Tile About Z) =4.7
那么直接将这些数据输入到第二和第三坐标间断面中的对应参数中,棱镜就将自动正确定位。注意,之后的棱镜并不会因此改变位置。因为我们将目标棱镜转换为了全局坐标定义,所以它的位置方向变动不会影响其他物体。
更好的是,使用镜头数据编辑器工具栏中的全局到局部坐标系 (Global To Local) 工具,系统会自动转为局部坐标系!
OpticStudio支持一种输入扰动数据的快捷方法:输入加号,然后输入增量,再按回车键。如想要将一个值从12改为17,输入+5按回车即可。
同样地,Opticstudio也支持*(乘法)和/(除法)符号。注意,要减去一个值时,除了键入减号,还需要在之后键入一个空格,再键入想要减掉的值。这样做是为了区分减法和负数,你也可以输入+-5来表示减5,从而避免歧义。
注意一个常犯的错误:光线追迹仍然是序列的,所以如果我们的目标棱镜完全远离了光束,那么追迹就会停止:
在序列模式下,如果光线无法追迹到下一个表面,那么光线追迹将停止。如想要让一个棱镜被移走时光束还能继续追迹,则需要在非序列模式下进行操作。
总结
镜头数据编辑器工具栏中的局部到全局坐标系和全局到局部坐标系工具,能让我们方便快捷地在局部坐标和全局坐标之间进行转换。本周的技术文章就到此结束啦,希望文章的内容能够给您带来知识和启发!