明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2975|回复: 5

[已解答] 用ssget函数怎么创建一个圆形的选择集?

[复制链接]
发表于 2014-8-1 15:51:24 | 显示全部楼层 |阅读模式
如题,如何用ssget函数选择指定点一定距离以内的图元呢?


该贴已经同步到 NEU_XWN的微博
发表于 2014-8-1 16:43:23 | 显示全部楼层
  1. ;;圆形转PL点表 cen 圆心 rad半径 divs分段数 fuzz外偏值
  2. ;;code by edata 2014-8-1
  3. (defun sk_c->PL(cen rad divs fuzz / i ang lst)
  4.       (setq i        (/ (* pi 2) divs)
  5.             ang        0.0
  6.             lst        '()
  7.       )
  8.       (repeat divs
  9.         (setq lst (cons (polar cen ang (+ rad fuzz)) lst)
  10.               ang (+ ang i)
  11.         )
  12.       )
  13.       lst
  14.     )
  15. ;;测试
  16. (defun c:tt(/ ss)
  17.   (and(setq ss(ssget "Wp" (sk_c->PL '(0 0 0) 10 500 0.1)))
  18.   (sssetfirst nil ss))
  19.   )
回复 支持 2 反对 0

使用道具 举报

发表于 2014-8-1 18:00:00 | 显示全部楼层
  1. ;; 需要e派工具箱(XCAD)的支持
  2. ;; 指定半径的圆形选择集
  3. (defun c:tt ()
  4.   (setq dist (Udist 1 "" "半径<输入或鼠标直接量取>" dist nil))
  5.   (if (and (setq p1 (getpoint "\n基点<退出>: "))
  6.            (setq ptn (xyp-CirclePtn p1 dist 360))
  7.            (setq ss (ssget "Wp" ptn))
  8.       )
  9.     (progn
  10.       (xyp-Grvecs-Ptlst ptn 1)
  11.       (sssetfirst nil ss)
  12.     )
  13.   )
  14.   (princ)
  15. )
发表于 2014-8-1 20:34:10 | 显示全部楼层
edata 发表于 2014-8-1 16:43

大力支持!
发表于 2014-8-1 20:34:45 | 显示全部楼层
xyp1964 发表于 2014-8-1 18:00

同样支持!
 楼主| 发表于 2014-8-4 08:02:36 | 显示全部楼层
edata 发表于 2014-8-1 16:43

可以实现,非常感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-25 02:25 , Processed in 0.181972 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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