解决方案

SYNOPSYS 光学设计软件课程三十三:将Zemax文件导入SYNOPSYS™

SYNOPSYS可以打开Zemax创建的大多数镜头文件。正如大多数从一个软件文档到另一个软件文档的转换一样,结果通常是不完整的,并且用户经常必须根据SYNOPSYS的规则编辑镜头文件来重构某些参数。

但有些内容无法转换。这两个程序使用了非常不同的入瞳描述 - 尽管两者最终都获得了相同的结果。并非所有可在Zemax中定义的表面形状都可以在SYNOPSYS中定义(反之亦然)。尽管如此,所有常用的表面形状在这两个程序中都能很好地工作,因此大多数用户不会因此而遇到困难。虽然Zemax文件包含比SYNOPSYS文件更多的信息 - 例如变量的定义,评价函数,公差等 - 转换将仅包含基本镜头数据,因为SYNOPSYS中的RLE文件是一个描述镜头的文件。变量和评价函数在单独的文件中定义,用标题PANT ...,AANT等声明,任何从一个程序转换到另一个程序的人,自然希望利用SYNOPSYS的优点并创建自己的数据文件。因此尝试导入其他数据毫无意义。

一个更常见的问题是正确识别商业玻璃类型的名称。 这两个程序有广泛的玻璃表,但名称往往不同。 因此,导入.zmx文件后,最常见的用户任务是编辑RLE文件并插入正确的镜头名称。 我们将通过一个例子说明其中的一些问题。

(我们鼓励您在导入文件之前阅读用户手册的第5.42节。)

