找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4591|回复: 14

[LISP函数]:如何直接获取copy后的选择集?

[复制链接]
发表于 2003-2-25 11:21:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
如何直接获取copy后的选择集?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-2-25 11:32:49 | 显示全部楼层
请讲得更明白一点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-2-25 12:22:11 | 显示全部楼层
在copy后用:
(setq a (ssget "P"))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-2-25 13:31:04 | 显示全部楼层
你这不对呀! (setq a (ssget "P") 得到的a 仍是copy前的选择集? 我要的是copy后的选择集??
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-2-25 13:49:41 | 显示全部楼层
你的目的是什么呢?你说的copy“后”的选择集是什么意思?
我说的不就是copy后产生的选择集吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-2-25 13:54:00 | 显示全部楼层
最初由 lsjjm 发布
[B]你这不对呀! (setq a (ssget "P") 得到的a 仍是copy前的选择集? 我要的是copy后的选择集?? [/B]

  1.   [FONT=courier new]
  2. (setq ent (entlast))
  3. COPY.....
  4. (setq SSET (ssadd))
  5. (while (setq ent (entnext ent))
  6.   (ssadd ent SSET)
  7.   )
  8.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-2-25 14:06:13 | 显示全部楼层

  1. (setq a (ssget "p")) ;拷贝后的选集
  2. (setq n 0)
  3. (setq n1 (sslenght a));获得选集个数
  4. (while (= n n1)
  5. (setq ss (ssname n));获得选集中各个图元
  6. ……           ;对各个图元进行操作   
  7. (setq n (+ n1))
  8. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-2-25 14:38:40 | 显示全部楼层
谢谢二位, 我说的是“直接”既不用SSADD一个一个地加?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-2-25 18:44:42 | 显示全部楼层
最初由 lsjjm 发布
[B]谢谢二位, 我说的是“直接”既不用SSADD一个一个地加? [/B]


程序就是要用函数、代码组合完成特定的工作,你如果只用LISP,那么你只能设置好标记后,用SSADD加出来。没有别的办法。因为系统不可能提供这样的函数,因为COPY行为是用户端的,随机的事件。

为什么你偏要“直接”呢?就是LISP核心里面加上这样的函数,也是要很多代码结合,现在你自己写出来,未尝不可吧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-2-26 05:23:14 | 显示全部楼层
好象不是这个意思. 如果lisp确实没有这个功能的话, 无疑是一个缺陷.
因为时间, 假如该选择集很大, 用move ,rotate等可以把选择集ss整个(不是一个一个的)移动后再旋转, 用的就是这个ss标记. 用(command "copy" ss "" p1 p2 "") 可以直接生成一个新选择集(不使用"command "copy" (ssname ss n) "" p1 p2 ""), 但如何得到新选择集的标记?  这便是我的问题.
不知说清楚没有?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-2-26 08:25:50 | 显示全部楼层
最初由 lsjjm 发布
[B]好象不是这个意思. 如果lisp确实没有这个功能的话, 无疑是一个缺陷.
因为时间, 假如该选择集很大, 用move ,rotate等可以把选择集ss整个(不是一个一个的)移动后再旋转, 用的就是这个ss标记. 用(command "copy" ss ""... [/B]

老兄很有个性。
****************************
还有一个办法,设计一个命令反应器,命令结束时触发,回调中用:

  1.   [FONT=courier new]
  2.   
  3. (setq SSET (ssadd))
  4. (while (setq ent (entnext ent))
  5.   (ssadd ent SSET)
  6.   )
  7. (setq ent (entlast))
  8.   [/FONT]


SSET和ENT为全局变量。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-2-26 17:45:35 | 显示全部楼层

突然想到,如何将已有选择集变为“前一个”?

别告诉我用“原位移动” !!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2016-11-16 17:16:12 | 显示全部楼层
  1. (setq lastent(entlast))  ;执行之前数据库最后一个实体作为标记
  2.      (command "copy" ent "" pt1 pt2)
  3.       (setq lst (ssadd))
  4.      (while(setq lastent (entnext lastent)) ;依次查找标记之后的实体 直到最后
  5.            (setq lst(ssadd lastent lst))  ;放入一个选择中
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2016-11-16 17:18:55 | 显示全部楼层
本帖最后由 gamexia@163.com 于 2016-11-16 17:20 编辑

执行之前动作前,把最后一个实体作为标记
执行动作之后 循环用 entnext 查找

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2019-6-6 01:23:50 | 显示全部楼层
我一直找的这个功能,也困扰我很久了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-14 20:46 , Processed in 0.455161 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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