求助,拾取特性后不能一次退出怎么办
本帖最后由 LIULISHENG 于 2024-4-2 15:26 编辑做了一个拾取图元特性的功能,主要是借助"_ADDSELECTED"实现的,并增加拾取和恢复线宽,但是由此导致命令按ESC不能一次退出,需要按两次ESC才能退出,否则在点击空格键重新使用时会出现”未知命令“TT”。按 F1 查看帮助。“,怎样才能不出现这个提示,请各位帮助看一下,代码如下:
(defun C:TT (/ *error* ent linewidth old_cmdecho old_pw ss)
(setq old_cmdecho (getvar "cmdecho" ))
(setvar "cmdecho" 0)
(setq old_pw (getvar 'PLINEWID))
(defun *Error* (msg);出错处理
(if (and msg (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*QUIT*,*EXIT*,*取消*")))
(progn
(setvar 'PLINEWID old_pw)
;(getvar "lastprompt")
(setvar "cmdecho" old_cmdecho)
(princ)
)
)
);defun *Error*
(while (null ent)
(setq ent (car(nentselp "\n请拾取图元特性:")))
)
(if (wcmatch (cdr(assoc 0 (entget ent))) "*POLYLINE")
(progn
(if (cdr(assoc 43 (entget ent)))
(progn
(setq Linewidth (cdr(assoc 43 (entget ent))))
(setvar 'PLINEWID Linewidth)
)
)
(vl-cmdf "_ADDSELECTED" "" ent "")
(while (= 1 (getvar "cmdactive"))
(vl-cmdf pause)
(setvar 'PLINEWID old_pw)
)
)
(vl-cmdf "_ADDSELECTED" "" ent "")
)
(setvar "cmdecho" old_cmdecho)
(princ)
)
选择块时第一次会提示错误,要第二次才成功 是的,拾取块也会出现错误 本帖最后由 ssyfeng 于 2024-4-2 15:43 编辑
可以加个判断处理一下块就可以了,nentselp选择块,应该是得到表的最后一个表的最后一个图元名就是 本帖最后由 LIULISHENG 于 2024-4-2 15:50 编辑
块的错误是因为_ADDSELECTED 命令在拾取块后需要输入一些参数,(vl-cmdf "_ADDSELECTED" "" ent "")的输入格式不对
页:
[1]