吾爱光设

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

[求助] [已解决]AUT里的命令编写请教

[复制链接]
  • TA的每日心情
    无聊
    2024-11-22 09:18
  • 签到天数: 691 天

    [LV.9]以坛为家II

    20

    主题

    456

    回帖

    34

    积分

    新手

    积分
    34
    发表于 2022-4-12 09:25 | 显示全部楼层
    cq20150401 发表于 2022-4-11 11:30
    这个我测试过没问题啊,不过也有可能是这里@SAGF123_1_99 == @SAGF123(1,99),我写成(1,99),是想表达从 ...

    你可以按照你的方法,改成控制一系列镜片的R值,你看看是不是像我说的那样只能控制循环里面最后的那个,还是所有面都能控制。反正我试了几次都是只能控制最后的那个,你说的99我知道是最后的面
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-9-15 17:47
  • 签到天数: 436 天

    [LV.9]以坛为家II

    66

    主题

    585

    回帖

    88

    积分

    入门

    积分
    88
    发表于 2022-4-12 15:32 | 显示全部楼层
    Leslie 发表于 2022-4-12 09:25
    你可以按照你的方法,改成控制一系列镜片的R值,你看看是不是像我说的那样只能控制循环里面最后的那个, ...

    确实有问题,自定义函数里的循环运行完后,函数返回的是最后一个面的值,我试了下,也不能返回数组......

    如果你只是想控制面的半径的话可以看我以前发的这个贴
    http://www.optzmx.com/thread-14726-1-1.html

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

    使用道具 举报

  • TA的每日心情
    无聊
    2024-11-22 09:18
  • 签到天数: 691 天

    [LV.9]以坛为家II

    20

    主题

    456

    回帖

    34

    积分

    新手

    积分
    34
    发表于 2022-4-13 09:51 | 显示全部楼层
    cq20150401 发表于 2022-4-12 15:32
    确实有问题,自定义函数里的循环运行完后,函数返回的是最后一个面的值,我试了下,也不能返回数组...... ...

    我只是看到你写的方法去试了看行不行,发现有问题跟你反馈一下。
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-9-15 17:47
  • 签到天数: 436 天

    [LV.9]以坛为家II

    66

    主题

    585

    回帖

    88

    积分

    入门

    积分
    88
    发表于 2022-4-13 10:39 | 显示全部楼层
    本帖最后由 cq20150401 于 2022-4-13 11:05 编辑
    Leslie 发表于 2022-4-13 09:51
    我只是看到你写的方法去试了看行不行,发现有问题跟你反馈一下。

    嗯,谢谢反馈,我昨天回去又想了想,因为函数只能返回一个数值,返回数组的方法就行不通了,我想了一个办法,将每个半径的绝对值保存在数组里面,然后查找出最大的那一个半径作为函数的返回值,再让这个最大值小于给定值,测试了下,好像可以用,不过还是有点缺陷,系统的光栏如果是虚拟面的就没法生效了,因为codev默认不会改变光栏的半径,这就会导致返回的MAX值一直是1e+18,当然也可以在函数里增加对光栏面的判断,如果是光栏面就将那个对应的数组值设为0,有兴趣的可以研究研究。
    =========================
    FCT  @SAGF123(NUM ^first_surf, NUM ^last_surf)
    GBL NUM ^A(10) ^MAX    !   系统的总面数,根据实际情况更改,不包含像面
    ^MAX==50   !   和AUT文件中的约束值一致

    FOR ^surf ^first_surf ^last_surf  
    ^A(^surf) == ABSF((RDY S^surf))
    END FOR

    FOR ^i ^first_surf ^last_surf
    IF ^A(^i)  > ^MAX
    ^MAX == ^A(^i)
    END IF
    END FOR

    END FCT  ^MAX



    又是美好的一
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-9-15 17:47
  • 签到天数: 436 天

    [LV.9]以坛为家II

    66

    主题

    585

    回帖

    88

    积分

    入门

    积分
    88
    发表于 2022-4-13 13:58 | 显示全部楼层
    本帖最后由 cq20150401 于 2022-4-13 14:00 编辑

    针对光栏面的问题将函数重新改了下,我把测试文件发上来,有兴趣的可以试试,如果能改进就更好。
    用的是CODEV示例镜头中的第一个双高斯来测试,将所有半径、厚度和材料设为变量,从运行结果可以看出约束条件有一定作用,但不如直接约束严格,半径值有一定的浮动。

    本帖子中包含更多资源

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

    ×
    又是美好的一
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-3-28 23:24
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    0

    主题

    5

    回帖

    0

    积分

    禁止发言

    积分
    0
    发表于 2023-3-28 23:23 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-11-23 13:15
  • 签到天数: 3461 天

    [LV.Master]伴坛终老

    1235

    主题

    5658

    回帖

    909

    积分

    管理员

    积分
    909

    论坛忠实支持者

    发表于 2023-3-28 23:27 | 显示全部楼层
    ardu 发表于 2023-3-28 23:23
    好资料,谢谢分享。

    请不要在论坛灌水!!!!
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-11-23 16:43 , Processed in 0.093750 second(s), 25 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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