NEU_XWN 发表于 2014-8-1 15:51:24

用ssget函数怎么创建一个圆形的选择集?

如题,如何用ssget函数选择指定点一定距离以内的图元呢?


http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 NEU_XWN的微博

edata 发表于 2014-8-1 16:43:23

;;圆形转PL点表 cen 圆心 rad半径 divs分段数 fuzz外偏值
;;code by edata 2014-8-1
(defun sk_c->PL(cen rad divs fuzz / i ang lst)
      (setq i        (/ (* pi 2) divs)
          ang        0.0
          lst        '()
      )
      (repeat divs
        (setq lst (cons (polar cen ang (+ rad fuzz)) lst)
              ang (+ ang i)
        )
      )
      lst
    )
;;测试
(defun c:tt(/ ss)
(and(setq ss(ssget "Wp" (sk_c->PL '(0 0 0) 10 500 0.1)))
(sssetfirst nil ss))
)

xyp1964 发表于 2014-8-1 18:00:00

;; 需要e派工具箱(XCAD)的支持
;; 指定半径的圆形选择集
(defun c:tt ()
(setq dist (Udist 1 "" "半径<输入或鼠标直接量取>" dist nil))
(if (and (setq p1 (getpoint "\n基点<退出>: "))
           (setq ptn (xyp-CirclePtn p1 dist 360))
           (setq ss (ssget "Wp" ptn))
      )
    (progn
      (xyp-Grvecs-Ptlst ptn 1)
      (sssetfirst nil ss)
    )
)
(princ)
)

434939575 发表于 2014-8-1 20:34:10

edata 发表于 2014-8-1 16:43 static/image/common/back.gif


大力支持!

434939575 发表于 2014-8-1 20:34:45

xyp1964 发表于 2014-8-1 18:00 static/image/common/back.gif


同样支持!

NEU_XWN 发表于 2014-8-4 08:02:36

edata 发表于 2014-8-1 16:43 static/image/common/back.gif


可以实现,非常感谢!
页: [1]
查看完整版本: 用ssget函数怎么创建一个圆形的选择集?