乐筑天下

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

[编程交流] 需要将lisp文件修改为tog

[复制链接]

10

主题

895

帖子

887

银币

初来乍到

Rank: 1

铜币
49
发表于 2022-7-5 13:11:32 | 显示全部楼层 |阅读模式
我已经看了这个lisp文件一段时间了,但对它的理解还不够透彻,无法对其进行更改。我希望它在反应器定义的函数中时在CURSORSIZE 100和CURSORTYPE 0之间切换。然后在完成后返回游标类型1。
  1. ;;;Tip# 3936        By Mathew Kirkland  from Cadalyst.com
  2. (vl-load-com)
  3. ;;;------------------------------------------------------------------
  4. --;
  5. ;;; List of commands to react to:
  6. ;;; Note - This string will be used in a wcmatch statement.
  7. (setq *CursorSize_Commands*
  8. "COPY,ERASE,GRIP_STRETCH,PLOT,MLEADER,MEASUREGEOM,MOVE,SCALE,STRETCH")
  9. ;;;------------------------------------------------------------------
  10. --;
  11. ;;; Start reactor function:
  12. (defun c:CursorSizeOn  ()
  13.   (CursorSize:StartReactor))
  14. ;;;------------------------------------------------------------------
  15. --;
  16. ;;; Stop reactor function:
  17. (defun c:CursorSizeOff  ()
  18.   (vlr-remove *CursorSize_CommandReactor*)
  19.   (terpri)
  20.   (prompt "\n** CursorSize reactor has been stopped ** ")
  21.   (princ))
  22. ;;;------------------------------------------------------------------
  23. --;
  24. ;;; Start reactor function:
  25. (defun CursorSize:StartReactor  ()
  26.   ;; Command reactors
  27.   (or *CursorSize_CommandReactor*
  28.       (setq *CursorSize_CommandReactor*
  29.              (vlr-command-reactor
  30.                nil
  31.                '((:vlr-commandCancelled . CursorSize:CommandEnded)
  32.                  (:vlr-commandEnded . CursorSize:CommandEnded)
  33.                  (:vlr-commandFailed . CursorSize:CommandEnded)
  34.                  (:vlr-commandWillStart .
  35. CursorSize:CommandWillStart)))))
  36.   ;; <- Other reactors
  37.   (prompt "\n \n  >>  CursorSize reactor loaded ")
  38.   (princ))
  39. ;;;------------------------------------------------------------------
  40. --;
  41. ;;; CursorSize:CommandWillStart callback function:
  42. (defun CursorSize:CommandWillStart  (rea cmd / cmdName)
  43.   (cond
  44.     ((and (/= "" *CursorSize_Commands*)
  45.           (wcmatch (setq cmdName (car cmd)) *CursorSize_Commands*))
  46.      (setq *CursorSize* (getvar 'cursorsize))
  47.      (setvar 'cursorsize 100))
  48.     ;; <- Other conditions
  49.     )
  50.   )
  51. ;;;------------------------------------------------------------------
  52. --;
  53. ;;; CursorSize:CommandEnded callback function:
  54. (defun CursorSize:CommandEnded  (rea cmd / cmdName)
  55.   (cond
  56.     ((and (/= "" *CursorSize_Commands*)
  57.           (wcmatch (setq cmdName (car cmd)) *CursorSize_Commands*))
  58.      (setvar 'cursorsize *CursorSize*)
  59.      (setq *CursorSize* nil))
  60.     ;; <- Other conditions
  61.     )
  62.   )
  63. ;;;------------------------------------------------------------------
  64. --;
  65. (c:CursorSizeOn)
  66. (princ)
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 13:20:11 | 显示全部楼层
很好,李,谢谢你。
回复

使用道具 举报

10

主题

895

帖子

887

银币

初来乍到

Rank: 1

铜币
49
发表于 2022-7-5 13:31:11 | 显示全部楼层
嗨,李,
只是一个小提示-您可以通过使用vlr当前反应名称函数和一些条件以及使用单个回调函数来减少代码。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 13:35:54 | 显示全部楼层
 
也许我遗漏了什么,但我不认为这种方法有什么好处?这将降低效率,因为无论何时计算回调函数,都需要额外的测试表达式来确定正确的操作过程。
回复

使用道具 举报

10

主题

895

帖子

887

银币

初来乍到

Rank: 1

铜币
49
发表于 2022-7-5 13:38:53 | 显示全部楼层
 
欢迎@rkent-位于代码顶部的系统变量和值列表可能会扩展以满足您的需求。
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 13:45:52 | 显示全部楼层
 
我曾想过要提到同样的东西,但去掉了这句话,因为我不确定效率更低的是什么:测试表达式还是指向另一个回调函数的指针。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 13:57:32 | 显示全部楼层
李,
谢谢你,我可以看到,掌握你的日常生活对一些任务非常有用。从来没有人知道它能如此高效地完成。
感谢OP在本论坛中查询伟人
 
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 14:03:26 | 显示全部楼层
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 14:06:21 | 显示全部楼层
 
        I thought about mentioning the same - but stripped that sentence off, because I'm not sure whats more inefficient: a test expression or a pointer to the other callback function.
回复

使用道具 举报

2

主题

18

帖子

16

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 14:17:07 | 显示全部楼层
Lee,
        Thank you, grabbing your routine as I can see it can be very useful for some tasks. Never knew it could be done so efficiently.
        Thanks OP for querying the great minds in this forum 141132ejyv6j2ysfa6gqaq.png
         
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-15 07:21 , Processed in 3.259711 second(s), 74 queries .

© 2020-2025 乐筑天下

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