乐筑天下

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

[编程交流] 在multip中搜索属性

[复制链接]

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 19:01:40 | 显示全部楼层
尽管代码运行时没有错误处理程序,但请尝试此mods,并根据您的风险进行测试。
 
[未经测试]
 
  1. (defun c:findf (/ sw odb)
  2. (setq sw  (strcase (getstring "\nEnter search word: "))
  3.        odb (vla-getinterfaceobject
  4.              (vlax-get-acad-object)
  5.              "ObjectDBX.AxDbDocument.18"
  6.            )
  7. )
  8. (foreach file (vl-directory-files "c:\\mydrawings" "*.dwg")
  9.    (vla-open odb (strcat "c:\\mydrawings\" file))
  10.    (vlax-for obj (vla-get-modelspace odb)
  11.      (if (and (eq (vla-get-objectname obj) "AcDbBlockReference")
  12.               (eq (vla-get-effectivename obj) "TITLEBLOCK")
  13.          )
  14.        (foreach att (vlax-invoke obj 'getattributes)
  15.          (if (wcmatch (strcase (vla-get-textstring att)) (strcat "*" sw "*")
  16.              )
  17.            (princ (strcat "\n" file))
  18.          )
  19.        )
  20.      )
  21.    )
  22. )
  23. (princ "\nSearch completed...")
  24. (textpage)
  25. (princ)
  26. )(vl-load-com)
回复

使用道具 举报

2

主题

17

帖子

15

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 19:03:32 | 显示全部楼层
这是有效的。谢谢塔瓦。
 
我们可以在SelectionSet方法中使用(ssget“X”((2。“TITLEBLOCK”))或vla select ss acSelectionSetAll nil nil filter1 filter2 with objectDBX???而不是检查模型空间中的所有实体。。。。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 19:07:15 | 显示全部楼层
 
不客气。
 
 
不幸的是,您不能将ssget、command和系统变量与ObjectDBX一起使用。
 
虽然我已经读到可以使用vla sendcommand而不是命令调用,但我还没有尝试过。
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 19:11:53 | 显示全部楼层
如果可以的话,我只想问一个问题,它也是(更)快的Dipesh吗?
 
 
gr.Rlx
回复

使用道具 举报

2

主题

17

帖子

15

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 19:14:08 | 显示全部楼层
不,没那么快。但有了它,我们可以跳过布局中的搜索。
 
现在我觉得速度再快不过了,因为检查每个图形中的每个实体都需要时间,因为我们不能将(ssget)与ObjectDBX一起使用
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 19:21:46 | 显示全部楼层
 
 
是的,我知道你的意思。你也无法获取变量,因为其他情况下,我可以获取当前选项卡,因此我只需要读取该选项卡。在vba sentcommand等上做了一些谷歌搜索,但即使它工作正常,也会使autocad的速度降低6到8倍。
 
 
我知道这可以做得更快,因为我曾经看到我们的文件控制系统读取一些图纸,这比我预期的要快得多。我想这个程序是由专业人士编写的,他们拥有更强大的工具。但话说回来,如果你的应用程序运行得更快,你的老板也希望你工作得更快,所以要小心你想要的;-)
 
 
顺便说一句,你必须搜索每个实体,还是可以使用vla get块来缩小搜索范围。。。只是一个想法:-)
 
 
gr.Rlx
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 20:35 , Processed in 0.652020 second(s), 62 queries .

© 2020-2025 乐筑天下

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