明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 940|回复: 2

[提问] 选线快速对齐,支持文字-块-线段,捕捉点不能释放,求完善

[复制链接]
发表于 2022-8-18 10:50:33 | 显示全部楼层 |阅读模式
本帖最后由 andyzha 于 2023-5-15 08:50 编辑

偶得一个快速对齐的程序,有个小bug,使用过程中,有时候不能释放捕捉参数,症状就是把所有捕捉点都清除了,求完善,不胜感激。
多谢hhh454点拨,已经修改完善。
  1. (defun c:TT( / )
  2.   (vl-load-com)
  3. ;错误恢复捕捉
  4. (defun *MYERR* (MSG)
  5. (setvar "CMDECHO" CMD_OLD)
  6. (setvar "OSMODE" OS_OLD)
  7. (setq *ERROR* *OLDERR*)
  8. (if (= MSG "完美退出。谢谢使用。")
  9. (princ (strcat "\\n>>>" MSG))
  10. (princ "\\n>>>虽然中途退出了,对象捕捉已经被恢复。")
  11. )
  12. (princ)
  13. )
  14. (setq *OLDERR* *ERROR*
  15. *ERROR*  *MYERR*
  16. OS_OLD   (getvar "OSMODE")
  17. CMD_OLD  (getvar "CMDECHO")
  18. )
  19. ;----开始系统变量备份----
  20. (setvar "cmdecho" 0);_关闭命令提示
  21. (command "._undo" "_begin")
  22. (setq osmode_bak (getvar "osmode"));_记录捕捉
  23. (setvar "osmode" 0);_关闭捕捉,代码需要用捕捉就删除这行,也可以按照下面的增加捕捉的代码,2选一
  24. (setq clayer_bak (getvar "clayer"));_记录当前图层
  25.         (setq ss (ssget))
  26.         (setq e1  (entsel "\n选择要对齐的边线"))
  27.         (while (= e1 nil) (setq e1 (entsel "\n选择要对齐的边线")))
  28.         (setq pt1 (osnap (cadr e1) "mid"))
  29.         (setq pt2 (osnap (cadr e1) "nea"))
  30.         (setq e2 (entsel "\n对齐参照线"))
  31.         (while (= e2 nil) (setq e2 (entsel "\n对齐参照线")))
  32.         (setq pt3 (osnap (cadr e2) "mid"))
  33.         (setq pt4 (osnap (cadr e2) "nea"))
  34.         (command "_.align" ss "" pt1 pt3 pt2 pt4 "" "n")
  35. (setvar "osmode" osmode_bak);_还原捕捉
  36. (setvar "clayer" clayer_bak);_还原图层
  37. (command "._undo" "_end")
  38. (setvar "cmdecho" 1);_打开命令提示
  39. (princ);_关闭程序返回值
  40. );_程序结束


发表于 2022-8-18 11:09:31 | 显示全部楼层
备份捕捉,出错后,恢复捕捉
lisp的开头和结尾写法分享-带错误恢复捕捉 - AutoLISP/Visual LISP 编程技术 - AutoCAD论坛 - 明经CAD社区 - Powered by Discuz!  http://bbs.mjtd.com/thread-182000-1-1.html
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-8-18 11:17:26 | 显示全部楼层
hhh454 发表于 2022-8-18 11:09
备份捕捉,出错后,恢复捕捉
lisp的开头和结尾写法分享-带错误恢复捕捉 - AutoLISP/Visual LISP 编程技术  ...

多谢,修改过来了,测试完美。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 14:20 , Processed in 0.172097 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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