马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
 - (defun xd::Geom:iscircle (pts fuzz / #center #radius area1 c1 cen1 cen2 g r1
- ret
- )
- (if (and
- (= (type pts) 'ENAME)
- (= (cdr (assoc 0 (entget pts))) "SPLINE")
- )
- (progn
- (setq pts (xdrx_getsamplept pts 5)
- pts (list (nth 1 pts) (nth 2 pts) (nth 3 pts))
- )
- )
- (progn
- (setq pts (xd::list:removedup pts))
- (if (< (length pts) 5)
- (setq pts nil)
- )
- )
- )
- (and
- (setq c1 (xdrx_points_mincircle pts))
- (setq r1 (cadr c1))
- (setq cen1 (car c1))
- (setq area1 (* pi r1 r1))
- (setq g (xdge::constructor "kcircarc3d"))
- (xdge::setpropertyvalue g "set" (nth 0 pts) (nth (fix (/
- (length pts)
- 2.0
- )
- ) pts
- ) (last pts)
- )
- (xdge::getpropertyvalue g "center" "radius" "area")
- (equal cen1 #center fuzz)
- (equal r1 #radius fuzz)
- (setq ret (list cen2 #radius))
- )
- (xdge::free g)
- ret
- )
|