多义线问题,如何结束循环
Public Sub fzpl()Dim fzpl As AcadPolyline
Dim zbd As Variant
Dim i As Integer
Dim blist() As Variant
i = 0
AppActivate signmap.Caption
Do '用什么条件结束循环,请指教
signmap.ActiveDocument.Utility.InitializeUserInput 128
zbd = signmap.ActiveDocument.Utility.GetPoint(, "下一点:")
ReDim Preserve blist(3 * i + 2)
blist(3 * i) = zbd(0): blist(3 * i + 1) = zbd(1): blist(3 * i + 2) = zbd(2)
i = i + 1
Loop
signmap.ActiveDocument.ModelSpace.AddPolyline blist
End Sub 加上一个错误处理过程,一般情况下是采用按右键结束,而这时GetPoint会产生错误。
signmap.ActiveDocument.Utility.InitializeUserInput 128
on error resume next
Do
zbd = signmap.ActiveDocument.Utility.GetPoint(, "下一点:")
if err then
err.clear
exit do
end if
ReDim Preserve blist(3 * i + 2)
blist(3 * i) = zbd(0): blist(3 * i + 1) = zbd(1): blist(3 * i + 2) = zbd(2)
i = i + 1
Loop
执行完之后,还要判断blist是否为空,因为有可能第一次时用户就取消操作了。 谢谢!我也试着这样处理,但好像不太完美。不知是否有更好的编程思路? 可以参考一下自定义函数中的GetEntityEx函数,里面有错误处理。应该会有用。
http://www.mjtd.com/function/list.asp?id=311&ordertype=byletter signllh发表于2003-11-16 9:03:00static/image/common/back.gif谢谢!我也试着这样处理,但好像不太完美。不知是否有更好的编程思路?
你学得什么才是最完美的?
其它通过捕获错误来判断是一种最简单最有效的方法。 我现在很多程序也只能通过错误来退出,这个最简单! 同5楼~~~~
页:
[1]