vla-put-InsertionPoint修改属性位置,问题在哪?
本帖最后由 wharan 于 2022-5-10 10:40 编辑用vla-put-InsertionPoint修改属性位置,在同一程序位置的属性字高、对齐模式都能修改,惟独用vla-put-InsertionPoint修改属性位置,位置没有改变。但如果再执行一遍代码,属性位置就改变了。
程序中红色代码部分,第一遍执行不能改变属性位置,再执行一遍代码可改变属性位置。
蓝色代码为两端对齐模式,第一遍执行能正常改变属性位置。
这是个很奇怪的现象,是不是哪里做的有问题?望高手解答。
另外,增加文中绿色代码,让该行指令执行两次,可以正常修改属性文字位置。
;;更改块属性的位置,属性高度
(defun Chg_Att_Position (ent TagString NewPostion
AttHgt DQ_Mode width
/ lstVar lstAttrsattr
)
(setq lstVar (vla-getattributes (vlax-ename->vla-object ent)))
(setq lstAttrs (vlax-safeArray->list (vlax-variant-value lstVar)))
(foreach attr lstAttrs
(if (= TagString (vla-get-TagString attr))
(if (= DQ_Mode 7)
(progn
(vla-put-textalignmentpoint attr (vlax-3d-point pt_new))
(vla-put-MtextBoundaryWidth attr width)
(vla-put-Alignment attr DQ_Mode)
(vla-put-height attr AttHgt)
(vla-update attr) )
(progn
(vla-put-InsertionPoint attr (vlax-3d-point pt_new))
(vla-put-Alignment attr DQ_Mode)
(vla-put-height attr AttHgt)
(vla-put-InsertionPoint attr (vlax-3d-point pt_new))
(vla-update attr) )
)
)
)
)
pt_new 新的属性位置 深受启发!!多谢!!{:1_1:}
页:
[1]