乐筑天下

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

请问,VB如何读取cad中已经标注的尺寸

[复制链接]

2

主题

5

帖子

1

银币

初来乍到

Rank: 1

铜币
13
发表于 2011-3-31 14:59:00 | 显示全部楼层 |阅读模式
各位前辈,小弟想实现用鼠标点取某标注尺寸,然后进行修改,如何实现?请前辈赐教
回复

使用道具 举报

shi

2

主题

11

帖子

2

银币

初来乍到

Rank: 1

铜币
19
发表于 2011-5-14 12:11:00 | 显示全部楼层
'获取标注尺寸
Sub hqbz()
    Dim SSet1 As AcadSelectionSet
    Dim ct As Integer
    Dim fType(0) As Integer
    Dim fData(0) As Variant
    fType(0) = 0
    fData(0) = "DIMENSION"
    On Error Resume Next
    ThisDrawing.SelectionSets.Item("tes").Delete
   
   Set SSet = ThisDrawing.SelectionSets.Add("tes")
   
    SSet.SelectOnScreen fType, fData  '建立选择集并从屏幕选取
    If SSet.Count = 0 Then
      SSet.Delete
      End
    End If
    ct = SSet.Count - 1
    ReDim bzcc(0 To ct)
   
    Dim i As Long
    For i = 0 To ct
        bzcc(i) = FixDimMeas(SSet.Item(i)) '获取标注的尺寸到数组
    Next
   
    For i = 0 To ct - 1 '对数组排降序,采用冒泡法
       For j = 0 To ct - i - 1
         If bzcc(j) < bzcc(j + 1) Then
           swapDX = bzcc(j): bzcc(j) = bzcc(j + 1): bzcc(j + 1) = swapDX '交换
         End If
       Next j
    Next i
    SSet.Delete
    Dim msg As String
   msg = "    标注尺寸 " & vbCrLf & vbCrLf '输出标注尺寸
    For n = 0 To UBound(bzcc)
      msg = msg + "   " & bzcc(n) & vbCrLf
    Next
    msg = msg & vbCrLf + "   总数:" + Str$(n)
MsgBox  msg
回复

使用道具 举报

2

主题

5

帖子

1

银币

初来乍到

Rank: 1

铜币
13
发表于 2011-4-22 14:16:00 | 显示全部楼层
没人回答啊
回复

使用道具 举报

0

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2011-4-27 14:51:00 | 显示全部楼层

我看到过一次,不过很高深的问题
回复

使用道具 举报

2

主题

5

帖子

1

银币

初来乍到

Rank: 1

铜币
13
发表于 2011-6-20 10:52:00 | 显示全部楼层
非常感谢!还有个问题 FixDimMeas是什么函数?
回复

使用道具 举报

shi

2

主题

11

帖子

2

银币

初来乍到

Rank: 1

铜币
19
发表于 2011-7-14 14:19:00 | 显示全部楼层
'获取标注尺寸函数
Function FixDimMeas(Dimension As AcadDimension) As Long
    Dim BlockCount As Long
    Dim bz As Long
   
    BlockCount = ThisDrawing.Blocks.Count
        '遍历块中的对象,取得标注尺寸
        Dim EntityInBlock As AcadEntity
        For Each EntityInBlock In ThisDrawing.Blocks(BlockCount - 1)
            If EntityInBlock.ObjectName = "AcDbMText" Then
                 Dimension.TextColor = acWhite      '标注文字颜色设定为白色
                 bz = Dimension.Measurement
                 FixDimMeas = bz
                Exit For
            End If
        Next
End Function
回复

使用道具 举报

1

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
7
发表于 2011-7-17 19:44:00 | 显示全部楼层
回复
请问如何 导入到txt文件中,且小数点后面两位有效数字啊?
回复

使用道具 举报

6

主题

34

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
58
发表于 2012-9-12 10:26:00 | 显示全部楼层

vb6.0,cad2008,xp系统下,调试不成功呀
请解释一下,在VBA中成功
回复

使用道具 举报

6

主题

34

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
58
发表于 2012-9-13 13:56:00 | 显示全部楼层
盼楼主给予解答
回复

使用道具 举报

10

主题

55

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2012-9-29 15:34:00 | 显示全部楼层
分清VB和VBA的区别
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-6-30 02:15 , Processed in 1.381513 second(s), 72 queries .

© 2020-2025 乐筑天下

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