小白提问:这个lisp为什么每次只能执行1次,再执行就提示函数错误?
请问我这个lisp为什么每次只能执行1次,再执行就提示函数错误?;;调入"建筑专业平面底图"
(defun C:JIANZHU ( )
(setvar "cmdecho" 0)
(setvar "filedia" 0)
(if (= nil (tblsearch "layer" "JZDT_建筑底图")) (command "layer" "m" "JZDT_建筑底图" ""))
(setvar "clayer" "JZDT_建筑底图")
(setq cenghao (MYCENGHAO ""))
(setq zuhe1 (strcat "..\\..\\建筑专业\\DWG图纸\\建筑" cenghao "层平面图.DWG"));;组合1
(setq zuhe2 (strcat "建筑" cenghao "层平面图|*"));;组合2
(setq zuhe3 (strcat "建筑" cenghao "层平面图|*_建筑底图"));;组合3
(command "-xref" "O" zuhe1 "0,0,0" "1" "1" "0")
(while (/= 0 (getvar "cmdactive"))(command pause))
(setvar "clayer" "0")
(setvar "filedia" 1)
(command
"-layer"
"f"
zuhe2
""
)
(command
"-layer"
"T"
zuhe3
""
)
)
(defun MYCENGHAO (str)
(setq lal (getstring "请输入层号"))
(if (= lal "bzc")
(setq MYCENGHAO "标准")
(setq MYCENGHAO lal)
)
) 本帖最后由 wlq2004 于 2013-9-18 23:14 编辑
再次执行时,出错的行数是第7行“(setq cenghao (MYCENGHAO ""))”这句。
出错的原因是 子函数 MYCENGHAO 闹的。
可为什么第一次可以顺利执行,再执行就错误了呢?
出错提示:函数出错”-1“
-1是第一次顺利执行MYCENGHAO的返回值。 你在子函数中已经将函数名重定义了。
(defun MYCENGHAO (str)
(setq lal (getstring "请输入层号"))
(if (= lal "bzc")
(setq MYCENGHAO "标准"));这里重定义了
(setq MYCENGHAO lal);这里重定义了
)
)
应改成
(defun MYCENGHAO (str)
(setq lal (getstring "请输入层号"))
(if (= lal "bzc")
"标准"
lal
)
) ZZXXQQ 发表于 2013-9-19 08:40 static/image/common/back.gif
你在子函数中已经将函数名重定义了。
(defun MYCENGHAO (str)
(setq lal (getstring "请输入层号"))
谢谢!!!问题解决了~~
页:
[1]