找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 608|回复: 8

[编程申请]:怎样用VB实现…………

[复制链接]
发表于 2003-10-24 11:00:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
怎样用VB实现…………
怎样用VB把一张图中含文字“ABC”的单行文字、多行文字、属性参照的值、属性标签都替换成文字“XYZ”???

麻烦各位大虾帮忙解决一下!谢谢!!!
*-*6
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-10-24 19:23:35 | 显示全部楼层
使用选择集。第一步,选择单行文字、多行文字和属性定义,替换其中的文字。第二步,选择块(注:属性引用只在块引用中出现),枚举所有的属性引用,替换其中的文字。

  1.   [FONT=courier new]
  2. Public Sub TextReplace()

  3.     '创建选择集,名称为TextReplace
  4.    
  5.     Dim SSetObj As AcadSelectionSet
  6.     On Error Resume Next
  7.     Set SSetObj = ThisDrawing.SelectionSets("TextReplace")
  8.     If Err Then
  9.         Err.Clear
  10.         Set SSetObj = ThisDrawing.SelectionSets.Add("TextReplace")
  11.     End If
  12.     SSetObj.Clear
  13.     On Error GoTo 0
  14.    
  15.     '创建过滤器,仅选择Text(单行文本)、Mtext(多行文本)、AttDef(属性定义)
  16.    
  17.     '关于过滤器的详细使用资料,请参考有关书籍
  18.    
  19.     Dim fType(0 To 0) As Integer
  20.     Dim fData(0 To 0) As Variant
  21.     fType(0) = 0
  22.     fData(0) = "Text,Mtext,AttDef"
  23.    
  24.     '选择全部的Text、Mtext、AttDef
  25.    
  26.     SSetObj.Select acSelectionSetAll, , , fType, fData
  27.    
  28.     Dim i As Integer
  29.     If SSetObj.Count <> 0 Then
  30.         For i = 0 To SSetObj.Count - 1
  31.             '在Text和Mtext中显示的是TextString,在AttDef中显示的是TagString
  32.             If TypeOf SSetObj(i) Is AcadAttribute Then
  33.                 If SSetObj(i).TagString = "ABC" Then SSetObj(i).TagString = "XYZ"
  34.             Else
  35.                 If SSetObj(i).TextString = "ABC" Then SSetObj(i).TextString = "XYZ"
  36.             End If
  37.         Next
  38.     End If
  39.    
  40.     '清空选择集中的数据,准备下一次操作
  41.    
  42.     SSetObj.Clear
  43.    
  44.     '创建过滤器,仅选择BlockRef(块引用)
  45.    
  46.     fType(0) = 0
  47.     fData(0) = "Insert"
  48.    
  49.     '选择全部的BlockRef
  50.    
  51.     SSetObj.Select acSelectionSetAll, , , fType, fData
  52.    
  53.     Dim v As Variant
  54.     Dim j As Integer
  55.     If SSetObj.Count <> 0 Then
  56.         For i = 0 To SSetObj.Count - 1
  57.             If SSetObj(i).HasAttributes Then
  58.                 v = SSetObj(i).GetAttributes
  59.                 For j = 0 To UBound(v)
  60.                     '在BlockRef中的AttRef中显示的是TextString
  61.                     If v(j).TextString = "ABC" Then v(j).TextString = "XYZ"
  62.                 Next
  63.             End If
  64.         Next
  65.     End If
  66.    
  67.     SSetObj.Clear
  68.    
  69.     SSetObj.Delete
  70.    
  71.     Set SSetObj = Nothing
  72. End Sub
  73.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-10-27 17:33:02 | 显示全部楼层
efan2000兄,我在明经中也见你的这个程序了,我想知道在VB中怎样实现?
批量替换一个文件夹中的所有图形呢?
谢谢你!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-10-27 18:12:15 | 显示全部楼层

看看这个,可以多个图形批量替换

*-*c *-*9 *-*a *-*2 *-*8
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-10-27 19:38:01 | 显示全部楼层
批量的话就要一张张打开,然后执行替换,再关闭,用DBX就行,不过不能脱离ACAD的环境。
好象网上有一个控件可以读取DWG格式的图纸,可以去找找试一下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-10-29 12:44:17 | 显示全部楼层
efan2000兄,明经里有个减肥工具,用VB写的,你能根据它写出来吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-10-29 19:02:05 | 显示全部楼层
你是想在VBA中实现?它的原理是清除图纸中没有使用的块、线型、文字样式等,然后再另外一个新的文件,缩小文件的尺寸,达到减肥的效果。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-1 10:56:14 | 显示全部楼层
我也遇到同样的问题。
请问5楼,能找到这个控件吗?r14能用DXB吗
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-1 18:59:58 | 显示全部楼层
R14中不可以用DBX
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-23 19:05 , Processed in 0.525344 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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