EDA365电子论坛网

标题: 【求助】allegro can't faind window: form.upd_element [打印本页]

作者: liuyidao    时间: 2023-9-19 22:39
标题: 【求助】allegro can't faind window: form.upd_element
用script录制了一个更新封装的脚本。用skill仿照这个格式生成同样的脚本。通过窗口replay可以正常运行,但是直接用skill运行这个脚本会提示can't faind window: form.upd_element,请问这是什么原因。


作者: liuyidao    时间: 2023-9-19 22:40
can't find window; form.upd_element
作者: dzkcool    时间: 2023-9-20 09:56
调用更新封装的命令没写好,导致窗口没打开
作者: liuyidao    时间: 2023-9-21 07:02
dzkcool 发表于 2023-9-20 09:56
调用更新封装的命令没写好,导致窗口没打开

窗口能打开,但是没有接下来的动作。而且无论时通过菜单script里的replay 还是在commond栏里输入replay xx.scr。这个脚本都能正常运行,就是通过skill不能正常运行。

作者: liuyidao    时间: 2023-9-27 21:30
自问自答一下,暂时没有找到不能操作窗口的原因。
     为了实现相同的功能,这里换了一个思路,直接用allegro skill函数实现封装的更新,下面把核心的内容贴出来,供大家参考,有更好的思路也可以分享。
代码核心部分在16.5和17.2上都已经做了验证。

  1. (defun AUpdatefootprint()
  2.    ...........;这里省去的是footprint_list的获取过程,不同情形获取方式不同。
  3.   if( (nequal footprint_list nil) then
  4.      
  5.         axlDBIgnoreFixed(t)  
  6.     when( footprint_list
  7.                   axlDBCloak( 'UpdateSigsym(footprint_list) 'shape)
  8.         )
  9.         printf("\n====Refresh successfully !---\n ## ")
  10.    else
  11.         printf("\n====No Symbol listed to refresh!---\n ## ")   
  12.   )


  13. )

  14. (defun UpdateSigsym (footprintdatebase_list)
  15.         i=0
  16.         foreach(footprint_db footprintdatebase_list
  17.                x=axlRefreshSymbol(footprint_dbfootprint_db)
  18.            if( (equal x nil) then
  19.                         printf("%s--failed to refresh\n" footprint_db)
  20.                    else
  21.                         i=i+1
  22.                         printf("%d--%s--refreshed\n" i,footprint_db)
  23.                   
  24.                    )                  
  25.           )
  26. )
复制代码






欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2