明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1850|回复: 4

图中的两条红线的标注尺寸怎么获得呢?

[复制链接]
发表于 2004-5-15 11:31:00 | 显示全部楼层 |阅读模式
<SUB>横的红线没有直接标注,但是我想要通过其他的标注得到他的标注尺寸,该怎么做呢?</SUB>



<SUB>还有就是那条竖线,尺寸没有直接标注的他的上面??好无奈哦,请指点啦!!!谢谢</SUB>


本帖子中包含更多资源

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

x
 楼主| 发表于 2004-5-15 11:32:00 | 显示全部楼层
横的红线没有直接标注,但是我想要通过其他的标注得到他的标注尺寸,该怎么做呢?
还有就是那条竖线,尺寸没有直接标注的他的上面??好无奈哦,请指点啦!!!谢谢
 楼主| 发表于 2004-5-15 16:34:00 | 显示全部楼层
谢谢各位啦


       

发表于 2004-5-15 19:26:00 | 显示全部楼层
你得到其标注是想来做什么?
标注的尺寸值(也就是线的长度)本身可以通过对象本身的属性来获得。
按你图中的标注位置,可以通过位置来得以其标注,但你的其它图是不是也这样标注,我就不清楚了。所以关键是找到规律,如果没有规律,也就没有办法。
发表于 2004-5-15 22:43:00 | 显示全部楼层
  1. 可以通过XY轴判断
  2. Function GetDimByX(ByVal X)
  3. '获取一标注点的横坐标为X的所有标注
  4.        Dim FilterType(6) As Integer
  5.        Dim FilterData(6) As Variant
  6.        Dim pDims() As AcadObject
  7.        Dim ss As AcadSelectionSet
  8.        Dim pnt(2) As Double
  9.        pnt(0) = X
  10.        FilterType(0) = 0
  11.        FilterData(0) = "Dim*"
  12.        FilterType(1) = -4
  13.        FilterData(1) = "<or"
  14.        FilterType(2) = -4
  15.        FilterData(2) = "=,*,*"
  16.        FilterType(3) = 13
  17.        FilterData(3) = pnt
  18.        FilterType(4) = -4
  19.        FilterData(4) = "=,*,*"
  20.        FilterType(5) = 14
  21.        FilterData(5) = pnt
  22.        FilterType(6) = -4
  23.        FilterData(6) = "or>"
  24.        Set ss = ThisDrawing.ActiveSelectionSet
  25.        ss.Clear
  26.        ss.Select acSelectionSetAll, , , FilterType, FilterData
  27.        ReDim pDims(ss.Count - 1)
  28.        For i = 0 To ss.Count - 1
  29.                Set pDims(i) = ss(i)
  30.        Next i
  31.        GetDimByX = pDims
  32. End FunctionFunction GetDimByY(ByVal Y)
  33. '获取一标注点的纵坐标为Y的所有标注
  34.        Dim FilterType(6) As Integer
  35.        Dim FilterData(6) As Variant
  36.        Dim pDims() As AcadObject
  37.        Dim ss As AcadSelectionSet
  38.        Dim pnt(2) As Double
  39.        pnt(1) = Y
  40.        FilterType(0) = 0
  41.        FilterData(0) = "Dim*"
  42.        FilterType(1) = -4
  43.        FilterData(1) = "<or"
  44.        FilterType(2) = -4
  45.        FilterData(2) = "*,=,*"
  46.        FilterType(3) = 13
  47.        FilterData(3) = pnt
  48.        FilterType(4) = -4
  49.        FilterData(4) = "*,=,*"
  50.        FilterType(5) = 14
  51.        FilterData(5) = pnt
  52.        FilterType(6) = -4
  53.        FilterData(6) = "or>"
  54.        Set ss = ThisDrawing.ActiveSelectionSet
  55.        ss.Clear
  56.        ss.Select acSelectionSetAll, , , FilterType, FilterData
  57.        ReDim pDims(ss.Count - 1)
  58.        For i = 0 To ss.Count - 1
  59.                Set pDims(i) = ss(i)
  60.        Next i
  61.        GetDimByY = pDims
  62. End FunctionSub Test2()
  63. Dim obj As AcadLine
  64. ThisDrawing.Utility.GetEntity obj, pnt
  65. Dim a As Double
  66. a = obj.StartPoint(0)
  67. For Each i In GetDimByX(a)
  68. MsgBox i.ObjectName
  69. Next i
  70. End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 05:32 , Processed in 0.165169 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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