找回密码
 注册
关于网站域名变更的通知
查看: 438|回复: 9
打印 上一主题 下一主题

学着做了一个SKILL,不能用。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
 楼主| 发表于 2025-10-13 10:16 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
我想用skill做个判断。当我的当前鼠标是小十字时,按一下快捷就是大十字,当我是用大十字时再按快捷键就是小十字。但是做出来不能用,求高手指点一下,感谢!
代码如下:
axlCmdRegister("cursor_toggle" 'moveToggleCmd ?cmdType "interactive")
procedure(moveToggleCmd()
    if(axlShell("pcb_cursor=infinite" then)  
        axlCancelEnteRFun()
        axlUIWPrint(nil)
    else
        axlShell("pcb_cursor=cross")
        axlUIWPrint(nil)
    )
)

该用户从未签到

2#
发表于 2025-10-13 10:33 | 只看该作者
axlCmdRegister("cursor_toggle" 'moveToggleCmd ?cmdType "interactive")

procedure(moveToggleCmd()
  let((currentCursor)
    // 获取当前光标类型
    currentCursor = axlGetCurrentCursor()
   
    // 切换逻辑:小十字(cross) ↔ 大十字(infinite)
    if(currentCursor == "cross" then
      axlShell("pcb_cursor=infinite")
      axlUIWPrint("已切换至大十字")
    else
      axlShell("pcb_cursor=cross")
      axlUIWPrint("已切换至小十字")
    )
  )
)

// 辅助函数:获取当前光标类型
procedure(axlGetCurrentCursor()
  let((cursorCmd)
    cursorCmd = axlShell("echo %pcb_cursor%" ?output 'string)
    // 解析Shell命令输出
    if(strmatch(cursorCmd, "*infinite*") then "infinite"
    else "cross"
    )
  )
)

点评

试了一下,还是报错。[attachimg]401711[/attachimg]  详情 回复 发表于 2025-10-13 16:03
非常感谢!原来这个skill也不简单呀!  详情 回复 发表于 2025-10-13 15:58

该用户从未签到

3#
发表于 2025-10-13 10:41 | 只看该作者
这是修改后的,你试一试
  • TA的每日心情
    奋斗
    2020-12-18 15:41
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    4#
    发表于 2025-10-13 14:11 | 只看该作者
    这个不需要skill,直接在ENV里面加上funckey ~Q 'settoggle pcb_cursor cross octal infinite;redraw'  这句即可。~Q是ctrl+Q,可以自己改。

    点评

    最后我优化了一下,完美了。  详情 回复 发表于 2025-10-13 16:13
    你这个方法也是可行的,就是要多按几次,也是个好办法,感谢!感谢!  详情 回复 发表于 2025-10-13 16:11
    我是想用一个快捷键就搞掂这个事情  详情 回复 发表于 2025-10-13 15:59

    该用户从未签到

    5#
     楼主| 发表于 2025-10-13 15:58 | 只看该作者
    Sleep_xz 发表于 2025-10-13 10:33
    axlCmdRegister("cursor_toggle" 'moveToggleCmd ?cmdType "interactive")

    procedure(moveToggleCmd()

    非常感谢!原来这个skill也不简单呀!

    该用户从未签到

    6#
     楼主| 发表于 2025-10-13 15:59 | 只看该作者
    zhualuo2 发表于 2025-10-13 14:11
    这个不需要skill,直接在ENV里面加上funckey ~Q 'settoggle pcb_cursor cross octal infinite;redraw'  这句 ...

    我是想用一个快捷键就搞掂这个事情

    该用户从未签到

    7#
     楼主| 发表于 2025-10-13 16:03 | 只看该作者
    Sleep_xz 发表于 2025-10-13 10:33
    axlCmdRegister("cursor_toggle" 'moveToggleCmd ?cmdType "interactive")

    procedure(moveToggleCmd()

    试了一下,还是报错。

    该用户从未签到

    8#
     楼主| 发表于 2025-10-13 16:11 | 只看该作者
    zhualuo2 发表于 2025-10-13 14:11
    这个不需要skill,直接在ENV里面加上funckey ~Q 'settoggle pcb_cursor cross octal infinite;redraw'  这句 ...

    你这个方法也是可行的,就是要多按几次,也是个好办法,感谢!感谢!

    该用户从未签到

    9#
     楼主| 发表于 2025-10-13 16:13 | 只看该作者
    zhualuo2 发表于 2025-10-13 14:11
    这个不需要skill,直接在ENV里面加上funckey ~Q 'settoggle pcb_cursor cross octal infinite;redraw'  这句 ...

    最后我优化了一下,完美了。
  • TA的每日心情
    开心
    2025-10-24 15:16
  • 签到天数: 151 天

    [LV.7]常住居民III

    10#
    发表于 2025-10-21 15:53 | 只看该作者
    funckey ~Q 'settoggle pcb_cursor cross octal infinite;redraw'  
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-25 04:23 , Processed in 0.156250 second(s), 29 queries , Gzip On.

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

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

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