明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[提问] 引用函数时,如何等待计算结果出来后,才执行下一条指令?

  [复制链接]
 楼主| 发表于 2020-9-18 11:28:27 | 显示全部楼层
试过了,一样的,整个指令都暂停了。
就卡在这个问题上了。块对象是生成了,
原因就是执行先后的问题,就是索引不到它。
发表于 2020-9-18 11:51:57 | 显示全部楼层
用(while (not BLKObject))来拖时间
发表于 2020-9-18 11:52:20 | 显示全部楼层
mokson 发表于 2020-9-18 09:49
这算不算外部命令?你试一下。

(setq doc (vla-get-activedocument (vlax-get-acad-object)) sk (Vlax ...

发送按键按键之后的操作只能放在最后,也就说从发送按键那时起,你所有的操作都要通过发送按键来完成,后面跟不了lisp代码
发表于 2020-9-18 12:59:06 来自手机 | 显示全部楼层
楼上说的没错  sendcommand实际上就跳出了lsp
发表于 2020-9-18 13:00:20 来自手机 | 显示全部楼层
你可以试下send  line命令   执行完以后  空格重复命令   不再是TT  而是line
 楼主| 发表于 2020-9-18 14:13:46 | 显示全部楼层
本帖最后由 mokson 于 2020-9-18 14:30 编辑
masterlong 发表于 2020-9-18 12:59
楼上说的没错  sendcommand实际上就跳出了lsp

并没有跳出,后面的代码仍在执行,只不过执行顺序不等待 sendcommand 结束。
话说回来,来获取生成的块对象,还有其它的方法吗?
发表于 2020-9-18 22:43:36 | 显示全部楼层
mokson 发表于 2020-9-18 09:49
这算不算外部命令?你试一下。

(setq doc (vla-get-activedocument (vlax-get-acad-object)) sk (Vlax ...

你这就是引用外部对象,lisp里面没有线程等待的概念,它不会自己等待你上面的creat创建完成,所以你要自己加个delay去等一会
 楼主| 发表于 2020-9-19 08:12:27 | 显示全部楼层
加了 delay 后,感觉所有执行过程都暂停了,连同外部的脚本也暂停了,最终也是无济于事。
难搞了。还是得在思路上想其它的办法吧。
发表于 2020-9-20 16:35:57 | 显示全部楼层
感谢楼主分享下载试试!
发表于 2020-9-23 09:53:56 | 显示全部楼层
感谢楼主分享下载试试!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-29 19:15 , Processed in 0.170313 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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