找回密码
 注册
查看: 483|回复: 12
打印 上一主题 下一主题

SKILL请教:如何获取mini form中的值

[复制链接]
  • TA的每日心情
    奋斗
    2025-4-27 15:26
  • 签到天数: 81 天

    [LV.6]常住居民II

    跳转到指定楼层
    1#
    发表于 2022-2-14 17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x
    我想获取自带命令的mini form中的值,有什么办法吗?

    比如点击move,在option中会自动调用allegro自带的x:\cadence_SPB_17.2-2016\share\pcb\text\forms目录下面的mini.form,打开这个form文件可以找到想要的field,以及POP list。使用FORM mini可以修改值,但是有什么办法能够获取到form中的值吗。
    1. FIELD rotate_type
    2. FLOC 10 10
    3. ENUMSET 11
    4. POP "rot_type"
    5. ENDFIELD
    复制代码

    另外,FORM mini类似的介绍很少,请问在哪里可以找到更多关于FORM mini怎么使用的介绍?


    该用户从未签到

    2#
    发表于 2022-2-14 17:52 | 只看该作者
    想看看大神怎么说的
  • TA的每日心情
    开心
    2022-5-6 15:29
  • 签到天数: 34 天

    [LV.5]常住居民I

    3#
    发表于 2022-2-15 10:34 | 只看该作者
    本帖最后由 leilei4908 于 2022-2-15 10:35 编辑

    截取部分代码供你参考
    axlCmdRegister("rp" 'wlRouteKeepoutByPad) ;cmdType "general" 和 axlMiniStatusLoad 不能共用
    procedure(wlRouteKeepoutByPad()
    prog((tempf f)
            tempf = axlTempFile()
            f = outfile(tempf "w")
            fprintf(f "FILE_TYPE=FORM_DEFN VERSION=2\n")
            fprintf(f "FORM\n")
            fprintf(f "FIXED\n")
            fprintf(f "PORT 21 7\n")
            fprintf(f "HEADER \"RouteKeepoutByPad\"\n")
            
            fprintf(f "TILE\n")
            fprintf(f "GROUP \"[\321\241\324\361]   Select\"\n")
            fprintf(f "GLOC 1 1\n")
            fprintf(f "GSIZE 24 7\n")
            fprintf(f "ENDGROUP\n")

    ; ......
    ; ......
            fprintf(f "FIELD width\n")
            fprintf(f "FLOC 16 31\n")
            fprintf(f "REALFILLIN 6 8\n")
            fprintf(f "DECIMAL %n\n" cadr(axlDBGetDesignUnits()))
            fprintf(f "ENDFIELD\n")
            fprintf(f "ENDTILE\n")
            fprintf(f "ENDFORM\n")
            close(f)
            rpForm = axlMiniStatusLoad( (gensym) tempf 'rpFormAction)
            axlFormDisplay(rpForm)

            errset(deleteFile(tempf))

    ; ......
    ; ......

            g_Mark = nil
            axlClearSelSet()
            axlSetFindFilter(?enabled '(noall pins vias) ?onButtons '(noall pins vias))
            mypopup = axlUIPopupDefine( nil list(
                    list( "Done" 'wlDone)
                    list( "Cancel" 'wlCancel)
                    list( "Back" 'wlBack)
                    list( "Oops" 'wlOops)
            ))
            when(g_Mark axlDBTransactionCommit(g_Mark))
            g_Mark = axlDBTransactionStart()
            while(axlSelect()
                    axlUIPopupSet(mypopup)
                    pads = axlGetSelSet()
                    axlClearSelSet()

    ; ......
    ; ......

                    axlClearSelSet()
                    axlSetFindFilter(?enabled '(noall pins vias) ?onButtons '(noall pins vias))
                    ;axlDBTransactionCommit(g_Mark)
            )
            axlUIPopupSet(nil)        
            axlSetFindFilter(?enabled '(noall) ?onButtons '(noall))
            return(nil)
    ))

    procedure(rpFormAction(rpForm)
    prog(()
    ; ......
    ; ......

            when(axlFormGetField(rpForm "width") rp_width = axlFormGetField(rpForm "width"))

    ; ......
    ; ......
    ))



    点评

    你贴的这些我都知道。只想知道获取另一个命令中用到的form的值。  详情 回复 发表于 2022-2-15 11:02
  • TA的每日心情
    开心
    2022-5-6 15:29
  • 签到天数: 34 天

    [LV.5]常住居民I

    4#
    发表于 2022-2-15 10:37 | 只看该作者
    自带的,倒是没去研究过
    应该可以用script录制重播的方式去操作
  • TA的每日心情
    奋斗
    2025-4-27 15:26
  • 签到天数: 81 天

    [LV.6]常住居民II

    5#
     楼主| 发表于 2022-2-15 11:02 | 只看该作者
    leilei4908 发表于 2022-2-15 10:34
    截取部分代码供你参考
    axlCmdRegister("rp" 'wlRouteKeepoutByPad) ;cmdType "general" 和 axlMiniStatusL ...

    你贴的这些我都知道。只想知道获取另一个命令中用到的form的值。

    点评

    你的意思是不是,要获取到 form handle(form dbid) ?一般 form dbid 都会创建成局部变量,即使知道变量名,要获取id或者控制form,应该是不可能的吧?  详情 回复 发表于 2022-2-15 16:01
  • TA的每日心情
    开心
    2022-5-6 15:29
  • 签到天数: 34 天

    [LV.5]常住居民I

    6#
    发表于 2022-2-15 16:01 | 只看该作者
    db-_- 发表于 2022-2-15 11:02
    你贴的这些我都知道。只想知道获取另一个命令中用到的form的值。

    你的意思是不是,要获取到 form handle(form dbid) ?一般 form dbid 都会创建成局部变量,即使知道变量名,要获取id或者控制form,应该是不可能的吧?

    点评

    获取别人的form handle也可以。 FORM mini都可以直接修改值,我在想,应该也可以获取值才对。能set应该也能get啊。  详情 回复 发表于 2022-2-15 16:02
  • TA的每日心情
    奋斗
    2025-4-27 15:26
  • 签到天数: 81 天

    [LV.6]常住居民II

    7#
     楼主| 发表于 2022-2-15 16:02 | 只看该作者
    leilei4908 发表于 2022-2-15 16:01
    你的意思是不是,要获取到 form handle(form dbid) ?一般 form dbid 都会创建成局部变量,即使知道变量 ...

    获取别人的form handle也可以。
    FORM mini都可以直接修改值,我在想,应该也可以获取值才对。能set应该也能get啊。

    点评

    FORM mini可以直接修改值 ?怎么实现的呢? 我能想到的方法就是skill生成scr文件,然后replay去修改  详情 回复 发表于 2022-2-15 16:13
  • TA的每日心情
    开心
    2022-5-6 15:29
  • 签到天数: 34 天

    [LV.5]常住居民I

    8#
    发表于 2022-2-15 16:13 | 只看该作者
    db-_- 发表于 2022-2-15 16:02
    获取别人的form handle也可以。
    FORM mini都可以直接修改值,我在想,应该也可以获取值才对。能set应该 ...

    FORM mini可以直接修改值    ?怎么实现的呢?
    我能想到的方法就是skill生成scr文件,然后replay去修改

    点评

    你move的时候,在控制台输入以下命令试试。应该是可以来回切。  详情 回复 发表于 2022-2-15 16:15
  • TA的每日心情
    奋斗
    2025-4-27 15:26
  • 签到天数: 81 天

    [LV.6]常住居民II

    9#
     楼主| 发表于 2022-2-15 16:15 | 只看该作者
    leilei4908 发表于 2022-2-15 16:13
    FORM mini可以直接修改值    ?怎么实现的呢?
    我能想到的方法就是skill生成scr文件,然后replay去修改
    ...

    你move的时候,在控制台输入以下命令试试。应该是可以来回切。

    1. skill FORM mini rotate_point User Pick
    2. skill FORM mini rotate_point Sym Origin
    复制代码


    点评

    试了,Command控制台,输入的指令,去掉前面的skill就行  详情 回复 发表于 2022-2-15 16:27
  • TA的每日心情
    开心
    2022-5-6 15:29
  • 签到天数: 34 天

    [LV.5]常住居民I

    10#
    发表于 2022-2-15 16:27 | 只看该作者
    本帖最后由 leilei4908 于 2022-2-15 16:28 编辑
    db-_- 发表于 2022-2-15 16:15
    你move的时候,在控制台输入以下命令试试。应该是可以来回切。

    试了,Command控制台,输入的指令,去掉前面的skill就行
    要加skill的话
    是要 skill axlShell("FORM mini rotate_point User Pick")

    点评

    对 我2了。反正修改是可以的。我还想读取。  详情 回复 发表于 2022-2-15 16:31
  • TA的每日心情
    奋斗
    2025-4-27 15:26
  • 签到天数: 81 天

    [LV.6]常住居民II

    11#
     楼主| 发表于 2022-2-15 16:31 | 只看该作者
    leilei4908 发表于 2022-2-15 16:27
    试了,Command控制台,输入的指令,去掉前面的skill就行
    要加skill的话
    是要 skill axlShell("FORM min ...

    对 我2了。反正修改是可以的。我还想读取。
  • TA的每日心情
    奋斗
    2025-4-27 15:26
  • 签到天数: 81 天

    [LV.6]常住居民II

    13#
     楼主| 发表于 2022-5-14 13:04 | 只看该作者
    已搞定。插入dll,获取对话框控件文字即可。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-5-29 18:16 , Processed in 0.093750 second(s), 24 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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