明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2872|回复: 1

关于sendcommand函数异步执行的解决办法

[复制链接]
发表于 2013-9-12 09:56:25 | 显示全部楼层 |阅读模式
有时为了方便调用函数或者是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




 楼主| 发表于 2013-9-12 09:57:57 | 显示全部楼层
上面输入有误:然后在事件sendcommand中再将程序激活,如上例
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 12:42 , Processed in 0.161774 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表