吾爱光设

 找回密码
 注册
会员须知
会员须知
实用帮助
实用帮助
楼主: hhhddd

[求助] [已解决]ZEMAX宏有没有办法用数组储存数值?

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-22 09:34
  • 签到天数: 462 天

    [LV.9]以坛为家II

    88

    主题

    740

    回帖

    45

    积分

    新手

    积分
    45
     楼主| 发表于 2024-11-22 11:23 | 显示全部楼层
    神里绫华 发表于 2024-11-22 10:59
    这不就是一个求数组中最大值的函数吗,你管他有没有局部最大值,直接用排序法对数组中每一个元素挨个比较就 ...

    哥你说的很有道理,如果用ZEMAX的宏该怎么建立联系呢
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-11-22 09:34
  • 签到天数: 462 天

    [LV.9]以坛为家II

    88

    主题

    740

    回帖

    45

    积分

    新手

    积分
    45
     楼主| 发表于 2024-11-22 11:25 | 显示全部楼层
    sunnyshine 发表于 2024-11-22 09:44
    可以参考这篇帖子的第12楼,h ttp://www.optzmx.com/thread-7312-2-1.html。思路如下:先声明数组,比如你 ...

    哥,我都是统一给的1000,全是最大的





    本帖子中包含更多资源

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

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

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-11-22 09:34
  • 签到天数: 462 天

    [LV.9]以坛为家II

    88

    主题

    740

    回帖

    45

    积分

    新手

    积分
    45
     楼主| 发表于 2024-11-22 11:29 | 显示全部楼层
    初见为末 发表于 2024-11-22 10:41
    先使用一个边缘光线高度求解,这样初始像面就会在你标注的A点附近,然后再做Thic-0.02mm去扫TF的最高点就好 ...

    哥,边缘高度求解,相当于0.707那个对焦是吧,我现在的问题不是中心离焦,而是场曲。当物距变的很近,或者温漂时候,就会有场曲,边缘可能会超出20um30um。你说的这个从左往右推,是我最开始写的那个,就是会出错。





    本帖子中包含更多资源

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

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

    使用道具 举报

  • TA的每日心情
    开心
    2024-10-11 13:49
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    6

    主题

    39

    回帖

    4

    积分

    小白

    积分
    4
    发表于 2024-11-22 11:36 | 显示全部楼层

    回帖奖励 +1 枚金币

    hhhddd 发表于 2024-11-22 11:23
    哥你说的很有道理,如果用ZEMAX的宏该怎么建立联系呢

    就是用ZEMAX的语法把C语言中求最大值的算法复现就可以了,但是前提是你还是得懂这个求最大值的算法是怎么在C语言中是怎么实现的,比如你可以用冒泡法将所有的数组值排序。

    评分

    参与人数 1金币 +1 收起 理由
    hhhddd + 1 感谢大哥指点

    查看全部评分

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

    使用道具 举报

  • TA的每日心情
    擦汗
    2022-7-10 12:13
  • 签到天数: 36 天

    [LV.5]常住居民I

    5

    主题

    153

    回帖

    21

    积分

    新手

    积分
    21
    发表于 2024-11-22 11:48 | 显示全部楼层

    回帖奖励 +1 枚金币

    hhhddd 发表于 2024-11-22 11:29
    哥,边缘高度求解,相当于0.707那个对焦是吧,我现在的问题不是中心离焦,而是场曲。当物距变的很近,或 ...

    那你移动后焦扫TF的时候,就不要加这个if...then goto的判断语句,直接从-0.05扫到0.05mm、结束。

    你使用的z(i)就是数组啊,再加一个数值d(i),把后焦值也存下来。
    最后对数组z找到最大值z(j),再得到对应的d(j)

    不过,你应该使用二维数组,因为还有一个视场变量


    评分

    参与人数 1金币 +2 收起 理由
    hhhddd + 2 感谢大哥指点

    查看全部评分

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

    使用道具 举报

  • TA的每日心情
    开心
    2024-11-22 08:28
  • 签到天数: 281 天

    [LV.8]以坛为家I

    6

    主题

    201

    回帖

    42

    积分

    新手

    积分
    42
    发表于 2024-11-22 12:54 | 显示全部楼层

    回帖奖励 +1 枚金币

    hhhddd 发表于 2024-11-22 11:25
    哥,我都是统一给的1000,全是最大的

    其实,zemax这种读取场曲和峰值的方法,速度特别慢,还是cv比较快。
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-11-22 09:34
  • 签到天数: 462 天

    [LV.9]以坛为家II

    88

    主题

    740

    回帖

    45

    积分

    新手

    积分
    45
     楼主| 发表于 2024-11-22 13:16 | 显示全部楼层
    sunnyshine 发表于 2024-11-22 12:54
    其实,zemax这种读取场曲和峰值的方法,速度特别慢,还是cv比较快。

    确实很慢,但是CODEV自带的那个,好像有点问题,defocus读不准
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-11-22 08:34
  • 签到天数: 484 天

    [LV.9]以坛为家II

    13

    主题

    227

    回帖

    45

    积分

    新手

    积分
    45
    发表于 2024-11-22 13:25 | 显示全部楼层

    回帖奖励 +1 枚金币

    declare fc,double,2,x/m+1,y/m+1  #定义一个二维数组
    max_data=fc(1,1) #求数组最大值
    for i,1,x/m+1,1
    for j,1,y/m+1,1
    if (fc(i,j)>=max_data)
    max_data=fc(i,j)
    w=max_data
    endif
    next
    next

    min_data=fc(1,1) #求数组最小值
    for i,1,x/m+1,1
    for j,1,y/m+1,1
    if (fc(i,j)<=min_data)
    min_data=fc(i,j)
    z=min_data
    endif
    next
    next

    应该参考这样,以前写的宏,截取了一部分。

    评分

    参与人数 1金币 +3 收起 理由
    hhhddd + 3 二维太高级了不是很懂

    查看全部评分

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

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-11-22 09:34
  • 签到天数: 462 天

    [LV.9]以坛为家II

    88

    主题

    740

    回帖

    45

    积分

    新手

    积分
    45
     楼主| 发表于 2024-11-22 15:55 | 显示全部楼层
    世界应该有光 发表于 2024-11-21 19:31
    可以的,用默认数组VEC2()就能实现,参考我这段写的程序

    大哥,为什么我这里会死循环啊,是哪里有问题吗





    本帖子中包含更多资源

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

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

    使用道具 举报

  • TA的每日心情

    2024-11-22 09:53
  • 签到天数: 946 天

    [LV.10]以坛为家III

    16

    主题

    383

    回帖

    121

    积分

    入门

    积分
    121
    发表于 2024-11-22 15:57 | 显示全部楼层    本楼为最佳答案   
    hhhddd 发表于 2024-11-22 11:21
    哥你说得对,是我傻逼了,您看这样是吗

    Z3里也不需要+1,for循环初始值考虑要不要+1就容易理解了,mm=0放for循环上一行,mm只需定义一次初始值,在FOR循环的话,你每个Z3都会大于0的,以至于最大值只会保存最后一个Z3
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-11-22 23:02 , Processed in 0.140625 second(s), 23 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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