明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2708|回复: 11

删除实体扩展属性(vb),谁给写个LISP,谢谢!

  [复制链接]
发表于 2005-10-29 00:31:00 | 显示全部楼层 |阅读模式

删除实体扩展属性(vb),谁给写个LISP,谢谢!

Public Function XDataErase(ByRef objAcadEntity As AcadEntity) As Boolean
    Dim varXdataType        As Variant
    Dim varXdataValue       As Variant
   
    XDataErase = False
    Err.Clear
    On Error GoTo errhandle
'    objAcadEntity.GetXData "", varXdataType, varXdataValue
    objAcadEntity.GetXData "", varXdataType, varXdataValue
    If Not IsEmpty(varXdataType) Then
        ReDim Preserve varXdataType(0)
        ReDim Preserve varXdataValue(0)
        objAcadEntity.SetXData varXdataType, varXdataValue
    End If
    XDataErase = True
    Exit Function
errhandle:
    MsgBox Err.Description
End Function

发表于 2020-5-31 22:44:50 | 显示全部楼层
测试下,看看效果好不好
发表于 2005-10-29 12:40:00 | 显示全部楼层
;;删除实体所有扩展数据项目(转贴自XDCAD)
(defun c:Del-xData(/ e)
  (setq e (car (entsel "\n选择实体: ")))
  (entmod (list (cons -1 e)(cons -3 (mapcar 'list (mapcar 'car (cdr(assoc -3 (entget e '("*")))))))))
)
 楼主| 发表于 2005-10-29 22:40:00 | 显示全部楼层
谢谢,能完善一下吗?比如说:1,可以全选.2,处理到第几个实体了!
发表于 2005-10-30 01:13:00 | 显示全部楼层

加油

发表于 2005-10-30 09:30:00 | 显示全部楼层
wei209发表于2005-10-29 22:40:00谢谢,能完善一下吗?比如说:1,可以全选.2,处理到第几个实体了!
是不是这个意思?
;;删除实体所有扩展数据项目
(defun c:Del-xData(/ e s m)
     (setq s (ssget "X" '((-3 ("*")))) m -1)
  (repeat (sslength s)
       (setq e (ssname s (setq m (1+ m))))
       (entmod (list (cons -1 e)(cons -3 (mapcar 'list (mapcar 'car (cdr(assoc -3 (entget e '("*")))))))))
       (alert (strcat "这是第" (rtos (+ m 1) 2 0) "个实体,是" (cdr(assoc 0 (entget e))) "实体"))
  ) 
)

发表于 2005-10-30 09:32:00 | 显示全部楼层
无痕发表于2005-10-30 1:13:00 加油
无痕老弟:这"加油"是什么意思?
发表于 2005-10-30 09:52:00 | 显示全部楼层
2楼!!非常感谢!这也正是我想要的东西!呵~
 楼主| 发表于 2005-10-30 10:22:00 | 显示全部楼层

是这个意思,非常感谢!

无痕老弟是让你给写出来,他不......呵呵!

 楼主| 发表于 2005-10-30 21:35:00 | 显示全部楼层

当图内没有实体带扩展属性时,会出来错误!

一个一个的对话,很费劲!

我加上点,改了一下,感觉效果更好!

;;删除实体所有扩展数据项目
(defun c:Del-xData(/ e s m)
     (setq s (ssget "X" '((-3 ("*")))) m -1)
     (if (/= s nil)
       (progn
       (repeat (sslength s)
       (setq e (ssname s (setq m (1+ m))))
       (entmod (list (cons -1 e)(cons -3 (mapcar 'list (mapcar 'car (cdr(assoc -3 (entget e '("*")))))))))
       (print (strcat "这是第" (rtos (+ m 1) 2 0) "个实体,是" (cdr(assoc 0 (entget e))) "实体"))
       )
      )
      )
  (prin1)
)
再次感谢WMZ

发表于 2005-10-31 11:00:00 | 显示全部楼层
这当然是可以的啦!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-17 23:14 , Processed in 0.245061 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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