注册 登录
编程论坛 VB6论坛

请问为什么vb 调用CAD时报错 activex部件不能创建对象

凛冬1 发布于 2020-04-26 21:57, 3006 次点击
我想用vb设计程序先打开CAD,然后CAD中打开scr脚本文件进行自动绘图,这个代码老是在检查CAD是否打开那个地方报错activex部件不能创建对象是为啥?
程序代码:
Private Sub Command1_Click()
Dim acadApp As AcadApplication
'On Error Resume Next
Set acadApp = GetObject(, "AutoCAD.Application")  '检查CAD是否打开
If Err Then
  Err.Clear
  Set acadApp = CreateObject("AutoCAD.Application") '打开CAD
  If Err Then
     MsgBox Err.Number & ":" & Err.Description '打开失败
     Exit Sub
  End If
End If

acadApp.Visible = True


End Sub
6 回复
#2
ZHRXJR2020-04-27 10:22
Set acadApp = GetObject(这里是否是CAD安装的路径!Layet3 )  '打开CAD必须激活图中的层
GetObject 函数是返回文件中的 ActiveX 对象的引用。
例如
Set acadApp = GetObject("C:\CAD\ABCAD\SCHEMA.CAD!Layet3" )
#3
凛冬12020-04-27 12:56
回复 2楼 ZHRXJR
请问"C:\CAD\ABCAD\SCHEMA.CAD!Layet3"中的ABCAD是指CAD文件名么?我是想直接新建一个dwg文件。而且我改成了你这个还是报错activex部件不能创建对象
#4
ZHRXJR2020-04-27 16:46
"C:\CAD\ABCAD\SCHEMA.CAD!Layet3"
是C盘CAD目录中的ABCAD子目录中的SCHEMA.CAD文件,你需要根据你的文件位置的文件名及路径设置呀!
报错activex部件不能创建对象        一般应该是路径或文件名错误,因此无法创建对象。
#5
凛冬12020-04-27 18:00
回复 4楼 ZHRXJR
这个不是判断CAD是否打开嘛?所以用户使用的时候只是打开了CAD这个软件,但是不知道打开的是什么CAD文件,也无法判断文件位置了
#6
ZHRXJR2020-04-27 20:12
GetObject 函数是返回文件中的 ActiveX 对象的引用。   不是判断对象是否打开的函数。
你问的是 GetObject 函数,因此我也回答了这个问题,是 GetObject 函数!!!判断是否打开可能还有其他API函数,没有查。

[此贴子已经被作者于2020-4-27 20:14编辑过]

#7
凛冬12020-04-29 10:28
哦哦哦 谢谢你!
1