明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3451|回复: 13

求让多个数字统一增加或减少数值的程序

  [复制链接]
发表于 2012-7-18 16:46:03 | 显示全部楼层 |阅读模式
1明经币
比如  让25.32、24.32、23.32统一加上0.1,变为25.42、24.42、23.42,当然统一加减多少要通过输入数值确定,需要改变的数字可以单选也可以框选

最佳答案

查看完整内容

(defun c:rea(/ n times en data dt) (princ "\n选择数字:") (setq ss (ssget (list (cons 0 "text")))) (initget 1) (setq dt (getreal "\n输入要加的值:")) (if ss (progn (setq n 0 times (sslength ss)) (repeat times (setq en (ssname ss n) data (entget en) number (read (cdr (assoc 1 data)))) (if (member (type number) '(INT REAL)) (progn (setq data (subst (cons 1 (rtos (+ number dt) 2 2))(assoc 1 ...
发表于 2012-7-18 16:46:04 | 显示全部楼层
(defun c:rea(/ n times en data dt)
(princ "\n选择数字:")
(setq ss (ssget (list (cons 0 "text"))))
(initget 1)
(setq dt (getreal "\n输入要加的值:"))
(if ss
(progn
(setq n 0 times (sslength ss))
(repeat times
(setq en (ssname ss n) data (entget en) number (read (cdr (assoc 1 data))))
(if (member (type number) '(INT REAL))
(progn
(setq data (subst (cons 1 (rtos (+ number dt) 2 2))(assoc 1 data) data))
(entmod data)
)
)
(setq n (1+ n))
)
)
)
(princ)
)

试试这个,还会变整数吗
回复

使用道具 举报

发表于 2012-7-18 17:43:17 | 显示全部楼层
看这个帖子http://bbs.mjtd.com/thread-95160-1-1.html
这个帖子问题解决了,你的问题就是小case
回复

使用道具 举报

发表于 2012-7-18 18:17:54 | 显示全部楼层
本帖最后由 叮咚 于 2012-7-19 08:29 编辑

(defun c:rea(/ n times en data dt)
(princ "\n选择数字:")
(setq ss (ssget (list (cons 0 "text"))))
(initget 1)
(setq dt (getreal "\n输入要加的值:"))
(if ss
(progn
(setq n 0 times (sslength ss))
(repeat times
(setq en (ssname ss n) data (entget en) number (read (cdr (assoc 1 data))))
(if (member (type number) '(INT REAL))
(progn
(setq data (subst (cons 1 (rtos (+ number dt)))(assoc 1 data) data))
(entmod data)
)
)
(setq n (1+ n))
)
)
)
(princ)
)


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 1明经币 +1 收起 理由
半听可乐 + 1 谢谢你!虽然在我这边有点小瑕疵

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2012-7-18 19:41:03 | 显示全部楼层
叮咚 发表于 2012-7-18 18:17
(defun c:rea(/ n times en data dt)
(princ "\n选择数字:")
(setq ss (ssget (list (cons 0 "text"))))
...

你这个数据变化后就成了整数,而且输入小数不管用
回复

使用道具 举报

 楼主| 发表于 2012-7-18 19:42:50 | 显示全部楼层
自贡黄明儒 发表于 2012-7-18 17:43
看这个帖子http://bbs.mjtd.com/thread-95160-1-1.html
这个帖子问题解决了,你的问题就是小case

链接看了,但还是一头雾水~~~
回复

使用道具 举报

发表于 2012-7-18 21:31:23 | 显示全部楼层
  1. (defun add ()
  2. (if (and (setq ad (getreal "\n输入加数 :"))
  3.    (setq ss (ssget '((0 . "TEXT") (1 . "#*#"))))) (progn
  4.   (setq i -1)
  5.   (repeat (sslength ss)
  6.    (setq ent (entget(ssname ss (setq i (1+ i)))))
  7.    (entmod (subst (cons 1 (rtos (+ (read(cdr(assoc 1 ent))) ad) 2)) (assoc 1 ent) ent))
  8.   )
  9. ))
  10. (princ)
  11. )
回复

使用道具 举报

发表于 2012-7-18 22:41:18 来自手机 | 显示全部楼层
计算器 by:langjs
;输入样例+5、-6、×7、/8
(defun c:qq ( / ent fu i nu num ss str)
(if (setq ss (ssget '((0 . "*TEXT") (1 . "~*[~.0-9]*"))))
  (progn
  (setq str (getstring " 输入运算符号和数值:") fu (substr str 1 1) nu (atof (substr str 2))
    fu (cond
     ((member fu '("*" "X" "x" "×" )) *)
     ((member fu '("/" "÷")) /)
     ((member fu '("+" "+")) +)
     ((member fu '("-" "-")) -)
     (tnil)
     )
  )
  (if (and fu nu)
  (repeat (setq i (sslength ss))
    (setq ent (entget (ssname ss (setq i (1- i)))) num (rtos (fu (atof (cdr (assoc 1 ent))) nu) 2 2) )
    (entmod (subst (cons 1 num)(assoc 1 ent)ent))
  )
  (princ "\n 输入错误!")
  )
  )
)
(princ)
)
回复

使用道具 举报

发表于 2012-7-18 22:43:48 来自手机 | 显示全部楼层
呵呵,手机回复不方便,二楼的改改就行
回复

使用道具 举报

发表于 2012-7-19 07:51:35 | 显示全部楼层
工具箱之批量增减

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-22 01:54 , Processed in 0.223730 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表