本帖最后由 1006015131 于 2023-4-17 15:01 编辑
先说下起因。开始是在坛里搜图库意外找到了梁泊全大佬的图库软件。觉得挺好用的,帮助里的超链接http://swjtulbq.ysepan.com/ 是作者的个人主页,里面提到了aardio语言以及和autolisp混用的一些参考源码。
这个图库软件有个优点是可以在不开启cad的情况下也查看图库的内容;也有个缺点是的当同时打开多个cad进程时不能选择需要的那个cad。
因此我个人想通过cad中用autolisp调用aardio的方式来将窗口的句柄传递过去,以正确区分。
为此进行了简单的尝试如下:
首先根据aardio官方文档,此处- (strcat "/hwnd" " "(itoa(vla-get-hwnd(vlax-get-acad-object))))
是可传递到aardio中的参数。在aardio中存在于`_cmdline`中。
此时,可以读取到cad窗口的句柄为`/hwnd 5839396`
后续在aardio用使用论坛大佬的示例也获得相同窗口的句柄,代码如下:
结果获取的句柄与之前autolisp传递的完全不同。
陷入了困惑。
附件为对应过程源码。
ps:另,问chatgpt有不同的思路,不过暂时不懂怎么用,放出来抛砖引玉。
pss:在网上也查了一种多文件选择方式,也是通过aardio来传递参数。作为附件上传,供大家参考。
|