明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2890|回复: 8

去扩展数据求修改能框选下谢谢大师啦

[复制链接]
发表于 2013-1-6 01:55:13 | 显示全部楼层 |阅读模式
本帖最后由 flytoday 于 2013-1-6 01:58 编辑

(defun c:qq (/ ss ty tyy)
      (setq ss (car (entsel "\n>>>请选择对象")))
      (setq ty (entget ss '("*")))
      (setq tyy(assoc -3 ty))
  (if (/= tyy nil)
    (progn
    (setq ty (vl-remove tyy ty))
    (entmake ty)
    (entdel ss)
    (princ "\n已去除扩展属性")
    );progn
    (princ "\n原对象无扩展属性")
   );if
  (princ)
)
去除扩展属性后,图无颜色变成红色。。。
麻烦哪位大师改下谢谢

点评

因为颜色随层了,要先取得原来的颜色  发表于 2013-1-6 08:55
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2013-1-6 08:34:47 | 显示全部楼层
这个应该很好办吧,加个循环就ok了
 楼主| 发表于 2013-1-6 12:37:21 来自手机 | 显示全部楼层
麻烦就手改下啊乙谢谢
发表于 2013-1-6 13:16:31 | 显示全部楼层
本帖最后由 Gu_xl 于 2013-1-6 13:26 编辑

这种删除扩展数据的方法虽然能够删掉扩展数据,但是对象被改变了!所以说这是一种非常错误的方法!
下面是正确的方法:
  1. (defun c:tt  (/ ss en enl xdl n)
  2.   (princ "\n**选择要删除扩展数据的物体**")
  3.   (while (setq ss (ssget))
  4.     ;; 删除全部扩展数据
  5.     (repeat (setq n (sslength ss))
  6.       (setq en        (ssname ss (setq n (1- n)))
  7.             enl        (entget en '("*"))
  8.             xdl        (cdr (assoc -3 enl))
  9.             )
  10.       (if xdl
  11.         (progn
  12.           (setq        xdl
  13.                  (cons -3 (mapcar '(lambda (x) (list (car x))) xdl)))
  14.           (entmod (cons xdl (entget en)))
  15.           )
  16.         )
  17.       )
  18.     (princ "\n**继续选择要删除扩展数据的物体**")
  19.     )
  20.   (princ)
  21.   )

评分

参与人数 2明经币 +2 收起 理由
bzhjl + 1 赞一个!
flytoday + 1 很给力!

查看全部评分

发表于 2013-10-26 22:57:41 | 显示全部楼层
Gu_xl 发表于 2013-1-6 13:16
这种删除扩展数据的方法虽然能够删掉扩展数据,但是对象被改变了!所以说这是一种非常错误的方法!
下面是 ...

没有看明白是什么原理,G版能讲解下吗?
为什么用-3码把已注册的程序名写到图元数据中,就可以去掉扩展属性呢?
发表于 2014-1-25 08:40:59 | 显示全部楼层
谢谢各位楼主的分享!很有意思的代码,收藏备用。
发表于 2014-10-4 17:50:16 | 显示全部楼层
Gu_xl 发表于 2013-1-6 13:16
这种删除扩展数据的方法虽然能够删掉扩展数据,但是对象被改变了!所以说这是一种非常错误的方法!
下面是 ...

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
发表于 2014-10-4 19:30:36 | 显示全部楼层
.对于已经附加了扩展属性的图元,如何删除它的相对应的属性
      清除一个应用程序名为标识的扩展实体数据,把应用程序名后面的数据项清除,只保留应用程序名,然后更新实体数据,那么ACAD就会把只有应用程序名而没有数据的“一组扩展实体数据”的删除了。
(setq exdata1 '(( -3 ("AppName"))))


(setq newent (append lastent exdata1))
(entmod newent)
发表于 2015-11-6 15:22:18 | 显示全部楼层
谢谢分享!!!!!!!!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-21 05:07 , Processed in 0.229716 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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