明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1645|回复: 8

GetInterfaceObject("VL.Application.16")方法问题

[复制链接]
发表于 2016-10-22 12:59:06 | 显示全部楼层 |阅读模式
  1. Dim VL As Object
  2.     Dim acadApp As AcadApplication
  3.     Dim acadDoc As AcadDocument
  4.     Set acadApp = GetObject(, "AutoCAD.Application")
  5.     Set acadDoc = acadApp.ActiveDocument
  6.     Set VL = acadDoc.Application.GetInterfaceObject("VL.Application.16")

此段VB代码在AutoCad07环境下可以得到VL对象,在AutoCAD09环境下取不到VL对象。
但是在AutoCAD09环境下搜索注册表也能查到值"VL.Application.16",此问题如何解决?
如问题解决,愿意付出50元酬劳,谢谢!
发表于 2016-10-23 22:06:13 | 显示全部楼层
  1. Dim AcadVersion As Integer
  2.     With ThisDrawing.Application
  3.         AcadVersion = Val(Left(.Version, 2))
  4.         '根据AutoCAD的版本判断使用的VL库类型
  5.         Select Case AcadVersion
  6.         Case Is = 15
  7.             Set VL = .GetInterfaceObject("VL.Application.1")
  8.         Case Is >= 16
  9.             Set VL = .GetInterfaceObject("VL.Application.16")
  10.         End Select
  11.     End With
  12.    
发表于 2016-10-23 22:15:27 | 显示全部楼层
有可能 是你的09安装有问题吧
 楼主| 发表于 2016-10-24 09:13:31 | 显示全部楼层
zzyong00 发表于 2016-10-23 22:15
有可能 是你的09安装有问题吧

09安的应该是没问题的,在xp系统下安的,用vb调cad别的接口都可以调起来的.....
 楼主| 发表于 2016-10-24 09:14:47 | 显示全部楼层

试过这段代码,一样取不到对象....
发表于 2016-10-24 21:37:46 | 显示全部楼层
实际上vl非常鸡肋,仅限于玩
 楼主| 发表于 2016-10-25 09:04:28 | 显示全部楼层
zzyong00 发表于 2016-10-24 21:37
实际上vl非常鸡肋,仅限于玩

需要获取vl对象,后面要用....
发表于 2016-10-25 09:34:20 来自手机 | 显示全部楼层
既然你都2009了 用netapi不是更好
 楼主| 发表于 2016-10-27 18:13:18 | 显示全部楼层
顶一下,来个大神啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 09:54 , Processed in 0.493113 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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