lazybones 发表于 2008-2-27 09:45:00

如何获得某个command后生成的所有物体

<p>想获得copy命令后新生成物体的选择集,还有连续标注(dimcontinue)生成的标注选择集</p><p>或者,有无类似的系统变量,象undo那样先设置一个标志,以后就可以获得标识之后新生成物体的选择集?</p>

jxphklibin 发表于 2009-1-19 13:16:00

<p>如果,(entlast)返回nil,那么该函数就不能执行了.<br/></p>

caoyin 发表于 2008-2-27 13:03:00

;; [功能] 获取在图元 en 之后产生的图元的选择集
;; [参数] en----图元名
;; [返回] 选择集
;; [测试]1.(setq ent (entlast))
;;         执行创建图元的命令,如 LINE,BOUNDARY
;;         (setq lst (lt:ss-entnext ent))
;;       2.(setq s (lt:ss-entnext (car(entsel))))
(defun lt:ss-entnext (en / ss)
(if en
    (progn
      (setq ss (ssadd))
      (while (setq en (entnext en)) (ssadd en ss))
      (if (zerop (sslength ss)) (setq ss nil))
      ss
    )
    (ssget "_x")
)
)
(setq en (entlast))
(command ....)
(lt:ss-entnext en))

ZZXXQQ 发表于 2009-1-19 20:43:00

jxphklibin发表于2009-1-19 13:16:00static/image/common/back.gif如果,(entlast)返回nil,那么该函数就不能执行了.

<p>你试一下不就知道了。</p>

jxphklibin 发表于 2009-1-19 22:08:00

不是说不能执行,我是说选择的不是所需要的,而是 <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/ssget.htm" target="_black"><font color="#0000ff">ssget</font></a>
        <font color="#ff00ff">"_x"</font><font color="#ff0000">)</font><br/>

ZZXXQQ 发表于 2009-1-19 23:57:00

jxphklibin发表于2009-1-19 22:08:00static/image/common/back.gif不是说不能执行,我是说选择的不是所需要的,而是 (ssget&nbsp;\"_x\")

<p>如果(entlast)为nil,则图中未画任何实体。所以可用(ssget "X")取得LISP命令执行后生成的所有实体。</p>

布朗运动 发表于 2016-1-28 15:10:56

caoyin 发表于 2008-2-27 13:03 static/image/common/back.gif
(setq en (entlast))
(command ....)
(lt:ss-entnext en))

(lt:ss-entnext en))最右边多了一个括号,感谢版主提供方法。

vladimir 发表于 2020-12-15 14:31:44

怎么解决的,能不能提供实例。
页: [1]
查看完整版本: 如何获得某个command后生成的所有物体