找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 265|回复: 27
打印 上一主题 下一主题

在16.2版本下报这个错误:Unknown trigger type: menu,要怎么解决?

[复制链接]

34

主题

1321

帖子

7126

积分

六级会员(60)

Rank: 6Rank: 6

积分
7126
跳转到指定楼层
1#
发表于 2016-12-25 14:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

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

x
本帖最后由 這侽孓譙悴丶 于 2016-12-26 10:05 编辑

在16.2版本下报这个错误:Unknown trigger type: menu,要怎么解决?@deargds
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏1 支持!支持! 反对!反对!

117

主题

2352

帖子

1万

积分

EDA365特邀版主

Rank: 6Rank: 6

积分
13799

最佳敬业奖

推荐
发表于 2016-12-28 15:54 | 只看该作者
這侽孓譙悴丶 发表于 2016-12-28 13:20
fprintf(new_file "END\n");测试删除此行后可以加载
                close(old_file)
       ...

  1. skill_menuList = '(
  2.     (popup "0")
  3.         ("1" "1")      
  4.         ("2" "2")
  5.         ("3" "3")
  6.         ("4" "4")
  7.         end
  8.      )
  9. if( axlVersion('version) > 16.3 || axlVersion('version) < 16.0 then
  10. delete_menu = '("1" "1")
  11. skill_menuList=remove(delete_menu skill_menuList)
  12. delete_menu = '("2" "2")
  13. skill_menuList=remove(delete_menu skill_menuList)
  14. )


  15. if( axlVersion('version) < 16.0 then
  16. delete_menu = '("3" "3")
  17. skill_menuList=remove(delete_menu skill_menuList)
  18. )


  19. procedure( skill_16menuTrig(t_16menufile)
  20.     let( (skill_16menuId)
  21. ;    printf("MENU FILE= %s\n" t_menufile)
  22.     skill_menuId = axlUIMenuFind(nil -1)
  23.     add_menu = axlUIMenuInsert(skill_menuId skill_menuList)
  24. ))


  25. procedure( skill_15menuTrig(t_15menufile)
  26.     let( (skill_15menuId)
  27.       
  28.         old_menu_file=strcat(axlGetVariable("temp") "\\old_menu.txt")
  29.         new_menu_file=strcat(axlGetVariable("temp") "\\new_menu.txt")
  30. ;        old_menu_file="./old_menu.txt"
  31. ;        new_menu_file="./new_menu.txt"
  32.         axlUIMenuDump(old_menu_file)
  33.         end_fg=0
  34.         skilltools=0
  35.         old_file=infile(old_menu_file)
  36.         new_file=outfile(new_menu_file)
  37.         if(old_file == nil then
  38.                 axlMsgPut("Menu file error!")               
  39.                 return()
  40.                 )
  41.                 while(gets( line old_file) != nil
  42.                         if(line=="    POPUP \"0\"\n" skilltools=1)
  43.                         if( car(parseString(line))=="BEGIN" then
  44.                                 end_fg=end_fg+1
  45.                                 fprintf(new_file line)
  46.                         else
  47.                                 if( car(parseString(line))!="END" then
  48.                                         fprintf(new_file line)
  49.                                 else
  50.                                         end_fg=end_fg-1
  51.                                         if(end_fg==0 then
  52.                                                 foreach(s_menu skill_menuList
  53.                                                         if(listp(s_menu) then
  54.                                                                 s1_menu=get_string( car(s_menu))
  55.                                                                 if(s1_menu =="popup" then


  56.                                                                         fprintf(new_file "POPUP \"%s\"\n" get_string(cadr(s_menu)))
  57.                                                                         fprintf(new_file "BEGIN\n")               
  58.                                                                         )
  59.                                                                 if(s1_menu=="separator" then
  60.                                                                         fprintf(new_file "MENUITEM SEPARATOR\n")
  61.                                                                 )
  62.                                                                 if(s1_menu =="end" then
  63.                                                                         fprintf(new_file "END\n")
  64.                                                                 )
  65.                                                                 if(stringp(car(s_menu)) then
  66.                                                                         fprintf(new_file "MENUITEM \"%s\",                \"%s\"\n" get_string(car(s_menu)) get_string(cadr(s_menu)))
  67.                                                                 )
  68.                                                         else
  69.                                                                 if(get_string(s_menu) =="end" fprintf(new_file "END\n"))      
  70.                                                          )
  71.                                                  )                                                
  72.                                                 )
  73.                                                 fprintf(new_file line)
  74.                                         )
  75.                                 )
  76.                 )
  77.         ;fprintf(new_file "END\n")
  78.                 close(old_file)
  79.                 close(new_file)
  80.                 if(skilltools==0 axlUIMenuLoad(new_menu_file))
  81.         if(isFile(old_menu_file) deleteFile(old_menu_file))
  82.         if(isFile(new_menu_file) deleteFile(new_menu_file))




  83. ))


  84. if( axlVersion('version) > 16.2 then
  85.         axlTriggerSet('menu 'skill_16menuTrig)
  86. else
  87.         axlTriggerSet('open 'skill_15menuTrig)
  88. )

  89. /*
  90. defun(skill_menuTrig ()
  91.         let( (q)
  92.         q = axlUIMenuRegister( -1 skill_menuList )
  93.         )
  94. )


  95. skill_menuTrig()
  96. */
复制代码



点评

支持!: 5.0 反对!: 5.0
支持!: 5 反对!: 5
忘记跟你说声谢谢了!谢谢哈,版主,辛苦了!  发表于 2016-12-29 22:23
用你这个在公司的电脑确实可以了,但回家笔记本试了一下又还是出不了,不知道什么原因,16.2软件是一模一样的,也是你那个程序,家里的笔记本就老是菜单出不来。  详情 回复 发表于 2016-12-28 19:44
谁画出这天地 又画下我和你

117

主题

2352

帖子

1万

积分

EDA365特邀版主

Rank: 6Rank: 6

积分
13799

最佳敬业奖

3#
发表于 2016-12-26 10:47 | 只看该作者
axlTriggerSet函数在16.3下才支持'menu绑定

点评

版主,那有没有补救的方法,你看看能不能帮我这个代码怎么修改可以支持16.2的 skill_menuList = '( (popup "0") ("1" "1") ("2" "2") ("3" "3") ("4" "4") end ) if( axlVersion('version)  详情 回复 发表于 2016-12-26 11:08

34

主题

1321

帖子

7126

积分

六级会员(60)

Rank: 6Rank: 6

积分
7126
4#
 楼主| 发表于 2016-12-26 11:08 | 只看该作者
本帖最后由 這侽孓譙悴丶 于 2016-12-27 09:10 编辑
deargds 发表于 2016-12-26 10:47
axlTriggerSet函数在16.3下才支持'menu绑定

版主,那有没有补救的方法,你看看能不能帮我这个代码怎么修改可以支持16.2的

if( axlVersion('version) > 16.0 then
        axlTriggerSet('menu 'skill_16menuTrig)
else if( axlVersion('version) > 15.0 then
        axlTriggerSet('open 'skill_15menuTrig)
)
)
/*
defun(skill_menuTrig ()
        let( (q)
        q = axlUIMenuRegister( -1 skill_menuList )
        )
)


skill_menuTrig()
*/

点评

if( axlVersion('version) > 16.0 then 改成 if( axlVersion('version) > 16.2 then  详情 回复 发表于 2016-12-26 11:27

117

主题

2352

帖子

1万

积分

EDA365特邀版主

Rank: 6Rank: 6

积分
13799

最佳敬业奖

5#
发表于 2016-12-26 11:27 | 只看该作者
這侽孓譙悴丶 发表于 2016-12-26 11:08
版主,那有没有补救的方法,你看看能不能帮我这个代码怎么修改可以支持16.2的
skill_menuList = '(
    ...

if( axlVersion('version) > 16.0 then
改成
if( axlVersion('version) > 16.2 then

点评

版主,我刚试了一下了,按照你说的16.0改成16.2后在16.2版本下是不会报那个警告了,但是菜单依然出不了,还有其它办法尝试吗,麻烦了···  详情 回复 发表于 2016-12-26 19:46
好的,非常感谢!回去我试试,还有个疑问:你说axlTriggerSet函数在16.3才支持,那这个函数不用改吗  详情 回复 发表于 2016-12-26 11:45
谁画出这天地 又画下我和你

34

主题

1321

帖子

7126

积分

六级会员(60)

Rank: 6Rank: 6

积分
7126
6#
 楼主| 发表于 2016-12-26 11:45 | 只看该作者
本帖最后由 這侽孓譙悴丶 于 2016-12-26 12:14 编辑
deargds 发表于 2016-12-26 11:27
if( axlVersion('version) > 16.0 then
改成
if( axlVersion('version) > 16.2 then

好的,非常感谢!回去我试试

34

主题

1321

帖子

7126

积分

六级会员(60)

Rank: 6Rank: 6

积分
7126
7#
 楼主| 发表于 2016-12-26 19:46 | 只看该作者
deargds 发表于 2016-12-26 11:27
if( axlVersion('version) > 16.0 then
改成
if( axlVersion('version) > 16.2 then

版主,我刚试了一下了,按照你说的16.0改成16.2后在16.2版本下是不会报那个警告了,但是菜单依然出不来,还有其它办法尝试吗,麻烦了···

117

主题

2352

帖子

1万

积分

EDA365特邀版主

Rank: 6Rank: 6

积分
13799

最佳敬业奖

8#
发表于 2016-12-27 08:36 | 只看该作者
  1. if( axlVersion('version) > 16.2 then
  2.     axlTriggerSet('menu 'skill_16menuTrig)
  3. else
  4.     axlTriggerSet('open 'skill_15menuTrig)
  5. )
复制代码


16.2以下版本是绑定到OPEN动作上,当你打开一个文件时会触发菜单加载

点评

版主,改成你说的这个后,菜单还是出不了,但也没报任何错误,只是菜单出不了 if( axlVersion('version) > 16.2 then axlTriggerSet('menu 'skill_16menuTrig) else axlTriggerSet('open 'skill_15me  详情 回复 发表于 2016-12-27 19:24
好的,明白你的意思了,晚上回去我再试一试,有问题再给你回帖,幸苦了,谢谢哈!  详情 回复 发表于 2016-12-27 09:13
谁画出这天地 又画下我和你

34

主题

1321

帖子

7126

积分

六级会员(60)

Rank: 6Rank: 6

积分
7126
9#
 楼主| 发表于 2016-12-27 09:13 | 只看该作者
deargds 发表于 2016-12-27 08:36
16.2以下版本是绑定到OPEN动作上,当你打开一个文件时会触发菜单加载

好的,明白你的意思了,晚上回去我再试一试,有问题再给你回帖,幸苦了,谢谢哈!

34

主题

1321

帖子

7126

积分

六级会员(60)

Rank: 6Rank: 6

积分
7126
10#
 楼主| 发表于 2016-12-27 19:24 | 只看该作者
deargds 发表于 2016-12-27 08:36
16.2以下版本是绑定到OPEN动作上,当你打开一个文件时会触发菜单加载

版主,改成你说的这个后,菜单还是出不了,但也没报任何错误,只是菜单出不了

if( axlVersion('version) > 16.2 then
    axlTriggerSet('menu 'skill_16menuTrig)
else
    axlTriggerSet('open 'skill_15menuTrig)
)


不是说axlTriggerSet函数在16.2不支持么?这会还有什么办法吗?

点评

问题可能出在skill_15menuTrig这个函数上,你可以手工运行这个函数试试,如果不能加载就是这个有问题,另外你的原始代码看不到了。。。。。。  详情 回复 发表于 2016-12-28 08:32

117

主题

2352

帖子

1万

积分

EDA365特邀版主

Rank: 6Rank: 6

积分
13799

最佳敬业奖

11#
发表于 2016-12-28 08:32 | 只看该作者
這侽孓譙悴丶 发表于 2016-12-27 19:24
版主,改成你说的这个后,菜单还是出不了,但也没报任何错误,只是菜单出不了

if( axlVersion('versio ...

问题可能出在skill_15menuTrig这个函数上,你可以手工运行这个函数试试,如果不能加载就是这个有问题,另外你的原始代码看不到了。。。。。。

点评

我昨晚是在家里的笔记本上试的,菜单出不来,今天就把16.2软件带过来公司电脑安装了,刚试了一下,公司电脑又可以出得来,这是怎么回事哦?然后我再单独运行你说的那个函数结果如下面: Command > skill Skill > a  详情 回复 发表于 2016-12-28 09:58
好吧,咋又不见了,重新贴。要不你直接整个代码试试,看看怎么改快点 skill_menuList = '( (popup "0") ("1" "1") ("2" "2") ("3" "3") ("4" "4") end ) if( axlVersion('version) > 16  详情 回复 发表于 2016-12-28 09:24
谁画出这天地 又画下我和你

34

主题

1321

帖子

7126

积分

六级会员(60)

Rank: 6Rank: 6

积分
7126
12#
 楼主| 发表于 2016-12-28 09:24 | 只看该作者
本帖最后由 這侽孓譙悴丶 于 2016-12-29 09:15 编辑
deargds 发表于 2016-12-28 08:32
问题可能出在skill_15menuTrig这个函数上,你可以手工运行这个函数试试,如果不能加载就是这个有问题,另 ...

好吧,咋又不见了,重新贴。要不你直接整个代码试试,看看怎么改快点


skill_menuList = '(
    (popup "0")
        ("1" "1")        
        ("2" "2")
        ("3" "3")
        ("4" "4")
        end
     )
if( axlVersion('version) > 16.3 || axlVersion('version) < 16.0 then
delete_menu = '("1" "1")
skill_menuList=remove(delete_menu skill_menuList)
delete_menu = '("2" "2")
skill_menuList=remove(delete_menu skill_menuList)
)


if( axlVersion('version) < 16.0 then
delete_menu = '("3" "3")
skill_menuList=remove(delete_menu skill_menuList)
)


procedure( skill_16menuTrig(t_16menufile)
    let( (skill_16menuId)
;    printf("MENU FILE= %s\n" t_menufile)
    skill_menuId = axlUIMenuFind(nil -1)
    add_menu = axlUIMenuInsert(skill_menuId skill_menuList)
))


procedure( skill_15menuTrig(t_15menufile)
    let( (skill_15menuId)
        
                while(gets( line old_file) != nil
                        if(line=="    POPUP \"0\"\n" skilltools=1)
                        if( car(parseString(line))=="BEGIN" then
                                end_fg=end_fg+1
                                fprintf(new_file line)
                        else
                                if( car(parseString(line))!="END" then
                                        fprintf(new_file line)
                                else
                                        end_fg=end_fg-1
                                        if(end_fg==0 then
                                                foreach(s_menu skill_menuList
                                                        if(listp(s_menu) then
                                                                s1_menu=get_string( car(s_menu))
                                                                if(s1_menu =="popup" then
                                                fprintf(new_file line)
                                        )
                                )
                )
        fprintf(new_file "END\n")
                close(old_file)
                close(new_file)
                if(skilltools==0 axlUIMenuLoad(new_menu_file))
        if(isFile(old_menu_file) deleteFile(old_menu_file))
        if(isFile(new_menu_file) deleteFile(new_menu_file))




))


if( axlVersion('version) > 16.0 then
        axlTriggerSet('menu 'skill_16menuTrig)
else if( axlVersion('version) > 15.0 then
        axlTriggerSet('open 'skill_15menuTrig)
)
)
/*
defun(skill_menuTrig ()
        let( (q)
        q = axlUIMenuRegister( -1 skill_menuList )
        )
)


skill_menuTrig()
*/

117

主题

2352

帖子

1万

积分

EDA365特邀版主

Rank: 6Rank: 6

积分
13799

最佳敬业奖

13#
发表于 2016-12-28 11:47 | 只看该作者
這侽孓譙悴丶 发表于 2016-12-28 09:58
我昨晚是在家里的笔记本上试的,菜单出不来,今天就把16.2软件带过来公司电脑安装了,刚试了一下,公司电 ...

问题出在skill_15menuTrig函数,你检查下输出的new_menu.txt文件格式是否正确,是否可以使用axlUIMenuLoad加载。

  1.         fprintf(new_file "END\n");测试删除此行后可以加载
  2.                 close(old_file)
  3.                 close(new_file)
  4.                 if(skilltools==0 axlUIMenuLoad(new_menu_file))
复制代码



点评

fprintf(new_file "END\n");测试删除此行后可以加载 close(old_file) close(new_file) if(skilltools==0 axlUIMenuLoad(new_menu_file)) 把这短代  详情 回复 发表于 2016-12-28 13:20
谁画出这天地 又画下我和你

34

主题

1321

帖子

7126

积分

六级会员(60)

Rank: 6Rank: 6

积分
7126
14#
 楼主| 发表于 2016-12-28 13:20 | 只看该作者
deargds 发表于 2016-12-28 11:47
问题出在skill_15menuTrig函数,你检查下输出的new_menu.txt文件格式是否正确,是否可以使用axlUIMenuLoa ...

        fprintf(new_file "END\n");测试删除此行后可以加载
                close(old_file)
                close(new_file)
                if(skilltools==0 axlUIMenuLoad(new_menu_file))

把这短代码里面的fprintf(new_file "END\n")这一行删除的话所有版本的菜单就加载不上了,要不你把你测试OK的完整的代码帖出来我试试你改的会不会。

34

主题

1321

帖子

7126

积分

六级会员(60)

Rank: 6Rank: 6

积分
7126
15#
 楼主| 发表于 2016-12-28 19:44 | 只看该作者

用你这个在公司的电脑确实可以了,但回家笔记本试了一下又还是出不了,不知道什么原因,16.2软件是一模一样的,也是你那个程序,家里的笔记本就老是菜单出不来。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-13 08:53 , Processed in 0.083437 second(s), 44 queries , Gzip On.

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

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

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