将本人实测的Cadence IC618版本与Cadence IC617版本, 踩过Skill脚本加载出现报错、函数呈现未定义、菜单显示存在异常这样的坑, 新手依照步骤一步步去进行操作, 便能够轻……
将本人实测的Cadence IC618版本与Cadence IC617版本, 踩过Skill脚本加载出现报错、函数呈现未定义、菜单显示存在异常这样的坑, 新手依照步骤一步步去进行操作, 便能够轻松避开此类常见问题。
加载Skill脚本的正确路径
好多初学者将脚本文件放置于目录后就径直启动软件,然而却发觉菜单栏压根没有任何改变, 在此务必清晰点明: Skill 脚本并非放入便能够自动运行的, 而是需要先对软件环境变量开展检查。
具体实施步骤为, 开启CIW窗口, 输入getShellEnvVar(“CDS_SCRIPT”)然后按下回车键, 此时系统将会返回当下的加载路径。要是返回值为空, 那就表明软件根本就没有读取到你的脚本目录。正确的做法是在.cdsinit文件里增添一行内容: load(“/path/to/your/script.il”), 需要注意的是, 此处应该使用绝对路径, 而非相对路径。
【新手需防坑】, 常见的报错状况呈现为, CIW窗口给出提示, 显示Error load: file not found。其核心缘由大多在于, 路径出现了写错的情况, 又或者是文件名的大小写并不匹配。迅速的解决办法是: 于CIW之中直接键入load(“完整路径”)开展测试, 要是依旧报错, 借助ls命令去确认文件是不是真的存在。
函数未定义怎么修复
若你在写好脚本并运行时, CIW忽然弹出Error undefined function – myFunction, 此时别慌乱。其根本缘由并非函数写错, 而是脚本加载顺序出现了问题。倘若Skill脚本里调用了外部的函数库, 那就必须先加载库文件, 之后再加载主脚本。
关键参数最优推荐的值是, 于脚本起初时加入一行when( nil (setSkillPath(list(“/path/to/lib”)) ) ) , 于路径之中指明所有依赖库的目录。此设置的缘由挺简单的, Skill依据路径顺序来搜索函数, 要是不进行指定的话就会默认仅仅搜索当前目录, 从而遗漏函数库的。
进行实操方案对比时, 存在着两种加载方式, 其一为手动加载, 在每次开启软件时于CIW处输入load(“xxx.il”);这种方式适用于调试阶段, 其二是自动加载方式, 将其写在.cdsinit里, 适用于正式生产环境, 在调试阶段选用第一种方式, 一旦确定脚本文字没问题的时候, 便切换到第二种方式, 否则每次重新开启软件都需要手动加载, 这是极为浪费时间的。
新手要避开一些情况, 有一种报错状况是函数很明显写得没错, 然而却提示未定义, 其中核心的出错缘由是Skill脚本里的函数名与调用名不一样, 或者脚本里使用了procedure()却遗漏了括号, 快速的解决办法是在CIW里通过采用getFunctionList(“my”)来搜索函数名, 以此确认实际定义的名字。
菜单显示异常的排查流程
脚本加载达成预期之成功状态后, 菜单未呈现或者呈灰色之按钮状态这一状况, 乃是最为使人烦闷苦恼甚而倍感头疼的问题所在。我所施行的排查具体进程如下: 其一, 于CIW当中输入hiGetCurrentMenu()以查看当下菜单项情况。其二, 对脚本里的菜单注册代码予以检查, 从而确认hiCreateMenuItem()的callback参数有无参数有无犯下写错函数名字的错误。
高频完全报错: CIW报 Error* hiCreateMenuItem, 其提示为论据号一应当是字符串(类型模板为“t”)。完整化解流程表明: 此错误提示表明你运用的参数类型有误。第一步, 核查 callback 向后的数值是否由双引号加以包裹作为字符串而呈示。第二步, 去确认一下回调函数名之中并没有空格存在。第三步, 将callback的值单独来打出来查看一下, 就好比printf(“%Ln”, callback)这样, 要确保没有遗漏引号。这三步全部完成之后, 99%的菜单异常情况都是能够被解决掉的。
这种办法不适用于脚本里头运用了自定义SKILL++类库的情形, 由于类库加载依靠更为繁杂的路径设定。替代的方案是采用envGetVal()获取软件内部建成的路径, 将库文件放置到系统默认的目录下面, 防止路径产生冲突。
微信扫一扫
还没有评论呢,快来抢沙发~