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

[求問]函式定義

[复制链接]
  • TA的每日心情
    郁闷
    2025-10-13 15:46
  • 签到天数: 35 天

    [LV.5]常住居民I

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

    EDA365欢迎您登录!

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

    x
    本帖最后由 雞翅加辣 于 2024-11-28 17:33 编辑

    各位好,最近開發skill時遇到一個問題

    若我有兩支skill (.il)
    其內容大概就是
    skillA.il
    1. axlCmdRegister("skillA" `skillA)
    2. procedure(  skillA()
    3.         let( (formname build_my_form)
    4.                 formname="./skillA_m.form"
    5.                 build_my_form(formname)
    6.         )
    7. )
    8. ( defun build_my_form (formname)
    9.         let( ()
    10.                
    11.                 println("this function is from skillA")
    12.                 pform=outfile(formname "w")
    13.                
    14.                 fprintf(pform "FILE_TYPE=FORM_DEFN VERSION=2\n")
    15.                 fprintf(pform "FORM\n")
    16.                 fprintf(pform "FIXED\n")
    17.                 fprintf(pform "PORT 90 20\n")
    18.                
    19.                 fprintf(pform "HEADER \"SKILL-A\"\n")
    20.                 fprintf(pform "POPUP <Layer_Names>")
    21.                 fprintf(pform "\"TOP\" \"TOP\",\"BOTTOM\" \"BOTTOM\".\n")
    22.                 fprintf(pform "TILE\n")

    23.                 fprintf(pform "FIELD exit\n")
    24.                 fprintf(pform "FLOC 22 34\n")
    25.                 fprintf(pform "MENUBUTTON \"Exit\" 5 3\n")
    26.                 fprintf(pform "ENDFIELD\n")

    27.                 fprintf(pform "ENDTILE\n")
    28.                 fprintf(pform "ENDFORM\n")

    29.                 close(pform)        
    30.                
    31.                 form=axlFormCreate( (gensym) "skillA_m.form"<a id="e_code" title="添加代码文字" initialized="true">代码</a>
    32.                 `(e inner) `m_pform_Action t)
    33.                
    34.                 axlFormDisplay(form)
    35.         )

    36. )
    复制代码

    skillB.il
    1. axlCmdRegister("skillB" `skillB)
    2. procedure(  skillB()
    3.         let( (formname build_my_form)
    4.                 formname="./skillB_.form"
    5.                 build_my_form(formname)
    6.         )
    7. )
    8. ( defun build_my_form (formname)
    9.         let( ()
    10.                 println("this function is from skillB")
    11.                
    12.                 pform=outfile(formname "w")
    13.                
    14.                
    15.                 fprintf(pform "FILE_TYPE=FORM_DEFN VERSION=2\n")
    16.                 fprintf(pform "FORM\n")
    17.                 fprintf(pform "FIXED\n")
    18.                 fprintf(pform "PORT 90 20\n")
    19.                
    20.                 fprintf(pform "HEADER \"SKILL-B\"\n")
    21.                 fprintf(pform "POPUP <Layer_Names>")
    22.                 fprintf(pform "\"TOP\" \"TOP\",\"BOTTOM\" \"BOTTOM\".\n")
    23.                 fprintf(pform "TILE\n")

    24.                 fprintf(pform "FIELD exit\n")
    25.                 fprintf(pform "FLOC 22 34\n")
    26.                 fprintf(pform "MENUBUTTON \"Exit\" 5 3\n")
    27.                 fprintf(pform "ENDFIELD\n")
    28.                
    29.                 fprintf(pform "FIELD check\n")
    30.                 fprintf(pform "FLOC 8 34\n")
    31.                 fprintf(pform "MENUBUTTON \"Check\" 5 3\n")
    32.                 fprintf(pform "ENDFIELD\n")

    33.                 fprintf(pform "ENDTILE\n")
    34.                 fprintf(pform "ENDFORM\n")


    35.                 close(pform)        
    36.                 form=axlFormCreate( (gensym) "skillB_.form"
    37.                 `(e inner) `m_pform_Action t)
    38.                
    39.                 axlFormDisplay(form)
    40.         )

    41. )
    复制代码


    當兩個skill 都行Load的時候,
    我運行skillA時,他卻會使用skillB的build_my_form()

    再不更改build_my_form()的名稱下,想請教我該如何避免這樣的問題?




    問題.jpg (14.87 KB, 下载次数: 1)

    問題.jpg

    该用户从未签到

    2#
    发表于 2024-11-28 19:10 | 只看该作者
    我也想学SKILL,不知道在哪有教程

    点评

    你可以看這些大師寫的~我會得太少了QQ YEUNGHIE 版主的 Candence Skill 語言入門 https://www.cnblogs.com/yeungchie/p/15270224.html deargds 版主的 十天學會skill (目前累積到第8天) https://www.eda36  详情 回复 发表于 2024-11-29 09:39
    头像被屏蔽
  • TA的每日心情
    开心
    2025-1-23 15:05
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    3#
    发表于 2024-11-28 20:19 | 只看该作者
    提示: 作者被禁止或删除 内容自动屏蔽
  • TA的每日心情
    郁闷
    2025-10-13 15:46
  • 签到天数: 35 天

    [LV.5]常住居民I

    4#
     楼主| 发表于 2024-11-29 09:39 | 只看该作者
    s8484ww 发表于 2024-11-28 19:10
    我也想学SKILL,不知道在哪有教程


    你可以看這些大師寫的~我會得太少了QQ

    YEUNGHIE 版主的 Candence Skill 語言入門
    https://www.cnblogs.com/yeungchie/p/15270224.html

    deargds 版主的 十天學會skill (目前累積到第8天)
    https://www.eda365.com/thread-30915-1-1.html
  • TA的每日心情

    2021-1-21 15:57
  • 签到天数: 121 天

    [LV.7]常住居民III

    5#
    发表于 2024-11-29 11:37 | 只看该作者
    你这defun注册函数名一样的   软件只允许存在一个呀  哪个后注册,skill就识别哪个
    我一般是把form直接放到第一个函数(skillA或skillB)里面,不单独注册form函数

    点评

    我原本以為軟件認定的是axlCmdRegister裡的內容。後來才defun的定義也會是全域。 您的建議非常好,我打算照這個方法往下做,謝謝您  详情 回复 发表于 2024-12-2 09:47
  • TA的每日心情
    郁闷
    2025-10-13 15:46
  • 签到天数: 35 天

    [LV.5]常住居民I

    6#
     楼主| 发表于 2024-12-2 09:47 | 只看该作者
    w_w 发表于 2024-11-29 11:37
    你这defun注册函数名一样的   软件只允许存在一个呀  哪个后注册,skill就识别哪个
    我一般是把form直接放 ...

    我原本以為軟件認定的是axlCmdRegister裡的內容。後來才defun的定義也會是全域。
    您的建議非常好,我打算照這個方法往下做,謝謝您
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-22 03:34 , Processed in 0.156250 second(s), 28 queries , Gzip On.

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

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

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