乐筑天下

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

[编程交流] 命令反应堆不工作

[复制链接]

76

主题

312

帖子

254

银币

后起之秀

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

铜币
390
发表于 2022-7-5 16:29:11 | 显示全部楼层 |阅读模式
大家好,
 
我在互联网上找到了下面的代码,
它将文字和图案填充对象强制放置到某个图层。
(更改图层,生成对象,再更改回来)。
出于某种原因,XATTACH命令确实会将外部参照放置在所需的图层上,但不会将当前图层设置回以前的设置。。。为什么XATTACH的行为不同于文本命令???
 
  1. (prompt " \nLoad Only....Do NOT Run...")
  2. (vl-load-com)
  3. ;****************************************
  4. (vlr-command-reactor
  5. nil '((:vlr-commandWillStart . startCommand)))
  6. (vlr-command-reactor
  7. nil '((:vlr-commandEnded . endCommand)))
  8. (vlr-command-reactor
  9. nil '((:vlr-commandCancelled . cancelCommand)))
  10. ;******************************************************
  11. (defun startCommand (calling-reactor startcommandInfo /
  12.              thecommandstart)
  13. (setq OldLayer (getvar "CLAYER"))
  14. (setq thecommandstart (nth 0 startcommandInfo))
  15. (cond
  16. ((= thecommandstart "XATTACH") (setvar "CLAYER" "4"))
  17. ((= thecommandstart "MTEXT") (setvar "CLAYER" "4"))
  18. ((= thecommandstart "DTEXT") (setvar "CLAYER" "4"))
  19. ((= thecommandstart "HATCH") (setvar "CLAYER" "6"))
  20. ((= thecommandstart "BHATCH") (setvar "CLAYER" "6"))
  21. );cond
  22. (princ)
  23. );defun
  24. ;****************************************************
  25. (defun endCommand (calling-reactor endcommandInfo /
  26.            thecommandend)
  27. (setq thecommandend (nth 0 endcommandInfo))
  28. (cond
  29. ((= thecommandend "XATTACH") (setvar "CLAYER" OldLayer))
  30. ((= thecommandend "MTEXT") (setvar "CLAYER" OldLayer))
  31. ((= thecommandend "DTEXT") (setvar "CLAYER" OldLayer))
  32. ((= thecommandend "HATCH") (setvar "CLAYER" OldLayer))
  33. ((= thecommandend "BHATCH") (setvar "CLAYER" OldLayer))
  34. );cond
  35. (princ)
  36. );defun
  37. ;********************************************************
  38. (defun cancelCommand (calling-reactor cancelcommandInfo /
  39.               thecommandcancel)
  40. (setq thecommandcancel (nth 0 cancelcommandInfo))
  41. (cond
  42. ((= thecommandcancel "XATTACH") (setvar "CLAYER" OldLayer))
  43. ((= thecommandcancel "MTEXT") (setvar "CLAYER" OldLayer))
  44. ((= thecommandcancel "DTEXT") (setvar "CLAYER" OldLayer))
  45. ((= thecommandcancel "HATCH") (setvar "CLAYER" OldLayer))
  46. ((= thecommandcancel "BHATCH") (setvar "CLAYER" OldLayer))
  47. );cond
  48. (princ)
  49. );defun
  50. ;*********************************************************
  51. (princ)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 13:10 , Processed in 0.359370 second(s), 56 queries .

© 2020-2025 乐筑天下

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