郁闷,属性块中的文字怎么会无故跑偏?
本帖最后由 半听可乐 于 2014-12-11 23:48 编辑我做了个属性块,块中有个属性文字有时候不知道怎么回事会不在设定的位置上(刚开始都是好的,过段时间位置就变了),很苦恼,求大神解答一下!
附图01中图名位置正确,过段时间图名的位置就跑偏了,如附图02 字体问题吧,双击编辑一下就可以恢复, 有时重新打开图纸也会恢复 有可能是字体问题,很多时候有些问题没法解决重开cad又没问题 希望大神们做个调整属性快位置的lisp vectra 发表于 2014-12-7 14:50 static/image/common/back.gif
字体问题吧,双击编辑一下就可以恢复, 有时重新打开图纸也会恢复
不是字体问题,同一台电脑啊,软件版本也是一样的,重开图和编辑文字都试过就是不行 hao3ren 发表于 2014-12-7 15:18 static/image/common/back.gif
有可能是字体问题,很多时候有些问题没法解决重开cad又没问题
朋友,不是字体问题哦 是块的问题,重开CAD再进入块编辑显示就没问题,直接不保存退出快编辑再保存图纸 zzc83 发表于 2014-12-7 22:52 static/image/common/back.gif
是块的问题,重开CAD再进入块编辑显示就没问题,直接不保存退出快编辑再保存图纸
你说的方法我试过了,没用,不是块的问题,因为附图中的两个块明明就是同一个图块,怎么会不一样呢? 找到G版的,你试一下吧 图块属性文字归位
软件作者联系方式Email: Gu_xl@sohu.com
--------------------------------------------------------------------------------
;;;(gxl-blk-att2init ent) 图块属性还原归位
;;;测试 (gxl-blk-att2init (car(entsel "\n选择图块")))
(defun gxl-blk-att2init (ent / obj
inspt Ownerobj atts
objs attinspt rot
xscale yscale zscale
Alignment Backward ObliqueAngle
Rotation TextAlignmentPoint
TextGenerationFlag UpsideDown
TrueColor
)
(if (= 'ename (type ent))
(setq obj (vlax-ename->vla-object ent))
(setq obj ent)
)
(setq Ownerobj
(vla-Item (vla-get-blocks
(vla-get-ActiveDocument (vlax-get-acad-object))
)
(vla-get-name obj)
)
)
(vlax-for a Ownerobj
(setq objs (cons a objs))
)
(setq objs (reverse objs))
(setq rot (vla-get-Rotation obj)
xscale (vla-get-XScaleFactor obj)
yscale (vla-get-yScaleFactor obj)
zscale (vla-get-zScaleFactor obj)
)
(vla-put-Rotation obj 0)
(vla-put-XScaleFactor obj 1)
(vla-put-yScaleFactor obj 1)
(vla-put-zScaleFactor obj 1)
(setq atts(vla-GetAttributes obj)
atts(safearray-value (vlax-variant-value atts))
inspt (vlax-safearray->list
(vlax-variant-value (vla-get-InsertionPoint obj))
)
)
(if atts
(progn
(foreach att atts
(vl-some '(lambda (x)
(= (GXL-CATCHAPPLY
vla-get-TagString
(list (setq Ownerobj x))
)
(vla-get-TagString att)
)
)
objs
)
(setq attinspt (vlax-safearray->list
(vlax-variant-value
(vla-get-InsertionPoint Ownerobj)
)
)
)
(setq Alignment (vla-get-Alignment Ownerobj)
Backward (vla-get-Backward Ownerobj)
ObliqueAngle (vla-get-ObliqueAngle Ownerobj)
Rotation (vla-get-Rotation Ownerobj)
TextAlignmentPoint (vla-get-TextAlignmentPoint Ownerobj)
TextGenerationFlag (vla-get-TextGenerationFlag Ownerobj)
UpsideDown (vla-get-UpsideDown Ownerobj)
TrueColor (vla-get-TrueColor Ownerobj)
)
(vla-put-Alignment att Alignment)
(vla-put-Backward att Backward)
(vla-put-ObliqueAngle att ObliqueAngle)
(vla-put-Rotation att Rotation)
(VL-CATCH-ALL-APPLY
'vla-put-TextGenerationFlag
(list att TextGenerationFlag)
)
(vla-put-Alignment att Alignment)
(vla-put-UpsideDown att UpsideDown)
(vla-put-TrueColor att TrueColor)
(vla-put-TextAlignmentPoint
att
(vlax-3d-point
(mapcar '+
inspt
(vlax-safearray->list
(vlax-variant-value TextAlignmentPoint)
)
)
)
)
)
(vla-put-Rotation obj rot)
(vla-put-XScaleFactor obj XScale)
(vla-put-yScaleFactor obj yScale)
(vla-put-zScaleFactor obj zScale)
)
)
)
;;;属性复位 编制 Gu_xl 2011.05.15
(defun c:initatt ()
(while (setq ss (ssget '((0 . "insert"))))
(setq n (sslength ss))
(repeat n
(gxl-blk-att2init (ssname ss (setq n (1- n))))
)
)
(princ)
)
页:
[1]
2