dmcarrie 发表于 2006-6-21 10:56:00

[求助][VBA]急:如何读取端点坐标?

请问vba里有可以直接读取图形中直线、弧线等的端点坐标吗?

68651521 发表于 2006-6-21 12:49:00

Obj.StartPoint
Obj.EndPoint

dmcarrie 发表于 2006-6-21 13:54:00

太感谢了,我看书都看不懂
再问一下,obj指的是整幅图,还是图中的某条线段?用这个就可以把图中所有线段的端点读出来了?

clement 发表于 2006-6-21 14:21:00

当然是一条直线、弧线的,你想要所有的得做个循环

dmcarrie 发表于 2006-6-21 14:59:00

怎么做循环阿?可以不用鼠标直接自动从图中读取所有直线、弧线的端点坐标吗?
我看过好多帖子都是需要用鼠标选中直线的

68651521 发表于 2006-6-21 17:09:00

Sub GetThePoint()
    Dim Entry As AcadEntity
    Dim StrPnt As Variant
    Dim EndPnt As Variant
    Dim TextString As String
   
    For Each Entry In ThisDrawing.ModelSpace
      If TypeName(Entry) = "IAcadLine" Or TypeName(Entry) = "IAcadArc" Or TypeName(Entry) = "IAcadEllipse" Then
            StrPnt = Entry.StartPoint
            EndPnt = Entry.EndPoint
            TextString = "物体: " + TypeName(Entry) + vbCr
            TextString = TextString + "起点坐标 X=" + Trim(Str(StrPnt(0))) + vbCr
            TextString = TextString + "起点坐标 Y=" + Trim(Str(StrPnt(1))) + vbCr
            TextString = TextString + "起点坐标 Z=" + Trim(Str(StrPnt(2))) + vbCr
            TextString = TextString + "终点坐标 X=" + Trim(Str(EndPnt(0))) + vbCr
            TextString = TextString + "终点坐标 Y=" + Trim(Str(EndPnt(1))) + vbCr
            TextString = TextString + "终点坐标 Z=" + Trim(Str(EndPnt(2)))
            MsgBox TextString
      End If
    Next Entry
   
End Sub

dmcarrie 发表于 2006-6-22 11:25:00


谢谢各位了,我可不可以说一下我的论文思路,你们帮我看一下?:)
我是想在读出图中的端点坐标以后,将这些端点中y值最大的两个点的连线作为x'轴,两点连线的中垂线最为y'轴。然后求出图中所有的直线、弧线跟x'轴,y'轴的交点,比较交点的y坐标,最后输出y坐标最大的交点所在的直线的长度和角度。
页: [1]
查看完整版本: [求助][VBA]急:如何读取端点坐标?