设为首页收藏本站

晓东CAD家园-论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1687|回复: 4

[教学] XDEXCEL解析库应用--批量修改块属性

[复制链接]

点击这里给我发消息

已领礼包: 145个

财富等级: 日进斗金

发表于 2014-11-24 15:46:14 | 显示全部楼层 |阅读模式

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

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

x
对于图中有大量的块属性的,如果要修改非常麻烦,有没有快速的方法?

下面我们结合EXCEL软件和XDRX API的EXCEL库来批量修改块属性。

如下图,建筑的标号,文字是属性,如果在工作中,我们希望把某个编号后的所有编号都增加个整数,如果要手工操作那要非常的痛苦,尤其对于编号遍布在图中,很容易落下。

那么我们把所有的编号都提取到EXCEL软件中,利用EXCEL软件的优势,把所有需要的编号都增加个整数后,然后在读到图中修改。

QQ截图20141124153637.png

通过下面的代码,把属性提取到EXCEL文件

  1. (defun c:tt ()
  2.   (if (setq ss (ssget '((0 . "INSERT") (2 . "XDTB_JZ_LH"))))
  3.     (progn
  4.       (setq header (list "ID" "编号"))
  5.       (setq data (mapcar
  6.                    '(lambda (x)
  7.                       (setq e (entnext x))
  8.                       (list (xdrx_getpropertyvalue e "Handle") (atoi (xdrx_getpropertyvalue e "TextString")))
  9.                     )
  10.                    (xdrx_pickset->ents ss)
  11.                  )
  12.       )
  13.       (setq data (cons header (reverse data)))
  14.       (if (and (setq book (xdex_book_open))
  15.                (xdex_book_addsheet "编号" t)
  16.           )
  17.         (progn
  18.           (xdex_cell_writerange 0 0 data)
  19.           (xdex_book_save "编号.xls")
  20.           (xdex_book_close)
  21.           (princ "\n文件保存成功.")
  22.         )
  23.       )
  24.     )
  25.   )
  26.   (princ)
  27. )



QQ截图20141124153839.png

通过EXCEL的选择性粘贴,把框选的大于6的编号都加上3.

QQ截图20141124153911.png

在通过下面的代码,把修改后的EXCEL文件里面的编号一次性写到CAD里面,达到批量修改块属性的目的。

  1. (defun c:tt1 ()
  2.   (if (and
  3.         (setq book (xdex_book_open "编号.xls"))
  4.         (xdex_book_setActiveSheet "编号")
  5.         (setq data (xdex_cell_readrange))
  6.         (setq data (cdr data))
  7.       )
  8.     (progn
  9.       (mapcar
  10.         '(lambda (x)
  11.            (setq handle (cadar x)
  12.                  e (handent handle)
  13.            )
  14.            (if (/= (xdrx_getpropertyvalue e "TextString") (setq str
  15.                                                                 (rtos
  16.                                                                       (cadadr x)
  17.                                                                       2 0
  18.                                                                 )
  19.                                                           )
  20.                )
  21.              (xdrx_setpropertyvalue e "TextString" str "color" 1)
  22.            )
  23.          )
  24.         data
  25.       )
  26.     )
  27.   )
  28.   (princ)
  29. )


图中红色的的是修改的块属性。

QQ截图20141124154000.png

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2020-10-28 05:03 , Processed in 0.144188 second(s), 42 queries , Gzip On, WinCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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