LISP获取的vlax-get-acad-object对象如何在VB中使用?
在搞VB的ACTIVEX控件和LISP函数的交互。VB中可以用GetObject(, "AutoCAD.Application")获取CAD进程,但是只能获取第一个,不爽;
打算用vlax-get-acad-object获取当前的CAD对象作为参数传递给VB的DLL,但是传过去后貌似用法不一样。
不能直接使用GetInterfaceObject方法,LISP里面提示“未设置对象变量或WITH BLOCK变量”。
VB里面使用vlax-get-acad-object对象该如何处理?
本帖最后由 highflybird 于 2012-9-3 23:28 编辑
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("select * from Win32_Process where Name='acad.exe' ")
If colProcessList.Count = 0 Then 'OK
Set objApp = CreateObject("AutoCAD.Application.16")
Else
Set objApp = GetObject(,"AutoCAD.Application.16")
'在此处增加你的代码。用foreach语句测试。
End If
试试这段代码。
上面这个倒也是种方法。
后来试了下,发现VB中使用LISP用VLAX-GET-ACAD-OBJECT貌似没问题。
但是用funcall有问题 目前正困扰呢,
同时开几个CAD的时候(特别是不同版本,我经常这样干),杯具了。VB中获取的不是当前的CAD进程,经常出错。
页:
[1]