找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3152|回复: 25

[原创]:文字内容格式刷.支持text、mtext、attdef 、块属性文字、块中文字、标注文字

[复制链接]

已领礼包: 208个

财富等级: 日进斗金

发表于 2006-12-11 00:57:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
by xshrimp 2006.12.6
文字内容格式刷.支持text、mtext、attdef 、块属性文字、块中文字、标注文字
互刷

当刷块中的非属性文字时.弹出对话框选择是否所有块全改.
或者只修改选中图块.(将炸开图块.包括多重块.属性文字转化为文字.)

欢迎测试.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 208个

财富等级: 日进斗金

 楼主| 发表于 2006-12-11 01:14:55 | 显示全部楼层
贴gif 动画为什么总是不成功????
操作预览
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-4-18 14:29:20 | 显示全部楼层
程序还不错,但不支持天正自定义对象。希望发出源程序,让大家共同完善
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 58个

财富等级: 招财进宝

发表于 2007-4-20 16:28:05 | 显示全部楼层
可否公开源码,我想知道如何取得属性块的值,并修改它,谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-5-10 20:12:28 | 显示全部楼层
是目前为止文字内容格式刷中最好的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-5-12 22:05:22 | 显示全部楼层
看我的源码,程序还需完善,对块内文字修改还不能"立杆见影",立即修改
(defun *$dyq-error$* (msg)
  ;(command ".undo" "")
  (setq *error* &olderr&)
  ;(princ)
)


