高手来帮我修改下程序
这个修改圆半径的程序:(defun c:chr3()(setq new_rad(getreal"请求输入圆的新半径:"))
(prompt"\n<<选择欲更新圆半径>>")
(setq ss(ssget))
(setq n 0 k 0)
(repeat(sslength ss)
(setq en(ssname ss n))
(setq endata(entget en))
(setq entype (cdr(assoc 0 endata)))
(if(=entype"CIRCLE")
(sub_upd_rad)
)
(setq n(1+n))
)
(princ(strcat"\n共有<"(itoa k)">个圆更新半径="(rtos new_rad)))
(prin1)
)
(defun sub_upd_rad()
(setq 40_list(assoc 40 endata))
(setq new_40_list(cons 40 new_rad))
(setq endata(subst new_40_list 40_list endata))
(entmod endata)
(setq k(1+k))
)
(prin1)
在CAD2008里面运行以后在选择完图形和输入半径以后出现:
; 错误: no function definition: /PI
这是怎么回事?哪里需要修改? 养成一个好的书写习惯
(defun c:chr3()
(setq new_rad (getreal "请求输入圆的新半径:"))
(prompt "\n<<选择欲更新圆半径>>")
(setq ss (ssget))
(setq n 0 k 0)
(repeat(sslength ss)
(setq en (ssname ss n))
(setq endata (entget en))
(setq entype (cdr (assoc 0 endata)))
(if (= entype "CIRCLE")
(sub_upd_rad)
)
(setq n (1+ n))
)
(princ (strcat "\n共有<" (itoa k) ">个圆更新半径=" (rtos new_rad)))
(prin1)
)
(defun sub_upd_rad()
(setq 40_list (assoc 40 endata))
(setq new_40_list (cons 40 new_rad))
(setq endata (subst new_40_list 40_list endata))
(entmod endata)
(setq k (1+ k))
)
(prin1) duotu007 发表于 2012-4-13 16:45 static/image/common/back.gif
养成一个好的书写习惯
(defun c:chr3()
(setq new_rad (getreal "请求输入圆的新半径:"))
谢谢啊,学习了
;改多圆、圆弧半径
(defun c:kk ()
(setq br (getreal "\n输入你想要的半径:"))
(prompt "\n请框选你要改变的圆: ")
(setq ss (ssget '((0 . "CIRCLE,ARC")))
i -1
)
(while (setq s1 (ssname ss (setq i (1+ i))))
(KX-SubUpd s1 40 br)
)
(princ)
)
(defun KX-SubUpd (ename code newvalue)
(entmod (subst (cons code newvalue)
(assoc code (entget ename))
(entget ename)
)
)
(entget ename)
)
页:
[1]