吾爱光设

会员须知
会员须知
实用帮助
实用帮助
查看: 14746|回复: 10

[求助] [已解决]编辑宏依次对不同波长进行追迹

[复制链接]
  • TA的每日心情

    2023-8-9 16:48
  • 签到天数: 81 天

    [LV.6]常住居民II

    10

    主题

    62

    回帖

    13

    积分

    小白

    积分
    13
    发表于 2018-12-5 22:09 | 显示全部楼层 |阅读模式
    在用不同的波长对透过率函数进行追迹的时候,感觉要变的波长太多,自己一次次变波长太费时间。但是自己没有宏编写的经历,所以想求助一下宏程序的编写。主要实现功能:波长每变化一次,对光路进行一次追迹,记录总功率值。其中波长从354.697nm-354.201nm,每次变化0.002pm。需要采集2000个值。所以手动的话,太耗精力。望大佬帮忙!

    PS:大佬如果有类似的例子,截个图也是对菜鸟的莫大帮助!
           金币不多,只能50%中奖率了。。。
    最佳答案
    2018-12-6 11:57
    用个重复执行语句
    FOR variable, start_value, stop_value, increment
    (commands)
    NEXT

    设置波长
    SYSP 202,波长序号,波长数值

    本帖子中包含更多资源

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

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

    使用道具 举报

  • TA的每日心情
    开心
    2024-10-31 08:37
  • 签到天数: 842 天

    [LV.10]以坛为家III

    24

    主题

    1030

    回帖

    2756

    积分

    中级

    积分
    2756

    活跃会员优秀版主论坛忠实支持者

    发表于 2018-12-6 09:49 | 显示全部楼层

    回帖奖励 +1 枚金币

    你是想看透过率曲线?在序列里看可以吗
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情

    2023-8-9 16:48
  • 签到天数: 81 天

    [LV.6]常住居民II

    10

    主题

    62

    回帖

    13

    积分

    小白

    积分
    13
     楼主| 发表于 2018-12-6 10:21 | 显示全部楼层
    lyardan 发表于 2018-12-6 09:49
    你是想看透过率曲线?在序列里看可以吗

    这个透过率函数指的是FP的一种性能曲线,并不是指的膜层对波长透过率。。。
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情

    2023-8-9 16:48
  • 签到天数: 81 天

    [LV.6]常住居民II

    10

    主题

    62

    回帖

    13

    积分

    小白

    积分
    13
     楼主| 发表于 2018-12-6 10:52 | 显示全部楼层
    其中追迹的代码可以使用NSTR,但是改变波长的代码应该使用什么?
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-10-31 08:37
  • 签到天数: 842 天

    [LV.10]以坛为家III

    24

    主题

    1030

    回帖

    2756

    积分

    中级

    积分
    2756

    活跃会员优秀版主论坛忠实支持者

    发表于 2018-12-6 11:57 | 显示全部楼层    本楼为最佳答案   
    用个重复执行语句
    FOR variable, start_value, stop_value, increment
    (commands)
    NEXT

    设置波长
    SYSP 202,波长序号,波长数值

    评分

    参与人数 1金币 +1 贡献值 +1 收起 理由
    + 1
    + 1

    查看全部评分

    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情

    2023-8-9 16:48
  • 签到天数: 81 天

    [LV.6]常住居民II

    10

    主题

    62

    回帖

    13

    积分

    小白

    积分
    13
     楼主| 发表于 2018-12-6 20:06 | 显示全部楼层
    lyardan 发表于 2018-12-6 11:57
    用个重复执行语句
    FOR variable, start_value, stop_value, increment
    (commands)

    大佬,您看这样可以吗?
    FOR i, 0.354698317, 0.354698320, 0.000000001
    SYSP 202,1,i
    NSTR 1,0,1,0,1,1,0,1, "saverays.ZRD",“h2”
    NEXT
    BEEP


    ps:波长没设置太多,怕等太久。。。
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情

    2023-8-9 16:48
  • 签到天数: 81 天

    [LV.6]常住居民II

    10

    主题

    62

    回帖

    13

    积分

    小白

    积分
    13
     楼主| 发表于 2018-12-6 22:03 | 显示全部楼层
    FOR i, 0.354698317, 0.354698320, 0.000000001
    WAVL(1)=i
    NSDC(1,6,0,3)
    !PRINT
    NEXT
    BEEP
    上一个好像可以,但是不知道相干强度数据放到哪去了。那个ZRD文件打不开。改了一下之后,准备用这个函数,结果提示NSDC的名字不对:Variable name may not be  the same as a function name:NSDC
    大佬,这改咋整?
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情

    2023-8-9 16:48
  • 签到天数: 81 天

    [LV.6]常住居民II

    10

    主题

    62

    回帖

    13

    积分

    小白

    积分
    13
     楼主| 发表于 2018-12-7 10:18 | 显示全部楼层
    NSDC一句,应改为V=NSDC(1,6,0,3).返回值的赋值变量名称自己命名。
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情

    2023-8-9 16:48
  • 签到天数: 81 天

    [LV.6]常住居民II

    10

    主题

    62

    回帖

    13

    积分

    小白

    积分
    13
     楼主| 发表于 2018-12-7 10:20 | 显示全部楼层
    但是NSDC似乎只是clear 探测器,追迹还是要加上NSTR
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情

    2023-8-9 16:48
  • 签到天数: 81 天

    [LV.6]常住居民II

    10

    主题

    62

    回帖

    13

    积分

    小白

    积分
    13
     楼主| 发表于 2018-12-7 16:41 | 显示全部楼层
    本帖最后由 1132250557 于 2018-12-7 17:17 编辑

    FOR i, 1,50,1
    v=0.354698317+i*0.000000001
    WAVL(1)=v

    PRINT "------------------------------"
    FORMAT .9
    PRINT "v=",v

    UPDATE ALL

    NSTR 1,0,1,0,1,1,0,1,"ray.ZRD","h2"
    rtn=NSDDC(1, 6, 0, 3)
    PRINT rtn

    FORMAT .0
            prefix1$="C:\Users\**\Desktop\相干强度\"
            folder1$=$STR(i)+"_"+"探测器物体6"
            prefix1$=prefix1$+folder1$

            UPDATE ALL
            ext1$=".wmf"
            filename1$=prefix1$+ext1$
            
            UPDATE ALL
            EXPORTWMF 1, filename1$

            ext1$=".txt"
            UPDATE ALL
            filename1$=prefix1$+ext1$
            SAVEWINDOW 2, filename1$

    NEXT
    BEEP
    END
    分享一下,已经可以实现自动变波长,追迹,保存数据和图片的功能。
    缺点是不能够把相干强度的值直接读取出来,需要到txt文件中人为的读取。有些语句没用,但是还是不改了。其中窗口2记得确定是探测器页面的文本窗口,否则可能会报错。

    评分

    参与人数 1威望 +1 金币 +2 收起 理由
    + 1
    + 2
    赞一个!

    查看全部评分

    该会员没有填写今日想说内容.
    回复

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-11-6 09:35 , Processed in 0.156250 second(s), 26 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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