Zemax光学设计技术:如何从ZPL宏中调用另一个ZPL宏

软件: ANSYS
全方位数据报表
许可分析

许可分析

免费体验
识别闲置、及时回收
许可优化

许可优化

免费体验
多维度智能分析
许可分析

许可分析

免费体验
减少成本、盘活许可
许可优化

许可优化

免费体验
在ZPL宏之间的数据传递与子宏调用技术深度解析


引言

在光学设计领域,特别是使用像OpticStudio这样的高级软件过程中,处理具有大量步骤和逻辑复杂的计算问题时,高效的数据处理和宏间的协作至关重要。本文旨在深入探讨如何在ZPL宏中调用子宏,以及如何通过调用关系在不同宏之间传递和使用数据。通过理解子宏的编写、调用和数据传递机制,可以显著提升自动化编程效率与复杂逻辑操作的准确性,特别是在构建复杂数学模型和光线追踪过程中展现其优势。

从父宏到子宏的数据传递

在OpticStudio中调用子宏主要依赖于`CALLMACRO`关键字。这种调用方式允许宏自动生成并执行各种子宏任务,每完成一个任务后再从子宏返回到父宏。这种方法尤为适用当子宏执行统一而重复的操作,这些操作在多个不同的上下文中都需要执行时。

实例:调用宏文件与输入参数


以一个ZPL宏文件为例:




```zpl


CALLMACRO_TEST_RADIUS glyphicon radius


MacroBEGIN

radius Total_acc, 2pir_coeff, mode, acc, Total_acc_final

MacroEND


MacroBEGIN


Raytrace Beam_X, Beam_Y, 0, radius


Total_acc = 0


```

以上宏代码从主宏`CALLMACRO_TEST_RADIUS`调用了一个名为`total_acc`的子宏`total_acc.mc`。这里定义了变量`total_acc`用于存储处理结果,并通过参数传递权重到子宏,实现了辅助计算任务的自动化执行。

子宏之间的数据传递与共享


在宏内数据的传递与共享中,最常见的操作包括:

1. 使用`CALLSETDBL`和`CALLSETSTR`关键字填充宏缓冲区:这些关键字用于设置宏内部的数值和字符串变量,允许代码实现在不同宏间的数据协调。

2. 宏内部的数据处理和结果输出:通过使用如`CALD`等函数处理缓冲间的基本数据类型值,并利用宏特有的输出功能打印结果。

共享数据示例:


```zpl


CALLMACRO_TEST_RADIUS glyphicon xyzbeam


MacroBEGIN

result x cur_val_ang, pi0.1r_coeff, mode 1

result x x << << << << << << << << << << << << << << << << << << << << << << << <<

result y y <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< >>>>

result z Z << << << << << << << << << << << << << << << << << << << << << << << << << >>>

Save the results


_CALLSETDBL x, cur_val_ans

_CALLSETDBL result z [sum] << << << << << << << + + + + + + + + + + + + + + + + + << << <<

CALLSETSTR cur_val_resp, "Result Vector"

_CALLSETSTR cur_val_ang, "Angular Distrobution"

Print results

"nil_print", <<<< << < + + + + + + + + + + + + + + + + + + + <<<

"nil_print", <<<< << < "Angle (in radians): " << << << < cur_val_ang & " $

"nil_print", <<<< << < "Measurement (in meters): " << << << < cur_val_ans & " $

"nil_print", <<<< << < "Auxiliar Result (in meters): " << << << < sum &

```

通过上述示例代码,宏`CALLMACRO_TEST_RADIUS`内部定义了变量并进行数据存取,最终调用其他宏或输出结果供外部宏使用,实现了复杂计算任务在多个系列宏间的平滑衔接。


武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks ,Hyperworks, Protel,CAXA,OpenWorks LandMark,MATLAB,Enovia,Winchill,TeamCenter,MathCAD,Ansys, Abaqus,ls-dyna, Fluent, MSC,Bentley,License,UG,ug,catia,Dassault Systèmes,AutoDesk,Altair,autocad,PTC,SolidWorks,Ansys,Siemens PLM Software,Paradigm,Mathworks,Borland,AVEVA,ESRI,hP,Solibri,Progman,Leica,Cadence,IBM,SIMULIA,Citrix,Sybase,Schlumberger,MSC Products...

index-foot-banner-pc index-foot-banner-phone

点击一下 免费体验万千客户信任的许可优化平台

与100+大型企业一起,将本增效

与100+大型企业一起,将本增效

申请免费体验 申请免费体验