明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3594|回复: 4

请教:系统中有多个版本的AutoCAD,如何打开指定的某个版本的CAD

[复制链接]
发表于 2008-12-21 18:46:00 | 显示全部楼层 |阅读模式

如题:我电脑中装了2004,2006,2008,连接cad的时候使用的是后期绑定,于是每次画图都是调用的默认的那个CAD,就是说,我把2004设置为默认的,画图的时候它就连接调用的是2004.

现在就是我能不能在程序中写点什么东西,让画图的时候能够调用指定版本的CAD,而不用管默认的CAD是什么版本。如,我在程序中指定用2006打开它就连接2006打开画图,如果我指定2008打开,它就连接2008打开画图。知道的朋友指点下,搜索了好多资料没有结果。

发表于 2008-12-23 15:50:00 | 显示全部楼层

我想可以先打开指定的CAD

然后控制它打开图纸吧

发表于 2008-12-24 17:45:00 | 显示全部楼层

你可以先在注册表里读取到CAD2004的安装目录,然后运行再连接到CAD.

CAD的信息在注册表里是永远不会变动的,每个CAD版本都是一个独立的子项

你把acadApp = GetObject(, "AutoCAD.Application")  改为

acadApp = GetObject(CAD的运行文件的绝对路径,)       这样就可以啦

 楼主| 发表于 2008-12-27 23:48:00 | 显示全部楼层
本帖最后由 作者 于 2008-12-27 23:52:01 编辑

首先谢谢楼上两位朋友的指点

小弟根据maomao_zhen的提示试了下。但是我有个问题

acadApp = GetObject(CAD的运行文件的绝对路径)(注意:这里括号中没有,),这样必须是通过打开一个CAD文件来启动CAD,那我有没有什么方法不打开某个CAD文本来启动CAD呢?小弟试了下面几个都有错误

 'Set acadapp = GetObject("C:\Program Files\AutoCAD 2002\acad.exe") '不能启动CAD进程,马上提醒:自动化操作时文件名或类名未找到
 'Set acadapp = GetObject("C:\Program Files\AutoCAD 2002\acad.exe",) '不能运行,直接提示:缺少表达式
  'Set acadapp = GetObject("C:\Program Files\AutoCAD 2002\acad.exe", "") 'ActiveX 部件不能创建对象
  'Set acadapp = GetObject("C:\Program Files\AutoCAD 2002\acad.exe", "AutoCAD.Application") '仅能启动CAD进程,马上发生自动化操作时文件名或类名未找到
  Set acadapp = GetObject("C:\Program Files\AutoCAD 2002\tukuang2008.dwg")'这个通过tukuang2008.dwg启动CAD成功。

--------------------------------------

小弟目前使用的方法比较麻烦:

1.先用ShellExecute启动CAD,但是由于ShellExecute是分时的,就是说执行了ShellExecute,马上执行ShellExecute后面的代码,不管CAD有没有启动完成;这样就带来一个问题,我后面的代码都是在得到CAD对象的情况下才能执行,就是说到了这个时候就会发生错误。

2.于是这里我先用GetObject来进行错误判断,但是如果电脑性能比较差的话,会占用好一段时间(如果一直GetObject就死机状,如果我用延时的方法这个时间又不好控制,别人的电脑性能有好有差)于是我就用 GetWindowText遍历窗口标题,发现有"AutoCAD 200"等字样才GetObject,但是这个时候还是不能GetObject到,囧,于是换成用 GetWindowText遍历窗口标题,发现有- [Drawing1.dwg]等字样才GetObject,这个时候离CAD启动完成更近了一步,但是还是会经常GetObject不到CAD对象,逼不得已在这个时段以后使用timer定时GetObject。-----------复杂吧,繁琐吧。

-----------------------------

我现在有两个问题请教各位朋友:

1.如果可以,如何用maomao_zhen的方法只启动CAD而不需要打开某个CAD文件。

2.如何判断CAD已经启动并且初始化完成。

----------

请知道的朋友指点下。谢谢了先

 楼主| 发表于 2009-1-4 15:52:00 | 显示全部楼层
刚在群中问了,一位热心的朋友(freshman)帮我解决了:打开的时候CreateObject("AutoCAD.Application.16")后面那个16,加上相应的版本号就可以了,囧,我舍近求远了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 04:31 , Processed in 0.154993 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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