求代码 点击一下数字 就变成 此数字加上固定数字的运算结果!
本帖最后由 wayne_myles 于 2015-12-29 15:22 编辑求助各位大大!!!
点击一下数字 就变成 此数字加上固定数字的运算结果!
表达不好 我就举个例子!
cad中 不同位置 有不同的数字 我想得到 每个数字+78 的结果
想要的效果是 我先定义+78 然后我单击22就变成80 我单击23就变成101 我单击100就变成178.。。。。。。
假如可以的话+78这个数字可以自定义(比如+!比如+8) 最好改变后的数字变成红色 ---方便区别是否单击过!!
麻烦各位大大了!!!!呵呵先谢谢了
补充 !已解决方案见7# 龙哥代码完美运行 谢谢龙哥了!
本帖最后由 wayne_myles 于 2015-12-26 13:52 编辑
发张美女镇楼!!哈http://bbs.mjtd.com/static/image/common/emp.gif (+ (atof(cdr(assoc 1(entget(car(entsel)))))) 78) 本帖最后由 wayne_myles 于 2015-12-26 14:42 编辑
wzg356 发表于 2015-12-26 13:58 static/image/common/back.gif
(+ (atof(cdr(assoc 1(entget(car(entsel)))))) 78)
可行谢谢就是结果显示在命令行之中稍有不便
是否可以把原来的数字变成运算结果?!!!!谢谢大侠 本帖最后由 wzg356 于 2015-12-26 21:49 编辑
(defun c:adnum ( / ss i val1 val2 ent newstr)
(setvar "dimzin" 1)
(if (setq ss (ssget '((0 . "TEXT") (1 . "~*[~`--9]*"))));只选取数字文本
(progn
(setq i 0 )
(setq val1 (getreal "\n输入要加的数:"))
(setq val2 (getint "\n输入保留小数位:"))
(repeat (sslength ss)
(setq ent (entget(ssname ss i))
newstr(rtos (+ (atof(cdr(assoc 1 ent))) val1) 2 val2)
)
(entmod (setq ent (subst (cons 1 newstr) (assoc 1 ent) ent)))
;(if (assoc 62 ent)
;(entmod (subst (cons 62 1) (assoc 62 ent) ent))
;(entmod (cons (cons 62 1)ent))
;)
(setq i (+ 1 i))
)
)
(alert "\n没有选中数字!")
)
(princ)
) wzg356 发表于 2015-12-26 15:36 static/image/common/back.gif
已经运行很好!!!!谢谢
希望您有空的话 帮忙改进下已经改变的数字变成红色 再次谢谢大神!!! 本帖最后由 llsheng_73 于 2015-12-26 19:51 编辑
wayne_myles 发表于 2015-12-26 17:01 http://bbs.mjtd.com/static/image/common/back.gif
已经运行很好!!!!谢谢
希望您有空的话 帮忙改进下已经改变的数字变成红色 再次谢谢大神!!!
(defun c:tt(/ ss e)
(setvar "dimzin" 1)
(setq *a*(if(setq b(getint(strcat"保留小数位["(if *a*(itoa *a*)"0")"]")))b(if *a* *a* 0)))
(if(setq ss (ssget '((1 . "*#*"))))
(foreach e(mapcar'(lambda(x / e a)(if(and(=(type(setq e(cadr x)))'ename)
(setq a(distof(cdr(assoc 1(entget e))))))
(list e a)))(ssnamex ss))
(if e(entmod(mapcar'cons'(-1 1 62)(list(car e)(rtos(+ 78(last e))2 *a*)1))))))) 到我的网络U盘中下载一个ce.lsp,通用文本计算。 llsheng_73 发表于 2015-12-26 18:40 static/image/common/back.gif
谢谢大咖指点
(setq ss (ssget '((0 . "TEXT") (1 . "~*[~`--9]*"))));只选取数字文本 本帖最后由 llsheng_73 于 2015-12-26 22:48 编辑
wzg356 发表于 2015-12-26 21:45 http://bbs.mjtd.com/static/image/common/back.gif
谢谢大咖指点
(setq ss (ssget '((0 . "TEXT") (1 . "~*[~`--9]*"))));只选取数字文本
"1.2.3"或者"1-2"都会被 (ssget '((0 . "TEXT") (1 . "~*[~`--9]*")))选中,而类似1e-8这种实实在在的数字却被过滤掉了
个人认为,无法直接通过过滤表来选择数字文本。。。只能大致过滤然后对文本进行测试后进行剔除
页:
[1]
2