关于sendcommand函数异步执行的解决办法
有时为了方便调用函数或者是active中无对应的函数,我们经常会用到sendcommand命令,但是其是异步执行的,即程序运行到此函数时只是将命令发送给cad,而不是等待其执行完毕,这个函数的执行往往是在整个程序运行结束后才开始执行的,这对于程序设计极为不方便,例如要用sendcommand增加一条直线,而后获得这条直线修改其颜色为红色,这样:dim LL as acadline
thisdrawing.sendcommand....
Set ll = ThisDrawing.ModelSpace.Item(ThisDrawing.ModelSpace.Count - 1)''获取最后一个图元,一般是这样的
ll.color=6
其实这段代码是不能正常执行的
解决方法:
将sendcommand放在程序的最后一行,然后在事件恩对command中再将程序激活,如上例
Private Sub AcadDocument_EndCommand(ByVal CommandName As String)
If CommandName = "LINE"Then
Set ll = ThisDrawing.ModelSpace.Item(ThisDrawing.ModelSpace.Count - 1)''获取最后一个图元,一般是这样的
ll.color=6End If
End Sub
上面输入有误:然后在事件sendcommand中再将程序激活,如上例
页:
[1]