吾爱光设

 找回密码
 注册
会员须知
会员须知
实用帮助
实用帮助
查看: 344|回复: 4

[技术文章] Zemax—Matlab API 交互教程(1) _初始化

[复制链接]
  • TA的每日心情
    奋斗
    2025-9-13 14:33
  • 签到天数: 288 天

    [LV.8]以坛为家I

    22

    主题

    43

    回帖

    4

    积分

    小白

    积分
    4
    发表于 2025-9-11 15:29 | 显示全部楼层 |阅读模式
    本帖最后由 伊人在水一方 于 2025-9-11 20:53 编辑




    Zemax—Matlab API 交互教程(1) _初始化






    1.打开ZEMAX,在“编程”页面点击“ZOS-API.NET编译器”选项卡下的“MATLAB”,在下拉栏中点击“交互扩展”,可通过Matlab实时控制Zemax,并且可以实时观察Zemax窗口。注意,旁边还有一个“独立应用程序”,这个也是通过Matlab进行控制的,不同的地方在于“独立应用程序”无需打开Zemax窗口,也无法观察到实时交互的动态过程。因此强烈建议使用“交互扩展”。


    2.此时会弹出ZEMAX的ZOS-API Projects文件夹,可以看到ZEMAX已经创建了一个MATLABZOSConnection1.m文件(其中最后面的数字表示你打开了多个交互文件,点击两次“交互扩展”,则会存在两个.m文件:MATLABZOSConnection2.m;此文件可以自由删除),此文件用于与MATLAB进行交互,如果电脑中已安装MATLAB并且已打开,则MATLAB会自动打开该.m文件。
    可以在此文件上进行相关的编程,但为了方便起见,一般会将此文件作为子文件引用,不进行改动,后文会进行具体的操作。
    复制此文件夹的路径,后文需要。


    3.在ZEMAX中点击“ZOS-API.NET接口”选项卡中的“交互扩展”



    4.在MATALB中打开MATLABZOSConnection1.m文件,点击运行
    4.1在MATALB中看命令行窗口是否运行成功,运行成功会返回一下信息:



    在ZEMAX中会显示:Connected



    4.2如果运行不成功,"Failed to connect to opticstudio",官方在代码中也给出了解决方法


    在MATLABZOSConnection1.m中,找到这几行,大概在37-39行

    (1)按照%Note中的方法,注释掉% success =ZOSAPI_NetHelper.ZOSAPI_Initializer.Initialize();
    (2)取消注释success =ZOSAPI_NetHelper.ZOSAPI_Initializer.Initialize('C:\ProgramFiles\OpticStudio\');然后把里面的路径改为OpticStudio.exe安装路径所在的文件夹,注意最后以“\”结尾,比如我安装在E盘中:


    (3)如果忘记了安装位置,可右键ZEMAX图标,打开文件所在位置



    5.在MATLAB中创建一个新的.m文件,复制粘贴下面的初始化代码,需要修改其中的路径:
    %%%%%%%%%%%%   代码开始   %%%%%%%%%%%%%%
    clc; clear; close all;
    %% 添加路径,此路径为第2点中打开的MATLABZOSConnection1路径
    addpath("C:\Users\Documents\Zemax\ZOS-APIProjects\MATLABZOSConnection1");


    %% =============== 1.初始化 Zemax 连接 ===============
    TheApplication =MATLABZOSConnection1;
    TheSystem =TheApplication.PrimarySystem;

    % 替换你的 .zmx 文件路径
    zmxPath = "C:\Users\Desktop\ZEMAX_API教程\Beam Homogenizer-Updated.zmx";
    TheSystem.LoadFile(zmxPath, false);

    %%%%%%%%%%%%   代码结束   %%%%%%%%%%%%%%

    (3)命令窗口会显示运行成功:Found OpticStudio at:Zemax程序路径






    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?注册

    ×

    评分

    参与人数 3金币 +7 收起 理由
    FanLiu + 2 赞一个!
    Binary + 2 赞一个!
    知音2020 + 3 很给力!

    查看全部评分

    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2025-9-11 09:19
  • 签到天数: 1330 天

    [LV.10]以坛为家III

    20

    主题

    381

    回帖

    76

    积分

    入门

    积分
    76
    发表于 2025-9-11 16:33 | 显示全部楼层
    等待下一个教程,一直在想可不可以用matlab优化,zmx,期待你的教程
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-9-13 14:33
  • 签到天数: 288 天

    [LV.8]以坛为家I

    22

    主题

    43

    回帖

    4

    积分

    小白

    积分
    4
     楼主| 发表于 2025-9-11 22:07 | 显示全部楼层
    知音2020 发表于 2025-9-11 16:33
    等待下一个教程,一直在想可不可以用matlab优化,zmx,期待你的教程

    已应邀:Zemax—Matlab API 交互教程(3) _插入操作数并进行优化 - ZEMAX - 吾爱光设 - Powered by Discuz!

    http://www.optzmx.com/forum.php?mod=viewthread&tid=42095&page=1&extra=#pid262718
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2025-9-11 09:19
  • 签到天数: 1330 天

    [LV.10]以坛为家III

    20

    主题

    381

    回帖

    76

    积分

    入门

    积分
    76
    发表于 2025-9-12 17:44 | 显示全部楼层
    伊人在水一方 发表于 2025-9-11 22:07
    已应邀:Zemax—Matlab API 交互教程(3) _插入操作数并进行优化 - ZEMAX - 吾爱光设 - Powered by Discuz! ...

    看到了,厉害,我意思是优化器用matlab的,不用zmx的最小二乘,
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-9-13 14:33
  • 签到天数: 288 天

    [LV.8]以坛为家I

    22

    主题

    43

    回帖

    4

    积分

    小白

    积分
    4
     楼主| 发表于 2025-9-13 14:35 | 显示全部楼层
    知音2020 发表于 2025-9-12 17:44
    看到了,厉害,我意思是优化器用matlab的,不用zmx的最小二乘,

    这个思路确实没想过,很有难度,有相关的案例或者资料么
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    联系我们|本论坛只支持PC端注册|手机版|小黑屋|吾爱光设 ( 粤ICP备15067533号 )

    GMT+8, 2025-9-13 21:26 , Processed in 0.093750 second(s), 25 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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