乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 73|回复: 5

精通VB控制CAD的请进

[复制链接]

13

主题

107

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 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”程序也可以继续运行。
大家遇到过这样的问题吗?
回复

使用道具 举报

2

主题

9

帖子

3

银币

初来乍到

Rank: 1

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

使用道具 举报

13

主题

107

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 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


回复

使用道具 举报

11

主题

40

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
84
发表于 2005-9-16 15:12:00 | 显示全部楼层
我也常遇到单步执行没有问题,连续执行时即出错的事,尤其是用SetCommmand时
回复

使用道具 举报

13

主题

107

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2005-9-16 15:40:00 | 显示全部楼层
我怀疑是Thisdrawing.ActiveUCS自身的问题。
回复

使用道具 举报

13

主题

107

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2005-9-21 20:16:00 | 显示全部楼层
问题已经解决了,我绕过去了。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-4 13:43 , Processed in 1.505467 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表