找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 882|回复: 8

[LISP程序]:选择集--返回与点击曲线首尾相连的所有曲线

[复制链接]
发表于 2004-7-9 06:03:38 | 显示全部楼层 |阅读模式

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

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

×
选择集--返回与点击曲线首尾相连的所有曲线
[php]
(defun c:test ( )
  (setq ss (ssadd))
  (setvar "osmode" 0)
  (setq a (car (entsel)) a0 a)
  (ptt a)
  (setq p1 pt1 p2 pt2)
  (foreach i (list p1 p2)
    (setq loop t)
    (while loop
      (setq ee (ssget "c" (polar i 0.7853 0.0001)(polar i 3.9267 0.0001)))
      (cond ((> (sslength ee) 2)
        (acet-ui-message "Too many Line!" "SmartTool" 48)
        (quit))
      )
      (if (> (sslength ee) 1)
        (progn
          (ssdel a ee)
          (ptt (ssname ee 0))
          (ssadd (ssname ee 0) ss)
          (if (equal pt1 i 0.001)(setq i pt2)(setq i pt1))
          (setq a (ssname ee 0))
        )
        (setq loop nil)
      )
    )
    (setq a a0)
  )
  (ssadd a0 ss)
)
(defun ptt (ent)
  (setq pt1 (vlax-curve-getstartPoint ent))
  (setq pt2 (vlax-curve-getEndPoint ent))
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-7-9 08:43:49 | 显示全部楼层
如果線段連接方式為樹枝狀呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-7-9 10:33:30 | 显示全部楼层
最初由 f5612140 发布
[B]如果線段連接方式為樹枝狀呢? [/B]

提示警告tui出:
    (cond ((> (sslength ee) 2)
        (acet-ui-message "Too many Line!" "SmartTool" 48)
        (quit))
      )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-9 11:07:11 | 显示全部楼层
最初由 lsjjm 发布
[B]
提示警告tui出:
    (cond ((> (sslength ee) 2)
        (acet-ui-message "Too many Line!" "SmartTool" 48)
        (q... [/B]


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

使用道具 举报

发表于 2004-7-9 20:48:50 | 显示全部楼层
(polar i 0.7853 0.0001) (polar i 3.9267 0.0001)
0.7853 与3.9267有什么用
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-7-10 13:14:03 | 显示全部楼层
最初由 zj-11 发布
[B](polar i 0.7853 0.0001) (polar i 3.9267 0.0001)
0.7853 与3.9267有什么用 [/B]

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

使用道具 举报

发表于 2004-7-11 04:44:40 | 显示全部楼层
借花献佛,帮lsjjm完善了一下(不会有意见吧?:) )
1。设置osmode恢复
2。阈值提示
3。预选选集(只是为了方便看到结果)
修改后,可以按阈值选择端点在阈值范围内的实体(不必首尾相连!)
但限于原程序的方法,阈值只能以正方对角的一半来取(非模拟圆形,因此有些在阈值内的实体不一定选得到,但操作时可以适当放宽阈值来取得符合要求的选集)

本想发个演示,不能上传:(

[php]
(defun c:sbe (/ ss os a a0 d p1 pt1 p2 pt2 loop ee ) ;sbe = select by end to end
  (setq ss (ssadd)
        os (getvar "osmode"))
  (setvar "osmode" 0)
  (setq a (car (entsel))
        a0 a
        d  (getdist "\n阈值<0>:"))
  (if (not d)(setq d 1e-4))
  (ptt a)
  (setq p1 pt1 p2 pt2)
  (foreach i (list p1 p2)
    (setq loop t)
    (while loop
      (setq ee (ssget "c" (polar i 0.7853 d)(polar i 3.9267 d)))
      (cond ((> (sslength ee) 2)
        (acet-ui-message "Too many Line!" "SmartTool" 48)
        (quit))
      )
      (if (> (sslength ee) 1)
        (progn
      (ssdel a ee)
      (ptt (ssname ee 0))
          (ssadd (ssname ee 0) ss)
          (if (equal pt1 i d)(setq i pt2)(setq i pt1))
          (setq a (ssname ee 0))
        )
        (setq loop nil)
      )
    )
    (setq a a0)
  )
  (ssadd a0 ss)
  (setvar "osmode" os)
  (sssetfirst ss ss)
)
(defun ptt (ent)
  (setq pt1 (vlax-curve-getstartPoint ent))
  (setq pt2 (vlax-curve-getEndPoint ent))
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-14 09:31:11 | 显示全部楼层
建议不要用SSGET构造的选择集来进行判断,因为当图形缩小到一定程度,会有错误的判断,我吃过这样的亏。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-7-15 00:21:18 | 显示全部楼层
http://www.xdcad.net/forum/showthread.php?s=&threadid=211384

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 06:52 , Processed in 0.177926 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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