- 积分
- 1072
- 明经币
- 个
- 注册时间
- 2008-7-19
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
从论坛里下的一个函数,是返回选择集中的最小和最大点,可调试不通过,请大侠们看下如何修改,谢谢
语法:
ssExtents(ss)
说明:
返回选择集中的最小和最大点
函数内容:
Public Function ssExtents(ss As AcadSelectionSet) As Variant
Dim points(), c As Long
Dim min, max, util As AcadUtility
Set util = ThisDrawing.Utility
c = 0
For i = 0 To ss.Count - 1
ss.Item(i).GetBoundingBox min, max
min = util.TranslateCoordinates(min, acWorld, acUCS, False)
max = util.TranslateCoordinates(max, acWorld, acUCS, False)
ReDim Preserve points(0 To c + 1)
points(c) = min: points(c + 1) = max
c = c + 2
Next
ssExtents = Extents(points)
End Function
参数:
一个AcadSelectionSet 对象
注意:
它返回选择集的外边框。
一定要注意选择集中不能包含有导致GetBoundingBox 失败的对象,如XLines 和Rays 。
示例:
retVal = ssExtents(ss) |
|