明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3788|回复: 20

能在CAD中用宏调用本地搜索“everything”,搜索图纸文本对应的文件吗?

[复制链接]
发表于 2016-10-19 16:40:04 | 显示全部楼层 |阅读模式
我在LISP开发哪边,发了一个贴,求教能不能利用本地搜索软件“everything” 通过选中图纸中的文本,搜索相关图纸或者文件。

贴子在这里:
http://bbs.mjtd.com/thread-173358-3-1.html

但没有讨论出结果来,后来我就直接到本地搜索这个软件的官网上发贴问,官网上的作者人很好,说他们不懂CAD,但如果CAD软件支

持宏的话,是可以做出这种效果来的,还举例说有人在火狐浏览器里利用宏可以直接高亮网页里的文本调用本地搜索软件“everything”。

官网上我求教的贴子在这里。
https://www.voidtools.com/forum/ ... &p=15966#p15966

我写道:
this soft is amazing! thank author!

could this soft combine with AutoCAD , when the user of AutoCAD touch some txt in AutoCAD drawings , then this soft quickly open a dialogue box ,this dialogue box show all drawing which name contain the txt 。

it will be very good !

thanks

官网上的人回答道:
I know nothing of Audocad, but if it can do "macros", I'd think you could do it?

Similar in concept to, how to add everything as a search engine in firefox?, which uses a bookmarklet, a little bit of JavaScript, attached to a "button" (bookmark), if you will, that when you click the button (bookmark), searches for the text highlighted in your browser web page.

按我的理解,这应该可以做到,就是执行宏后,软件要求选中一个文本,然后调用everything, 把刚才选中的文本填到everything 的搜索框中,即可以直接搜索文本了。

本版版主还有各位高手,谁能出手试下,这个应该是非常有用的!

本帖被以下淘专辑推荐:

发表于 2016-10-26 21:24:57 | 显示全部楼层
本帖最后由 zzyong00 于 2016-10-30 20:01 编辑

应panliang9的要求,来个完整版,解压后,路径需要添加至“支持文件搜索路径”,如果everything安装不是采用的默认路径,需要修改代码中的everything.exe路径。一切妥当后,加载哪个宏和lisp文件,输入tz命令,选择一个autocad中的文字(text或mtext),就可以everything中搜索了.来个更新版本,用everything搜索完,自动使everything窗口在最前面


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

我用05加载Project.dvb,执行TZ,什么也没有,怎么回事呢?  发表于 2016-11-3 08:07
回复 支持 1 反对 0

使用道具 举报

发表于 2016-10-23 23:30:10 | 显示全部楼层
楼主好创意,我来试试
  1. 'EveryThing搜索文本
  2. 'By zzyong00 2016.10.23
  3. Dim objEnt As AcadEntity, pt1 As Variant
  4. Dim objT As AcadText, objMT As AcadMText
  5. Dim strCon As String
  6. On Error GoTo err1
  7. AppActivate objCad.Caption
  8. ThisDrawing.Utility.GetEntity objEnt, pt1, "请选择文本:"
  9. 'Debug.Print objEnt.ObjectName
  10. If objEnt.ObjectName = "AcDbText" Then
  11.     Set objT = objEnt
  12.     strCon = objT.TextString
  13. ElseIf objEnt.ObjectName = "AcDbMText" Then
  14.     Set objMT = objEnt
  15.     strCon = MtextStringClearFormat(objMT.TextString)
  16. Else

  17. End If
  18. Shell "C:\Program Files\Everything\everything -s " & Chr(34) & strCon & Chr(34)

  19. Exit Sub
  20. err1:
  21.   If Err.Number = -2147352567 Then
  22.     Err.Clear
  23.   Else
  24.     MsgBox Err.Description, vbOKOnly + vbCritical
  25.   End If


 楼主| 发表于 2016-10-27 16:43:23 | 显示全部楼层
zzyong00 发表于 2016-10-26 21:24
应panliang9的要求,来个完整版,解压后,路径需要添加至“支持文件搜索路径”,如果everything安装不是采用 ...

谢谢"zzyong00"的帮助,上传一个动画,展示最后出现的效果!

该软件对everything的版本有一个要求,我使用中安装使用的是版本 V1.4.1.773b (x64),该软件我也贴在下面。

重要的事情说三遍,

需要做的是:
1 加载宏
2 修改宏中间的everything.exe 的全路径,即你自己电脑上安装的这个软件的路径,保存。
3 加载LISP程序。
4 把LISP程序和宏所在的文件夹路径添加到CAD的“支持文件搜索路径”中。

随后,在CAD中敲击命令后,会提示选一个文本,选中文本后,即自动启动everything这个程序,搜索刚才的文本。作者设定的是在选中的词后加了星号通配符,以扩大搜索范围,有能力的同志可以自行修改这个规则。

搞机械设计的同志们有福了。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2016-10-26 15:56:09 | 显示全部楼层
zzyong00 发表于 2016-10-23 23:30
楼主好创意,我来试试

太好了,我不懂宏的,已经在一个文件中新建了一个宏,把这个代码已经贴进去了,问题是执行的时候命令是什么!
 楼主| 发表于 2016-10-26 16:05:50 | 显示全部楼层
zzyong00 发表于 2016-10-23 23:30
楼主好创意,我来试试

请问你需要的前提条件是“”本地搜索“”的哪一个版本,是不是要安装在哪个盘下面!
发表于 2016-10-28 15:38:51 | 显示全部楼层
不错,你这个是按DWG文件中的文本,打开Everything查找文件名
发表于 2016-10-29 22:01:03 | 显示全部楼层
XX 谢谢楼主提供平台,收藏了
发表于 2016-11-3 13:05:48 | 显示全部楼层
zzyong00 发表于 2016-10-26 21:24
应panliang9的要求,来个完整版,解压后,路径需要添加至“支持文件搜索路径”,如果everything安装不是采用 ...

有可能是everything的版本不一样,版本用6楼给的版本,也有可能是你没修改源代码中everything路径
 楼主| 发表于 2016-11-5 23:18:33 | 显示全部楼层
@自贡黄明儒

黄工,不知道你用上了没有!

公司的同事们都用了,用着挺好,XP和WIN7下面,用着都挺好,cad2002到CAD2007都没有问题的!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-22 15:45 , Processed in 0.195515 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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