明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2013|回复: 5

精通VB控制CAD的请进

[复制链接]
发表于 2005-9-16 11:21:00 | 显示全部楼层 |阅读模式

以下是我的做法:

用VB做的CAD的函数库,在VB的程序中调用,然后控制CAd。

在用来控制CAD的VB函数库中,为了使程序始终处理当前Acad的激活文件时(CAD自身的程序也是这样的吧,没太多考察过)。通常会处理Thisdrawing的切换问题,使用这个Set Thisdrawing = Acadapp.ActiveDocument.

我的子程序一般都是这样写的,从未出现过问题。

但是最近的一个程序中使用了一个:

Dim Oucs As AcadUCS
Set Oucs = Thisdrawing.ActiveUCS

每次程序运行到这里就报错,如果监视Thisdrawing.ActiveUCS 他的值是<>.

如果你监视Thisdrawing,他有值,如果你展开他,也可以看到他的ActiveUCS。这时在监视栏中的Thisdrawing.ActiveUCS也突然有值了。按“F8”程序也可以继续运行。

大家遇到过这样的问题吗?

发表于 2005-9-16 13:30:00 | 显示全部楼层
这好象是VB和CAD不同步造成的。我也遇到过类似的问题。当调试时一步一步就没有问题,直接RUN时就有问题。尤其是用SendCommand命令时严重。
 楼主| 发表于 2005-9-16 14:39:00 | 显示全部楼层

我的情况和你可能还不太一样。为了调试方便我把这段子程序放在了我的VB程序中结果下面的程序可用:

Thisdrawing.SendCommand "circle" & Chr(13) & "0,0,0" & Chr(13) & "r" & Chr(13) & "34" & Chr(13)
MsgBox Thisdrawing.ModelSpace.Count
MsgBox Thisdrawing.UserCoordinateSystems.Count

下面的程序也可用:

Dim Line As AcadLine
Set Line = Thisdrawing.ModelSpace.AddLine(P1, P2)

可就是这个不行:Set Oucs = Thisdrawing.ActiveUCS

 

 

发表于 2005-9-16 15:12:00 | 显示全部楼层
我也常遇到单步执行没有问题,连续执行时即出错的事,尤其是用SetCommmand时
 楼主| 发表于 2005-9-16 15:40:00 | 显示全部楼层
我怀疑是Thisdrawing.ActiveUCS自身的问题。
 楼主| 发表于 2005-9-21 20:16:00 | 显示全部楼层
问题已经解决了,我绕过去了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 10:27 , Processed in 0.173270 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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