RAYTRACE

调用OpticStudio光线追迹程序,通过当前系统来追迹特定光线。

语法:

RAYTRACE hx, hy, px, py, wavelength
 

详述:

表达式hx和hy的计算结果必须为-1到1之间,表示归一化视场坐标。表达式px和py表示归一化的光瞳坐标,必须介于-1到1之间。有关归一化坐标的更多信息,请参阅"归一化视场坐标(Normalized field coordinates)"。wavelength表达式是可选的,默认为主波长。但如果提供wavelength表达式,则其结果必须是介于1和所定义最大波长数量之间的一个整数。

一旦开始追迹光线,则可使用ZPL函数RAYX、RAYY、RAYZ、RAYL、RAYM和RAYN确定光线交点坐标和方向余弦(在全局坐标中,使用RAGX、RAGY、RAGZ、RAGL、RAGM和RAGN获取结果数据)。如果在光线追迹期间产生错误,函数RAYE(表示光线错误)将返回一个非0值。如果RAYE返回负值,则表明在表面上发生了全内反射,此表面编号由返回值的绝对值决定。如果RAYE返回值为-9999,则表明无法启动光线追迹。

如果RAYE返回大于0的值,则表明返回光线错过的表面编号。检查光线错误的函数RAYE是可选的。如果RAYE不为0,RAYX、RAYY等函数,可能会返回无效数据。函数RANX、RANY和RANZ返回光线相交表面法线的方向余弦,OPDC返回光线的光程差。函数RAYV返回光线产生渐晕的表面编号,如果光线无渐晕,则RAYV返回0。光线通过渐晕表面返回的值可能不准确。

示例:

PRINT "Tracing the marginal ray at primary wavelength!" 
n = NSUR()
RAYTRACE 0,0,0,1 
y = RAYY(n)
PRINT "The ray intercept is ", y
PRINT "Tracing the chief ray at maximum wavelength!"
RAYTRACE 0,1,0,0,NWAV()
y = RAYY(n)
PRINT "The ray intercept is ", y
 

相关关键词:

RAYTRACEX

下一部分: