找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1878|回复: 3

[分享]:数字操作源码大集合

[复制链接]
发表于 2009-1-16 09:24:49 | 显示全部楼层 |阅读模式

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

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

×
鉴于大家在工作中经常遇到文字中数字的操作。

虽然有些功能某些插件上都会有,但是当有需要之时,却又到处到解决办法。

所以,决定将文字中的数字操作源码集合在些。。。

对于自己有特别需求的。也可以自行修改,以便实现其功能。



大家可以积极回帖,最好是把自己与本主题相关,最好是源码。


先抛点砖头出来。。。

  1. ;;written By carrot1983 2009-01-15
  2. (defun C:TT1 (/ E1 E2 ELIST NEWVALUE PT1 PT2 REAL V1)
  3.   (princ "\n递增减LSP程序用于编辑层高表")
  4.   (setvar "dimzin" 0) ;_消零控制
  5.   (setq E1 (car (entsel "\n单选层高表某一标高: ")))
  6.   (setq REAL (getreal "\n输入增值: "))
  7.   (setq PT1 (getpoint "\n输入基点: "))
  8.   (while (setq PT2 (getpoint PT1 "\n指定点: "))
  9.     (setq ELIST (entget E1))
  10.     (setq V1 (cdr (assoc 1 ELIST)))
  11.     (setq NEWVALUE (rtos (+ (read V1) REAL) 2 3)) ;_精确到小数点后面三位
  12.     (entmake (subst (cons 1 NEWVALUE)
  13.                     (assoc 1 ELIST)
  14.                     ELIST
  15.              )
  16.     )
  17.     (setq E2 (entlast))
  18.     (print (cdr (assoc 1 (entget E2))))
  19.     (command "._move" E2 "" "none" PT1 "none" PT2)
  20.     (setq E1 E2)
  21.     (setq PT1 PT2)
  22.   )
  23.   (princ)
  24. )


  1. ;;计算所有含数字的文字之和(不考虑负号)
  2. ;;written By carrot1983 2009-01-16
  3. (defun C:TT2 (/ E I NUM NUMLIST RESULT SS V1 X)
  4.   ;;ZML184的递归函数
  5.   (defun STRCAT+ (LST)
  6.     (if        (= (length LST) 1)
  7.       (strcat (car LST))
  8.       (strcat (car LST) "+" (STRCAT+ (cdr LST)))
  9.     )
  10.   )
  11.   ;;(TEST '("1" "2" "3" "4"))
  12.   ;;->"1+2+3+4"
  13.   (if (setq SS (ssget '((0 . "*TEXT*"))))
  14.     (progn
  15.       (setq NUMLIST '())
  16.       (repeat (setq I (sslength SS))
  17.         (setq E (ssname SS (setq I (1- I))))
  18.         (setq V1 (cdr (assoc 1 (entget E))))
  19.         ;;[通用函数]从文字中提取数字
  20.         (setq NUM
  21.                (read
  22.                  (strcat
  23.                    "("
  24.                    (vl-list->string
  25.                      (mapcar
  26.                        '(lambda        (X)
  27.                           (if (member X (vl-string->list ".0123456789"))
  28.                             X
  29.                             32
  30.                           )
  31.                         )
  32.                        (vl-string->list V1)
  33.                      )
  34.                    )
  35.                    ")"
  36.                  )
  37.                )
  38.         )
  39.         (if NUM
  40.           (setq NUMLIST (append NUM NUMLIST))
  41.         )
  42.       )
  43.       (if (setq RESULT (apply '+ NUMLIST)) ;_执行加法
  44.         (progn
  45.           (setq MSG (STRCAT+ (mapcar 'vl-princ-to-string NUMLIST)))
  46.           (princ (strcat "\n>>>>>总和为: "
  47.                          MSG
  48.                          "= "
  49.                          (vl-princ-to-string RESULT)
  50.                  )
  51.           )
  52.         )
  53.         (princ "\n>>>>>总和为: 0")
  54.       )
  55.     )
  56.   )
  57.   (princ)
  58. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 2个

财富等级: 恭喜发财

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 21:52 , Processed in 0.184710 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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