cad里如何量测大批点之间两两距离?
daisymm
daisymm Lv.2
2005年03月01日 10:32:33
只看楼主

在做雨量站点分布图的时候,需要量测大量雨量站点之间的距离,请问各位大侠有没有什么办法可以自动生成列表,是不是需要另外编程,但是我自己对cad编程一点都不懂,恳请大家的帮助.感激不尽^_^

在做雨量站点分布图的时候,需要量测大量雨量站点之间的距离,请问各位大侠有没有什么办法可以自动生成列表,是不是需要另外编程,但是我自己对cad编程一点都不懂,恳请大家的帮助.感激不尽^_^
免费打赏
xyzyb
2005年03月04日 20:51:40
2楼
做雨量站点分布图的时候,需要量测大量雨量站点之间的距离,
你们雨量站很多吗
如果不多 直接测量就可以了
至于自动生成列表 估计需要编程
回复
rdihe_009
2005年03月24日 21:56:45
3楼
这个恐怕只能编程了,用autolisp或vba做个循环都很容易实现
回复
tongmingniao
2009年03月21日 16:31:28
4楼
先选择点对象,结果输出到dat文件。
vba程序如下:
Option Explicit
Sub 批量求点距()
Dim YSet As AcadSelectionSet
Set YSet = ThisDrawing.PickfirstSelectionSet
If YSet.count = 0 Then
MsgBox "选择点对象": Exit Sub
Else
If MsgBox("如果选择好了点对象,请继续", vbOKCancel, "是否继续?") = vbCancel Then Exit Sub
End If
' MsgBox YSet.count

Dim I As Long
Dim J As Long
Dim PointI As Variant
Dim PointJ As Variant
Dim X1 As Double
Dim Y1 As Double
Dim X2 As Double
Dim Y2 As Double
Dim SaveFile As String
SaveFile = Left(ThisDrawing.Path & "\" & ThisDrawing.Name, Len(ThisDrawing.Path & "\" & ThisDrawing.Name) - 3) & "dat"
Open SaveFile For Output As #1
For I = 0 To YSet.count - 2
PointI = YSet(I).Coordinates
X1 = PointI(0)
Y1 = PointI(1)
For J = I + 1 To YSet.count - 1
PointJ = YSet(J).Coordinates
X2 = PointJ(0)
Y2 = PointJ(1)
Debug.Print Sqr((X2 - X1) ^ 2 + (Y2 - Y1) ^ 2)
Print #1, Sqr((X2 - X1) ^ 2 + (Y2 - Y1) ^ 2)
Next
Next
Close #1
End Sub
回复

相关推荐

APP内打开