找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 866|回复: 3

[转贴]:修改图块内所有属性性质

[复制链接]
发表于 2003-3-24 12:53:13 | 显示全部楼层 |阅读模式

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

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

×
  1. 修改图块内所有属性性质
  2. ;;By 龙龙仔
  3. ;;修改图块内所有属性性质
  4. ;;USAGE: (CHANGE_ATT "LAYER" "DIM")
  5. ;;USAGE: (CHANGE_ATT "COLOR" "1")

  6. (defun CHANGE_ATT (PROPERTY LNAME / BLK BLKREF BNAME BLKDEF ENT)
  7.   (vl-load-com)
  8.   (while
  9.     (or (not (setq BLK (car (entsel "\n选取带属性图块: "))))
  10. (progn
  11.   (setq BLKREF (vlax-ename->vla-object BLK))
  12.   (not (= (vla-get-objectname BLKREF) "AcDbBlockReference"))
  13. )
  14.     )
  15.   )
  16.   (setq BNAME  (vla-get-name BLKREF)
  17. BLKDEF (vla-item (vla-get-blocks
  18.    (vla-get-activedocument (vlax-get-acad-object))
  19. )
  20. BNAME
  21.        )
  22.   )
  23.   (vlax-for ENT BLKDEF
  24.     (if (= (vla-get-objectname ENT) "AcDbAttributeDefinition")
  25.       ((eval (read (strcat "vla-put-" PROPERTY))) ENT LNAME)
  26.     )
  27.   )
  28.   (command "_.attsync" "n" BNAME)
  29.   (princ)
  30. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-4-3 00:14:33 | 显示全部楼层
不错,copy 一下,学习学习!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

发表于 2003-4-3 08:24:49 | 显示全部楼层

  1. getattributes是对block reference.
  2. 原问题是要改变所有block中属性
  3. 对block reference属性修改
  4. ;;By (LUCAS)龙龙仔
  5. ;;修改BLOCK REF内所有属性性质
  6. ;;USAGE: (CHANGE_ATTT "LAYER" "DIM")
  7. ;;USAGE: (CHANGE_ATTT "COLOR" "1")

  8. (defun CHANGE_ATTT (PROPERTY LNAME / BLK BLKREF BNAME BLKDEF ENT)
  9.   (vl-load-com)
  10.   (while
  11.     (or        (not (setq BLK (car (entsel "\n选取带属性图块: "))))
  12.         (progn
  13.           (setq BLKREF (vlax-ename->vla-object BLK))
  14.           (not (= (vla-get-objectname BLKREF) "AcDbBlockReference"))
  15.         )
  16.     )
  17.   )
  18.   (foreach ENT (vlax-safearray->list
  19.                  (vlax-variant-value (vla-getattributes BLKREF))
  20.                )
  21.     ((eval (read (strcat "vla-put-" PROPERTY))) ENT LNAME)
  22.   )
  23.   (princ)
  24. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-26 19:03 , Processed in 0.169537 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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