275437962 发表于 2013-12-29 12:57:53

这个问题又该怎么解决呢?

(defun c:tt ()
(setvar "CMDECHO" 0)
(if (and (setq bnm (getstring "\n图块名 :"))
         (/= bnm "")
         (princ "\n选择圆 :")
         (setq ss (ssget '((0 . "CIRCLE")(40 . xxxx))))) ;;xxxx换成你需要的圆的半径
(progn
   (setq i 0)
   (repeat (sslength ss)
    (setq pc (cdr(assoc 10 (entget (ssname ss i)))))
    (setq ely (cdr(assoc 8 (entget (ssname ss i)))))
    (command "-insert" bnm pc "" "" "")
    (command "change" (entlast) "" "p" "la" ely "co" "byl" "")
    (setq i (1+ i))
   )
;; (command ".erase" ss "");删去此句就保留圆
))
(setvar "CMDECHO" 1)
(princ)
)

上面的程序只能针对半径是整数的圆,能否提高精度也可针对,如圆的半径为0.2345,即小数点后保留4位!!!

275437962 发表于 2013-12-29 16:58:19

怎么回事!!
页: [1]
查看完整版本: 这个问题又该怎么解决呢?