zemax 定义多边形物体 POB

zemax学习笔记:

多边形物体是用户定义吻体,它由 3 维空间的三角形集合组成。该物体是通过一个简单的文本文件定义的,扩展名为 POB(对于多边形物体)。如果需要的话,多边形上的每个表面或每一组表面都可以有相同的面序号。

形成封闭空间的多边形物体必须不包括任何内部面。每一个面必须位于物体的外部,来定义体的外部和内部的边界。要得到一个拥有胶合边界的物体,例如分光镜,使用两个或多个独立的多边形物体然后将它们关联放置。

文件格式可以通过一个文字编辑器来创建并编辑。该文件包括一系列的数据行。每行由一个字母或符号开头,后面跟着数据。系统所支持的符号以及它们的意义如下所示:

注释符号 :! ( The comment symbol: ! )

符号“!”用于定义一个注释行:

语法:

!注释语句

例:

! A dove prism

可以用 C 命令定义的面的名称:

面名称符号 :C ( The face name symbol: C )

语法:

C 面序号 “任意名称”

例:

C 0 “All faces”

面名称用于在物体对话框中的显示物体各个面的名称。注意名称必须处于引号之内。该命令是可选的。

连接顶点的线,如果不需要画出来(如位于在同一平面之间的两相邻三角形之间的线),就可以标志为不可见。为了将两个顶点标记为不可见,可以在符号“I”后面加上这两个顶点的序号。任何与被标志的顶点相连接的线将不会画出。

不可见符号 :I ( The invisible symbol: I )

这只会影响 3D 视图,并且严格而言,该功能对画多边形物体起一个修饰作用。

语法 :

I V1 V2 (其中 Vl,V2 为顶点坐标)

例:

I 7 9

注意,顶点序号必须为整数。并且在数值之间用空格隔开。命令“I”必须在任何参考不可见顶点的三角形或矩形之前。

通过在符号“V”后面加上顶点序号以及顶点的 x,y 和 Z 坐标来定义顶点。

顶点符号: V ( The vertex symbol: V )

语法:

V 序号 x y z

例:

V 1 -1.0 -1.0 0.0

注意,顶点序号必须是一个整数,并且 x,y 和 2 坐标是浮点数。这些数之间用空格隔开。

通过连接三个顶点来定义三角形。

三角形符号: T ( The triangle symbol: T )

语法:

T 顶点 l 顶点 2 顶点 3 isreflective 面

顶点序号必须是整数,且顶点必须是文件中先前定义的顶点。如果三角形是形成一个封闭体的物体的一部分,顶点就要排序使得顶点1和顶点2之间的矢量与顶点1和顶点3之间的矢量乘积,指向体的“出口(out)”。

标志“isreflective”为-1表示表面吸收,1表示表面反射,0表示表面折射。注意,使用该标志可以在同一个多边形物体中使三角形反射,而其它的三角形为折射或吸收。但是,isreflective标志在布尔运算产生的多边形物体中不需要考虑。

用于面的值定义三角形属于哪个面。如果忽略面序号标志,则默认为 0。

例如:

T l 2 3 0 2

这定义了连接顶点 1、2 和 3 属于面 2 的三角形。

矩形通过 4 个顶点连接来定义,除此之外,它与三角形很相似。在系统内部,ZEMAX 可以将矩形转换成 2 个三角形:

矩形符号: R ( The rectangle symbol: R )

语法:

R 顶点 1 顶点 2 顶点 3 顶点 4 isreflective face

顶点序号必须为整数,顶点必须是以前文件中定义过的顶点。顶点的次序不能任意,它们必须以顺时针方向或逆时针方向排列,而不能按照“蝶型连接”的序列。并不是所有的四顶点多边形都能形成一个简单的矩形,对于更复杂的形状,需要用到多重三角形命令。如果矩形是形成一个封闭体的物体的一部分,顶点就要排序使得顶点1和顶点2之间的矢量与顶点1和顶点3之间的矢量乘积,指向体的“出口(out)”。

“isreflective”标志为-1表示表面为吸收,1表示为表面反射,0表示为表面折射。使用这个标志,可以在相同的多边形物体或面中,使矩形是反射的,而其它的矩形是折射或吸收。但是,isreflective标志在布尔运算产生的多边形物体中不需要考虑。

用于面的值定义三角形属于哪个面。如果忽略面序号标志,则默认为0。

例:

R 1 2 3 4 1 0

该例定义了一个由顶点 1、2、3 和 4 连接而成的反射矩形,属于面 0。

多边形物体中的最大三角形( Maximum triangles in the polygon object )

对于一个多边物体中所包含的三角形数目,没有固定的上限。根本的限制取决于计算机所能得到的真实或虚拟的 RAM。每一个三角形大约占内存中的 100 个字符。但是,ZEMAX 同时需要维持大量的透镜数据的拷贝,所以一个好的经验方法是对于每一个三角形,ZEMAX 需要占用 RAM 中的 500 个字节。一个包含 2000 个三角形的物体将需要 RAM 中的 1Mb 空间。还有一个更为实际的限制是计算机的速度;如果三角形数目变的很大,ZEMAX 的速度将会明显减慢。

POB 文件示例( Example POB file )

以下有一个完整的 POB 文件文件定义了一个曲折射材料组成的立方体。该文件被包含进例子CUBE.POB 中。立体的所有 8 个面属于面 0。

POB 文件示例( Example POB file )

! A cube

! front face vertices

V 1 -1 -1 0

V 2 1 -1 0

V 3 1 1 0

V 4 -1 1 0

! back face vertices

V 5 -1 -1 2

V 6 1 -1 2

V 7 1 1 2

V 8 -1 1 2

! Front

R 1 2 3 4 0 0

! Back

R 5 6 7 8 0 0

! Top

R 4 3 7 8 0 0

! Bottom

R 1 2 6 5 0 0

! Left side

R 1 4 8 5 0 0

! Right side

R 2 3 7 6 0 0

8 个“V”命令定义了立体 8 个顶角的顶点坐标。6 个“R”命令定义了立体的 6 个面。注意,面的宽度为 2 个单位,后表面顶点的 Z 坐标定义为 2 个单位,所以该立体是一个理想的立方体。立体的所有坐标均相对于物体的参考点,此时该点位于前表面的中心。为了将参考点置于立体的中心,此时对顶点定义作如下改变:

V 1 -1 -1 -1

V 2 1 -1 -1

V 3 1 1 -1

V 4 -1 1 -1

V 5 -1 -1 1

V 6 1 -1 1

V 7 1 1 1

V 8 -1 1 1

示例2:


zemax 定义多边形物体 POB_第1张图片

! A 45-45-90 prism with no mirror side

! FSI Dec 18, 1998

C 1 "Splitter surface"

! front face vertices

V 1 -1 -1 0

V 2  1 -1 0

V 3  1  1 0

V 4 -1  1 0

! back face vertices

V 5 -1  1 2

V 6  1  1 2

! Front face rectangle

R 1 2 3 4 0 0

! Top face rectangle

R 4 3 6 5 0 0

! Bottom rectangle

R 1 2 6 5 0 1

! left side triangle

T 1 4 5 0 0

! right side triangle

T 3 2 6 0 0

你可能感兴趣的:(zemax 定义多边形物体 POB)