明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2222|回复: 6

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

[复制链接]
发表于 2006-6-21 10:56:00 | 显示全部楼层 |阅读模式
请问vba里有工具可以直接读取图形中直线、弧线等的端点坐标吗?
发表于 2006-6-21 12:49:00 | 显示全部楼层

Obj.StartPoint

Obj.EndPoint

 楼主| 发表于 2006-6-21 13:54:00 | 显示全部楼层

 太感谢了,我看书都看不懂

再问一下,obj指的是整幅图,还是图中的某条线段?用这个就可以把图中所有线段的端点读出来了?

发表于 2006-6-21 14:21:00 | 显示全部楼层
当然是一条直线、弧线的,你想要所有的得做个循环
 楼主| 发表于 2006-6-21 14:59:00 | 显示全部楼层

怎么做循环阿?可以不用鼠标直接自动从图中读取所有直线、弧线的端点坐标吗?

我看过好多帖子都是需要用鼠标选中直线的

发表于 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

 楼主| 发表于 2006-6-22 11:25:00 | 显示全部楼层
本帖最后由 作者 于 2006-6-22 19:38:55 编辑

谢谢各位了,我可不可以说一下我的论文思路,你们帮我看一下?:)

我是想在读出图中的端点坐标以后,将这些端点中y值最大的两个点的连线作为x'轴,两点连线的中垂线最为y'轴。然后求出图中所有的直线、弧线跟x'轴,y'轴的交点,比较交点的y坐标,最后输出y坐标最大的交点所在的直线的长度和角度。

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

本版积分规则

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

GMT+8, 2024-11-27 03:41 , Processed in 0.149159 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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