为了说明这个特性,我们将转换一个文件,该文件描述了我们之前存储在USER目录中的衍射光学元件,名称为doe.zmx。 该文件包含以下命令行:

    VERS 91012 185 25430
    MODE SEQ
    NAME Achromatic singlet
    NOTE 0 Notes...
    NOTE 4
    NOTE 0   NOTE 4
    NOTE 0
    UNIT MM X W X CM MR CPMM
    ENPD 5.0E+1
    ENVD 2.0E+1 1 0 GFAC 0 0
    GCAT SCHOTT
    RAIM 0 0 1 1 0 0 0 0 0
    PUSH 0 0 0 0 0 0
    SDMA 0 1 0
    FTYP 1 0 3 3 0 0 0
    ROPD 2
    PICB 1
    XFLD 0 0 0
    XFLN 0 0 0 0 0 0 0 0 0 0 0 0 YFLD 0 3.5 5.0
    YFLN 0 3.5 5.0 0 0 0 0 0 0 0 0 0
    FWGT 1 1 1
    FWGN 1 1 1 1 1 1 1 1 1 1 1 1 ZVDX 0 0 0
    VDXN 0 0 0 0 0 0 0 0 0 0 0 0
    ZVDY 0 0 0
    VDYN 0 0 0 0 0 0 0 0 0 0 0 0 ZVCX 0 0 0
    VCXN 0 0 0 0 0 0 0 0 0 0 0 0 ZVCY 0 0 0
    VCYN 0 0 0 0 0 0 0 0 0 0 0 0 ZVAN 0 0 0
    VANN 0 0 0 0 0 0 0 0 0 0 0 0
    WAVL 4.861E-1 5.876E-1 6.563E-1
    WAVN 4.861E-1 5.876E-1 6.563E-1 5.5E-1 5.5E-1 5.5E-1 5.5E-1 5.5E-1 5.5E-1 5.5E-1 5.5E-1 5.5E-1 WWGT 1 1 1
    WWGN 1 1 1 1 1 1 1 1 1 1 1 1
    WAVM 1 4.861E-1 1
    WAVM 2 5.876E-1 1
    WAVM 3 6.563E-1 1
    WAVM 4 5.5E-1 1
    WAVM 5 5.5E-1 1
    WAVM 6 5.5E-1 1
    WAVM 7 5.5E-1 1
    WAVM 8 5.5E-1 1
    WAVM 9 5.5E-1 1
    WAVM 10 5.5E-1 1
    WAVM 11 5.5E-1 1
    WAVM 12 5.5E-1 1
    WAVM 13 5.5E-1 1
    WAVM 14 5.5E-1 1
    WAVM 15 5.5E-1 1
    WAVM 16 5.5E-1 1
    WAVM 17 5.5E-1 1
    WAVM 18 5.5E-1 1
    WAVM 19 5.5E-1 1
    WAVM 20 5.5E-1 1
    WAVM 21 5.5E-1 1
    WAVM 22 5.5E-1 1
    WAVM 23 5.5E-1 1
    WAVM 24 5.5E-1 1
    PWAV 2
    POLS 1 0 1 0 0 1 0
    GLRS 1 0
    GSTD 0 100.000 100.000 100.000 100.000 100.000 100.000 0 1 1 0 0 1 1 1 1 1 1
    NSCD 100 500 0 1.0E-6 5 1.0E-6 0 0 0 0 0 1 1000000 0
    COFN COATING.DAT SCATTER_PROFILE.DAT ABG_DATA.DAT PROFILE.GRD
    SURF 0
      TYPE STANDARD
      CURV 0.0 0 0 0 0 ""
      HIDE 0 0 0 0 0 0 0 0 0 0
      MIRR 2 0
      SLAB 1
      DISZ 2.5E+2
      DIAM 5.0 0 0 0 1 ""
      POPS 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0
    SURF 1
      STOP
      TYPE STANDARD
      CURV 7.576293461853999900E-003 0 0 0 0 ""
      HIDE 0 0 0 0 0 0 0 0 0 0
      MIRR 2 0   SLAB 2
      DISZ 2.5E+1
      GLAS BK7 0 0 1.69673 5.6419998E+1 -7.4E-3 1 1 1 0 0
      DIAM 3.0E+1 1 0 0 1 ""
      POPS 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0
      FLAP 0 3.0E+1 0
    SURF 2
      TYPE BINARY_2
      CURV -6.676695260572999700E-003 0 0 0 0 ""
      HIDE 0 0 0 0 0 0 0 0 0 0   MIRR 2 0
      SLAB 3
      PARM 0 1
      PARM 1 0
      PARM 2 0
      PARM 3 0
      PARM 4 0
      PARM 5 0
      PARM 6 0
      PARM 7 0
      PARM 8 0
      XDAT 1 3.000000000000E+000 0 0 0.000000000000E+000 0.000000000000E+000 0 ""
      XDAT 2 3.000000000000E+001 0 0 0.000000000000E+000 0.000000000000E+000 0 ""
      XDAT 3 -2.993832387049E+003 0 0 0.000000000000E+000 0.000000000000E+000 0 ""
      XDAT 4 1.135544608547E+003 0 0 0.000000000000E+000 0.000000000000E+000 0 ""   
      XDAT 5 -5.932105454300E+001 0 0 0.000000000000E+000 0.000000000000E+000 0 ""   
      DISZ 2.5073834507E+2
      DIAM 3.0E+1 1 0 0 1 ""
      POPS 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0
      FLAP 0 3.0E+1 0
    SURF 3
      TYPE STANDARD
      CURV 0.0 0 0 0 0 ""
      HIDE 0 0 0 0 0 0 0 0 0 0
      MIRR 2 0
      SLAB 4
      DISZ 0
      DIAM 5.175465768436 0 0 0 1 ""
      POPS 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0
    BLNK
    TOL TOFF   0   0              0              0   0 0 0
    MNUM 1 1
    MOFF   0   1 "" 0 0 0 1 1 0 0.0 ""

我们首先输入命令ZMC(ZeMax Convert)。 将显示一条警告消息:

如果你点击No按钮,你将会立即转到描述ZMC的帮助文件。

当我们单击Yes按钮时,会在当前目录中显示.zmx文件的列表,然后我们选择该文件。 (要导入的文件必须位于当前目录中。)上面的命令行在命令窗口上滚动,我们注意到一条警告消息:

        ************************************************
        ******************   WARNING   *****************
        *****  THE DOE EMULSION INDEX IS NOT GIVEN  ****
        ***  IN THE ZEMAX FILE AND MUST BE ENTERED BY **
        ***  HAND IN THE RLE FILE AFTER CONVERSION  ****
        ******  IN WORD THREE OF THE DOE ENTRY  ********
        ************************************************

