乐筑天下

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

[编程交流] 查找块中的属性

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:47:11 | 显示全部楼层
也许我说的是显而易见的,但你不能只搜索“M2”吗,或者这也有多次出现吗?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:51:37 | 显示全部楼层
快速修改David的例程以搜索属性值:
 
  1. (defun c:findkatt (/ i tl en ed an ad ss)
  2. (setq tl '("VAV" "M2"))
  3. (princ "\nSearching For Tagnames: ")
  4. (prin1 tl)
  5. (and (setq ss (ssget "X" '((0 . "INSERT")(66 . 1))))
  6.       (while (setq en (ssname ss 0))
  7.              (setq ed (entget en)
  8.                    an (entnext en)
  9.                    ad (entget an)
  10.                    i 0)
  11.              (while (/= "SEQEND" (cdr (assoc 0 ad)))
  12.                     (if (member (strcase (cdr (assoc 1 ad))) tl)
  13.                         (setq i (1+ i)))
  14.                     (setq an (entnext an)
  15.                           ad (entget an)))
  16.              (if (= i (length tl))
  17.                  (progn
  18.                    (command "_.ZOOM" "_C" (trans (cdr (assoc 10 ed)) en 1) "")
  19.                    (redraw en 3)
  20.                    (getstring (strcat "\n" (cdr (assoc 2 ed))
  21.                                       " Press Enter To Continue..."))))
  22.              (ssdel en ss)))
  23. (princ "\nSearch Complete   ")
  24. (redraw)
  25. (prin1))
回复

使用道具 举报

6

主题

23

帖子

17

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 09:55:14 | 显示全部楼层
是的,李,这一个也有多次出现。
 
回复

使用道具 举报

6

主题

23

帖子

17

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 09:58:23 | 显示全部楼层
你几乎在那里,但VAV和M2不是静态的。这两个属性都有任何值。VAV为设备类型,M2为设备编号。VAv可以是RTU、CEF、SP等,M2可以是A1、B2、C3等。
 
 
 
 
我试过这个,但也没用
 
  1. (defun c:findkatt (/ i tl en ed an ad ss unit unitno)
  2. [color="blue"](setq unit (getstring "\n Enter unit type:  "))[/color]
  3. [color="blue"](setq unitno (getstring "\n Enter unit type:  "))[/color]
  4. (setq tl '([color="blue"]unit[/color] [color="blue"]unitno[/color]))
  5. (princ "\nSearching For Tagnames: ")
  6. (prin1 tl)
  7. (and (setq ss (ssget "X" '((0 . "INSERT")(66 . 1))))
  8.       (while (setq en (ssname ss 0))
  9.              (setq ed (entget en)
  10.                    an (entnext en)
  11.                    ad (entget an)
  12.                    i 0)
  13.              (while (/= "SEQEND" (cdr (assoc 0 ad)))
  14.                     (if (member (strcase (cdr (assoc 1 ad))) tl)
  15.                         (setq i (1+ i)))
  16.                     (setq an (entnext an)
  17.                           ad (entget an)))
  18.              (if (= i (length tl))
  19.                  (progn
  20.                    (command "_.ZOOM" "_C" (trans (cdr (assoc 10 ed)) en 1) "")
  21.                    (redraw en 3)
  22.                    (getstring (strcat "\n" (cdr (assoc 2 ed))
  23.                                       " Press Enter To Continue..."))))
  24.              (ssdel en ss)))
  25. (princ "\nSearch Complete   ")
  26. (redraw)
  27. (prin1))
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 10:05:32 | 显示全部楼层
看起来您在搜索属性值,而不是标记名:
 
  1. [b][color=BLACK]([/color][/b]defun c:findmatv [b][color=FUCHSIA]([/color][/b]/ fl tl en ed an ad av ss[b][color=FUCHSIA])[/color][/b]
  2. [b][color=FUCHSIA]([/color][/b]setq tl '[b][color=NAVY]([/color][/b][color=#2f4f4f]"VAV"[/color] [color=#2f4f4f]"M2"[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  3. [b][color=FUCHSIA]([/color][/b]princ [color=#2f4f4f]"\nSearching For Attrib Values: "[/color][b][color=FUCHSIA])[/color][/b]
  4. [b][color=FUCHSIA]([/color][/b]prin1 tl[b][color=FUCHSIA])[/color][/b]
  5. [b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]setq ss [b][color=MAROON]([/color][/b]ssget [color=#2f4f4f]"X"[/color] '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]0 . [color=#2f4f4f]"INSERT"[/color][b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]66 . 1[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  6.       [b][color=NAVY]([/color][/b]while [b][color=MAROON]([/color][/b]setq en [b][color=GREEN]([/color][/b]ssname ss 0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  7.              [b][color=MAROON]([/color][/b]setq ed [b][color=GREEN]([/color][/b]entget en[b][color=GREEN])[/color][/b]
  8.                    an [b][color=GREEN]([/color][/b]entnext en[b][color=GREEN])[/color][/b]
  9.                    ad [b][color=GREEN]([/color][/b]entget an[b][color=GREEN])[/color][/b]
  10.                    fl nil[b][color=MAROON])[/color][/b]
  11.              [b][color=MAROON]([/color][/b]while [b][color=GREEN]([/color][/b]/= [color=#2f4f4f]"SEQEND"[/color] [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 0 ad[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  12.                     [b][color=GREEN]([/color][/b]setq av [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 1 ad[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  13.                     [b][color=GREEN]([/color][/b]and [b][color=BLUE]([/color][/b]member av tl[b][color=BLUE])[/color][/b]
  14.                          [b][color=BLUE]([/color][/b]not [b][color=RED]([/color][/b]member av fl[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  15.                          [b][color=BLUE]([/color][/b]setq fl [b][color=RED]([/color][/b]cons av fl[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  16.                     [b][color=GREEN]([/color][/b]setq an [b][color=BLUE]([/color][/b]entnext an[b][color=BLUE])[/color][/b]
  17.                           ad [b][color=BLUE]([/color][/b]entget an[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  18.              [b][color=MAROON]([/color][/b]if [b][color=GREEN]([/color][/b]= [b][color=BLUE]([/color][/b]length fl[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]length tl[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  19.                  [b][color=GREEN]([/color][/b]progn
  20.                    [b][color=BLUE]([/color][/b]command [color=#2f4f4f]"_.ZOOM"[/color] [color=#2f4f4f]"_C"[/color] [b][color=RED]([/color][/b]trans [b][color=PURPLE]([/color][/b]cdr [b][color=TEAL]([/color][/b]assoc 10 ed[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] en 1[b][color=RED])[/color][/b] [color=#2f4f4f]""[/color][b][color=BLUE])[/color][/b]
  21.                    [b][color=BLUE]([/color][/b]redraw en 3[b][color=BLUE])[/color][/b]
  22.                    [b][color=BLUE]([/color][/b]getstring [b][color=RED]([/color][/b]strcat [color=#2f4f4f]"\n"[/color] [b][color=PURPLE]([/color][/b]cdr [b][color=TEAL]([/color][/b]assoc 2 ed[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b]
  23.                                       [color=#2f4f4f]" Press Enter To Continue..."[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  24.              [b][color=MAROON]([/color][/b]ssdel en ss[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  25. [b][color=FUCHSIA]([/color][/b]princ [color=#2f4f4f]"\nSearch Complete   "[/color][b][color=FUCHSIA])[/color][/b]
  26. [b][color=FUCHSIA]([/color][/b]redraw[b][color=FUCHSIA])[/color][/b]
  27. [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

 
-大卫
回复

使用道具 举报

6

主题

23

帖子

17

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 10:08:12 | 显示全部楼层
谢谢大卫和李。谢谢你的帮助。这就是我一直在找的。我学到了很多。再次感谢。。。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 08:28 , Processed in 0.694017 second(s), 62 queries .

© 2020-2025 乐筑天下

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