|
< class=MsoPlainText>有以下的VBA代码,目的是在CAD图形的一个封闭对象里选取一点用来直接求取该封闭图形的面积:
< class=MsoPlainText>Sub Ar()
< class=MsoPlainText>Dim P0 As Variant '用户指定的图斑内点
< class=MsoPlainText>Dim PlineObj As AcadLWPolyline '边界曲线
< class=MsoPlainText>Dim Area As Double '面积
< class=MsoPlainText>Dim X() As Double, Y() As Double '坐标
< class=MsoPlainText>Dim Pn As Integer, i As Integer
< class=MsoPlainText>Dim PointTmp As Variant
< class=MsoPlainText>0 = ThisDrawing.Utility.GetPoint(, "请在图斑内指定一点") '得到图斑内一点
< class=MsoPlainText>ThisDrawing.SendCommand ("-boundary" & P0(0) & "," & P0(1) & "") '创建边界
< class=MsoPlainText>
< class=MsoPlainText>[U]Set PlineObj = ThisDrawing.ModelSpace.Item(ThisDrawing.ModelSpace.Count - 1) '边界线对象[/U]
< class=MsoPlainText>
< class=MsoPlainText>Area = PlineObj.Area '面积
< class=MsoPlainText>n = (UBound(PlineObj.Coordinates) + 1) / 2 '点数
< class=MsoPlainText>ReDim X(1 To Pn), Y(1 To Pn)
< class=MsoPlainText>For i = 1 To Pn
< class=MsoPlainText> PointTmp = PlineObj.Coordinate(i - 1)
< class=MsoPlainText> X(i) = PointTmp(1) 'X坐标
< class=MsoPlainText> Y(i) = PointTmp(0) 'Y坐标
< class=MsoPlainText>Next i
< class=MsoPlainText>End Sub
< class=MsoPlainText>
但每次运行总发生运行时错误13’类型不匹配(在'边界线对象行),请教大虾:究竟有什么不妥?会否和程序的版本有关?我用的是CAD2002迷你版。 |
|