EDA365电子论坛网

标题: 求助,allegro的Command的输入内容如何得到! [打印本页]

作者: ghfghyb    时间: 2013-5-8 20:18
标题: 求助,allegro的Command的输入内容如何得到!
求助,allegro的Command的输入内容如何得到!

如果说,我在allegro中输入:abc
skill要怎么样才能抓到这个数具!!
作者: betamelody    时间: 2013-5-9 10:47
暂时不知道办法,请问LZ是要通过command给skill函数传值,还是纯粹要抓取命令状态输入的值?
作者: ghfghyb    时间: 2013-5-9 13:52
betamelody
发表于 2013-5-9 10:47 |只看该作者
暂时不知道办法,请问LZ是要通过command给skill函数传值,还是纯粹要抓取命令状态输入的值?


我想定义一个格点的skill,比如输入:g 1
然后执行grid全部变成1,内部的执行我都已经做通了,只差最主要的输入这里关联skill,并把1读入到skill中了!!
作者: yneda    时间: 2013-5-9 16:42
可不可以把g1定义成一个命令呢来实现呢?
作者: ginooolu    时间: 2013-5-9 23:31
在Skill 程式中,defun用以下寫法,就可以在下指令時加參數,例
defun(grid (value)
value就是參數 g 1的1
程式中就利用value決定值了
作者: ghfghyb    时间: 2013-5-10 09:17
ginooolu

在Skill 程式中,defun用以下寫法,就可以在下指令時加參數,例
defun(grid (value)
value就是參數 g 1的1
程式中就利用value決定值了


我想知道的是g 1我通过什么方式或者什么指令可以从command的输入中抓到!!
作者: deargds    时间: 2013-5-10 10:03
ghfghyb 发表于 2013-5-10 09:17
我想知道的是g 1我通过什么方式或者什么指令可以从command的输入中抓到!!

贴一个参考示例:
  1. axlCmdRegister( "g" 'funGrid)
  2. defun( funGrid (@optional (fGrid nil))
  3.         if( fGrid && atof(fGrid) then
  4.                 sFile = axlTempFile()
  5.                 pFile = axlDMOpenFile("Grid_SCRIPT" sFile "w")
  6.                
  7.                 fprintf(pFile "scriptmode +i\n\n")
  8.                 fprintf(pFile "setwindow pcb\n")
  9.                 fprintf(pFile "define grid \n")
  10.                 fprintf(pFile "setwindow form.grid\n")
  11.                 fprintf(pFile "FORM grid non_etch non_etch_x_grids %L \n" fGrid)
  12.                 fprintf(pFile "FORM grid non_etch non_etch_y_grids %L \n" fGrid)
  13.                 fprintf(pFile "FORM grid all_etch all_etch_x_grids %L %L %L %L %L \n" fGrid fGrid fGrid fGrid fGrid)
  14.                 fprintf(pFile "FORM grid all_etch all_etch_y_grids %L %L %L %L %L \n" fGrid fGrid fGrid fGrid fGrid)
  15.                 fprintf(pFile "FORM grid done \n")
  16.                
  17.                 axlDMClose(pFile)
  18.                 axlShell(strcat("replay " sFile))
  19.         else
  20.                 axlShell("define grid")
  21.         )
  22. )
复制代码

作者: ghfghyb    时间: 2013-5-10 13:35
deargds
贴一个参考示例:***


谢谢大大的代码,实现这个问题了,相关细节我再去研究一下!


作者: betamelody    时间: 2013-5-10 14:35
本帖最后由 betamelody 于 2013-5-10 14:38 编辑
  1. axlCmdRegister("g" 'ffd)
  2. procedure( ffd(@rest num)
  3.   println(num)
  4. )
复制代码
Command > g 2 3 4 5
("2" "3" "4" "5")
作者: ghfghyb    时间: 2013-5-10 16:57
betamelody
Command > g 2 3 4 5
("2" "3" "4" "5")

谢谢!!
各位大大的大力支持!!
我回头把我写好的功能都发到论坛里!!也争取做一个升级的小鸟!!




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