乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 75|回复: 4

[编程交流] 按扩展数据信息删除数据

[复制链接]

2

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 12:01:48 | 显示全部楼层 |阅读模式
你好
 
我的图形有不同类型的实体(多段线(闭合)、圆、线、点),并附有扩展数据。
扩展数据索引唯一值。我正在尝试根据扩展数据索引删除实体的代码
 
(定义c:delobj()
(setq selobj(entsel“选择要删除的对象:”))
(setq ndx(cdr(cadr(cadr(assoc-3(entget(car selobj)'(“索引”))))))))
(setq a(ssget“X”(list(list-3(list“Index”(cons 1000 ndx 1070;)Ю)))))
(setq b(ssname a 0))
(entdel b)
)
 
我只能删除多段线(闭合)和圆,但线和点a显示错误。
 
提前感谢
 
Sidharth kamasani公司
回复

使用道具 举报

14

主题

271

帖子

257

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 12:17:39 | 显示全部楼层
我想这条线会对你有帮助。基本上你不能那样做。这是为您准备的线程:
 
  1. (defun c:delents (/ EN I SS VAL)
  2. ;; Courtesy of MP, http://www.theswamp.org/index.php?topic=7229.msg89412#msg89412
  3. (defun RemoveFromPicksetIf ( ss func / I ENAME)
  4.    ;;  The supplied func must take one
  5.    ;;  argument, an ename. What it does
  6.    ;;  we don't care, but if it returns
  7.    ;;  a non nil result remove the entity
  8.    ;;  from the pickset
  9.    (if (eq 'pickset (type ss))
  10.      (repeat (setq i (sslength ss))
  11.    (if
  12.      (func
  13.        (setq ename
  14.           (ssname ss
  15.               (setq i (1- i))
  16.               )
  17.          )
  18.        )
  19.      (ssdel ename ss)
  20.      )
  21.    )
  22.      )
  23.    ss
  24.    )
  25. (AND (setq en (entsel))
  26.       (setq val (cdr (assoc 1000 (cdr (assoc "INDEX" (cdr (assoc -3 (entget (car en) (list "*")))))))))
  27.       (setq ss
  28.          (RemoveFromPicksetIf
  29.        (ssget "X" '((-3 ("INDEX"))))
  30.        (lambda ( ename / xdata )
  31.          (or
  32.            (null
  33.              (setq xdata
  34.                 (assoc -3
  35.                    (entget ename
  36.                        '("INDEX")
  37.                        )
  38.                    )
  39.                )
  40.              )
  41.            (null
  42.              (member
  43.            (cons 1000 val)
  44.            (cdadr xdata)
  45.            ))))))
  46.        (setq i -1)
  47.        (while (setq en (ssname ss (setq i (1+ i))))
  48.          (entdel en)
  49.          )
  50.        )
  51.         (princ)
  52.          )
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 12:38:19 | 显示全部楼层
 
我可能错了,但我不认为可以在ssget“X”过滤器中使用扩展数据(-3)。(从我记忆中未被使用的部分的后面)-大卫
回复

使用道具 举报

2

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 13:00:35 | 显示全部楼层
谢谢大家宝贵的解决方案
 
热regds
 
Sidharth kamasani公司
回复

使用道具 举报

14

主题

271

帖子

257

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 13:09:31 | 显示全部楼层
希望你能找到工作。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-5 10:25 , Processed in 0.926972 second(s), 62 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表