乐筑天下

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

[编程交流] 用按钮停止lisp循环

[复制链接]

5

主题

24

帖子

19

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 10:43:04 | 显示全部楼层 |阅读模式
我有一个工具栏按钮宏,在一个循环中运行两个lisp例程,我想用工具栏按钮(停止循环工具栏按钮)打破循环或ctrl+打破循环。实现这一点的最佳方式是什么?我想不出一个可行的方法。
谢谢
肖恩
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:48:52 | 显示全部楼层
  1. (exit)
。。。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 10:50:56 | 显示全部楼层
为什么不按一下逃生键呢?
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 10:53:05 | 显示全部楼层
 
 
哎哟艾伦比弗兰克·珀杜更强硬。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 10:57:36 | 显示全部楼层
一个真正的男人要比一个胆小的CEO坚强。
回复

使用道具 举报

5

主题

24

帖子

19

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 10:59:57 | 显示全部楼层
 
原因是我希望能够终止循环,然后一次性重置一些变量。
 
进一步解释我试图实现的目标。按钮宏*^C^CLWTFLASHALLON;LWTFLASHALLOFF;
 
它运行一个循环,打开线宽,然后关闭线宽,为一组特定的图层创建光剑/闪光效果。我希望能够终止循环,然后用另一个lisp例程重置线宽。
 
可能不是最好的方法,但这是我知道的唯一方法。不过,我对其他方法持开放态度。
 
(出口)不会通过按钮杀死它。
 
谢谢
肖恩
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:03:59 | 显示全部楼层
只需使用错误处理程序正确地编写例程,该程序将重置变量。
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:07:02 | 显示全部楼层
 
在我看来,这些程序需要的是工作,而不是marcro按钮。你能显示程序吗?
回复

使用道具 举报

5

主题

24

帖子

19

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 11:10:55 | 显示全部楼层
 
