flytoday 发表于 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)
)
去除扩展属性后,图无颜色变成红色。。。
麻烦哪位大师改下谢谢

zyhandw 发表于 2013-1-6 08:34:47

这个应该很好办吧,加个循环就ok了

flytoday 发表于 2013-1-6 12:37:21

麻烦就手改下啊乙谢谢

Gu_xl 发表于 2013-1-6 13:16:31

本帖最后由 Gu_xl 于 2013-1-6 13:26 编辑

这种删除扩展数据的方法虽然能够删掉扩展数据,但是对象被改变了!所以说这是一种非常错误的方法!
下面是正确的方法:

(defun c:tt(/ ss en enl xdl n)
(princ "\n**选择要删除扩展数据的物体**")
(while (setq ss (ssget))
    ;; 删除全部扩展数据
    (repeat (setq n (sslength ss))
      (setq en      (ssname ss (setq n (1- n)))
            enl      (entget en '("*"))
            xdl      (cdr (assoc -3 enl))
            )
      (if xdl
      (progn
          (setq      xdl
               (cons -3 (mapcar '(lambda (x) (list (car x))) xdl)))
          (entmod (cons xdl (entget en)))
          )
      )
      )
    (princ "\n**继续选择要删除扩展数据的物体**")
    )
(princ)
)

zyhandw 发表于 2013-10-26 22:57:41

Gu_xl 发表于 2013-1-6 13:16 static/image/common/back.gif
这种删除扩展数据的方法虽然能够删掉扩展数据,但是对象被改变了!所以说这是一种非常错误的方法!
下面是 ...

没有看明白是什么原理,G版能讲解下吗?
为什么用-3码把已注册的程序名写到图元数据中,就可以去掉扩展属性呢?

清风明月名字 发表于 2014-1-25 08:40:59

谢谢各位楼主的分享!很有意思的代码,收藏备用。

HGHG011 发表于 2014-10-4 17:50:16

Gu_xl 发表于 2013-1-6 13:16 static/image/common/back.gif
这种删除扩展数据的方法虽然能够删掉扩展数据,但是对象被改变了!所以说这是一种非常错误的方法!
下面是 ...

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

zhaochang71 发表于 2014-10-4 19:30:36

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


(setq newent (append lastent exdata1))
(entmod newent)

czcxxx 发表于 2015-11-6 15:22:18

谢谢分享!!!!!!!!!!!
页: [1]
查看完整版本: 去扩展数据求修改能框选下谢谢大师啦