出错了,提示如下:*Error* defun: argument #1 should be a symbol (type template = "sgg") - (move - right)
时间: 2024-02-27 09:53:30 浏览: 176
这个错误提示是因为在定义函数`move-right`时,函数名没有加单引号,导致系统将其作为变量处理。解决这个问题,只需要在函数名前面加上单引号即可。修改后的代码如下:
```
; 定义函数,用于将选中的对象向右移动5um
(defun 'move-right ()
(let ((sel (car (cdsSelection))))
(when sel
(cdsMoveObject sel '(5 0)))))
; 将函数绑定到快捷键"k"上
(hiSetBindKey "Layout" "<Key>k" "move-right")
```
这个代码应该可以正常工作了,但是需要注意,这个脚本只能在Cadence的layout界面中使用,而不能在其他界面或软件中使用。
相关问题
我把文件命名testMoveObj.il,在cadence的virtuoso对话框中load了,提示出错如下:*Error* defun: argument #1 should be a symbol (type template = "sgg") - ('move - right) *Error* load: error while loading file - "testMoveObj.il" at line 5
这个错误提示有两个问题:
1. 第一个错误提示中,函数名前面多了一个空格,导致系统无法正确识别函数名。需要将函数名前面的空格删除。
2. 第二个错误提示中,提示在第5行出错,但是我们的脚本只有3行,这可能是因为在之前的操作中出现了错误,导致后续的操作无法正常进行。可以尝试重新打开Cadence,然后再次加载脚本文件。
修改后的代码如下:
```
; 定义函数,用于将选中的对象向右移动5um
(defun 'move-right ()
(let ((sel (car (cdsSelection))))
(when sel
(cdsMoveObject sel '(5 0)))))
; 将函数绑定到快捷键"k"上
(hiSetBindKey "Layout" "<Key>k" "move-right")
```
如果还是无法加载脚本文件,可以尝试重新打开Cadence,然后在新的virtuoso对话框中加载脚本文件。同时,也需要确保脚本文件的保存路径和加载路径正确。
还是不对,提示如下:load("testMoveObj.il") *Error* defun: argument #1 should be a symbol (type template = "sgg") - ('move - right) *Error* load: error while loading file - "testMoveObj.il" at line 4
这个错误提示是因为系统仍然无法正确识别函数名`move-right`,需要将函数名前后的空格删除。修改后的代码如下:
```
; 定义函数,用于将选中的对象向右移动5um
(defun 'move-right ()
(let ((sel (car (cdsSelection))))
(when sel
(cdsMoveObject sel '(5 0)))))
; 将函数绑定到快捷键"k"上
(hiSetBindKey "Layout" "<Key>k" "move-right")
```
请注意,这个代码应该保存成以".il"为后缀的文件,然后在Cadence的layout界面中使用"load"命令来加载。如果还是无法正常加载,可以尝试重新打开Cadence,或者在新的virtuoso对话框中加载脚本文件。
阅读全文