Zemax光学设计技术:如何从ZPL宏中调用另一个ZPL宏
从一个宏中调用另一个宏
可以在本文附带的.ZIP文件中找到调用两个单独子宏的父宏的示例。这些宏文件应放在{Zemax}\Macros 目录下,并用于位于{Zemax}\Samples\Objectives 目录中的文件“Cooke 40 degree field.zmx”。
CALLSETDBL
关键字的数值和
CALLSETSTR
关键字的字符串值填充主宏缓冲区:
n_vals = 49
DECLARE x, DOUBLE, 1, n_vals
DECLARE y, DOUBLE, 1, n_vals
FOR i, 1, n_vals, 1
CALLSETDBL i, 2*i
# Test values to demonstrate use of CALLSETDBL, CALLSETSTR keywords
A$ = call_str$ + $STR(i)
CALLSETSTR i, A$
NEXT i
CALLMACRO
调用第一个子宏(CALLMACRO_TEST_CHILD1.ZPL)。在子宏中,存储在宏缓冲区中的值使用
CALD
和
$CALLSTR
数字函数打印到输出窗口:
! Print values passed from parent macro
n_vals = 49
FOR i, 1, n_vals, 1
FORMAT 6.4
PRINT "Doule precision value = ", CALD(i)
FORMAT 2 INT
A$ = $CALLSTR(i)
PRINT A$
NEXT i
RAYTRACE
关键字和
OPDC
函数计算弧矢方向光瞳坐标 (Px = 0)和固定视场坐标 (Hx = Hy = 0) 处的各个子午光瞳坐标 (Py)的光程差:
! Calculate OPD
DECLARE x, DOUBLE, 1, n_vals# Variables to store OPD data
DECLARE y, DOUBLE, 1, n_vals
FOR i, 1, n_vals, 1
py = 0.04166*i-1.04166
RAYTRACE 0, 0, 0, py, 1
x(i) = py
y(i) = OPDC()
NEXT i
CALLSETDBL
! Reset values to normalized pupil coordinates and pass them back to parent macro
call_str$ = "This is the string for variable number "
FOR i, 1, n_vals, 1
CALLSETDBL i, x(i)
A$ = call_str$ + $STR(i+50)
CALLSETSTR i, A$
NEXT i
CALLMACRO CALLMACRO_TEST_CHILD1.ZPL
! Save values passed back from child macro 1
FOR i, 1, n_vals, 1
x(i) = CALD(i)
A$ = $CALLSTR(i)
PRINT A$
NEXT i
PRINT "Doule precision value = ", CALD(i)
FORMAT 2 INT
A$ = $CALLSTR(i)
PRINT A$
DECLARE y, DOUBLE, 1, n_vals
RAYTRACE 0, 0, 0, py, 1
x(i) = py
y(i) = OPDC()
A$ = call_str$ + $STR(i+100)
CALLSETSTR i, A$
A$ = $CALLSTR(i)
PRINT A$
PLOT
绘制 OPD 与光瞳坐标数据:
PLOT TITLE, "OPD FOR FIELD POINT 1, WAVELENGTH 1"
PLOT TITLEX, "NORMALIZED PUPIL COORDINATE"
PLOT TITLEY, "OPTICAL PATH DIFFERENCE (WAVES)"
PLOT RANGEX, -1.0, 1.0
PLOT RANGEY, -1.0, 1.0
PLOT DATA, x, y, n_vals, 1, 1, 1
PLOT GO
Ansys zemax和其它光学解决方案在HUD设计中的应用
Ansys Zemax光学软件
咨询与订购方式
联系人:光研科技南京有限公司 徐保平
手机号:15051861513
微信号:13627124798
光研科技南京有限公司同时还为广大有光学设计软件培训的需求者提供了一个线下的学习平台,多年以来为光电圈培养了很多优秀的光学设计工程师等人才。
公司开设的课程包括光学设计标准基础班,高级实战班,照明设计班以及薄膜设计班等等。新的一年已经到来,光研科技南京有限公司将继续为广大光电圈的朋友带来各种各样的实用光学培训,欢迎大家咨询和预定!
光学设计培训
咨询与预约方式
点赞 评论 收藏