找回密码
 注册
Simdroid-非首页
查看: 114|回复: 0

[新手疑问区] Zemax光学设计技术教程:DDE与ZOS-API

[复制链接]
发表于 2023-2-23 13:06:59 | 显示全部楼层 |阅读模式 来自 中国
本文将概述DDE扩展(DDE Extensions)与ZOS-API之间的区别,并提供顺利地从DDE扩展过渡到ZOS-API的帮助。
作者 Sandrine Auriol
简介
与ZOS-API一样,DDE扩展可以建立Windows程序与OpticStudio的通信链接,并可以使其他程序从OpticStudio中获取镜头数据。
DDE扩展和OpticStudio
DDE扩展可以通过在OpticStudio界面中点击:编程 (Programming) >扩展程序列表 (Extension List) 打开:
DDE扩展已经被ZOS-API所取代。有关更多信息,请点击:编程 (Programming) 选项卡>关于扩展 (About Extensions) >简介 (Introduction ) (关于扩展) ,打开帮助文件查看。
DDE扩展和ZOS-API使用什么通信协议?
在使用DDE扩展时,应用程序和OpticStudio之间的通信是使用动态数据交换 (Dynamic Data Exchange,DDE) 完成的。DDE是Windows操作系统中定义的协议,用于在程序之间共享数据。微软已经通过更新的对象链接和嵌入( OLE )工具包取代了DDE协议,但是DDE仍然受到Office应用程序的支持。想要了解更多信息请查看链接: https://docs.microsoft.com/en-us/windows/desktop/dataxchg/about-dynamic-data-exchange
ZOS-API依赖于组件对象模型 ( Component Object Model, COM ) 接口。引用自: https://docs.microsoft.com/en-us/windows/desktop/com/component-object-model--com--portal: “COM是与平台无关的、分布式的、面向对象的系统,用于创建可以交互的二进制软件组件。COM是微软OLE(复合文档)和ActiveX(互联网驱动插件)技术的基础。”
ZOS-API根植于.NET库。根据用户对这两种语言的熟悉程度,可以选择使用COM或. NET语言进行API编程。https://docs.microsoft.com/en-us/windows/desktop/learnwin32/what-is-a-com-interface-
为什么用ZOS-API取代DDE  ?
DDE是一项早期应用的技术,微软不再推荐使用它。DDE很脆弱——任何单个应用程序都可能干扰到其他所有应用程序,甚至干扰微软自身的应用程序。除了关闭有问题的应用程序外,没有其他方法可以解决这个问题。此外,通过DDE很难进行复杂的通信,通常在使用时需要做大量的维护工作。
.NET是一种现代语言,使用.NET易于在应用程序之间传递任意数据,并且可用于面向对象的环境。这意味着可以将.NET存于类/属性/方法中,并且.NET以分层的方式管理API,而这两种方式在DDE中都很难或不可能实现。.NET使编程变得更简单、更高效,也使得通过ZOS-API使用所有OpticStudio功能成为可能。
过渡
从OpticStudio 15开始,DDE扩展就被弃用了。从该版本开始,没有再提供新的功能或问题修复。
强烈建议希望通过编写自己的应用程序来使用OpticStudio的用户使用ZOS-API,它是基于最新可用编程技术的更强大的工具。
为了帮助您完成从DDE到ZOS-API的转换,请参考文章:将DDE数据映射到ZOS-API方法。
常见问题解答如何使用ZOS-API中的“PushLens”?
在DDE扩展中,“PushLens”将获取当前服务器内存中加载的镜头,并将其放在镜头数据编辑器( Lens Data Editor )中。
在ZOS-API可完成如下操作:
  • 在交互扩展 ( Interactive Extension ) 模式下,镜头数据编辑器会自动更新。
  • 在已编译的ZOS-API扩展中作为可执行文件。
在系统发生更改时,用户可以选择自动更新OpticStudio用户界面,也可以选择禁止更改,任何时候都可以从扩展中修改这个设置。默认情况下,ZOS-API扩展在当前打开的镜头文件上执行,但是用户也可以选择在临时系统上工作,这不会影响主系统。
请参阅帮助文件中的“插件/扩展 ( Plug-In/Extension ) ”部分(通过点击:编程 ( Programming )选项卡>关于ZOS-API  (About the ZOS-API ) >插件/扩展 ( Plug-In/Extension ) 打开)。
如何在ZOS-API中使用“GetRefresh” ?
对于DDE扩展,“GetRefresh”使OpticStudio将所有镜头数据(波长、视场、编辑器等)复制到服务器的存储副本中。镜头随后更新,这意味着OpticStudio将重新计算所有光瞳位置、求解和折射率数据。
在ZOS- API中,通过访问类属性(例如:ILDERow类)和检索镜头数据来手动从ZOS到应用程序中检索镜头数据。
Ansys Zemax光学软件
咨询与订购方式
联系人:光研科技南京有限公司 徐保平
手机号:15051861513
微信号:13627124798


您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-6-16 10:03 , Processed in 0.026770 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表