本帖最后由 作者 于 2008-1-16 9:21:11 编辑
送你一个我自己写的算了,这种东西其实应该自己弄 (defun c:szbcc(/ ss bc n bpt m spt i txt ctxt) (defun sub_upd (ename code newvalue) (entmod (subst (cons code newvalue) (assoc code (entget ename)) (entget ename) ) ) (entupd ename) ) (defun dxf(number ent_data / mm) (setq mm(cdr(assoc number ent_data))) ) (setq ss(ssget (list(cons 0 "TEXT")))) (setq bc(getreal "\n输入步长:")) (setq n(getint "\n输入保留位数<0>:")) (if (null n)(setq n 0)) (setq bpt(getpoint "\n选择基点:")) (setvar "dimzin" 0) (setq m 1) (while (setq spt(getpoint bpt "\n选择第二点:")) (setq i 0) (repeat(sslength ss) (setq txt(ssname ss i)) (vl-cmdf ".copy" txt "" bpt spt) (setq ctxt(entlast)) (sub_upd ctxt 1 (rtos (+(atof(dxf 1 (entget txt)))(* bc m)) 2 n)) (setq i(1+ i)) ) (setq m(1+ m)) ) ) |