明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2256|回复: 19

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

  [复制链接]
发表于 2020-9-17 17:42:27 | 显示全部楼层 |阅读模式
大概结构如下:
(AA) ;AA为其它函数名
(command "line")

引用另一个函数时,
我想等待引用的计算结果出来后,才执行下一条指令。
引用时有没有等待的时间参数?要怎么写?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2020-9-18 11:21:53 | 显示全部楼层
你用 command "delay" 延时等待一下试一试
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-9-18 09:49:23 | 显示全部楼层
本帖最后由 mokson 于 2020-9-18 11:19 编辑
菜卷鱼 发表于 2020-9-18 09:25
除非AA是引用的外部命令,否则一定会执行完才执行接下来的命令的

这算不算外部命令?你试一下。

(setq doc (vla-get-activedocument (vlax-get-acad-object)) sk (Vlax-Get-Or-Create-Object "WScript.Shell"))
(Vla-SendCommand doc "flatshot\nR\n\nS\n\n0,0,0\n")(Vlax-Invoke-Method sk 'Sendkeys "\n")
(setq BlkName (cdr (assoc 2 (entlast))))


总是得不到由 flatshot 生成的块对象,也许是因为 BlkName 已经定义了,而上面的 flatshot 还没有执行完成。
按 F2 看到的历史记录,也证实了这个现象:最后执行的是 flatshot 命令,与脚本的顺序相反。
以上实例需要三维实体对象,用到 sendkeys 指令,主要是想执行 flatshot 命令时,不需要人工去按下“确定”按钮。


发表于 2020-9-17 23:35:23 | 显示全部楼层
(defun C:TT(/ n i c)
(setq n 100)
(setq i 0)
(while (< i n)
  (setq i(+ 1 i))
        (setq c (rem i 255))
        (entmake (list '(0 . "CIRCLE") (cons 10 '(0 0 0)) (cons 40 i) (cons 62 c)))
        (command "zoom" "O" (entlast) "")
        (princ (strcat "\n正在进行..." (itoa i)))
        (command "delay" 50)
)
(princ)
(alert "\所有圆画完!")
)
发表于 2020-9-17 22:58:25 | 显示全部楼层
if 存在呀就执行
发表于 2020-9-18 08:58:55 | 显示全部楼层
放心,(AA) 不完成,不会执行(command "line")
 楼主| 发表于 2020-9-18 09:23:08 | 显示全部楼层
wzg356 发表于 2020-9-18 08:58
放心,(AA) 不完成,不会执行(command "line")

我的情况刚才相反,先执行完 (command "line") , (AA) 还没有执行完。
所以有此一问。
发表于 2020-9-18 09:25:23 | 显示全部楼层
除非AA是引用的外部命令,否则一定会执行完才执行接下来的命令的
发表于 2020-9-18 11:02:46 | 显示全部楼层
代码写错了。。。
(setq BlkName (cdr (assoc 2(entget (entlast)))))
 楼主| 发表于 2020-9-18 11:16:16 | 显示全部楼层
菜卷鱼 发表于 2020-9-18 11:02
代码写错了。。。
(setq BlkName (cdr (assoc 2(entget (entlast)))))

谢谢指正,但是还是索引不到生成的块对象,始终索引到的是实体对象。
因为这个在前,块对象在后。执行的顺序与脚本不一致。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 09:28 , Processed in 0.230966 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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