起子 发表于 2012-9-3 18:53:59

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:25:42

本帖最后由 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

试试这段代码。

起子 发表于 2012-9-6 18:32:35

上面这个倒也是种方法。
后来试了下,发现VB中使用LISP用VLAX-GET-ACAD-OBJECT貌似没问题。
但是用funcall有问题

NetBee 发表于 2013-1-5 23:19:10

目前正困扰呢,
同时开几个CAD的时候(特别是不同版本,我经常这样干),杯具了。VB中获取的不是当前的CAD进程,经常出错。
页: [1]
查看完整版本: LISP获取的vlax-get-acad-object对象如何在VB中使用?