修改了一下- (defun c:biaozhu ()
- (if (setq dxf1 (entget (car (entsel "\n选取第一个圆:"))))
- (if (setq dxf2 (entget (car (entsel "\n选取第二个圆:"))))
- (progn
- (setq leixing_c1 (cdr (assoc 0 dxf1)) ;_图元类型
- leixing_c2 (cdr (assoc 0 dxf2))
- )
- (if (and (or (= leixing_c1 "CIRCLE") (= leixing_c2 "CIRCLE"))) ;_判断图元类型是否是圆
- (progn
- (setq r_c1 (cdr (assoc 40 dxf1)) ;_得到圆的半径
- r_c2 (cdr (assoc 40 dxf2))
- center_c1 (cdr (assoc 10 dxf1)) ;_得到圆的圆心
- center_c2 (cdr (assoc 10 dxf2))
- ang_1to2 (angle center_c1 center_c2) ;_得到圆心1到圆心2的角度
- ang_2to1 (angle center_c2 center_c1)
- )
- (if
- (> (distance center_c1 center_c2) (+ r_c1 r_c2))
- (progn
- (setq neapoint_c1 (polar center_c1 ang_1to2 r_c1) ;_得到圆1上到圆2的最近点
- neapoint_c2 (polar center_c2 ang_2to1 r_c2)
- )
- (command "dimaligned" "none" neapoint_c1
- "none" neapoint_c2 "none"
- neapoint_c2
- )
- ;标注
- )
- (princ "\n两圆相交,重新选择!")
- )
- )
- (princ "\n所选物体不是圆,重新选择!")
- )
- )
- )
- )
- (princ)
- )
|