新编的一个数字替换小程序,请大家指教
本帖最后由 作者 于 2003-6-7 21:44:36 编辑;经调试可用,欢迎大家指教。
;数字替换程序,可以对选中数字进行加、减、乘、除,然后用计算后的数字替换掉原来的数字,同时可以自动去除选择集中的非数字文字
(defun invar ()
(setvar "cmdecho" 0) ;屏蔽命令行显示
(setq os (getvar "osmode")) ;提取物体捕捉变量
(setvar "osmode" 0) ;设置物体捕捉变量为空
(setq dimzin_v (getvar "dimzin")) ;提取dimzin 变值
(setvar "dimzin" 0) ;设置dimzin值为零,以防小数位数对rtos无效
(command "undo" "g") ;设置“U”回的值
)
(defun revar ()
(setvar "osmode" os) ;恢复物体捕捉设置
(setvar "dimzin" dimzin_v) ;恢复dimzin的值
(command "undo" "e") ;设置“U”的最点
(setvar "cmdecho" 1) ;恢复命令行显示
)
(defun process_txt (txt_ss kword value_bpweishu begin_v
/ i ii n txt_name
txt_datao_txt_d o_txt_c o_txt_v n_txt_v
n_txt_c n_txt_d
)
(setq n0
ii 0
)
(repeat (sslength txt_ss)
(setq txt_name (ssname txt_ss ii))
(setq txtdata (entget txt_name))
(setq o_txt_d (assoc 1 txtdata))
(setq o_txt_c (cdr o_txt_d))
(setq o_txt_v (distof o_txt_c))
(if (and
(/= o_txt_v nil)
(>= o_txt_v begin_v)
)
(progn
(cond
((= kword "+") (setq n_txt_v (+ o_txt_v value_bp)))
((= kword "-") (setq n_txt_v (- o_txt_v value_bp)))
((= kword "*") (setq n_txt_v (* o_txt_v value_bp)))
((= kword "/") (setq n_txt_v (/ o_txt_v value_bp)))
) ;End of cond
(setq n_txt_c (rtos n_txt_v 2 weishu))
(setq n_txt_d (cons 1 n_txt_c))
(setq txtdata (subst n_txt_d o_txt_d txtdata))
(entmod txtdata)
(setq n (1+ n))
) ;end of progn
) ;end of if
(setq ii (1+ ii))
) ;end of repeat
(prin1 "成功对")
(prin1 n)
(prin1 "个数字进行了操作!")
) ;end of subprogram
(defun c:shuzth ()
(invar)
(prompt "\n请选取数字:")
(terpri)
(setq ss_txt (ssget '((0 . "text")))) ;选取并过滤为文字
(initget "+ - * /")
(setq p_kword
(getkword "\n 请输入操作码: 加(+)、减(-)、乘(*)、除(/)<+>")
)
(if (null p_kword)
(setq P_kword "+")
)
(initget (+ 1 2))
(setq bp_value (getreal "\n 请输入加、减、乘、除数:"))
(setq wei_shu (getint "\n 请输入小数位数<2>:"))
(if (null wei_shu)
(setq wei_shu 2)
)
(setq begin_v (getreal "\n 给定开始数<不给定>:"))
(process_txt ss_txt p_kword bp_value wei_shu begin_v)
(prompt "\n山东省水利勘测设计院 杨克坤 2003.6.6编")
(revar)
) ;end of main program
[此贴子已经被作者于2003-6-7 21:33:44编辑过]
原程序
原程序有一个小BUG
原程序有一个小BUG,修改并重新上传。为何传不上?
不知道为何传不上?帖子的编辑中没有附件重新上传的功能?我也碰到过类似问题“帖子的编辑中没有附件重新上传的功能“希望斑竹增加这项功能
OK,我改改网站的程序
"给定开始数"的意思
“给定开始数”,的意思是小于这个数的数值不做改动。 怎么不行?为什么错误: 参数类型错误: lselsetp nil 楼上我们是同行啊~~搞水利的
你的程序我还是没怎么吃透,说白了还是不知道怎么使用哈
页:
[1]
2