明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1892|回复: 1

如何在CAD中编程实现一次选中同一层中不同内容的文字?文字的内容可以自行定义。

[复制链接]
发表于 2011-10-9 09:32:32 | 显示全部楼层 |阅读模式
如何在CAD中编程实现一次选中同一层中不同内容的文字?文字的内容可以自行定义。

如在道路层中一次选中“沥”和“碎石”,文字内容可以在程序中写死。望有码,感谢!
发表于 2011-10-11 23:51:12 | 显示全部楼层
本帖最后由 wylong 于 2011-10-11 23:52 编辑
  1. Sub SelectTexts()
  2.     Dim sS As AcadSelectionSet
  3.     Dim fType(0 To 2) As Integer
  4.     Dim fData(0 To 2) As Variant
  5.     Dim AutoSelect As Boolean
  6.    
  7.     '更改变量值 True/False 可以实现自动全选或手动框选
  8.     AutoSelect = True

  9.     On Error Resume Next
  10.     ThisDrawing.SelectionSets("SelectTexts").Delete
  11.     Set sS = ThisDrawing.SelectionSets.Add("SelectTexts")
  12.     On Error GoTo 0

  13.     On Error GoTo ErrHandle

  14.     '创建过滤机制
  15.     fType(0) = 0: fData(0) = "TEXT,MTEXT"             '单行或多行文字
  16.    
  17.     '更改下面的文字内容可以实现选择不同的文字
  18.     'fType(1) = 1: fData(1) = "*碎石*,*沥*"           '文字内容-模糊选择
  19.     fType(1) = 1: fData(1) = "碎石,沥"                '文字内容-精确选择
  20.    
  21.     fType(2) = 8: fData(2) = "道路"                   '图层名称

  22.     '选择符合条件的所有图元-单行文字和多行文字
  23.     If AutoSelect Then
  24.         '自动选择方式
  25.         sS.Select acSelectionSetAll, , , fType, fData
  26.     Else
  27.         '提示用户手动选择区域
  28.         sS.SelectOnScreen fType, fData
  29.     End If
  30.    
  31.     If sS.Count = 0 Then Exit Sub
  32.    
  33.     sS.Highlight True
  34.    
  35.     '此处加入你的处理代码
  36.     '....................

  37.     '删除数组
  38.     Erase fType: Erase fData
  39.    
  40.     '删除选择集
  41.     sS.Clear: sS.Delete
  42.     Set sS = Nothing
  43.    
  44.     Exit Sub
  45. ErrHandle:
  46.     MsgBox Err.Description, vbCritical, "产生了以下错误:"
  47.     Err.Clear
  48. End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 18:41 , Processed in 0.165622 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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