中易网

CAD中文字查找替换功能如何用VBA实现

答案:3  悬赏:70  
解决时间 2021-04-28 22:21
  • 提问者网友:霸气大叔
  • 2021-04-27 22:11
CAD里面的全图文字替换功能,请问用VBA程序是怎么写的。我想了解一下。在CAD中用“编辑”-“查找”,可以实现全图中任意文字查找替换,我现在要制作VBA软件来开发CAD,需要这个功能,请教大家谁能把CAD这个功能的VBA程序写给我,应该不难,只是我不知道,谢谢哈。我出高分的哈。
二楼的朋友,答案有点问题就是,图中右下角通常有材料表或者是部件表,就通过你的方法找不到。是怎么回事?
最佳答案
  • 二级知识专家网友:木子香沫兮
  • 2021-04-27 23:13
基本是这样子的
dim strDwgName As String
dim strFind As String
dim strReplace As String
Dim ent As AcadEntity
For Each ent In Thisdrawing.ModelSpace
If TypeOf ent Is AcadText Or TypeOf ent Is AcadMText Then
With ent
If InStr(.TextString, strFind) Then .TextString = ReplaceStr(.TextString, strFind, strReplace, False)
End With
End If
Next ent

补充:你那个不能改的标题栏可能是插入的属性块,是属性块里面的属性的文字,这个不能进入块中修改,只能在对象中。

strFind = "耳板"
Dim objBlkRef As AcadBlockReference
Dim varAttributes '取得块属性,显示属性标签和值

For Each ent In ThisDrawing.ModelSpace
If TypeOf ent Is AcadBlockReference Then
Set objBlkRef = ent
varAttributes = objBlkRef.GetAttributes
If UBound(varAttributes) Then
For i = 0 To UBound(varAttributes)
If varAttributes(i).TextString = strFind Then
varAttributes(i).TextString = "strFind"
End If
Next i
End If

End If
Next ent

这样可以替换块中的文字
全部回答
  • 1楼网友:没感情的陌生人
  • 2021-04-28 01:33
哎呀,看到这个问题真实亲切啊,想当年我第一个公司就是做这个的,哈哈,现在好久没听别人提过了,不过我也不会,嘿嘿,早忘没了
  • 2楼网友:高冷不撩人
  • 2021-04-28 00:22
虽然我不会用vba,但是我用其他方法实现了。 1.仿照cad自带的命令find,编写一个lisp命令,功能是查找替换文字。(因为find只能通过对话框输入,我们下面的做法必须在命令行输入) 2.编写一个脚本.scr文件,里面用第一步写的命令查找替换你要的文字。如果要加入新的查找替换的字符串,只要重复执行这个命令就可以了。 我用这个编写了一个自动翻译的脚本,成果很显著。但是本人不会vba,非常想向您学习一下。 qq:12746877
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息