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

我东拼西凑的改了一个SKILL,出错了。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
 楼主| 发表于 2025-3-20 11:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
本帖最后由 NIWO99 于 2025-3-20 11:09 编辑

在百度上搜了一个skill,加载后出错。没的学过语言,所以完全不懂。求高手帮我看看。先谢啦!
提示如下:
*Error* eval: not a function - "p"
*Error* load: error while loading file - "d.il" at line 1



axlCmdRegister ("p", 'showlayers)
defun(showlayers ()
  axlVisibleDesign (nil)
    foreach (item args) layerNum (evalstring item)
      showlayer (layerNum)
  (axlVisibleUpdate (t)
)
defun (showlayer (layerNum)
  let (allLayer (axlGetParam "paramLayerGroup:ETCH")->groupMembers)
    let (layerName (nth (evalstring layerNum) allLayer))
      let (etchLayer (strcat "ETCH/" layerName))
        axlVisibleLayer etchLayer (t)
        when (eq (axlDBGetLayerType etchLayer) "PLANE")
          axlVisibleLayer "ANTI ETCH/ALL" (t)
          axlVisibleLayer (strcat "PIN/" layerName) (t)
          axlVisibleLayer (strcat "VIA CLASS/" layerName) (t)
          axlVisibleLayer (strcat "BOUNDARY/" layerName) (t)
      )
    )
  )

点评

