找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1035|回复: 10

[求助]:一个增值,或者是减值的lisp程序!请大家帮帮忙!

  [复制链接]
发表于 2004-10-21 13:16:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
我需要一个程序:可在选定的一列或者是一行数字,使其自动加上或者是减去一个常数,然后得到的数替代原来的数。
比如:50  40  30  23  25  
减去一个常数:2
得到:48  38  28  21  23
请各位高手哥哥姐姐帮忙,小弟这里谢谢了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-10-21 13:30:20 | 显示全部楼层
(defun c:cn (/ ss el qt0 qt1 qt2 qts n index newhei)
  (setvar "cmdecho" 0)
  (setq x (getint "\n需要加几号?: "));若减值写成负数即可
  (setq        ss    (ssget '((0 . "TEXT")))
        index 0
        )
  (repeat (sslength ss)
    (setq el        (entget (ssname ss index))
          index        (1+ index)
          )
    (setq qt0 (cdr (assoc 1 el))
          qt2 qt0
          qt1 ""
          n   1
          )
    (while (and (> (strlen qt0) 0) (or (< (ascii (substr qt0 1 1)) 48) (> (ascii (substr qt0 1 1)) 57)))
      (setq qt1 (strcat qt1 (substr qt0 1 1)))
      (setq qt0 (substr qt0 2))
      (setq n (+ 1 n))
      )                                        ;判断数字起始位
    (setq qt2 (substr qt2 n))
    (if        (> (strlen qt0) 0)                ;若编号中没有数字则不进行处理
      (setq qts (strcat qt1 (rtos (+ x (atoi qt2)) 2 0)))
      (setq qts qt1)
      )
    (setq el (subst (cons 1 qts) (assoc 1 el) el))
    (entmod el)
    )
  (setvar "cmdecho" 1)
  (princ)
  )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2004-10-21 15:01:05 | 显示全部楼层
抄袭一下自己的回复:
可以下载“文字修改大师”http://xdcad.net/forum/showthread.php?s=&threadid=76108或者我的cehttp://xdcad.net/forum/showthread.php?threadid=27605试试。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-10-21 17:21:22 | 显示全部楼层
首先,感谢silen618和ll_j 对小弟的照顾,再一次多谢了!
silen618,你能不能把你的那个程序给我改成可以对实数的呀,我要是增加变量为0.2的话,就不可以用那个程序,而且,本来是带小数的,经过程序处理就成了整数了。麻烦再给优化一下,不胜感激!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-22 13:38:29 | 显示全部楼层
修改后为小数、精度:小数点后3位。
可根据自己需要修改转换格式、精度行(rtos () 2 3)中的2和3。
(rtos number [mode [precision]])
mode——1-科学;2-小数;3-工程(英寸和小数英寸);4建筑(英寸和分数英寸);5-分数
precision——精度
也可省略这两项。修改系统变量LUNITS和LUPREC;或者修改工具->单位。
试一试!

(defun c:cn (/ ss el qt0 qt1 qt2 qts n index newhei)
  (setvar "cmdecho" 0)
  (setq x (getreal "\n需要加/减几号:"))
  (setq        ss    (ssget '((0 . "TEXT")))
        index 0
        )
  (repeat (sslength ss)
    (setq el        (entget (ssname ss index))
          index        (1+ index)
          )
    (setq qt0 (cdr (assoc 1 el))
          qt2 qt0
          qt1 ""
          n   1
          )
    (while (and (> (strlen qt0) 0) (or (< (ascii (substr qt0 1 1)) 48) (> (ascii (substr qt0 1 1)) 57)))
      (setq qt1 (strcat qt1 (substr qt0 1 1)))
      (setq qt0 (substr qt0 2))
      (setq n (+ 1 n))
      )                                        ;判断数字起始位
    (setq qt2 (substr qt2 n))
    (if        (> (strlen qt0) 0)                ;若编号中没有数字则不进行处理
      (setq qts (strcat qt1 (rtos (+ x (atof qt2)) 2 3)));转换格式、精度
      (setq qts qt1)
      )
    (setq el (subst (cons 1 qts) (assoc 1 el) el))
    (entmod el)
    )
  (setvar "cmdecho" 1)
  (princ)
  )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-22 21:46:43 | 显示全部楼层
SILEN的程序下载后好用---------谢谢
命令能不能这样:CN--------选择对象--------输入加减数

我自己调不出来 麻烦你
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-10-23 11:02:46 | 显示全部楼层
[B]<font color=red>好的,silen618,非常感谢,很好用。</font><br>
<font color=blue>再一次非常的感谢!</font>[/B]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-25 10:22:46 | 显示全部楼层
dhxf  :
关于选择顺序,cad可以默认,可以按照程序调用顺序,也可以先选择文字,再调用程序,都不影响。
再试一下!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-26 10:42:06 | 显示全部楼层
SILEN:
现在应用是先选择数字-----CN -------加减数字
改变自己使用习惯可以适应你的程序;
十分感谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-8 10:56:50 | 显示全部楼层
多谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-2-18 23:04:10 | 显示全部楼层
好东西值得一用,两位楼主的都好,只不过习惯不一样罢了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-22 04:21 , Processed in 0.475780 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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