明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 672|回复: 13

[提问] 怎么获取复制后的图元,用程序,建立一个新的....

[复制链接]
发表于 2024-12-19 12:01:04 | 显示全部楼层 |阅读模式
已知选择集A,将选择集A复制到另外一个处,怎么获取复制后的图元,并用程序,建立一个新的选集B。
在此谢谢各位大神了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

发表于 2024-12-19 21:09:16 | 显示全部楼层
  1. (defun SsEntnext (en / ss)
  2.   "SsEntnext 返回某图元后的图元集并设为当前 (SsEntnext en)"
  3.   (setq ss (ssadd))
  4.   (while (setq en (entnext en)) (ssadd en ss))
  5.   (if (and ss (> (sslength ss) 0))
  6.     (progn (command "select" ss "") (ssget "p"))
  7.   )
  8. )

  9. (defun c:tt ()
  10.   (setq s0 (entlast))
  11.   (repeat 10 (command "line" "non" '(0 0) "non"  '(1000 1000) ""))
  12.   (setq ss (SsEntnext s0))
  13.   (sssetfirst nil ss)
  14.   (princ)
  15. )
回复 支持 反对

使用道具 举报

发表于 2024-12-19 14:27:22 | 显示全部楼层
本帖最后由 e2002 于 2024-12-19 14:29 编辑
caoyongjun 发表于 2024-12-19 12:41
感谢,我的意思是不用鼠标点选,实现复制后的图元构成一个新的选集B,只能提供一个选集A的条件。

选择集实际上只是在用户与 AutoCAD 交互时选择对象的集合,对于用户写的程序来说,通常都是转换为图元名或图元对象的 List, 然后遍历处理。对象的 Copy 操作,是有返回值的,返回值就是 Copy出来的新的对象的 objID,显然也是遍历后创建出新的一系列的元素为 objID 的 newList, 你只需要处理这个 newList即可。除非你是在写一个子函数,需要有一个类型为 SelectionSet 的返回值。
回复 支持 反对

使用道具 举报

发表于 2024-12-19 12:22:09 | 显示全部楼层
  1. ;取得copy后梁截面选择集
  2. (setq enlast (entlast))
  3. (setq ss0 (ssget))
  4. (setq ss1 (ssadd))
  5. (command "copy" ss0 "" "non" pt0 "non" pt1)
  6. (while
  7.   (setq enlast (entnext enlast))
  8.   (ssadd enlast ss1)
  9. )


回复 支持 反对

使用道具 举报

发表于 2024-12-19 12:11:29 | 显示全部楼层
本帖最后由 飞雪神光 于 2024-12-19 12:15 编辑

(entlast) 和  (entnext ty) 配合收集  明经上看到过好多
如何获得某个command后生成的所有物体 - AutoLISP/Visual LISP 编程技术 - AutoCAD论坛 - 明经CAD社区 - Powered by Discuz! (mjtd.com)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-12-19 12:41:38 | 显示全部楼层

感谢,我的意思是不用鼠标点选,实现复制后的图元构成一个新的选集B,只能提供一个选集A的条件。

点评

他是在告诉你,此问题的答案( AutoLISP 是如何做的)。  发表于 2024-12-19 14:28
回复 支持 反对

使用道具 举报

发表于 2024-12-19 14:20:55 | 显示全部楼层

提供一个选集A的条件
不用鼠标点选

copySSA-->SSB(新的选集B)


换个思路
原地 copy ssA
move ssA 至新位置
==SSB

有了SSB想处理什么?
回复 支持 反对

使用道具 举报

发表于 2024-12-19 20:53:22 | 显示全部楼层
caoyongjun 发表于 2024-12-19 12:41
感谢,我的意思是不用鼠标点选,实现复制后的图元构成一个新的选集B,只能提供一个选集A的条件。

你这样说,把大家整得一头雾水。不用鼠标点选,那选择集A,是怎么来的?
回复 支持 反对

使用道具 举报

发表于 2024-12-19 20:54:58 | 显示全部楼层
同样的问题,你发了好几个帖了,至今没有得到答案,跟你表达能力有很大的关系。
回复 支持 反对

使用道具 举报

发表于 2024-12-19 21:06:01 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-1-22 21:53 , Processed in 0.162167 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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