nihaogemen 发表于 2020-4-24 15:34:54

如何实行一次性选择多个实体, 然后达到 nentsel 的效果

本帖最后由 nihaogemen 于 2020-4-24 17:15 编辑

比如 选择一个实体
      (setq ent (car (entsel)))
         然后对 ent 作后续处理

要一次性选择多个实体时      
(setq ss1 (ssget)
            count1 0
          emax (sslength ss1)
);setq
(while (< count1 emax)
      (setq
         ent (ssname ss1 count1)         
      )

      然后对ent作后续处理
这个我会。

对于某些实体 比如块 三维PL线 标注等
如果只有一个实体,那可以用
(setq ent (car (nentsel)))
这个我也会,
如果一次性选择多个实体,然后要达到 nentsel 的效果 该怎么办?
请大咖指导一下。

start4444 发表于 2020-4-24 15:55:08

你想说啥?标点都没有,叫人猜谜语吗

kwok 发表于 2020-4-24 18:04:42

(ssget ":s")      ???

雨的节奏 发表于 2020-4-25 08:19:45

他是想带提示选择集、、、用NET写个函数来用吧

gaics 发表于 2020-4-25 09:42:01

本帖最后由 gaics 于 2020-4-25 12:04 编辑

不如直接说出你想要的结果,比如说你用(nentsel)的目的是什么,想要得到什么。
以下代码可以多次连续使用nentsel命令点选对象,直至退出命令,同时以表的形式输出所有nentsel的结果。
(defun c:nentsel (/ ent lst)
(setq lst '())
(while (setq ent (nentsel))
    (setq lst (cons ent lst))
    (princ "请继续选择,如已完成请按空格键\\回车键\\鼠标右键\\鼠标左键空选退出...")
)
(princ lst)
(princ)
)


bai2000 发表于 2023-5-27 17:35:16

楼上的能做成子函数么?
页: [1]
查看完整版本: 如何实行一次性选择多个实体, 然后达到 nentsel 的效果