这是协议差异的一个例子。在SYNOPSYS RLE文件中,材料的精确折射率数据与玻璃目录名称(如果有)一起给出,然后列出DOE的属性。由于这个协议,读取由SYNOPSYS创建的RLE文件的任何人都知道材料的折射率,即使从现在开始,玻璃类型已经过时并且不再在目录中。 Zemax列出玻璃名称,但不列出折射率值。因此,当读取DOE输入(并由ZMC转换)时,折射率数据尚不清楚。玻璃名称稍后显示,但转换已经过了那个阶段。由于SYNOPSYS中的DOE规范需要材料的折射率,程序已插入1.517的虚拟折射率以避免输入错误。事实证明,这个DOE实际上是由BK7制造的,所以折射率只是偶然是正确的。否则,我们想要编辑文件并将该数字更改为正确的玻璃折射率。 (在SYNOPSYS中,在完全处理RLE文件后从玻璃表中检索折射率值,并且在ZMC运行时不可用折射值。)在转换结束时,程序显示一条信息性消息:

    NOTE: OBJECT AND PUPIL DEFINITIONS MAY DIFFER. THE PROGRAM PUTS THE
    WAP 3 PUPIL IN EFFECT TO BE SAFE. BUT THIS LENS MAY OR MAY NOT REQUIRE
    THAT OPTION. YOU SHOULD DELETE IT IF IT IS NOT NECESSARY.
    IF ANY GLASS-TABLE GLASSES WERE NOT FOUND, IT MAY BE DUE TO DIFFERENT
     SPELLINGS. CHECK THE LISTING ABOVE TO SEE WHAT THE NAME WAS, AND CHANGE
    TO THE APPROPRIATE SPELLING IF THAT GLASS IS IN ONE OF THE GLASS TABLES.

在这里,我们了解到该程序(默认情况下)实现了WAP 3选项,这通常是安全的选择,但通常不需要。尽可能地理解Zemax中使用的光瞳定义的几何学基础,如果它不真正需要WAP 3,请尝试更简单的WAP 0。

我们的下一个工作是查看它创建的RLE文件并加载到MACro编辑器中。

    RLE ID ACHROMATIC SINGLET  ID1 NOTES...                                 ID2                s ID3   
UNITS MM TEMPERATURE 20.000 PRESSURE 100.000 GTZ WT1 1.00000 1.00000 1.00000 WA1 0.486100
0.587600 0.656300 CORDER 2 3 1 POLAR OFF 0 CV 0.0 OBA 250.000 5.00000 25.0000 0.00000 0.00000
0.00000 0.00000 APS -1 WAP 3 1 RD 131.991 1 TH 25.0000 1 GTB S BK7 1 CAO 30.0000 3 RD -149.775
3 TH 250.738 3 CAO 30.0000 2 PIN 1 2 DOE 0.587600 1.51700 RNORM 30.0000 A11 476.483 -180.728 9.44124
0.00000 0.00000 3 DC1 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 4 CV 0.0
4 TH 0.00000 END

要查看此镜头,我们将WAP 3更改为WAP 0,运行RLE文件,然后打开PAD。

如果我们现在要求SYNOPSYS创建一个合适的RLE文件(使用命令LEO),我们得到......

    RLE
    ID ACHROMATIC SINGLET                      378
    ID1 NOTES...
    ID2
    ID3
     LOG      378
     WAVL .4861000 .5876000 .6563000
     CORDER   2   3   1
     APS              -1
     GTZ
     UNITS MM
     OBA  250.  5.  25. 0 0 0  25.

    0	AIR
    1	CAO     30.00000000       0.00000000       0.00000000
       1 RAD    131.9906634000000   TH     25.00000000    1 N1 1.52237223 N2 1.51679274 N3 1.51431609
       1 CTE   0.710000E-05
    1	GTB S    'BK7             '
    2	N1 1.52237223 N2 1.51679274 N3 1.51431609
       2 CTE   0.710000E-05
       2 GID 'BK7             '
    2	DOE       0.587600      1.517000     55.000000
       RNORM    30.0000
        A11  4.7648E+02 -1.8073E+02  9.4412E+00  0.0000E+00  0.0000E+00
        A12  0.0000E+00  0.0000E+00  0.0000E+00  0.0000E+00  0.0000E+00  0.0000E+00
        A13  0.0000E+00  0.0000E+00  0.0000E+00  0.0000E+00  0.0000E+00  0.0000E+00    2 PIN    1
    3	CAO     30.00000000       0.00000000       0.00000000
       3 RAD   -149.7746955999999   TH    250.73834510 AIR
       3 DC1  0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
      3 DC2  0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
      3 DC3  0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
    3	DC4  0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
    4	CV      0.0000000000000   TH      0.00000000 AIR  END

