找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 795|回复: 8

(完成)[编程申请]:如何关闭图块所有属性值?

[复制链接]
发表于 2003-1-18 12:12:25 | 显示全部楼层 |阅读模式

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

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

×
请高人帮忙!
不论图块有多少属性值,如何用编程方式将其所有属性值关闭或清空?:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-1-28 13:54:26 | 显示全部楼层

  1. ;;By LUCAS
  2. ;;所有属性值关闭或清空
  3. (defun C:CLEANATTRIBUTES (/ TMP M2)
  4.   (setq TMP (entsel "\n选取带属性图块: "))
  5.   (if (and (/= TMP NIL)
  6.            (setq TMP (vlax-ename->vla-object (car TMP)))
  7.            (= (vla-get-objectname TMP) "AcDbBlockReference")
  8.            (= (vla-get-hasattributes TMP) :vlax-true)
  9.       )
  10.     (foreach M2        (vlax-safearray->list
  11.                   (vlax-variant-value
  12.                     (vla-getattributes TMP)
  13.                   )
  14.                 )
  15.       (if (= :vlax-true (vla-get-visible M2))
  16.         (vla-put-visible M2 :vlax-false)
  17.         (vla-put-visible M2 :vlax-true)
  18.       )
  19.       ;;(vla-put-textstring M2 "")  ;;清空
  20.     )
  21.     (prompt "\n所选对象不带属性")
  22.   )
  23.   (princ)
  24. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-9-21 13:35:04 | 显示全部楼层
版主还请帮忙,程序很好,但是必须一个一个去点,如果图中块的数量很多,就无法这样去找了。
能不能作些改进,最好点击后,该块名的所有块都如此处理。或者是否能改为多选,我可以用选择易选择后再运行该程序。不用一个一个去找。谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-21 18:41:16 | 显示全部楼层
最初由 海豚 发布
[B]版主还请帮忙,程序很好,但是必须一个一个去点,如果图中块的数量很多,就无法这样去找了。
能不能作些改进,最好点击后,该块名的所有块都如此处理。或者是否能改为多选,我可以用选择易选择后再运行该程序。不用... [/B]

  1. (defun attonf (ss mode / n obj sl)
  2.   (if ss
  3.     (progn (setq sl (sslength ss))
  4.            (while (< (if (not n)
  5.                        (setq n 0)
  6.                        (setq n (1+ n))
  7.                      )
  8.                      sl
  9.                   )
  10.              (setq obj (vlax-ename->vla-object (ssname ss n)))
  11.              (if (= (vla-get-hasattributes obj) :vlax-true)
  12.                (mapcar '(lambda (x) (vla-put-visible x mode))
  13.                        (safearray-value
  14.                          (variant-value (vla-getattributes obj))
  15.                        )
  16.                )
  17.              )
  18.            )
  19.     )
  20.   )
  21. )
  22. (defun c:atton (/ ss)
  23.   (princ "\n选择图块....")
  24.   (attonf (ssget '((0 . "insert"))) :vlax-true)
  25.   (princ)
  26. )
  27. (defun c:attoff        ()
  28.   (princ "\n选择图块....")
  29.   (attonf (ssget '((0 . "insert"))) :vlax-false)
  30.   (princ)
  31. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-22 07:32:15 | 显示全部楼层
谢谢Free-Lancer 以及LUCAS版主的热情帮忙,问题解决的,现在可以多选了,我现在可以用选择易选择后,再用Free-Lancer 的程序关闭属性显示,方便了很多。
希望各位大哥能继续改进本程序,令程序可以直接结合选择易,点击图块就可以把所有该名字图块的属性显示关闭,是程序运行更快捷。
不过这样已经帮了我很大的忙,实在太谢谢各位。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-22 10:28:00 | 显示全部楼层
将所有程序集成到选择易的后继操作中显然是不合适的。
你可以以后几操作为"无"的方式用选择易得到夹选的物体,之后调用 Free-Lancer  的程序完成任务。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-23 08:29:51 | 显示全部楼层

  1. ;;點擊後,該塊名的所有塊都如此處理。
  2. ;;指令:ATTON_OFF
  3. ;;BY LUCAS
  4. ;;切換屬性值顯示或關閉
  5. ;;--------------------------------------------------------------
  6. (defun C:ATTON_OFF (/ SS TMP)
  7.   (vl-load-com)
  8.   (while (and (setq TMP (entsel "\n選取帶屬性圖塊: "))
  9.               (equal "INSERT" (cdr (assoc 0 (entget (car TMP)))))
  10.               (setq SS (ssget "x"
  11.                               (list '(0 . "insert")
  12.                                     '(66 . 1)
  13.                                     (assoc 2 (entget (car TMP)))
  14.                               )
  15.                        )
  16.               )
  17.          )
  18.     (if        (= :vlax-true
  19.            (vla-get-visible
  20.              (nth 0
  21.                   (safearray-value
  22.                     (variant-value
  23.                       (vla-getattributes
  24.                         (vlax-ename->vla-object (ssname SS 0))
  25.                       )
  26.                     )
  27.                   )
  28.              )
  29.            )
  30.         )
  31.       (ATTONF SS :vlax-false)
  32.       (ATTONF SS :vlax-true)
  33.     )
  34.   )
  35.   (princ)
  36. )
  37. ;;---------------------------------------------------------------
  38. (defun ATTONF (SS MODE / ENT M2)
  39.   (while (setq ENT (ssname SS 0))
  40.     (foreach M2        (safearray-value
  41.                   (variant-value
  42.                     (vla-getattributes (vlax-ename->vla-object ENT))
  43.                   )
  44.                 )
  45.       (vla-put-visible M2 MODE)
  46.     )
  47.     (ssdel ENT SS)
  48.   )
  49. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-23 13:03:49 | 显示全部楼层
太谢谢版主了,非常符合我的要求,而且一个命令就可以控制开关。经测试所有的图纸都能通过。谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-21 13:32 , Processed in 0.249728 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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