(defun c:rds (/ rs n po px py rv ang1 ang2 angc cx cy rslst) (setq rs (ssget "c" pt1 pt2 '((0 . "circle")))) (if rs (progn (setq n 0) (repeat (sslength rs) (setq rslst (entget (ssname rs n))) (setq po (cdr (assoc 10 rslst)));圆心 (setq px (car po)) (setq py (cadr po)) (setq rv (cdr (assoc 40 rslst)));半径 (cond ((= "ARC" (cdr (assoc 0 rslst))) (setq ang1 (cdr (assoc 50 rslst))) (setq ang2 (cdr (assoc 51 rslst))) (setq angc (/ (+ ang2 ang1) 2.0)) (setq cx (+ px (* rv (cos angc)))) (setq cy (+ py (* rv (sin angc)))) ;(command "DIMRADIUS" (list (ssname rs n) (list cx cy 0))) ;;; (princ "\n poic is") ;;; (princ (list cx cy)) ) ((= "CIRCLE" (cdr (assoc 0 rslst))) ;;; (princ "\n") ;;; (princ "circle") (setq angc (/ pi 4.0)) (setq cx (+ px (* rv (cos angc)))) (setq cy (+ py (* rv (sin angc)))) ;;; (princ "\n poic is") ;;; (princ (list cx cy)) ) ) (command "DIMDIAMETER" (list (ssname rs n ) (list cx cy 0)) "") (setq n (1+ n)) ) ) ) 此代码即可解决了
|