用户会注意到OPD系数已被改变。 Zemax以弧度为单位表示系数,而SYNOPSYS中的所有OPD表达式以周期或波形为单位。 因此,您可以看到,值一定不同。

这个例子给我们带来了一点困难,我们演示一个更难的。 我们打开一个描述IR镜头的文件,并在运行转换时看到错误消息:(IR_EXAMPLE.ZMX)

阅读滚动的列表,我们看到详细信息:

    SURF 12
     COMM OBJ EL1
     TYPE STANDARD
     CURV -4.127115146513000200E-001 0 0.000000000000E+000 0.000000000000E+000 0
     HIDE 0 0 0 0 0 0 0 0
     MIRR 2 0.000000000E+000
     SLAB 4
     DISZ -2.362204724409E-001
     GLAS CLEARTRAN_WANDA 0 0 3.46217496 0.00000000 0.00000000 0 0 0 0.00000000 0.00000000
    ************************************************
    ***********   GLASS TYPE NOT FOUND *************
    CLEARTRAN_WANDA

    *****  A GLASS MODEL (GLM) IS USED INSTEAD  ****
    ***  SOME GLASS TABLES USE DIFFERENT SPELLING **
    ***  CHECK THE NAME CAREFULLY.  GLM DATA MAY  **
    *************  NOT BE APPROPRIATE  *************
    ************************************************

此表面需要一种名字在SYNOPSYS玻璃表中找不到的材料。 该程序分配玻璃模型,因为此时它没有其他信息,但是当我们编辑生成的RLE文件时,我们必须更改为正确的材料。

    12	SID 'OBJ EL1            '
        12 RD   -2.42300
        12 TH  -0.236220
        12 GLM    1.50000       55.0000
    12	CAO   0.745000
    13	RD    7.82870

如果我们不知道要使用的材料的名称,我们可能会查看不常用的玻璃库。 我们输入HELP UNUSUAL并按照链接进行操作。 在打开的列表中,我们找到了一个可能的候选项:

    NACL  	Sodium chloride  	 	 	0.2  	22.3
    NAFL  	Sodium fluoride  	 	 	0.186  	17.3
    PBFL  	Lead fluoride  	 	 	0.2909 	11.9
    SAPPHIRE Aluminum oxide  	 	 	0.193  	5.263
    SILICON Silicon; see SILICON-NIR, below 1.4  	16.0
    ZNS  	Zinc sulfide 	 	 	 	0.42  	18.2
    CLEARTRAN Zinc sulfide, higher grade  	0.4047 	13.0
    ZNSE  	Zinc selenide  	 	 	0.54  	18.2
    CRQUARTZ Crystal quartz, ordinary ray 	0.198  	2.053

现在我们可以编辑RLE文件

        12 SID 'OBJ EL1            '
        12 RD   -2.42300
        12 TH  -0.236220
        12 GTB U
    CLEARTRAN
    12	CAO   0.745000
    13	RD    7.82870
    13	TH  -0.100000E-01
        13 CAO   0.745000

同样的错误出现在其他几个表面上,我们也可以使用PIN 12指令对其进行纠正。 另一个表面想要一种名为SILICON_FIT的材料。 当然,我们将其更改为SILICON。 以这种方式继续,我们识别我们必须更新其名称的所有材料,然后使用更正的RLE文件运行MACro。

特别要小心来自Zemax中中国光明公司的玻璃。 该公司使用许多与Schott公司相同的玻璃名称,尽管折射率和色散系数非常不同。这很容易发生问题,您必须仔细验证要使用哪个目录的哪种玻璃。 (SYNOPSYS识别所有具有前缀的名称冲突的中国玻璃。因此F2成为G-F2,依此类推。)

这涵盖了相当复杂的转换的基础知识。 我们鼓励您尝试手头上的任何.zmx文件,如果您遇到的问题不像此处所述那么显而易见,请告诉我们。 我们没有Zemax的许可证(并且不需要),因此我们发现意外问题的唯一方法就是像您这样的用户向我们发送示例。 我们已经有几十个例子,所有这些例子都有效。 但我们正在寻找一些没有的示例。