找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 725|回复: 2

[LISP函数]:求 获得封闭多义线包围的对象集 最快捷的方法?

[复制链接]
发表于 2006-8-28 21:21:17 | 显示全部楼层 |阅读模式

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

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

×
(setq ent (car (entsel "\n选择封闭多义线:")))后,
如何用开销最省的方法获得该封闭多义线包住的实体选择集,
要求最后用SSGET WP的方法.
xiexie.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-8-31 18:57:48 | 显示全部楼层
看看这个能不能满足你的要求

  1.   [FONT=courier new]
  2. ;;;--------------------------------------------------------
  3. ;;;函数: c:SW
  4. ;;;--------------------------------------------------------
  5. ;;;编制日期:2006.4.1
  6. ;;;编制者  :hj
  7. ;;;函数说明:本函数选择用户指定多边形内的实体(注意多边形要在当前视口内)。
  8. ;;;--------------------------------------------------------
  9. (DEFUN c:sw (/ ENAME #MYLIST SS1)
  10.   (princ "\n 选择用户指定多边形内的实体(注意多边形要在当前视口内)。")
  11.   (SETQ ename (CAR (ENTSEL "\n请选择一个多边形:")))
  12.   (SETQ #mylist (getpllist ename))
  13.   (SETQ ss1 (SSGET "_WP" #mylist))
  14.   (SSSETFIRST NIL ss1)
  15.   (SETQ ss1 ss1)
  16. ) ;_ 结束defun
  17. ;;;--------------------------------------------------------
  18. ;;;函数: c:CW
  19. ;;;--------------------------------------------------------
  20. ;;;编制日期:2006.4.1
  21. ;;;编制者  :hj
  22. ;;;函数说明:本函数选择用户指定多边形内以及与多边形相交的实体
  23. ;;;         (注意多边形要在当前视口内)。
  24. ;;;--------------------------------------------------------
  25. (DEFUN c:cw (/ ENAME #MYLIST SS1)
  26.   (princ "\n 选择用户指定多边形内以及与多边形相交的实体(注意多边形要在当前视口内)")
  27.   (SETQ ename (CAR (ENTSEL "\n请选择一个多边形:")))
  28.   (SETQ #mylist (getpllist ename))
  29.   (SETQ ss1 (SSGET "_CP" #mylist))
  30.   (SSSETFIRST NIL ss1)
  31.   (SETQ ss1 ss1)
  32. ) ;_ 结束defun
  33. ;;;--------------------------------------------------------
  34. ;;;要用到一个子函数
  35. ;;;--------------------------------------------------------
  36. ;;;--------------------------------------------------------
  37. ;;;函数: getPlList                               
  38. ;;;--------------------------------------------------------
  39. ;;;说明:本函数提取多段线的各端点坐标值构成一张表并返回
  40. ;;;               
  41. ;;;               
  42. ;;;编制者:高老师               
  43. ;;;--------------------------------------------------------

  44. (DEFUN getPlList (#entity)
  45.   (SETQ obj (ENTGET #entity))
  46.   (SETQ lw_t8 (CDR (ASSOC 8 obj)))
  47.   (SETQ obj_1 nil)
  48.   (WHILE (/= (ASSOC 10 obj) nil)
  49.     (IF        (AND (= (CAAR obj) 10)
  50.              (NOT (EQUAL (CDAR obj) (LAST obj_1) 0.001))
  51.         )
  52.       (SETQ obj_1 (APPEND obj_1 (LIST (CDAR obj))))
  53.     )                                        ;生成坐标表同时去掉相邻重点,不带10
  54.     (SETQ obj (CDR obj))
  55.   )
  56.   (SETQ obj obj_1)
  57.   (IF (EQUAL (CAR obj) (LAST obj) 0.0001)
  58.     (SETQ obj (REVERSE (CDR (REVERSE obj))))
  59.   )
  60.   ;;判断首闭
  61.   (SETQ #temp obj)
  62. )
  63. ;;end defun

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

使用道具 举报

已领礼包: 7234个

财富等级: 富甲天下

发表于 2006-8-31 21:21:34 | 显示全部楼层
if the ExpressTools available

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 11:25 , Processed in 0.366344 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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