明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1966|回复: 4

[求助]選擇集問題

[复制链接]
发表于 2003-5-12 11:10:00 | 显示全部楼层 |阅读模式
(ssget "p" '(( ....)))為獲取最近一次選集范圍內圖元,我想循環抓取(ssget)選集范圍內圖元,該如何處理??
发表于 2003-5-12 21:09:00 | 显示全部楼层

不知道是不是这个意思

...
(setq i 0)
(while (< i (sslength (setq ss (ssget "_P"))))
   (setq current_entity (ssname ss i))
   ...
   ...;;;this lines is for your processing entity
   (setq i (1+ i))
)
...
不知道是不是这个意思
 楼主| 发表于 2003-5-13 14:05:00 | 显示全部楼层

我想要的是每次都抓取第一次選擇集內的圖元

发表于 2003-5-13 21:11:00 | 显示全部楼层

你可以这样么?

首先,我不知道你为什么会有这个想法,这样做有意义么,如果程序逼你这样写的话,我想你应该在程序别的地方多作些文章,比如,打开一个dwg文件,你不小心移动了一个实体,你有必要保存这个选择集么,不解
不过,如果你应是要这样作,也有办法的,lisp里虽数据类型不多,但有一种数据类新是用来保存选择集的,你在程序加载的时候就生成一个公共变量,然后,你的程序运行到选择实体时,判断一下该公共变量是否为空,如果是,赋值,否则,不管,以后你要操作这个选择集是,用这个公共变量访问,这是用自己的程序操作选择集,如果用cad自带的命令,如copy,move,也会产生一个选择集,如果你想捕获这个选择集的话,那就很难了,要用到反应器,

说了这么多,我现我都是白说了,不知道你要解决什么问题,但我想说,如果你想用一个很简单的句子达到你的效果,估计不可能,ssget没有这个参数,如果程序的思路简单,不如说来听听,还有,不知道你为什么喜欢用繁体,
发表于 2003-5-14 08:16:00 | 显示全部楼层

這種方法我用過很多次了!

..........................
(setq ss (ssget))
(setq ent_circle (ssget "p" '(( 0 . "circle"))))
(command "_.select" ss "")
(setq ent_text (ssget "p" '(( 0 . "text"))))
(command "_.select" ss "")
(setq ent_line (ssget "p" '(( 0 . "line"))))
.....................
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 11:56 , Processed in 0.174564 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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