明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 陨落

[函数] 我也来发一个多文件选择对话框,lisp+aardio实现

  [复制链接]
 楼主| 发表于 2021-6-11 12:10 | 显示全部楼层
jacenhe 发表于 2021-6-11 04:52
思路很好,
不过 WScript 执行 Exec函数,然后读 stdout  是阻塞状态,所以会卡住 AutoCAD 主窗体。此时如 ...

学习了!aardio作者居然亲自回复,荣幸之至!
 楼主| 发表于 2021-6-14 02:41 | 显示全部楼层
jacenhe 发表于 2021-6-11 04:52
思路很好,
不过 WScript 执行 Exec函数,然后读 stdout  是阻塞状态,所以会卡住 AutoCAD 主窗体。此时如 ...

想请教一下,我测试的结果,com.eachRunning("IAcadApplication")为何总是只能返回两个不同的cad实例呢?
我是win7,64位系统,测试cad版本为2012和2014,这两个版本的cad即使开了3-4个,也只能返回2个不同的cad实例。如图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2021-6-14 16:08 | 显示全部楼层
陨落 发表于 2021-6-14 02:41
想请教一下,我测试的结果,com.eachRunning("IAcadApplication")为何总是只能返回两个不同的cad实例呢? ...

用python试了,也只能返回两个,应该是ROT的问题。
发表于 2021-6-15 02:24 | 显示全部楼层
陨落 发表于 2021-6-14 16:08
用python试了,也只能返回两个,应该是ROT的问题。

查了一下,AutoCAD 不论开几个进程,只会在 ROT 里注册一次,退出那个注册的进程才会注册下一个,所以 ROT 对 AutoCAD 应该没啥用。 开多个进程里的话,可以做一个启动器,每次创建的对象记录下来。
 楼主| 发表于 2021-6-15 09:38 | 显示全部楼层
jacenhe 发表于 2021-6-15 02:24
查了一下,AutoCAD 不论开几个进程,只会在 ROT 里注册一次,退出那个注册的进程才会注册下一个,所以 RO ...

好的,应该是只有这个思路了~
发表于 2021-7-15 22:21 | 显示全部楼层
麻烦问一下,程序打包进lsp ,用的是哪个工具?
发表于 2022-2-10 11:16 | 显示全部楼层
能不能多给几个对话框与lisp交换数据的例子?比如对话框怎么接收lisp程序的返回值?lisp怎么得到对话框的输入值?
发表于 2022-2-10 11:17 | 显示全部楼层
上面的例子,运行有错误提示。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2022-2-10 11:20 | 显示全部楼层
jacenhe 发表于 2021-6-11 04:52
思路很好,
不过 WScript 执行 Exec函数,然后读 stdout  是阻塞状态,所以会卡住 AutoCAD 主窗体。此时如 ...

后面的例子,运行后selpath变量的值应该是文件名,但是在cad里看了没有。
发表于 2022-2-12 12:08 | 显示全部楼层
@liuyj
这里说的是在 lisp 里调用 EXE ,如果你没传参数,直接双击运行 EXE,就会出现你那个错误。

你自己都说了是在 lisp 里交换数据了,
你当然先要弄明白那几句 lisp 啊,lisp 的范例应当很多不用我发给你吧?!

aardio 的关键代码只有这一句:
//自标准输入读取 LISP 传入的值
var hwnd = io.stdin.read("%d");

你只要弄懂这一句就行。




您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-7 18:29 , Processed in 0.516577 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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