![]() |
[求助]有关批量标注圆
[求助]有关批量标注圆
www.dimcax.com [求助]有关批量标注圆 有人知道批量标注,就是图形内有多个不等直径的圆,如何一次性框选后自动标出所选对象的是半径的就标半径,是直径的就标直径 d 使用命令qdim就搞定 d qdim是连续标注,不是批量标圆的半径啊 d (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)) ) ) ) 此代码即可解决了 d |
所有的时间均为北京时间。 现在的时间是 06:11 AM. |