[求助] 怎么样得到n个实体 拷贝后的选择集?
<p>怎么样得到n个实体 拷贝后的选择集?不是那种 用原选择集中检索出实体 分别复制 再用entlast得到?有简单电的方法吗?</p> 參考(defun c:test()
(setq p1 (getpoint "\n p1:"))
(setq p2 (getpoint "\n p2:"))
(command "line" p1 p2 "")
(setq ent (entlast))
;(VL-CMDF ".EXPLODE" ent)
(command "array" ent "" "r" "3" "4" "100" "150")
;array
(setq ss (ssadd))
(ssadd ent ss)
(while (setq ent (entnext ent))
(ssadd ent ss)
)
) <p>谢谢bdycad斑竹!</p><p>原来我也用到了</p><p><font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/setq.htm" target="_black"><font color="#0000ff">setq</font></a> ss <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/ssadd.htm" target="_black"><font color="#0000ff">ssadd</font></a><font color="#ff0000">)</font><font color="#ff0000">)</font><br/><font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/ssadd.htm" target="_black"><font color="#0000ff">ssadd</font></a> ent ss<font color="#ff0000">)</font><br/><font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/while.htm" target="_black"><font color="#0000ff">while</font></a>
<font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/setq.htm" target="_black"><font color="#0000ff">setq</font></a> ent <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/entnext.htm" target="_black"><font color="#0000ff">entnext</font></a> ent<font color="#ff0000">)</font><font color="#ff0000">)</font><br/><font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/ssadd.htm" target="_black"><font color="#0000ff">ssadd</font></a> ent ss<font color="#ff0000">)</font><br/>可是老是不对 !最后看了你的程序后 才大雾,我的(entlast) 语句用错了地方应该在command “copy”之前 我用在了后面</p> <p>如果想玩一玩,可以写成反应器。</p><p>只要有拷贝动作,自动把最近一次拷贝新生成的实体放到某个变量。方便调用</p> 反应器?不懂 看lisp里好像有 还没学到 本帖最后由 tender138 于 2018-6-4 14:31 编辑
发错了,不好意思
(defun c:tcc3()
(setq AcadDoc (vla-get-ActiveDocument (vlax-get-acad-object)))
(if (setq ssa (ssget ))
(If (setq p1 (getpoint "\n指定基准点:"))
(if (setq p2 (getpoint p1 "\n指定第2点:"))
(progn
(setq ssb (ssadd)) ;新建一空选择集ssb
(vlax-for obj (vla-get-ActiveSelectionSet AcadDoc) ;对选择集ssa中的图元逐一进行复制
(setq Newobj (vla-Copy obj))
(vla-Move Newobj (vlax-3d-point p1) (vlax-3d-point p2))
(ssadd (vlax-vla-object->ename Newobj) ssb) ;将复制后产生的图元逐一加入到选择集ssb中
)
)
)
)
)
(vlax-release-object AcadDoc)
(setq AcadDoc nil)
(princ)
)
页:
[1]