这就是我用的。
- (defun c:ic (/ a b c r d n p d1 d2 e1 cl oerr osn)
- (setq osn (getvar "osmode"))
- (setvar "cmdecho" 0)
- (setq cl (getvar "clayer"))
- (if c
- ()
- (setq c 1.0)
- )
- (princ "\n Circle diameter < ")
- (princ c)
- (princ " > ? ")
- (setq b (getdist))
- (if (= b nil)
- (setq b c)
- (setq c b)
- )
- (setq r (/ b 2))
- (princ "\n Select nodes ")
- (setq a (ssget '((0 . "POINT"))))
- (setq d (sslength a))
- (setq d1 d)
- (repeat d
- (setq d2 (1- d1))
- (setq n (ssname a d2))
- (setq e1 (entget n))
- (setq p (cdr (assoc 10 e1)))
- (entmake (list (cons 0 "CIRCLE")
- (cons 6 "BYLAYER")
- (cons 8 cl)
- (cons 10 p)
- (cons 40 r)
- (cons 210 (list 0.0 0.0 1.0))
- )
- )
- (entdel n)
- (setq d1 d2)
- )
- (setvar "osmode" osn)
- (princ)
- )
|