
- (defun C:FYYF (/ E ELIST I PT SS RAD)
- (setq olyr (GetVar "Clayer"))
- (command "_layer" "m" "方圆变" "C" 240 "" "")
- (if (setq SS (ssget '((0 . "LWPOLYLINE")))) ;_只选择矩形(方桩)
- (repeat (setq I (sslength SS)) ;_循环次数为桩的个数
- ;;桩的图元名E
- (setq E (ssname SS (setq I (1- I))))
- (setq ELIST (entget E))
- (setq PT1 (assoc 10 ELIST)
- pt2 (cdr (assoc 10 (vl-remove pt1 ELIST)))
- pt1 (cdr pt1)
- pt4 (cdr (assoc 10 (reverse ELIST)))
- pt (list (/ (+ (car pt2) (car pt4)) 2)
- (/ (+ (cadr pt2) (cadr pt4)) 2)
- ) ;_圆心坐标
- RAD (/ (distance pt1 pt2) 2) ;_圆半径
- )
- ;;绘制方桩
- (command "._CIRCLE" pt rad)
-
- ;; (entdel E) ;_删除方桩,如果不删除在此行首加个半角分号
- )
- )
- (SetVar "Clayer" olyr)
- (princ)
- )
- ;;;======================子程序1开始============================
- (defun get_pt (pt / data temp ptlist)
- (setq data pt)
- (foreach temp data
- (if (= 10 (car temp))
- (setq ptlist (cons (cdr temp) ptlist))
- )
- )
- ;; (reverse ptlist) ;
- ptlist ; 本程序直用即可
- )
|