明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 1006015131

[提问] 关于autolisp和aardio混用时传参的疑问

[复制链接]
发表于 2024-6-27 09:20:07 | 显示全部楼层
/hwnd 这样传参数是为了可扩展,这样以后就可以传更多其他的参数。
命令行参数会自动解析成表对象 _ARGV,例如在 aardio 里 _ARGV.hwnd 就可以得到 hwnd 参数的值。

_CMDLINE 取到的是解析前的完整命令行。

也可以获取父进程的主窗口得到 AutoCAD 的窗口句柄。

  1. import process;

  2. //获取父进程对象
  3. var parentProcess = process.getParent();

  4. //取到 AutoCAD 的窗口句柄
  5. var hwndCad = parentProcess.getMainWindow();


或者直接获取所有 AutoCAD 窗口句柄。
  1. import process;

  2. //遍历所有 AutoCAD 窗口句柄
  3. for hwnd in process.eachWindow( "@acad.exe" ) {  
  4.   
  5.    
  6. }


还有一种方法更简单:

在 aardio 工程向导界面点选『窗口程序 / ActiveX EXE 』。
发布生成 EXE 文件,双击 EXE 注册控件(或调用 /r 命令行参数静默注册)。
然后在 AutoLISP 里就可以直接调用 aardio 编写的函数了。

工程里已经有 AutoLISP 调用 aardio 函数的演示。
通过这种方式,在 AutoLISP 里将窗口句柄作为参数直接传给 aardio 函数就可以了。




发表于 2024-6-27 10:16:23 | 显示全部楼层
jacenhe 发表于 2024-6-27 09:20
/hwnd 这样传参数是为了可扩展,这样以后就可以传更多其他的参数。
命令行参数会自动解析成表对象 _ARGV, ...

您太优秀了,向您学习
发表于 2024-6-27 10:28:37 | 显示全部楼层
jacenhe 发表于 2024-6-27 09:20
/hwnd 这样传参数是为了可扩展,这样以后就可以传更多其他的参数。
命令行参数会自动解析成表对象 _ARGV, ...

大神,还逛cad论坛..
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 13:55 , Processed in 0.159972 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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