明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2236|回复: 7

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

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

   VB如何突破CAD的版本问题?

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

发表于 2009-3-8 20:40:00 | 显示全部楼层

是不是通过搜索注册表可以选择启动AutoCAD的版本?

HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD键下列出的系统已经安装的AutoCAD版本.

发表于 2009-3-9 23:41:00 | 显示全部楼层
或者你干脆写一段支持多个版本的代码,我看大家一般都这样写。主要就 GetObject 后面的字符不同嘛!
发表于 2009-4-18 08:39:00 | 显示全部楼层
Set AcadApp = GetObject(, "AutoCAD.application")
If Err Then
   Err.Clear
   Set AcadApp = CreateObject("AutoCAD.application")
   If Err Then
      Err.Clear
      MsgBox "不能运行AutoCAD,请检查是否安装!", vbOKOnly
      Exit Sub
      End If
End If
AcadApp.Visible = True
AcadApp.WindowState = AutoCAD.AcWindowState.acMax
Set AcadDoc = AcadApp.ActiveDocument
AppActivate (AcadApp.Caption)
发表于 2009-4-25 19:52:00 | 显示全部楼层
好强~~~~
发表于 2009-4-26 22:09:00 | 显示全部楼层

好像不行呀,

我以前试过,这种方法有问题

发表于 2009-4-30 11:23:00 | 显示全部楼层

不要引用CAD的类型库

直接定义程序变量为Object

同4楼的调用方法,此种方法是调用当前运行的CAD,如果没有运行,就会启动最后一次运行的CAD版本

发表于 2009-5-8 09:59:00 | 显示全部楼层

最好人CAD里面运行此程序,运行时,将CAD的版本发给VB程序,则在vb中,Set AcadApp = GetObject(, "AutoCAD.application." & ver)

如果CAD是16.0,则ver=16

如果从外部启动VB程序,则如果安装有多个CAD的话,可能启动的是最后一个,不过也可能是R14

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

本版积分规则

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

GMT+8, 2024-11-26 03:35 , Processed in 0.167238 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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