[求助]vla-activate问题
<p>;以下程序目的是把多个文档中的属性块文字更改,</p><p>;;为什么我加入(vla-activate each)程序就不能正确执行,而取消此代码可以执行,请高手指点</p><p>(defun c:sss (/ AcadObject AcadDocument mSpace ssobj attributes<br/> val-att-ent)<br/> (VL-LOAD-COM)<br/> (setq AcadObject (vlax-get-acad-object)<br/> AcadDocument (vla-get-ActiveDocument AcadObject)<br/> AcadDocuments (vla-get-Documents AcadObject)<br/> mSpace (vla-get-ModelSpace AcadDocument)<br/> )<br/> (setq gpcode (vlax-make-safearray vlax-vbInteger '(0 . 1)))<br/> (vlax-safearray-fill gpcode '(0 66))<br/> (setq datevalue (vlax-make-safearray vlax-vbvariant '(0 . 1)))<br/> (vlax-safearray-fill datevalue '("insert" 1))<br/> (vlax-for each AcadDocuments<br/> <font color="#ff0000">(vla-activate each);此处加入此代码后程序不能正确执行</font><br/> (setq<br/> ssobj (vla-add (vla-get-selectionsets each) "year11")<br/> )<br/> (vla-select<br/> ssobj acSelectionsetAll nil nil gpcode datevalue)<br/> (if (> (vla-get-count ssobj) 0)<br/> (progn<br/> (vlax-for every ssobj<br/> (cond<br/> ((and<br/> (= (vla-get-objectname every) "AcDbBlockReference")<br/> (= (vla-get-hasattributes every) :vlax-true)<br/> )<br/> (progn<br/> (setq attributes<br/> (vlax-variant-value (vla-getattributes every))<br/> )<br/> (setq i 0)<br/> (while (< i (vlax-safearray-get-u-bound attributes 1))<br/> (setq val-att-ent<br/> (vlax-safearray-get-element attributes i)<br/> )<br/> (if (= (vla-get-tagstring val-att-ent) "YEAR_1")<br/> (progn<br/> (vla-put-textstring val-att-ent "open-close")<br/>;;; (vla-put-tagstring val-att-ent "tag")<br/> )<br/> )<br/> (setq i (1+ i))<br/> ;(vla-update val-att-ent)<br/> (princ (strcat "\n--正在更新----"<br/> (vla-get-name each)<br/> "中属性文字"<br/> (vla-get-name every)<br/> "---"<br/> )<br/> )<br/> ) ;while<br/> )<br/> )<br/> (t (princ "\nasss"))<br/> )<br/> )<br/> )<br/> )<br/> (vla-regen each :vlax-true)<br/> (vla-delete ssobj)<br/> (setq attributes<br/> nil<br/> val-att-ent nil<br/> )<br/> ) ;end if<br/>)<br/></p> 把军权交给了别人,别人就是指挥官了,别人的地盘你当然不能乱踩啦 干嘛要ACTIVATE呢.不激活还不是一样 请问问题解决了吗,我也碰到了一样的问题
页:
[1]