明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 969|回复: 0

[源码] entsel循环处理(不退出程序的情况下返回error信息)

  [复制链接]
发表于 2021-7-14 15:35 | 显示全部楼层 |阅读模式
本帖最后由 yjtdkj 于 2021-7-14 15:36 编辑

刚刚研究出来,需要的拿去,不谢~~
  1. ;|-----------------------------------------------------
  2. 本函数可以让entsel函数返回4类信息,并分别处理
  3. 1.如果选中对象,则与entsel返回的内容一致,继续循环执行
  4. 2.如果鼠标对到空白处,则返回nil,则有提示,仍然循环执行
  5. 3.如果按空格键,则返回"",返回所有选中的图层
  6. 4.如果按Esc键,则退出并返回错误信息
  7. -------------------------------------------------------
  8.                                       yjtdkj.2021.07.14
  9. |;
  10. (DEFUN c:tt (/ ENL ENLAYER LST SS SSL SSLST)
  11.   (defun yj-ss2lst (ss / i l)
  12.       (if ss
  13.   (repeat  (setq i (sslength ss))
  14.     (setq l (cons (ssname ss (setq i (1- i))) l))
  15.   )
  16.       )
  17.     )
  18.   (defun doENTSEL ()
  19.     (SETQ enl (VL-CATCH-ALL-APPLY 'ENTSEL
  20.           (list "\n选择任意对象以获取执行图层<空格确认返回>:")
  21.         )
  22.     )
  23.     (if  (VL-CATCH-ALL-ERROR-P enl)
  24.       (vl-catch-all-error-message enl)
  25.       enl
  26.     )
  27.   )
  28.   (initget " ")
  29.   (while (/= (type
  30.          (doENTSEL)
  31.        )
  32.        'STR
  33.    )
  34.     (IF  (= enl NIL)
  35.       (PRINC "\n** 没有对象被选择 **")
  36.       (PROGN
  37.   (SETQ enLayer (CDR (ASSOC 8 (ENTGET (CAR enl)))))
  38.   (setq lst (cons enLayer lst))
  39.   (setq ss (ssget "X" (list (cons 8 enLayer))))
  40.   (setq ssl (yj-ss2lst ss))
  41.   (foreach n ssl (redraw n 3)) ;亮显图层内所有对象
  42.         (setq sslst (append ssl sslst))
  43.       )
  44.     )
  45.     (initget " ")
  46.   )
  47.     (foreach n sslst (redraw n 4)) ;取消亮显
  48.   (IF (= enl "")
  49.     lst
  50.     enl
  51.   )
  52. )

评分

参与人数 1明经币 +1 收起 理由
USER2128 + 1 赞一个!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-7 14:09 , Processed in 0.270626 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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