指令後多一個字元空白. 如: axlCmdRegister ("p", 'showlayers) , 應該是: axlCmdRegister("p", 'showlayers).  发表于 2025-3-20 13:01
  • TA的每日心情
    郁闷
    2025-4-30 15:49
  • 签到天数: 26 天

    [LV.4]偶尔看看III

    2#
    发表于 2025-3-20 13:13 | 只看该作者
    本帖最后由 式试1813 于 2025-3-20 16:26 编辑

    修改了下括号,语法错误,但是程序还有一些变量没看懂出处,也没初始化
    1. axlCmdRegister("p" 'showlayers)
    2. defun(showlayers ()
    3.     axlVisibleDesign (nil)
    4.     foreach (item args) ;这个args其他地方也没有这个变量
    5.       layerNum (evalstring item);没看懂
    6.       showlayer(layerNum)
    7.   (axlVisibleUpdate (t))
    8.   )
    9. defun (showlayer (layerNum)
    10.   let (()
    11.      allLayer (axlGetParam "paramLayerGroup:ETCH")->groupMembers
    12.      layerName (nth (evalstring layerNum) allLayer)
    13.       let (etchLayer (strcat "ETCH/" layerName))
    14.         axlVisibleLayer etchLayer (t)
    15.         when(eq((axlDBGetLayerType etchLayer) "PLANE")
    16.           axlVisibleLayer("ANTI ETCH/ALL" t)
    17.           axlVisibleLayer(strcat "PIN/" layerName t)
    18.           axlVisibleLayer(strcat "VIA CLASS/" layerName t)
    19.           axlVisibleLayer(strcat "BOUNDARY/" layerName t)
    20.              )
    21.       )
    复制代码


    点评

    回谢谢帮忙,辛苦了。我主要是想用axlGetParam来实现换层,我是问了AI,它给我生成的。  详情 回复 发表于 2025-3-21 10:30
    不只空格喔, 很多語法也錯, 加油.  发表于 2025-3-20 16:38
    这个skill用来干啥的  详情 回复 发表于 2025-3-20 16:01

    该用户从未签到

    3#
    发表于 2025-3-20 16:01 | 只看该作者

    这个skill用来干啥的

    点评

    開啟某些層面的顯示.  发表于 2025-3-20 16:39
    我也不知道干嘛的,帮他找一些原因  详情 回复 发表于 2025-3-20 16:26
  • TA的每日心情
    郁闷
    2025-4-30 15:49
  • 签到天数: 26 天

    [LV.4]偶尔看看III

    4#
    发表于 2025-3-20 16:26 | 只看该作者
    chenxiumei 发表于 2025-3-20 16:01
    这个skill用来干啥的

    我也不知道干嘛的,帮他找一些原因

    点评

    没错就是AI生成的,我问AI关于axlGetParam的用法,它给我做了一个简单换层SKILL。结果、、、、  详情 回复 发表于 2025-3-21 10:22
    我猜也是AI  详情 回复 发表于 2025-3-20 17:01
    不只空格喔, 很多語法也錯, 加油. 我個人猜是AI.  发表于 2025-3-20 16:40

    该用户从未签到

    5#
    发表于 2025-3-20 17:01 | 只看该作者
    式试1813 发表于 2025-3-20 16:26
    我也不知道干嘛的,帮他找一些原因

    我猜也是AI
  • TA的每日心情
    奋斗
    2025-4-27 15:26
  • 签到天数: 81 天

    [LV.6]常住居民II

    6#
    发表于 2025-3-20 17:38 | 只看该作者
    写代码不是拼积木了,怎么能东拼西凑呢。
    想学的话可以花时间认真看看基础。

    点评

    谢谢回答,主要是没学过编程语言所以没基础。就去问AI了,AI倒是很认真的给我做了一个,就是不能用。  详情 回复 发表于 2025-3-21 10:26

    该用户从未签到

    7#
     楼主| 发表于 2025-3-21 10:22 | 只看该作者
    式试1813 发表于 2025-3-20 16:26
    我也不知道干嘛的,帮他找一些原因

    没错就是AI生成的,我问AI关于axlGetParam的用法,它给我做了一个简单换层SKILL。结果、、、、

    该用户从未签到

    8#
     楼主| 发表于 2025-3-21 10:26 | 只看该作者
    db-_- 发表于 2025-3-20 17:38
    写代码不是拼积木了,怎么能东拼西凑呢。
    想学的话可以花时间认真看看基础。

    谢谢回答,主要是没学过编程语言所以没基础。就去问AI了,AI倒是很认真的给我做了一个,就是不能用。

    该用户从未签到

    9#
     楼主| 发表于 2025-3-21 10:30 | 只看该作者
    式试1813 发表于 2025-3-20 13:13
    修改了下括号,语法错误,但是程序还有一些变量没看懂出处,也没初始化

    回谢谢帮忙,辛苦了。我主要是想用axlGetParam来实现换层,我是问了AI,它给我生成的。

    该用户从未签到

    10#
     楼主| 发表于 2025-3-21 10:53 | 只看该作者
    我又重新生成了一个,看上去简单一些。结果第一行就出错了。
    *Error* eval: not a function - "i"
    *Error* load: error while loading file - "d.il" at line 1


    axlCmdRegister ("i" 'showlayers) ; 注册指令"i"调用showlayers函数
    defun(showlayers ()
      axlVisibleDesign (nil) ; 清空显示
        foreach (item args) layerNum (evalstring item)
          showlayer (layerNum); 设置每一层的显示
      (axlVisibleUpdate (t)
    )

    defun (showlayer (layerNum)
      let (allLayer (axlGetParam "paramLayerGroup:ETCH")->groupMembers)
        let (layerName (nth (evalstring layerNum) allLayer))
          let (etchLayer (strcat "ETCH/" layerName))
            axlVisibleLayer etchLayer (t)
              axlVisibleLayer (strcat "PIN/" layerName) (t)
              axlVisibleLayer (strcat "VIA CLASS/" layerName) (t)
              axlVisibleLayer (strcat "BOUNDARY/" layerName) (t)
          )
        )
      )

    点评

    老問題, 語法錯誤, 第一行還是空格問題, 你慢慢教, 你和AI 一定會一齊學會的, 加油!.  发表于 2025-3-21 15:24

    该用户从未签到

    11#
     楼主| 发表于 2025-3-23 17:13 | 只看该作者
    谢谢回复,我还在学习中。。。

    点评

    首先就是axlCmdRegister後面應該馬上就要接括號,但你弄了空白 再來是你每個defun內的括號,完全對不上, 舉例來說你的 foreach (item args) , 裡面應該要更多東西才對,所以很顯然右括號太早出現了。 建議你可以  详情 回复 发表于 2025-3-31 17:06
  • TA的每日心情
    擦汗
    2025-5-7 15:07
  • 签到天数: 32 天

    [LV.5]常住居民I

    12#
    发表于 2025-3-31 17:06 | 只看该作者
    NIWO99 发表于 2025-3-23 17:13
    谢谢回复,我还在学习中。。。

    首先就是axlCmdRegister後面應該馬上就要接括號,但你弄了空白
    再來是你每個defun內的括號,完全對不上,
    舉例來說你的 foreach (item args) , 裡面應該要更多東西才對,所以很顯然右括號太早出現了。
    建議你可以先理解foreach怎麼使用~會幫助你寫得更順

    点评

    谢谢帮助,我这几又没学了,学晕了。改天想玩了我再试试。谢谢你!  详情 回复 发表于 2025-4-1 17:01

    该用户从未签到

    13#
     楼主| 发表于 2025-4-1 17:01 | 只看该作者
    雞翅加辣 发表于 2025-3-31 17:06
    首先就是axlCmdRegister後面應該馬上就要接括號,但你弄了空白
    再來是你每個defun內的括號,完全對不上 ...

    谢谢帮助,我这几又没学了,学晕了。改天想玩了我再试试。谢谢你!

    点评

    其实我当时就想用这个axlGetParam来做个简单的换层快捷键,然后就百度找到这个,我直接拿来用发现不行。  详情 回复 发表于 2025-4-1 17:05

    该用户从未签到

    14#
     楼主| 发表于 2025-4-1 17:05 | 只看该作者
    NIWO99 发表于 2025-4-1 17:01
    谢谢帮助,我这几又没学了,学晕了。改天想玩了我再试试。谢谢你!

    其实我当时就想用这个axlGetParam来做个简单的换层快捷键,然后就百度找到这个,我直接拿来用发现不行。
  • TA的每日心情
    擦汗
    2025-5-7 15:07
  • 签到天数: 32 天

    [LV.5]常住居民I

    15#
    发表于 2025-4-7 10:36 | 只看该作者
    你可以先玩玩看這個。
    Going_On=axlGetParam("paramLayerGroup:BOARD GEOMETRY/paramLayer:OUTLINE")
    Going_On->visible=t
    axlSetParam(Going_On)
    然後呢你就會在活用一點,換成這個
    axlGetParam(strcat("artwork:","SMT"))->groupMembers
    慢慢去嘗試什麼東西會丟回什麼結果,你才能糾正AI xd

    点评

    好的,谢谢帮助!  详情 回复 发表于 2025-5-1 15:40
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-5-9 13:26 , Processed in 0.093750 second(s), 24 queries , Gzip On.

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

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

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