只需一步,快速开始
如题:我电脑中装了2004,2006,2008,连接cad的时候使用的是后期绑定,于是每次画图都是调用的默认的那个CAD,就是说,我把2004设置为默认的,画图的时候它就连接调用的是2004.
现在就是我能不能在程序中写点什么东西,让画图的时候能够调用指定版本的CAD,而不用管默认的CAD是什么版本。如,我在程序中指定用2006打开它就连接2006打开画图,如果我指定2008打开,它就连接2008打开画图。知道的朋友指点下,搜索了好多资料没有结果。
使用道具 举报
我想可以先打开指定的CAD
然后控制它打开图纸吧
你可以先在注册表里读取到CAD2004的安装目录,然后运行再连接到CAD.
CAD的信息在注册表里是永远不会变动的,每个CAD版本都是一个独立的子项
你把acadApp = GetObject(, "AutoCAD.Application") 改为
acadApp = GetObject(CAD的运行文件的绝对路径,) 这样就可以啦
首先谢谢楼上两位朋友的指点小弟根据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已经启动并且初始化完成。----------
请知道的朋友指点下。谢谢了先
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2024-11-26 04:46 , Processed in 0.149104 second(s), 24 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.