乐筑天下

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

[编程交流] 在图层列表中搜索

[复制链接]

26

主题

149

帖子

127

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
135
发表于 2022-7-6 10:17:07 | 显示全部楼层 |阅读模式
大家好。
 
如何在图层列表中搜索与图层相关的信息?
 
实例
 
  1. (setq txt (getstring "\n Enter Descriptions to look for it :" T ))         
  2.     (tblsearch "LAYER" ............................

 
希望很快收到你们的来信。
 
我善良的情感
回复

使用道具 举报

62

主题

466

帖子

404

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
310
发表于 2022-7-6 10:21:47 | 显示全部楼层
...你在找wcmatch吗
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 10:24:05 | 显示全部楼层
 
 
也许这会产生您想要的结果:
 
  1. (if (and (setq lay (getstring T "\n Enter Layer Name: "))
  2.         (setq layList (tblsearch "LAYER" lay)))
  3. (setq result ([color=blue]cdr[/color] ([color=blue]assoc[/color] [i][color=red]<Index>[/color][/i] layList))))
回复

使用道具 举报

26

主题

149

帖子

127

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
135
发表于 2022-7-6 10:29:12 | 显示全部楼层
 
非常感谢你
 
您已经更改了我在第一个getstring函数中的句子,尽管它询问的是可能包含在层中的任何层的描述。
 
请再看一次。。。
  1. (setq txt (getstring "\n Enter [b][color="red"]Descriptions[/color][/b] to look for it :" T ))         
  2.     (tblsearch "LAYER" ............................

 
非常感谢,希望你能找到答案。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 10:31:17 | 显示全部楼层
我不明白你想做什么。。。您想输入图层描述的一部分,然后搜索它所属的图层?
回复

使用道具 举报

26

主题

149

帖子

127

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
135
发表于 2022-7-6 10:34:55 | 显示全部楼层
谢谢你的好意。
 
我想根据相关描述搜索一个或多个层。
 
所以我会给出详细的描述,代码会指示到一个特定的层。
 
顺致敬意,
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 10:38:00 | 显示全部楼层
 
 
如果你已经知道图层描述,那么你已经知道它是什么图层了,不是吗?
 
这可以归结为内部/外部层命名约定的问题。
回复

使用道具 举报

26

主题

149

帖子

127

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
135
发表于 2022-7-6 10:39:32 | 显示全部楼层
我想寻找一个层,因为我不知道哪个层属于特定的描述。(我有很多层,包括描述)。
 
谢谢
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 10:43:34 | 显示全部楼层
我相信其他人有一个绝妙的解决方案,但就目前而言,也许这会有所帮助:
 
  1. (defun c:FOO  (/ txt desc hits)
  2. (vl-load-com)
  3. (if (setq txt (strcase (getstring "\n Enter Descriptions to look for it :")))
  4.    (progn
  5.      (vlax-for lay  (vla-get-layers
  6.                       (vla-get-activedocument
  7.                         (vlax-get-acad-object)))
  8.        (if (vl-string-search
  9.              txt
  10.              (strcase (setq desc (vla-get-description lay))))
  11.          (cond
  12.            (hits
  13.             (setq hits (append hits
  14.                                (cons (vla-get-name lay) desc))))
  15.            ((setq hits (list (cons (vla-get-name lay) desc)))))))
  16.      (if hits
  17.        (progn
  18.          (textpage)
  19.          (terpri)
  20.          (prompt "\n  >>  Listing Possible Results... ")
  21.          (foreach item  hits
  22.            (prompt (strcat "\n\t\t** Layer Name = ""
  23.                            (car item)
  24.                            ""\t** Description = ""
  25.                            (cdr item)
  26.                            """)))
  27.          (terpri))
  28.        (prompt "\n  <!>  No Results Found  <!> "))))
  29. (princ))

 
 
注意-为了搜索层描述,我需要将txt变量更改为仅接受单个单词。接受多个单词会让事情变得比我想说的更复杂。
 
希望这有帮助!
回复

使用道具 举报

5

主题

194

帖子

193

银币

初来乍到

Rank: 1

铜币
24
发表于 2022-7-6 10:47:56 | 显示全部楼层
你好
 
这是我的尝试,但我认为RenderMan的更合适
 
  1. (defun filterLayersByDescription (<pattern> / layerCollection tempLIst)
  2. (setq layerCollection (vla-get-layers (vla-get-activedocument (vlax-get-acad-object))))
  3. (vlax-for <layer> layerCollection
  4.    (if
  5.      (wcmatch
  6. (vla-get-description <layer>)
  7. <pattern>
  8. )
  9.      (setq tempLIst (append tempLIst (list (vla-get-name <layer>))))))
  10. tempLIst
  11. )
  12. ;Layers that have no description
  13. (filterLayersByDescription "")
  14. ;Return a layers that have a description
  15. (filterLayersByDescription "~")
  16. ;Return a layers that begin with T
  17. (filterLayersByDescription "T*")

 
过滤器将区分大小写,但可以修改例程以适应
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 20:53 , Processed in 0.767034 second(s), 83 queries .

© 2020-2025 乐筑天下

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