yxr_MJTD 发表于 2009-3-5 10:01:00

[讨论]VB如何突破CAD的版本问题?

<p>&nbsp;&nbsp; VB如何突破CAD的版本问题?</p><p>请教CAD如何在编程过程中突破CAD的版本问题,我开始以为是引用CAD的类型库,但是不行.只能有一个.请教各位大哥!</p>

王咣生 发表于 2009-3-8 20:40:00

<p>是不是通过搜索注册表可以选择启动AutoCAD的版本?</p><p>HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD键下列出的系统已经安装的AutoCAD版本.</p>

事后诸葛 发表于 2009-3-9 23:41:00

或者你干脆写一段支持多个版本的代码,我看大家一般都这样写。主要就 GetObject 后面的字符不同嘛!

dxhy 发表于 2009-4-18 08:39:00

Set AcadApp = GetObject(, "AutoCAD.application")<br/>If Err Then<br/>&nbsp;&nbsp; Err.Clear<br/>&nbsp;&nbsp; Set AcadApp = CreateObject("AutoCAD.application")<br/>&nbsp;&nbsp; If Err Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Err.Clear<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MsgBox "不能运行AutoCAD,请检查是否安装!", vbOKOnly<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit Sub<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>End If<br/>AcadApp.Visible = True<br/>AcadApp.WindowState = AutoCAD.AcWindowState.acMax<br/>Set AcadDoc = AcadApp.ActiveDocument<br/>AppActivate (AcadApp.Caption)

ddg 发表于 2009-4-25 19:52:00

好强~~~~

xwjljh 发表于 2009-4-26 22:09:00

<p>好像不行呀,</p><p>我以前试过,这种方法有问题</p>

gdzhou 发表于 2009-4-30 11:23:00

<p>不要引用CAD的类型库</p><p>直接定义程序变量为Object</p><p>同4楼的调用方法,此种方法是调用当前运行的CAD,如果没有运行,就会启动最后一次运行的CAD版本</p>

英雄无敌 发表于 2009-5-8 09:59:00

<p>最好人CAD里面运行此程序,运行时,将CAD的版本发给VB程序,则在vb中,Set AcadApp = GetObject(, "AutoCAD.application." &amp; ver)</p><p>如果CAD是16.0,则ver=16</p><p>如果从外部启动VB程序,则如果安装有多个CAD的话,可能启动的是最后一个,不过也可能是R14<br/></p>
页: [1]
查看完整版本: [讨论]VB如何突破CAD的版本问题?