出现参数类型错误提示,请指点!
(defun c:tt (/ newtx V1 n nme oldtx V3)(setvar "cmdecho" 0)
(if (= TEXT0 "")
(setq TEXT0 "(-0.050)")
)
(setq newtx (getstring (strcat "\n请输入文本<" TEXT0 ">:")))
(if (= newtx "")
(setq newtx TEXT0)
(setq TEXT0 newtx)
)
(if (= TEXT0 "")
(setq newtx "(-0.050)")
)
(prompt "\n选择文本(支持标注(非天正),单、多行文本):")
(setq newtx (cons 1 newtx))
(setq V1 (ssget))
(setq n 0)
(command "chprop" V1 "" "C" 2 "") ;改黄色
(if (/= V1 nil)
(while (< n (sslength V1))
(setq nme (ssname V1 n))
(setq oldtx (assoc 1 (entget nme)))
(setq V3 (entget nme))
(entmod (subst newtx oldtx V3))
(entupd nme)
(setq n (+ n 1))
)
)
(princ)
)
出现如下提示:
错误: 参数类型错误: stringp nil
请各位路过的大神给指点指点!谢谢!
...(= TEXT0 "")...
此时 TEXT0 未赋值应是 nil
下同
建议改用 Ustr 自定义函数
(参考老帖) Andyhon 发表于 2018-10-9 10:51
...(= TEXT0 "")...
此时 TEXT0 未赋值应是 nil
未赋值,if认定条件为非空。一开始我是按nil指定,但执行直接回车的空文本时就出问题了。
Ustr自定义函数?能否给个地址? (if (not TEXT0 )
(setq TEXT0 "(-0.050)")
) (defun c:lxy (/ ss str)
(if (not str )
(setq str "(-0.050)")
)
(setq str (getstring (strcat "\n请输入文本<" str ">:")))
(prompt "\n选择文本(支持标注(非天正),单、多行文本):")
(setq ss (ssget '((0 . "*TEXT,DIMENSION"))))
(foreach s (lxy-pickset->list ss)
(if (= (cdr (cadr (entget s))) "DIMENSION")
(Vlax-Put-Property (Vlax-Ename->Vla-Object s) 'TextOverride str )
(Vlax-Put-Property (Vlax-Ename->Vla-Object s) 'TextString str )
)
(Vlax-Put-Property (Vlax-Ename->Vla-Object s) 'Color 1 )
)
) 血司 发表于 2018-10-9 12:01
(if (not TEXT0 )
(setq TEXT0 "(-0.050)")
)
非常感谢!多谢!:victory:
页:
[1]