XY 发表于 2007-1-19 13:41:00

[求助] 怎么样得到n个实体 拷贝后的选择集?

<p>怎么样得到n个实体 拷贝后的选择集?不是那种 用原选择集中检索出实体 分别复制 再用entlast得到?有简单电的方法吗?</p>

BDYCAD 发表于 2007-1-19 14:08:00

參考
(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)
)
)

XY 发表于 2007-1-19 15:44:00

<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>

狂刀无痕 发表于 2007-1-19 17:48:00

<p>如果想玩一玩,可以写成反应器。</p><p>只要有拷贝动作,自动把最近一次拷贝新生成的实体放到某个变量。方便调用</p>

XY 发表于 2007-1-22 10:31:00

反应器?不懂 看lisp里好像有 还没学到

tender138 发表于 2018-6-4 14:28:51

本帖最后由 tender138 于 2018-6-4 14:31 编辑

发错了,不好意思

yshf 发表于 2018-6-5 10:09:35

(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]
查看完整版本: [求助] 怎么样得到n个实体 拷贝后的选择集?