半听可乐 发表于 2014-12-7 12:56:01

郁闷,属性块中的文字怎么会无故跑偏?

本帖最后由 半听可乐 于 2014-12-11 23:48 编辑

我做了个属性块,块中有个属性文字有时候不知道怎么回事会不在设定的位置上(刚开始都是好的,过段时间位置就变了),很苦恼,求大神解答一下!

附图01中图名位置正确,过段时间图名的位置就跑偏了,如附图02

vectra 发表于 2014-12-7 14:50:47

字体问题吧,双击编辑一下就可以恢复, 有时重新打开图纸也会恢复

hao3ren 发表于 2014-12-7 15:18:23

有可能是字体问题,很多时候有些问题没法解决重开cad又没问题

bai2000 发表于 2014-12-7 16:11:57

希望大神们做个调整属性快位置的lisp

半听可乐 发表于 2014-12-7 20:51:26

vectra 发表于 2014-12-7 14:50 static/image/common/back.gif
字体问题吧,双击编辑一下就可以恢复, 有时重新打开图纸也会恢复

不是字体问题,同一台电脑啊,软件版本也是一样的,重开图和编辑文字都试过就是不行

半听可乐 发表于 2014-12-7 20:52:52

hao3ren 发表于 2014-12-7 15:18 static/image/common/back.gif
有可能是字体问题,很多时候有些问题没法解决重开cad又没问题

朋友,不是字体问题哦

zzc83 发表于 2014-12-7 22:52:46

是块的问题,重开CAD再进入块编辑显示就没问题,直接不保存退出快编辑再保存图纸

半听可乐 发表于 2014-12-8 08:00:10

zzc83 发表于 2014-12-7 22:52 static/image/common/back.gif
是块的问题,重开CAD再进入块编辑显示就没问题,直接不保存退出快编辑再保存图纸

你说的方法我试过了,没用,不是块的问题,因为附图中的两个块明明就是同一个图块,怎么会不一样呢?

hao3ren 发表于 2014-12-8 10:28:42

找到G版的,你试一下吧

hao3ren 发表于 2014-12-8 10:29:23

图块属性文字归位
软件作者联系方式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
查看完整版本: 郁闷,属性块中的文字怎么会无故跑偏?