请在门口检查你的大脑
我今天有一个巨大的大脑放屁。 我们今天在工作中发生了死亡,我似乎不能让我的大脑思考代码。 如果我使用Utility.GetPoint,我如何使用While或DoWhile继续选择积分直到零?Private Sub cmdLayoutLines_Click()
Me.Hide
Dim intBusSpacing As Integer, strLayer As AcadLayer, objLine As AcadLine
Set strLayer = ThisDrawing.Layers.Add("3d-Layout-Lines")
strLayer.color = 173
ThisDrawing.ActiveLayer = strLayer
With ThisDrawing.Utility
Dim pt1 As Variant, pt2 As Variant
pt1 = .GetPoint(, "Pick Starting Point: ")
pt2 = .GetPoint(pt1, "Pick Next Point: ")
ThisDrawing.ModelSpace.AddLine pt1, pt2
While pt2Empty
pt1 = pt2
pt2 = .GetPoint(pt1, "Pick Next Point: ")
ThisDrawing.ModelSpace.AddLine pt1, pt2
Wend
End With
Me.Show
End Sub
这不起作用
**** Hidden Message ***** 出于某种奇怪的原因,在绘制第一行之后,Intellisense告诉我pt2=Empty,因此检查 好的,我正在进步Private Sub cmdLayoutLines_Click()
Me.Hide
Dim intBusSpacing As Integer, strLayer As AcadLayer, objLine As AcadLine
Set strLayer = ThisDrawing.Layers.Add("3d-Layout-Lines")
strLayer.color = 173
ThisDrawing.ActiveLayer = strLayer
With ThisDrawing.Utility
Dim pt1 As Variant, pt2 As Variant
pt1 = .GetPoint(, "Pick Starting Point: ")
pt2 = .GetPoint(pt1, "Pick Next Point: ")
ThisDrawing.ModelSpace.AddLine pt1, pt2
While Not pt2(0)
pt1 = pt2
pt2 = .GetPoint(pt1, "Pick Next Point: ")
ThisDrawing.ModelSpace.AddLine pt1, pt2
Wend
End With
Me.Show
End Sub
现在它保持拾取点,但在输入键时崩溃
哇!哇!哇!后退......死亡??!?什......?
这是我想出的...
Private Sub cmdLayoutLines_Click()
Me.Hide
Dim intBusSpacing As Integer, strLayer As AcadLayer, objLine As AcadLine
Set strLayer = ThisDrawing.Layers.Add("3d-Layout-Lines")
strLayer.color = 173
ThisDrawing.ActiveLayer = strLayer
On Error Resume Next
Do
With ThisDrawing.Utility
Dim pt1 As Variant, pt2 As Variant
pt1 = .GetPoint(, "Pick Starting Point: ")
pt2 = .GetPoint(pt1, "Pick Next Point: ")
ThisDrawing.ModelSpace.AddLine pt1, pt2
While Not pt2(0)
pt1 = pt2
If Err.Number0 Then
Exit Do
Else
pt2 = .GetPoint(pt1, "Pick Next Point: ")
ThisDrawing.ModelSpace.AddLine pt1, pt2
End If
Wend
End With
Loop
Me.Show
End Sub
谢谢马特,我来转一转 这是一种没有 On 错误恢复的方法,(我使用Randall的自动错误处理程序功能,所以它很快。Sub Lines()。
Dim Pt1, Pt2。
Dim Util as AcadUtility。
错误时 转到Err_Control。
Set Util = ThisDrawing.Utility。
。
使用 Util。
Pt1 = .GetPoint(, “Pick Start Point: ”)。
做。
Pt2 = .GetPoint(Pt1, “Pick Next Point: ”)。
ThisDrawing.ModelSpace.AddLine Pt1, Pt2。
Pt1 = Pt2。
圈。
结尾为。
。
Exit_Here:。
退出子。
Err_Control:。
选择案例错误.编号。
案例-2147352567,-2145320928。
对象“IAcadUtility2”的方法'GetPoint'失败。
'用户输入是一个关键词。
错误.清除。
简历Exit_Here。
案例 其他。
MsgBox Err.Description。
错误.清除。
简历Exit_Here。
结束选择。
结束子kdub->formatting code=vb。
布莱科,
亚达曼
我很喜欢你的代码。
问候,
Oleg
页:
[1]