;用下面程序一试
(defun C:YH()
(setq cm (getvar "cmdecho")
os (getvar "osmode")
)
(setvar "cmdecho" 0)
(command "_undo" "be")
(princ "\n请选择圆")
(if (setq ssa (ssget '((0 . "circle"))))
(progn
(setvar "osmode" 0)
(setq n (sslength ssa) i 0)
(repeat n
(setq ent (ssname ssa i)
dxf (entget ent)
r (cdr (assoc 40 dxf))
po (cdr (assoc 10 dxf))
i (1+ i)
)
(setq p1 (mapcar '+ po (list 0.0 r))
p2 (mapcar '+ po (list (* (1- 0.2) r) 0.0))
p3 (mapcar '+ po (list 0.0 (- r)))
p4 (mapcar '+ po (list (* (1- 0.1) r) 0.0))
)
(command "_arc" p1 p2 p3)
(command "_bhatch" "p" "ANSI31" (* 0.04 r) "" p4 "")
)
)
)
(command "_undo" "e")
(setvar "osmode" os) (setvar "cmdecho" cm)
(princ)
)