吾爱光设

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

[我分享] Zemax Python交互GetSettings()不起作用的原因

[复制链接]
  • TA的每日心情
    开心
    2025-6-28 22:25
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    1

    回帖

    0

    积分

    小白

    积分
    0
    发表于 2025-6-28 20:58 | 显示全部楼层 |阅读模式
    在学习Zemax和Python交互中,发现zemax官方给的MTF读取代码有些语句不工作,比如Zemax\ZOS-API Sample Code\Python\PythonStandalone_04_pull_data_from_FFTMTF.py里newWin_Settings = newWin.GetSettings()    newWin_Settings.MaximumFrequency = 50
        newWin_Settings.SampleSize = ZOSAPI.Analysis.SampleSizes.S_256x256
    这些Settings都没有起作用,debug发现 newWin_Settings不存在MaximumFrequency或者SampleSize这些接口。比如直接去调用newWin_Settings.MaximumFrequency会报错的。
    查了资料发现是因为Pythonnet 3.x版本更新带来的,里面有一些继承方式发生了变化。

    Zemax官方给出了几种解决方案,
    1. 是采用以下的方式
    mtfSettings = mtf.GetSettings().__implementation__
    2. 更复杂一些
    win = TheSystem.Analyses.New_GeometricImageAnalysis()
    ws1 = win.GetSettings()ws2 = ZOSAPI.Analysis.Settings.ExtendedScene.IAS_GeometricImageAnalysis(ws1)ws2.Wavelength.SetWavelengthNumber(1)
    3. 有人直接退回到Pythonnet 2.x的版本

    参考link



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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2025-6-30 12:47 , Processed in 0.109375 second(s), 21 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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