明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2644|回复: 3

用VB操作同时启动的两个版本的CAD

[复制链接]
发表于 2007-3-14 01:31:00 | 显示全部楼层 |阅读模式

用VB操作CAD,如象CAD发送SendCommand。

连接CAD用以下代码:VB程序中没有引用针对版本的Object Library。

    Dim AcadApp As Object
    On Error Resume Next
    Set AcadApp = GetObject(, "AutoCAD.Application")
    If Err Then
        End
    End If
    Set ThisDrawing = AcadApp.ActiveDocument

如:先启动CAD2006,这时程序可正常操作CAD2006,此时在不关闭CAD2006情况下启动CAD2002,这时的VB程序操作将会自动转向CAD2002,再想回头操作CAD2006就不行了,无论再是否关闭CAD2002,除非把CAD2002和2006都关掉,然后再单独启动CAD2006,

如何解决这种情况,使同时启动两个版本的CAD时对两个版本的CAD 操作同时好用?

发表于 2007-3-14 21:44:00 | 显示全部楼层

Set AcadApp = GetObject(, "AutoCAD.Application")这句加上版本号看看,试试!例如AutoCAD.Application.15.0或AutoCAD.Application.16.2

也不知道行不行,楼主想干甚么啊?同时操作两个版本的cad,闹着玩啊?呵呵!

 楼主| 发表于 2007-3-15 00:47:00 | 显示全部楼层

呵呵,就是不想加入版本号的,工作上经常会打开两个版本的CAD同时操作,一些工作软件需要低的CAD版本,一些图纸又会需要用高的CAD版本,自己又会有自己的选择,所以。。。有时同时打开三个版本的CAD操作,哎,也没办法。所以我特别需要各个版本间互相转换引用的问题。说的明白些,就是当前操作哪个版本的CAD,程序就能随时对哪个进行操作。

CAD很气人啊,启动两个版本的CAD,当后启动的CAD关了以后,在程序一直驻留的情况下,再GetObject竟然无法获取还没关闭的CAD版本的引用。

 楼主| 发表于 2007-3-16 00:05:00 | 显示全部楼层

刚刚想到了一个思路,也不知能否行得通,有时间再试试。

就是启动程序时首先获取CAD目标,获取当前CAD版本号,在CAD的退出响应事件中,清空目前获得的CAD目标,引用除当前CAD版本的带另外几个CAD版本号的方法重新获取CAD目标,看能否获取另外的哪个版本的CAD(就是这步不知是否能行),然后重新获取CAD对象,就可在程序一直驻留的情况下对现存的新的CAD目标进行操作。不知这样是否可行。

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

本版积分规则

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

GMT+8, 2024-11-26 16:22 , Processed in 0.161028 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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