找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1051|回复: 6

[编程申请]:请高手过来编程,属性块文字格式刷

[复制链接]
发表于 2005-11-1 10:36:04 | 显示全部楼层 |阅读模式

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

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

×
各位大大,大家知道CAD的属性文字,可以用刷子改特性(文字样式、字高、宽度比例,图层、颜色等)但成了属性块后就不能了,我想做个可以刷属性块里面的属性文字特性的刷子(就是属性块里面的文字选项和特性,最好能支持多个文字属性,如我附件里的块就有两个文字属性,支持批量窗选,也可全部),要求如下图。
附件里有CAD文件,供大大们参考。
C:\Documents and Settings\administrator\桌面\3.jpg C:\Documents and Settings\administrator\My Documents\My Pictures\2005821107862.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2005-11-2 11:38:56 | 显示全部楼层
居然没人理,失望啊。
各位斑竹们,都去那了?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-11-2 11:52:55 | 显示全部楼层
将你用的CAD版本说说,2000+编程会简单很多。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-2 12:56:39 | 显示全部楼层
最初由 eachy 发布
[B]将你用的CAD版本说说,2000+编程会简单很多。 [/B]

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-11-2 17:15:03 | 显示全部楼层
[php]
(vl-load-com)
(defun c:tt (/ thisdrawing e el ss o myerr olderr attl o1)
  (defun myerr (msg)
    (if        (/= msg "Cancel")
      (princ "\n*Cancel*")
    )
    (mapcar '(lambda (x) (set x nil))
            '(stylename height layer color scalefactor)
    )
    (vla-endundomark thisdrawing)
    (setq *error* olderr)
    (princ)
  )
  (setq thisdrawing (vla-get-activedocument (vlax-get-acad-object)))
  (if (and (setq e (car (nentsel "\n拾取文字或属性: ")))
           (setq el (entget e))
           (wcmatch (cdr (assoc 0 el)) "*TEXT,ATT*")
           (progn
             (princ "\n选择文字或属性块...")
             t
           )
           (setq ss (ssget '((-4 . "<or")
                             (0 . "*Text")
                             (-4 . "<and")
                             (0 . "insert")
                             (66 . 1)
                             (-4 . "and>")
                             (-4 . "or>")
                            )
                    )
           )
      )
    (progn
      (setq olderr  *error*
            *error* myerr
      )
      (vla-startundomark thisdrawing)
      (setq obj (vlax-ename->vla-object e))
      (mapcar
        (function
          (lambda (x)
            (set x (vl-catch-all-apply 'vlax-get-property (list obj x)))
          )
        )
        '(stylename height layer color scalefactor)
      )
      (vlax-for        o (vla-get-activeselectionset
                    (vla-get-activedocument (vlax-get-acad-object))
                  )
        (if (wcmatch (vla-get-objectname o) "*Block*")
          (progn (setq attl (vlax-invoke o 'getattributes))
                 (mapcar
                   '(lambda (o1)
                      (mapcar (function        (lambda        (x)
                                          (vl-catch-all-apply
                                            'vlax-put-property
                                            (list o1 x (eval x))
                                          )
                                        )
                              )
                              '(stylename height layer color scalefactor)
                      )
                    )
                   attl
                 )
          )
          (mapcar (function (lambda (x)
                              (vl-catch-all-apply
                                'vlax-put-property
                                (list o x (eval x))
                              )
                            )
                  )
                  '(stylename height layer color scalefactor)
          )
        )
      )
      (mapcar '(lambda (x) (set x nil))
              '(stylename height layer color scalefactor)
      )
      (vla-endundomark thisdrawing)
      (setq *error* olderr)
    )
  )
  (princ)
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-2 17:35:13 | 显示全部楼层
最初由 eachy 发布
[B][php]
(vl-load-com)
(defun c:tt (/ thisdrawing e el ss o myerr olderr attl o1)
  (defun myerr (msg)
    (if        (/= msg "Cancel")
      (princ "\n*Cancel*")
    )
    (mapcar '(lambda (x) (set x ni... [/B]

斑竹,可以用,可是能不能改进一下,我给的图示中,索引块中不是有两个不同属性号的属性吗,能不能让他各自改各自的(因为上下两个属性有可能特性不同呀),而不是刷了后全部都改成一样了。
哈,谢谢你。★#★
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-11-3 22:56:15 | 显示全部楼层

  1. (vl-load-com)
  2. (defun c:tt (/ thisdrawing e el o myerr olderr o1 tag bn)
  3.   (defun myerr (msg)
  4.     (if        (/= msg "Cancel")
  5.       (princ "\n*Cancel*")
  6.     )
  7.     (mapcar '(lambda (x) (set x nil))
  8.             '(stylename height layer color scalefactor)
  9.     )
  10.     (vla-endundomark thisdrawing)
  11.     (setq *error* olderr)
  12.     (princ)
  13.   )
  14.   (setq thisdrawing (vla-get-activedocument (vlax-get-acad-object)))
  15.   (if (and (setq e (entsel "\n拾取属性文字: "))
  16.            (setq el (entget (car e)))
  17.            (assoc 66 el)
  18.            (= (cdr (assoc 0 el)) "INSERT")
  19.            (setq bn (assoc 2 el))
  20.            (setq e  (car (nentselp (last e)))
  21.                  el (entget e)
  22.            )
  23.            (equal (assoc 0 el) '(0 . "ATTRIB"))
  24.            (progn
  25.              (princ "\n选择属性块...")
  26.              t
  27.            )
  28.            (ssget (list bn))
  29.       )
  30.     (progn
  31.       (setq olderr  *error*
  32.             *error* myerr
  33.       )
  34.       (vla-startundomark thisdrawing)
  35.       (setq obj        (vlax-ename->vla-object e)
  36.             tag        (vla-get-tagstring obj)
  37.       )
  38.       (mapcar
  39.         (function
  40.           (lambda (x)
  41.             (set x (vl-catch-all-apply 'vlax-get-property (list obj x)))
  42.           )
  43.         )
  44.         '(stylename height layer color scalefactor)
  45.       )
  46.       (vlax-for        o (vla-get-activeselectionset
  47.                     (vla-get-activedocument (vlax-get-acad-object))
  48.                   )
  49.         (mapcar
  50.           '(lambda (o1)
  51.              (mapcar (function (lambda (x)
  52.                                  (if
  53.                                    (= (vla-get-tagstring o1)
  54.                                       tag
  55.                                    )
  56.                                     (vl-catch-all-apply
  57.                                       'vlax-put-property
  58.                                       (list o1 x (eval x))
  59.                                     )
  60.                                  )

  61.                                )
  62.                      )
  63.                      '(stylename height layer color scalefactor)
  64.              )
  65.            )
  66.           (vlax-invoke o 'getattributes)
  67.         )
  68.       )
  69.       (mapcar '(lambda (x) (set x nil))
  70.               '(stylename height layer color scalefactor)
  71.       )
  72.       (vla-endundomark thisdrawing)
  73.       (setq *error* olderr)
  74.     )
  75.   )
  76.   (princ)
  77. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 18:37 , Processed in 0.298935 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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