几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   ObjectARX(AutoLISP) (http://www.dimcax.com/hust/forumdisplay.php?f=178)
-   -   [求助]有关批量标注圆 (http://www.dimcax.com/hust/showthread.php?t=11218)

yang686526 2009-04-26 01:58 PM

[求助]有关批量标注圆
 
[求助]有关批量标注圆
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.