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

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

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

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

<P>Obj.StartPoint</P>
<P>Obj.EndPoint</P>

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

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

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

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

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

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

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

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

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

本帖最后由 作者 于 2006-6-22 19:38:55 编辑 <br /><br /> <P>谢谢各位了,我可不可以说一下我的论文思路,你们帮我看一下?:)</P>
<P>我是想在读出图中的端点坐标以后,将这些端点中y值最大的两个点的连线作为x'轴,两点连线的中垂线最为y'轴。然后求出图中所有的直线、弧线跟x'轴,y'轴的交点,比较交点的y坐标,最后输出y坐标最大的交点所在的<FONT color=#f70938>直线</FONT>的长度和角度。</P>
页: [1]
查看完整版本: [求助][VBA]急:如何读取端点坐标?