这将超出我的技能范围,尽管我不适合学习如何做到这一点。有人能给我指出正确的方向吗?
 
 
当然到目前为止,我需要完成的是,当取消时,它会将所有线宽返回到默认值,并关闭lwdisplay。
 
  1. ;;;;;;;;;;;;;;;;;;;;;;
  2. ;Flash All
  3. ;;;;;;;;;;;;;;;;;;;;;;
  4. ;THIS MACRO MUST BE KEPT SEPARATE FROM LWTFLASHOFF OR IT WILL NOT RUN AND WILL NOT ALLOW ZOOMING AND PANNING WHILE FLASHING.
  5. (defun C:LWTFLASHALLON ()
  6. (command
  7. "-layer"
  8. "LWEIGHT"
  9. "1"
  10. "*"
  11. ""
  12. "LWDISPLAY"
  13. "ON"
  14. "DELAY"
  15. "200")
  16. (PRIN1))
  17. ;THIS MACRO MUST BE KEPT SEPARATE FROM LWTFLASHON OR IT WILL NOT RUN AND WILL NOT ALLOW ZOOMING AND PANNING WHILE FLASHING.
  18. (defun C:LWTFLASHALLOFF ()
  19. (command
  20. "LWDISPLAY"
  21. "OFF"
  22. "DELAY"
  23. "200"
  24. "-layer"
  25. "LWEIGHT"
  26. "DEFAULT"
  27. "*"
  28. ""
  29. )
  30. (PRIN1))
  31. ;;;;;;;;;;;;;;;;;;;;;;
  32. ;End Flash All
  33. ;;;;;;;;;;;;;;;;;;;;;;
  34. ;;;;;;;;;;;;;;;;;;;;;;
  35. ;Stop Flash
  36. ;;;;;;;;;;;;;;;;;;;;;;
  37. (defun C:STOP-FLASH ()
  38. (command
  39. "LWDISPLAY"
  40. "OFF"
  41. "DELAY"
  42. "200"
  43. "-layer"
  44. "LWEIGHT"
  45. "DEFAULT"
  46. "*"
  47. ""
  48. )
  49. (PRIN1))
  50. ;;;;;;;;;;;;;;;;;;;;;;
  51. ;End Stop Flash
  52. ;;;;;;;;;;;;;;;;;;;;;;
  53. ;;;;;;;;;;;;;;;;;;;;;;
  54. ;Flash all Mechanical
  55. ;;;;;;;;;;;;;;;;;;;;;;
  56. (defun C:FLASH-M-ALLON ()
  57. (command
  58. "-layer"
  59. "LWEIGHT" "1" "#*|M*"
  60. ""
  61. "LWDISPLAY"
  62. "ON"
  63. "DELAY"
  64. "200")
  65. (PRIN1))
  66. (defun C:FLASH-M-ALLOFF ()
  67. (command
  68. "LWDISPLAY"
  69. "OFF"
  70. "DELAY"
  71. "200"
  72. "-layer"
  73. "LWEIGHT"
  74. "DEFAULT"
  75. "*"
  76. ""
  77. )
  78. (PRIN1))
  79. ;;;;;;;;;;;;;;;;;;;;;;
  80. ;End Flash all Mechanical
  81. ;;;;;;;;;;;;;;;;;;;;;;
  82. ;;;;;;;;;;;;;;;;;;;;;;
  83. ;Flash all Electrical
  84. ;;;;;;;;;;;;;;;;;;;;;;
  85. (defun C:FLASH-E-ALLON ()
  86. (command
  87. "-layer"
  88. "LWEIGHT" "1" "#*|E*"
  89. "LWEIGHT" "default" "#*|E-COMMUNICATION_CEILING*"
  90. "LWEIGHT" "default" "#*|E-FIRE_ALARM_CEILING*"
  91. "LWEIGHT" "default" "#*|E-NURSE_CALL_CEILING*"
  92. "LWEIGHT" "default" "#*|E-SECURITY_CEILING*"
  93. "LWEIGHT" "default" "#*|E-TEXT-BLOCK*"
  94. "LWEIGHT" "default" "#*|E-TEXT-COM*"
  95. "LWEIGHT" "default" "#*|E-TEXT-SEC*"
  96. "LWEIGHT" "default" "#*|E-TEXT-NC*"
  97. ""
  98. "LWDISPLAY"
  99. "ON"
  100. "DELAY"
  101. "200")
  102. (PRIN1))
  103. (defun C:FLASH-E-ALLOFF ()
  104. (command
  105. "LWDISPLAY"
  106. "OFF"
  107. "DELAY"
  108. "200"
  109. "-layer"
  110. "LWEIGHT"
  111. "DEFAULT"
  112. "*"
  113. ""
  114. )
  115. (PRIN1))
  116. ;;;;;;;;;;;;;;;;;;;;;;
  117. ;End Flash all Electrical
  118. ;;;;;;;;;;;;;;;;;;;;;;
  119. ;;;;;;;;;;;;;;;;;;;;;;
  120. ;Flash all Communication
  121. ;;;;;;;;;;;;;;;;;;;;;;
  122. (defun C:FLASH-C-ALLON ()
  123. (command
  124. "-layer"
  125. "LWEIGHT" "1" "#*|E-COMMUNICATION_CEILING*"
  126. "LWEIGHT" "1" "#*|E-FIRE_ALARM_CEILING*"
  127. "LWEIGHT" "1" "#*|E-NURSE_CALL_CEILING*"
  128. "LWEIGHT" "1" "#*|E-SECURITY_CEILING*"
  129. "LWEIGHT" "1" "#*|E-TEXT-BLOCK*"
  130. "LWEIGHT" "1" "#*|E-TEXT-COM*"
  131. "LWEIGHT" "1" "#*|E-TEXT-SEC*"
  132. "LWEIGHT" "1" "#*|E-TEXT-NC*"
  133. ""
  134. "LWDISPLAY"
  135. "ON"
  136. "DELAY"
  137. "200")
  138. (PRIN1))
  139. (defun C:FLASH-C-ALLOFF ()
  140. (command
  141. "LWDISPLAY"
  142. "OFF"
  143. "DELAY"
  144. "200"
  145. "-layer"
  146. "LWEIGHT"
  147. "DEFAULT"
  148. "*"
  149. ""
  150. )
  151. (PRIN1))
  152. ;;;;;;;;;;;;;;;;;;;;;;
  153. ;End Flash all Communication
  154. ;;;;;;;;;;;;;;;;;;;;;;
  155. ;;;;;;;;;;;;;;;;;;;;;;
  156. ;Flash all Plumbing
  157. ;;;;;;;;;;;;;;;;;;;;;;
  158. (defun C:FLASH-P-ALLON ()
  159. (command
  160. "-layer"
  161. "LWEIGHT" "1" "#*|P*"
  162. "LWEIGHT" "default" "#*|P*-FLOWSWITCH*"
  163. "LWEIGHT" "default" "#*|P*-TAMPERSWITCH*"
  164. "LWEIGHT" "default" "#*|PN-FIRE*"
  165. "LWEIGHT" "default" "#*|PN-SPKLR*"
  166. "LWEIGHT" "default" "#*|PN-SPLRHD*"
  167. "LWEIGHT" "default" "#*|PX-FIRE*"
  168. "LWEIGHT" "default" "#*|PX-SPKLR*"
  169. "LWEIGHT" "default" "#*|PX-SPLRHD*"
  170. ""
  171. "LWDISPLAY"
  172. "ON"
  173. "DELAY"
  174. "200")
  175. (PRIN1))
  176. (defun C:FLASH-P-ALLOFF ()
  177. (command
  178. "LWDISPLAY"
  179. "OFF"
  180. "DELAY"
  181. "200"
  182. "-layer"
  183. "LWEIGHT"
  184. "DEFAULT"
  185. "*"
  186. ""
  187. )
  188. (PRIN1))
  189. ;;;;;;;;;;;;;;;;;;;;;;
  190. ;End Flash all Plumbing
  191. ;;;;;;;;;;;;;;;;;;;;;;
  192. ;;;;;;;;;;;;;;;;;;;;;;
  193. ;Flash all Fire Protection
  194. ;;;;;;;;;;;;;;;;;;;;;;
  195. (defun C:FLASH-FP-ALLON ()
  196. (command
  197. "-layer"
  198. "LWEIGHT" "1" "#*|F*"
  199. "LWEIGHT" "1" "#*|P*-FLOWSWITCH*"
  200. "LWEIGHT" "1" "#*|P*-TAMPERSWITCH*"
  201. "LWEIGHT" "1" "#*|PN-FIRE*"
  202. "LWEIGHT" "1" "#*|PN-SPKLR*"
  203. "LWEIGHT" "1" "#*|PN-SPLRHD*"
  204. "LWEIGHT" "1" "#*|PX-FIRE*"
  205. "LWEIGHT" "1" "#*|PX-SPKLR*"
  206. "LWEIGHT" "1" "#*|PX-SPLRHD*"
  207. ""
  208. "LWDISPLAY"
  209. "ON"
  210. "DELAY"
  211. "200")
  212. (PRIN1))
  213. (defun C:FLASH-FP-ALLOFF ()
  214. (command
  215. "LWDISPLAY"
  216. "OFF"
  217. "DELAY"
  218. "200"
  219. "-layer"
  220. "LWEIGHT"
  221. "DEFAULT"
  222. "*"
  223. ""
  224. )
  225. (PRIN1))
  226. ;;;;;;;;;;;;;;;;;;;;;;
  227. ;End Flash Fire Protection
  228. ;;;;;;;;;;;;;;;;;;;;;;

 
谢谢
肖恩
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:14:09 | 显示全部楼层
快速显示切换。。。
 
  1. (defun c:LWT (/ *error* lwd)
  2. (defun *error* (msg)
  3.    (and lwd (setvar 'lwdisplay lwd))
  4.    (if (and msg (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*QUIT*,")))
  5.      (princ (strcat "\nError: " msg))
  6.    )
  7. )
  8. (setq lwd (getvar 'lwdisplay))
  9. (while t
  10.    (setvar 'lwdisplay (abs (1- (getvar 'lwdisplay))))
  11.    (command "_.delay" 200)
  12. )
  13. (*error* nil)
  14. (princ)
  15. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 17:06 , Processed in 0.375566 second(s), 72 queries .

© 2020-2025 乐筑天下

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