lisp错误(无函数定义
尊敬的先生:lisp plz chq出错
命令:ca
选择对象:找到1个
选择对象:
文本放置位置:无函数定义:SF
这是麻烦制造者系列:
假设在运行上述代码时,有一个名为SF的函数可用(定义并加载)。但是他的定义就在他调用的下面-请在代码中将该定义移到上面。
有趣的是,如果您尝试第二次运行原始代码,它将工作-该函数变得可用。
当做
;;;;;;;;; ------ Carpet Area Program ------ ;;;;;;;;;
(defun c:CA (/ *error* p5 p6 a b c d e f s)
(setq oldCM (getvar "CMDECHO")
oldos (getvar "OSMODE")
)
(defun *error* (msg)
(if oldCM (setvar "CMDECHO" oldCM))
(if oldos (setvar "OSMODE" oldos))
(princ msg)
(princ)
)
(setvar "CMDECHO" 0)
(setvar "osmode" 0) ;(setvar "osmode" 524)
(if (and (setq s (ssget "_:S:E" '((0 . "LWPOLYLINE"))))
(setq p5 (getpoint "\nWHERE TO PLACE TEXT: "))
)
(progn
(setq p5 (polar p5 pi 1250))
(setq p6 (polar p5 0 2500))
;(setq fn (getstring t "\nFLAT NO.:"))
(command "._area" "_e" (ssname s 0))
(SETQ A (GETVAR "AREA"))
(setq f (* A 0.000010764))
(setq f (rtos f 2 2))
(SETQ f (strcat f " SQ. FT."))
(SETQ B (/ A 1000000))
(SETQ C (RTOS B 2 2))
(SETQ D "CARPET AREA")
;(setq e (strcat FN " = " C " SQ.MT."))
(setq e (strcat "= " C " SQ.MT."))
(setq F (strcat "= " F))
(COMMAND "_TEXT" "_S" "STANDARD" "_f" P5 p6 "250" D
"_text" "" e
"_text" "" f
"_.rectangle"
(mapcar '+ P5 '(-165 440 0))
(mapcar '+ P6 '(165 -1045 0))
) ; end command
)
;; End Progn
(princ "\n>")
)
;; End IF
;; Reset System Variables:
(setvar "cmdecho" oldCM)
(setvar "osmode" oldos)
(princ)
;; Exit Cleanly
)
;; End defun
;;;;;;;;; ------ End Program ---
尊敬的先生:,
thx回复
它正在工作 突然我遇到了这个问题,我有两个文件,一个是实用程序,另一个是从中调用一些函数,我使用的部分是:
公用事业lsp
; New Layer
(defun newLayer (LayName Color Ltype Lweight / NewLay)
;loading line type
(if (not (tblsearch "LTYPE" Ltype))
(vla-load (vla-get-linetypes activeDoc) Ltype "acadiso.lin"))
; Creating new layer
(if (not (tblsearch "Layer" LayName))
(setq NewLay (vla-add LayerTable LayName))
)
(vla-put-color NewLay Color)
(vla-put-linetype NewLay Ltype)
(vla-put-lineweight NewLay Lweight)
)
(defun gGet (name)
(cdr (assoc name (vlax-ldata-get modelSpace "mhjv-vars")))
)
画lsp
3
正如您所看到的,draw中的函数首先调用gGet,然后从实用程序中调用newLayer,有趣的是,正在调用gGet,但当涉及到newLayer时,它会返回;错误:没有函数定义:newLayer“我缺少什么? 没关系,有问题了,我在函数定义后/中定义了newlayer
页:
[1]