(princ "\nT   文字内容刷子")
(defun c:T (/                 acadObject   acadDocument LayersObj        f             neirong
            w1                 objname      w2           laylock        TextOverride Measurement
            pickpoint         objhandl
           )
  (prompt "文字内容刷子")
  (setq &olderr& *error*)
  (setq *error* *$dyq-error$*)
  (vl-load-com)
  (setq acadObject (vlax-get-acad-object))
  (setq acadDocument (vlax-get-property acadObject 'ActiveDocument))
  (setq LayersObj (vla-get-layers acadDocument))
  (if (findfile "c:/clipboard.txt")
    (progn
      (setq f (open "c:/clipboard.txt" "r"))
      (setq neirong (read-line f))
      (close f)
      (if (= neirong nil)
        (setq neirong "")
      )
    )
    (setq neirong "")
  )
  (if (setq w1 (entsel (strcat "\n请选择源文字[" neirong "]:")))
    (progn
      (setq objname (cdr (assoc '0 (entget (car w1)))))
      (if
        (and (= objname "INSERT")
             (=        (vla-get-HasAttributes (vlax-ename->vla-object (car w1)))
                :vlax-true
             ) ;如果是有增强属性的块
        )
         (setq w1 (entget (entnext (car w1))))
         (if
           (and
             (= objname "INSERT")
             (=        (vla-get-HasAttributes (vlax-ename->vla-object (car w1)))
                :vlax-false
             )
             (wcmatch (cdr (assoc '0 (entget (car (nentselp (cadr w1))))))
                      "*TEXT,DIMENSION,INSERT,ATTDEF,AttributeRef,ATTRIB"
             )
           ) ;如果是无增强属性的块但是块内文字
            (setq w1 (entget (car (nentselp (cadr w1)))))
            (if
              (and
                (= objname "INSERT")
                (= (vla-get-HasAttributes
                     (vlax-ename->vla-object (car w1))
                   )
                   :vlax-false
                )
                (not (wcmatch
                       (cdr (assoc '0 (entget (car (nentselp (cadr w1))))))
                       "*TEXT"
                     )
                )
              ) ;如果是无增强属性的块但不是块内文字
               (progn
                 (setq w1 (list (cons 1 "")))
                 (prompt "\n未选中块内文字!")
               )
               (if (wcmatch objname "*TEXT") ;如果是文字
                 (setq w1 (entget (car w1)))
                 (if (wcmatch objname "DIMENSION")
                   (progn
                     (setq TextOverride (vla-get-TextOverride (vlax-ename->vla-object (car w1))))
                     (setq Measurement (vla-get-Measurement (vlax-ename->vla-object (car w1))))

                     (if (or (= TextOverride "")
                             (= TextOverride "<>")
                         ) ;如果是标注,并且替代标注为空或<>
                       (setq w1        (list
                                  (cons        1
                                        Measurement
                                  )
                                )
                       )
                       (if (and        (/= TextOverride "")
                                (/= TextOverride "<>")
                           )
                         (setq w1 (list
                                    (cons 1
                                          TextOverride
                                    )
                                  )
                         )
                       )
                     )
                   ) ;如果是标注,并且替代标注不为空或<>
                   (progn
                     (setq w1 (list (cons 1 "")))
                     (prompt "\n未选中标注或文字!") ;既不是标注也不是文字
                   )
                 )

               )
            )
         )
      )
      (setq neirong (cdr (assoc '1 w1)))
      (setq f (open "c:/clipboard.txt" "w"))
      (write-line neirong f)
      (close f)
    )
    (if        (findfile "c:/clipboard.txt")
      (progn
        (setq f (open "c:/clipboard.txt" "r"))
        (setq neirong (read-line f))
        (close f)
        (if (= neirong nil)
          (setq neirong "")
        )
      )
      (prompt
        "\n用来存储的文件[c:/clipboard.txt]不存在,请先选择一个文字以建一个文件!"
      )
    )
  )
  (if (and (/= neirong nil) (/= neirong ""))
    (progn
      (setq neirong (cons 1 neirong)) ;获得源文字的内容
      (while (setq w2 (entsel "\n请选择要修改的文字或编号:"))
        (setq pickpoint (cadr w2))
        (setq objhandl (car w2))
        (setq w2 (car w2))
        (setq objname (cdr (assoc '0 (entget w2))))
        (setq
          laylock (vla-get-lock
                    (vla-item LayersObj (cdr (assoc '8 (entget w2))))
                  )
        ) ;获得对象是否被锁定
        (if (= laylock
               :vlax-false
            ) ;如果没锁定
          (if
            (wcmatch objname
                     "*TEXT,DIMENSION,INSERT,ATTDEF,AttributeRef,ATTRIB"
            )
             (if (= objname "INSERT")
               (if (= (vla-get-HasAttributes (vlax-ename->vla-object w2))
                      :vlax-true
                   )
                 (progn
                   (setq w2 (entget (entnext w2)))
                   (setq w2 (subst neirong (assoc '1 w2) w2))
                   (entmod w2)
                   (entupd objhandl)
                 )
                 (if (wcmatch (cdr (assoc '0 (entget (car (nentselp pickpoint)))))
                              "*TEXT,DIMENSION,INSERT,ATTDEF,AttributeRef,ATTRIB"
                     ) ;如果是无增强属性的块但是块内文字
                   (progn
                     (setq w2 (entget (car (nentselp pickpoint))))
                     (setq w2 (subst neirong (assoc '1 w2) w2))
                     (entmod w2)
                     (entupd objhandl)
                   )
                   (prompt "\n该块内对象没有可编辑的属性!")
                 )
               )
               (progn
                 (setq w2 (entget w2))
                 (setq w2 (subst neirong (assoc '1 w2) w2))
                 (entmod w2)
               )
             )
             (prompt "\n所选择对象没有可编辑的属性!")
          )
          (prompt "\n所选择对象在一个锁定的图层上!")
        )
      )
    )
  )
  (setq *error* &olderr&)
  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-5-14 23:04:34 | 显示全部楼层
能否在不同图形文档间互“刷”?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-7-17 18:09:55 | 显示全部楼层
不同图形估计没那么强悍吧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-7-26 07:08:18 | 显示全部楼层
刷的时候如果能框选就好的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-7-26 08:45:33 | 显示全部楼层
这个有点意思,谢谢了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-7-26 16:09:44 | 显示全部楼层
学习了,ok
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-7-29 17:53:56 | 显示全部楼层
强啊,功能很强大
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-7-31 08:15:07 | 显示全部楼层
学习了,谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8854个

财富等级: 富甲天下

发表于 2008-7-31 23:41:01 | 显示全部楼层
跟楼主学习了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-8-9 20:45:20 | 显示全部楼层
功能不错,谢谢共享,共同进步。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-23 06:30 , Processed in 0.425063 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表