本帖最后由 zdqwy19 于 2015-11-9 20:07 编辑
使用下面这段代码更改块标注文字颜色没有反应 - (defun c:test ( / a)
- (setq a (car (entsel)))
- (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
- (setq a (vlax-ename->vla-object a))
- (setq a (vla-get-name a))
- (vlax-for x
- (vla-item (vla-get-Blocks (vla-get-activedocument (vlax-get-acad-object))) a)
- (if (= (vla-get-objectname x) "AcDbRotatedDimension")
- (vla-put-textcolor x acRed);标注文字改为红色
- )
- )
- (vla-regen doc :vlax-true)
- )
但是如果把代码稍作更改,比如改为直线改为红色,却又运行正常 - (defun c:test ( / a)
- (setq a (car (entsel)))
- (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
- (setq a (vlax-ename->vla-object a))
- (setq a (vla-get-name a))
- (vlax-for x
- (vla-item (vla-get-Blocks (vla-get-activedocument (vlax-get-acad-object))) a)
- (if (= (vla-get-objectname x) "AcDbLine")
- (vla-put-color x acRed);直线改为红色
- )
- )
- (vla-regen doc :vlax-true)
- )
关键是标注已经更改了,块内不刷新,炸开了反而显示了,百思不得其解?
|