好啊这是代码。这将不断要求更改“红色”图案填充。要退出,请进行空选择(单击屏幕的空白区域。
该代码包括一个局部错误函数,并添加了在一次撤消中撤消所有更改的功能。
它只会将“红色”图案填充的颜色更改为“灰色”。如果舱口不是红色,它将忽略它。
- (vl-load-com)
- (defun c:r2g ( / *error* c_doc obj)
- (defun *error* ( msg )
- (if (and c_doc (= 8 (logand 8 (getvar 'UNDOCTL)))) (vla-endundomark c_doc))
- (if (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*EXIT*")) (princ (strcat "\nOops an Error occurred : " msg)))
- (princ)
- );end_defun *error*
- (setq c_doc (vla-get-activedocument (vlax-get-acad-object)))
- (if (and c_doc (= 8 (logand 8 (getvar 'UNDOCTL)))) (vla-endundomark c_doc))
- (vla-startundomark c_doc)
- (while (setq obj (vlax-ename->vla-object (car (entsel "\nSelect Red Hatch : "))))
- (if (and (wcmatch (vlax-get-property obj 'objectname) "*Hatch")
- (= (vlax-get-property obj 'color) 1)
- );end_and
- (vlax-put-property obj 'color 9)
- );end_if
- );end_while
- (if (and c_doc (= 8 (logand 8 (getvar 'UNDOCTL)))) (vla-endundomark c_doc))
- (princ)
- );end_defun
- (princ)
这已经过最低限度的测试 |