; 错误:没有函数定义
程序是插入一个块,一切正常,但运行后在命令提示符中,它给出“错误:无函数定义:nil”
(DTR)是一种以用户界面DCL提供的列表格式存储信息的功能
(defun c:getDialogInput (/ input aone )
(setq input (DTR))
(setq aone (getpoint "\nSelect pickint to insert sheet: "))
(cond
((equal input'("frptitle" "LIGHT")) progn(
(command "-insert" "//Mailserver/d/backup/TIT_BLOCK_FRP" aone "" "" 0 )
)
)
((equal input '("fabtitle" "LIGHT"))progn(
(command "-insert" "//Mailserver/d/backup/TIT_BLOCK_FAB" aone "" ""0 )
))
((equal input '("quotitle" "LIGHT"))progn(
(command "-insert" "//Mailserver/d/backup/TIT_BLOCK_QUO" aone "" ""0)
))
( T (princ "Nothing"))
)
)
(defun c:getDialogInput ( / input aone )
(setq input (DTR))
(setq aone (getpoint "\nSelect pickint to insert sheet: "))
(cond
( (equal input '("frptitle" "LIGHT"))
(command "-insert" "//Mailserver/d/backup/TIT_BLOCK_FRP" aone "" "" 0)
)
( (equal input '("fabtitle" "LIGHT"))
(command "-insert" "//Mailserver/d/backup/TIT_BLOCK_FAB" aone "" "" 0)
)
( (equal input '("quotitle" "LIGHT"))
(command "-insert" "//Mailserver/d/backup/TIT_BLOCK_QUO" aone "" "" 0)
)
(T (princ "Nothing")
)
)
)
问题在于这些表达:
progn(
(command "-insert" "//Mailserver/d/backup/TIT_BLOCK_FRP" aone "" "" 0 )
)
由于命令函数始终返回nil,因此解释器随后将尝试计算表达式:
(nil)
导致错误“无函数定义:nil”。 这是一种重写函数的方法,因为我觉得很无聊
(defun c:getDialogInput(/ input aone f)
(if
(and (setq input (DTR))
(setq f (assoc (car input) '(("frptitle" "LIGHT" "FRP") ("fabtitle" "LIGHT" "FAB") ("quotitle" "LIGHT" "QUO"))))
(setq aone (getpoint "\nSelect pickint to insert sheet: ")))
(command "-insert" (strcat "//Mailserver/d/backup/TIT_BLOCK_" (caddr f)) aone """" 0)
(princ "Nothing")
)
(princ)
)
谢谢你澄清我的疑问。。 感谢您解决问题:)
谢谢你的建议:D
不客气
页:
[1]