- UID
- 525
- 积分
- 3148
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-1-14
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
一个求实体(直线,圆弧,园,椭圆)关键点的小程序, 请大家试用!
(defun pt (ent / ss pp)
(if (= (dxf 0 ent) "LINE")
(setq pt1 (dxf 10 ent) pt2 (dxf 11 ent))
(progn
(setq pc (dxf 10 ent) r (dxf 40 ent))
(cond
((= (dxf 0 ent) "ARC")
(setq pt1 (polar pc (dxf 50 ent) r)
pt2 (polar pc (dxf 51 ent) r))
(setq pp (polar pc pi r))
(setq ss (ssget pp))
(if (/= ss nil)(setq pt5 pp))
(setq pp (polar pc 0 r))
(setq ss (ssget pp))
(if (/= ss nil)(setq pt6 pp))
(setq pp (polar pc (* 1.5 pi) r))
(setq ss (ssget pp))
(if (/= ss nil)(setq pt3 pp))
(setq pp (polar pc (/ pi 2) r))
(setq ss (ssget pp))
(if (/= ss nil)(setq pt4 pp))
)
((= (dxf 0 ent) "CIRCLE")
(setq pt1 (polar pc pi r)
pt2 (polar pc 0 r)
pt3 (polar pc (* 1.5 pi) r)
pt4 (polar pc (/ pi 2) r)))
((= (dxf 0 ent) "ELLIPSE")
(setq px (dxf 11 ent)
pt1 (polar pc pi (car px))
pt2 (polar pc 0 (car px))
pt3 (polar pc (* 1.5 pi)(* r (car px)))
pt4 (polar pc (/ pi 2)(* r (car px)))))
);c
);P
);i
(if (or (< (car pt2)(car pt1))
(and (equal (car pt1)(car pt2) 0.0001)
(< (cadr pt2)(cadr pt1))))
(setq pt0 pt1 pt1 pt2 pt2 pt0)
);if
(if (= (getvar "worlducs") 0)
(progn
(if pt1 (setq pt1 (trans pt1 0 1)))
(if pt2 (setq pt2 (trans pt2 0 1)))
(if pt3 (setq pt3 (trans pt3 0 1)))
(if pt4 (setq pt4 (trans pt4 0 1)))
(if pc (setq pc (trans pc 0 1)))
))
);defun
(defun dxf (code ename)(cdr (assoc code (entget ename)))) |
|