明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1960|回复: 3

LISP获取的vlax-get-acad-object对象如何在VB中使用?

[复制链接]
发表于 2012-9-3 18:53:59 | 显示全部楼层 |阅读模式
在搞VB的ACTIVEX控件和LISP函数的交互。
VB中可以用GetObject(, "AutoCAD.Application")获取CAD进程,但是只能获取第一个,不爽;
打算用vlax-get-acad-object获取当前的CAD对象作为参数传递给VB的DLL,但是传过去后貌似用法不一样。
不能直接使用GetInterfaceObject方法,LISP里面提示“未设置对象变量或WITH BLOCK变量”。
VB里面使用vlax-get-acad-object对象该如何处理?
发表于 2012-9-3 23:25:42 | 显示全部楼层
本帖最后由 highflybird 于 2012-9-3 23:28 编辑

  1.     Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
  2.     Set colProcessList = objWMIService.ExecQuery("select * from Win32_Process where Name='acad.exe' ")
  3.    
  4.    
  5.     If colProcessList.Count = 0 Then 'OK
  6.         Set objApp = CreateObject("AutoCAD.Application.16")
  7.     Else
  8.         Set objApp = GetObject(,"AutoCAD.Application.16")
  9.         '在此处增加你的代码。用foreach语句测试。
  10.     End If

试试这段代码。

 楼主| 发表于 2012-9-6 18:32:35 | 显示全部楼层
上面这个倒也是种方法。
后来试了下,发现VB中使用LISP用VLAX-GET-ACAD-OBJECT貌似没问题。
但是用funcall有问题
发表于 2013-1-5 23:19:10 | 显示全部楼层
目前正困扰呢,
同时开几个CAD的时候(特别是不同版本,我经常这样干),杯具了。VB中获取的不是当前的CAD进程,经常出错。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-2 11:12 , Processed in 0.180099 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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