乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 51|回复: 13

[编程交流] 不可能的任务?通缉Com

[复制链接]

91

主题

428

帖子

326

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
474
发表于 2022-7-6 08:45:05 | 显示全部楼层 |阅读模式
大家好,
 
谁知道如何通过反应堆取消命令
 
这是我捕捉启动命令事件的代码。我想阻止AutoCAD继续执行某些命令,但没有成功:
 
  1. (VLR-Command-Reactor
  2. nil
  3. (list
  4. (cons
  5.   :VLR-commandWillStart
  6.   'Reactor:commandWillStart
  7. )
  8. )
  9. )
  10. (defun Reactor:commandWillStart (-calling-reactor- -info- / *cmdname*)
  11. (setq *cmdname* (read (car -info-)))   
  12. (cond
  13. ((member *cmdname* '(STYLE DIMSTYLE DDIM ))
  14.   [color=red][b](command); it doesn't work [/b][/color]
  15. )
  16. (T (mapcar 'princ (list *cmdname* " will start.")))
  17. )   
  18. )

 
如有任何建议,我们将不胜感激
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:53:37 | 显示全部楼层
  1. (if (null *command-reactor*)
  2.    (setq *command-reactor*
  3.        (vlr-command-reactor nil '((:vlr-commandwillstart . commandreactorcallback)))
  4.    )
  5. )
  6. (defun commandreactorcallback ( reactor params / cmd wsh )
  7.    (cond
  8.        (   (member (setq cmd (strcase (car params))) '("STYLE" "DIMSTYLE" "DDIM"))
  9.            (if (setq wsh (vlax-create-object "WScript.Shell"))
  10.                (progn
  11.                    (vl-catch-all-apply 'vlax-invoke (list wsh 'sendkeys "{ESC}"))
  12.                    (vlax-release-object wsh)
  13.                )
  14.            )
  15.        )
  16.        (   (princ cmd)
  17.            (princ " will start.")
  18.        )
  19.    )
  20.    (princ)
  21. )
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 08:55:45 | 显示全部楼层
“你的使命李,如果你决定接受它”。。。。。。。看阿汗哈的帖子
 
“一如既往,如果您或您的任何代码出现故障或崩溃,论坛将否认您的任何行为”
 
---不可能完成的任务----
 
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:02:52 | 显示全部楼层
........
回复

使用道具 举报

91

主题

428

帖子

326

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
474
发表于 2022-7-6 09:04:42 | 显示全部楼层
 
李,我总是对你的知识感到惊讶。
 
阿洛特
回复

使用道具 举报

91

主题

428

帖子

326

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
474
发表于 2022-7-6 09:12:40 | 显示全部楼层
 
其中一个不可能完成的任务就是在CADTutor论坛上发帖子。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:16:43 | 显示全部楼层
 
谢谢阿汉哈
 
您可能需要考虑将WSH对象绑定到全局变量,然后在会话结束时通过另一个reactor释放它,而不是每次调用这些命令时都创建对象。
回复

使用道具 举报

91

主题

428

帖子

326

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
474
发表于 2022-7-6 09:20:52 | 显示全部楼层
李,好老师总是把班级水平带得越来越高。
 
所以我最好的老师,请继续。。。
回复

使用道具 举报

91

主题

428

帖子

326

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
474
发表于 2022-7-6 09:25:57 | 显示全部楼层
李,请你再解释一下全局变量及其与反应堆的关系好吗?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:29:28 | 显示全部楼层
 
我想你可以从我的提示和指点中找到答案。。。
 
无论如何,这里有一个例子:
 
  1. (if (null *command-reactor*)
  2.    (setq *command-reactor*
  3.        (vlr-command-reactor nil '((:vlr-commandwillstart . commandreactorcallback)))
  4.    )
  5. )
  6. (if (null *editor-reactor*)
  7.    (setq *editor-reactor*
  8.        (vlr-editor-reactor nil '((:vlr-beginclose . editorreactorcallback)))
  9.    )
  10. )
  11. (defun commandreactorcallback ( reactor params )
  12.    (if (member (strcase (car params)) '("STYLE" "DIMSTYLE" "DDIM"))
  13.        (if (setq *wsh* (cond (*wsh*) ((vlax-create-object "WScript.Shell"))))
  14.            (vl-catch-all-apply 'vlax-invoke (list *wsh* 'sendkeys "{ESC}"))
  15.        )
  16.    )
  17.    (princ)
  18. )
  19. (defun editorreactorcallback ( reactor params )
  20.    (if (and *wsh* (eq 'VLA-OBJECT (type *wsh*)) (not (vlax-object-released-p *wsh*)))
  21.        (vl-catch-all-apply 'vlax-release-object (list *wsh*))
  22.    )
  23.    (if (and *command-reactor* (eq 'VLA-OBJECT (type *command-reactor*)))
  24.        (vlr-remove *command-reactor*)
  25.    )
  26.    (vlr-remove reactor)
  27.    (princ)
  28. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-7 08:31 , Processed in 1.051981 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表