kilari_venkates 发表于 2022-7-5 20:10:03

; 错误:没有函数定义

程序是插入一个块,一切正常,但运行后
在命令提示符中,它给出“错误:无函数定义: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"))   
)
)

marko_ribar 发表于 2022-7-5 20:23:06


(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")
   )   
)
)

Lee Mac 发表于 2022-7-5 20:35:15

问题在于这些表达:
progn(
(command "-insert" "//Mailserver/d/backup/TIT_BLOCK_FRP" aone "" "" 0 )
)
 
由于命令函数始终返回nil,因此解释器随后将尝试计算表达式:
(nil)
导致错误“无函数定义:nil”。

Tharwat 发表于 2022-7-5 20:38:39

这是一种重写函数的方法,因为我觉得很无聊
 

(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)
)

kilari_venkates 发表于 2022-7-5 20:52:45

 
谢谢你澄清我的疑问。。

kilari_venkates 发表于 2022-7-5 20:53:13

感谢您解决问题:)

kilari_venkates 发表于 2022-7-5 21:05:26

 
谢谢你的建议:D

Tharwat 发表于 2022-7-5 21:15:23

 
不客气
页: [1]
查看完整版本: ; 错误:没有函数定义