设为首页收藏本站

晓东CAD家园-论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: ml2513

[求助] 【已解决】CAD中带文字的数字分别求和插件

[复制链接]

签到天数: 1052 天

连续签到: 13 天

[LV.10]以坛为家III

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-1-9 16:35:10 | 显示全部楼层

汉字数字统计.gif

  1. (defun c:tt (/ hz lst pt ss txt txt1 var x xw y)
  2.   (if (and
  3.         (xdrx_initssget "\n选取要统计的文字<退出>:")
  4.         (setq ss (xdrx_ssget '((0 . "TEXT"))))
  5.       )
  6.     (progn
  7.       (xdrx_begin)
  8.       (xdrx_sysvar_push '("dimzin" 0))
  9.       (setq lst (mapcar
  10.                   '(lambda (x)
  11.                      (setq txt (xdrx_getpropertyvalue x "textstring"))
  12.                      (setq txt1 (xd::string:regexps "[\\u4e00-\\u9fa5]{1,}[0-9.]+"
  13.                                                     txt ""
  14.                                 )
  15.                      )
  16.                      (if txt1
  17.                        (setq lst (mapcar
  18.                                    '(lambda (y)
  19.                                       (setq hz (xd::string:regexps "[\\u4e00-\\u9fa5]{0,}"
  20.                                                                    y ""
  21.                                                )
  22.                                       )
  23.                                       (setq xw (xd::string:regexps "(-?[0-9]+)(\\.[0-9]+)?"
  24.                                                                    y ""
  25.                                                )
  26.                                       )
  27.                                       (list (car hz) (atof (car xw)))
  28.                                     )
  29.                                    txt1
  30.                                  )
  31.                        )
  32.                      )
  33.                    )
  34.                   (xdrx_pickset->ents ss)
  35.                 )
  36.             lst (apply
  37.                   'append
  38.                   lst
  39.                 )
  40.             lst (xd::list:groupbyindex lst 0.1)
  41.             lst (vl-sort lst '(lambda (x y)
  42.                                 (< (car x) (car y))
  43.                               )
  44.                 )
  45.             lst (mapcar
  46.                   '(lambda (x)
  47.                      (list (car x) (rtos (apply
  48.                                            '+
  49.                                            (cdr x)
  50.                                          ) 2 1
  51.                                    )
  52.                      )
  53.                    )
  54.                   lst
  55.                 )
  56.             lst (append
  57.                   (list (list "统计表" nil) '("名 称" "数 量"))
  58.                   lst
  59.                 )
  60.       )
  61.       (if (not #miaomu-tj-height)
  62.         (setq #miaomu-tj-height 3.5)
  63.       )
  64.       (if (setq var (getreal (xdrx_prompt "\n字高<" #miaomu-tj-height ">:" t)))
  65.         (setq #miaomu-tj-height var)
  66.       )
  67.       (if (setq pt (getpoint "\n表格插入点:"))
  68.         (progn
  69.           (xd::text:init 1)
  70.           (XD::Table:MakeFromList lst pt #miaomu-tj-height (/ #miaomu-tj-height
  71.                                                               2.0
  72.                                                            )
  73.           )
  74.         )
  75.       )
  76.       (xdrx_sysvar_pop)
  77.       (xdrx_end)
  78.     )
  79.   )
  80.   (princ)
  81. )


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

使用道具 举报

签到天数: 140 天

连续签到: 1 天

[LV.7]常住居民III

已领礼包: 34个

财富等级: 招财进宝

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

使用道具 举报

签到天数: 300 天

连续签到: 1 天

[LV.8]以坛为家I

已领礼包: 394个

财富等级: 日进斗金

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

使用道具 举报

签到天数: 82 天

连续签到: 1 天

[LV.6]常住居民II

已领礼包: 52个

财富等级: 招财进宝

发表于 2018-1-9 19:55:24 | 显示全部楼层

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

使用道具 举报

签到天数: 82 天

连续签到: 1 天

[LV.6]常住居民II

已领礼包: 52个

财富等级: 招财进宝

发表于 2018-1-21 23:02:17 | 显示全部楼层

您好老师,这个程序能再加个合计吗?在统计列表最下方加上合计就是统计出来的数字总和,请老师赐教,十分感谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 696 天

连续签到: 2 天

[LV.9]以坛为家II

已领礼包: 19个

财富等级: 恭喜发财

发表于 2018-1-21 23:35:47 | 显示全部楼层

CAD表格自己就能求和的

搜狗截图20180121233414.gif

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

使用道具 举报

签到天数: 82 天

连续签到: 1 天

[LV.6]常住居民II

已领礼包: 52个

财富等级: 招财进宝

发表于 2018-1-22 09:23:43 | 显示全部楼层

您好老师,这样操作的话是要多操作一步,效率不高的,如果直接合计出来这样可以很大提高效率的,请老师不吝赐教,十分感谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 482 天

连续签到: 2 天

[LV.9]以坛为家II

已领礼包: 20个

财富等级: 恭喜发财

发表于 2018-1-22 09:32:16 | 显示全部楼层

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

使用道具 举报

签到天数: 82 天

连续签到: 1 天

[LV.6]常住居民II

已领礼包: 52个

财富等级: 招财进宝

发表于 2018-1-22 09:47:03 | 显示全部楼层

您好老师,工作肯定要做的,只是要寻找提高工作效率的一个方法,请老师赐教多谢多谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 1052 天

连续签到: 13 天

[LV.10]以坛为家III

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-1-22 10:34:34 | 显示全部楼层

加一行代码而已,希望能举一反三

  1. lst (append lst (list (list "合计" (rtos (apply '+ (mapcar '(lambda(x)(atof (cadr x))) lst)) 2 1))))


搜狗截图20180122102028.png

  1. (defun c:tt (/ hz lst pt ss txt txt1 var x xw y)
  2.   (if (and
  3.         (xdrx_initssget "\n选取要统计的文字<退出>:")
  4.         (setq ss (xdrx_ssget '((0 . "TEXT"))))
  5.       )
  6.     (progn
  7.       (xdrx_begin)
  8.       (xdrx_sysvar_push '("dimzin" 0))
  9.       (setq lst (mapcar
  10.                   '(lambda (x)
  11.                      (setq txt (xdrx_getpropertyvalue x "textstring"))
  12.                      (setq txt1 (xd::string:regexps "[\\u4e00-\\u9fa5]{1,}[0-9.]+"
  13.                                                     txt ""
  14.                                 )
  15.                      )
  16.                      (if txt1
  17.                        (setq lst (mapcar
  18.                                    '(lambda (y)
  19.                                       (setq hz (xd::string:regexps "[\\u4e00-\\u9fa5]{0,}"
  20.                                                                    y ""
  21.                                                )
  22.                                       )
  23.                                       (setq xw (xd::string:regexps "(-?[0-9]+)(\\.[0-9]+)?"
  24.                                                                    y ""
  25.                                                )
  26.                                       )
  27.                                       (list (car hz) (atof (car xw)))
  28.                                     )
  29.                                    txt1
  30.                                  )
  31.                        )
  32.                      )
  33.                    )
  34.                   (xdrx_pickset->ents ss)
  35.                 )
  36.             lst (apply
  37.                   'append
  38.                   lst
  39.                 )
  40.             lst (xd::list:groupbyindex lst 0.1)
  41.             lst (vl-sort lst '(lambda (x y)
  42.                                 (< (car x) (car y))
  43.                               )
  44.                 )
  45.             lst (mapcar
  46.                   '(lambda (x)
  47.                      (list (car x) (rtos (apply
  48.                                            '+
  49.                                            (cdr x)
  50.                                          ) 2 1
  51.                                    )
  52.                      )
  53.                    )
  54.                   lst
  55.                 )
  56.             lst (append lst (list (list "合计" (rtos (apply '+ (mapcar '(lambda(x)(atof (cadr x))) lst)) 2 1))))
  57.             lst (append
  58.                   (list (list "统计表" nil) '("名 称" "数 量"))
  59.                   lst
  60.                 )
  61.       )
  62.       (if (not #miaomu-tj-height)
  63.         (setq #miaomu-tj-height 3.5)
  64.       )
  65.       (if (setq var (getreal (xdrx_prompt "\n字高<" #miaomu-tj-height ">:" t)))
  66.         (setq #miaomu-tj-height var)
  67.       )
  68.       (if (setq pt (getpoint "\n表格插入点:"))
  69.         (progn
  70.           (xd::text:init 1)
  71.           (XD::Table:MakeFromList lst pt #miaomu-tj-height (/ #miaomu-tj-height
  72.                                                               2.0
  73.                                                            )
  74.           )
  75.         )
  76.       )
  77.       (xdrx_sysvar_pop)
  78.       (xdrx_end)
  79.     )
  80.   )
  81.   (princ)
  82. )


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

使用道具 举报

签到天数: 82 天

连续签到: 1 天

[LV.6]常住居民II

已领礼包: 52个

财富等级: 招财进宝

发表于 2018-1-22 11:22:24 | 显示全部楼层

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

使用道具 举报

签到天数: 1052 天

连续签到: 13 天

[LV.10]以坛为家III

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-1-22 11:25:14 | 显示全部楼层

加一行代码而已,希望能举一反三

  1. lst (append lst (list (list "合计" (rtos (apply '+ (mapcar '(lambda(x)(atof (cadr x))) lst)) 2 1))))


搜狗截图20180122102028.png

  1. (defun c:tt (/ hz lst pt ss txt txt1 var x xw y)
  2.   (if (and
  3.         (xdrx_initssget "\n选取要统计的文字<退出>:")
  4.         (setq ss (xdrx_ssget '((0 . "TEXT"))))
  5.       )
  6.     (progn
  7.       (xdrx_begin)
  8.       (xdrx_sysvar_push '("dimzin" 0))
  9.       (setq lst (mapcar
  10.                   '(lambda (x)
  11.                      (setq txt (xdrx_getpropertyvalue x "textstring"))
  12.                      (setq txt1 (xd::string:regexps "[\\u4e00-\\u9fa5]{1,}[0-9.]+"
  13.                                                     txt ""
  14.                                 )
  15.                      )
  16.                      (if txt1
  17.                        (setq lst (mapcar
  18.                                    '(lambda (y)
  19.                                       (setq hz (xd::string:regexps "[\\u4e00-\\u9fa5]{0,}"
  20.                                                                    y ""
  21.                                                )
  22.                                       )
  23.                                       (setq xw (xd::string:regexps "(-?[0-9]+)(\\.[0-9]+)?"
  24.                                                                    y ""
  25.                                                )
  26.                                       )
  27.                                       (list (car hz) (atof (car xw)))
  28.                                     )
  29.                                    txt1
  30.                                  )
  31.                        )
  32.                      )
  33.                    )
  34.                   (xdrx_pickset->ents ss)
  35.                 )
  36.             lst (apply
  37.                   'append
  38.                   lst
  39.                 )
  40.             lst (xd::list:groupbyindex lst 0.1)
  41.             lst (vl-sort lst '(lambda (x y)
  42.                                 (< (car x) (car y))
  43.                               )
  44.                 )
  45.             lst (mapcar
  46.                   '(lambda (x)
  47.                      (list (car x) (rtos (apply
  48.                                            '+
  49.                                            (cdr x)
  50.                                          ) 2 1
  51.                                    )
  52.                      )
  53.                    )
  54.                   lst
  55.                 )
  56.             lst (append lst (list (list "合计" (rtos (apply '+ (mapcar '(lambda(x)(atof (cadr x))) lst)) 2 1))))
  57.             lst (append
  58.                   (list (list "统计表" nil) '("名 称" "数 量"))
  59.                   lst
  60.                 )
  61.       )
  62.       (if (not #miaomu-tj-height)
  63.         (setq #miaomu-tj-height 3.5)
  64.       )
  65.       (if (setq var (getreal (xdrx_prompt "\n字高<" #miaomu-tj-height ">:" t)))
  66.         (setq #miaomu-tj-height var)
  67.       )
  68.       (if (setq pt (getpoint "\n表格插入点:"))
  69.         (progn
  70.           (xd::text:init 1)
  71.           (XD::Table:MakeFromList lst pt #miaomu-tj-height (/ #miaomu-tj-height
  72.                                                               2.0
  73.                                                            )
  74.           )
  75.         )
  76.       )
  77.       (xdrx_sysvar_pop)
  78.       (xdrx_end)
  79.     )
  80.   )
  81.   (princ)
  82. )

点评

大神,请教下,xdrx_getpropertyvalue 这个函数里的属性比如有你用的这个"textstring",我一直在找对象属性的英文对照表,能不能提供下,谢谢。  详情 回复 发表于 2018-5-19 23:50
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

签到天数: 14 天

连续签到: 1 天

[LV.3]偶尔看看II

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

使用道具 举报

签到天数: 14 天

连续签到: 1 天

[LV.3]偶尔看看II

发表于 2018-3-24 19:36:34 | 显示全部楼层
问哈大佬为啥我TT后提示找到0个,无法选择文子标识
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 14 天

连续签到: 1 天

[LV.3]偶尔看看II

发表于 2018-3-24 19:42:57 | 显示全部楼层
大佬发的苗木统计.lsp 我也下了,全贴的代码我也复制试过,特别是在16楼我框选了字体就没有弹出字高这个项目,求大佬解惑
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2018-7-21 19:54 , Processed in 0.204706 second(s), 62 queries , Gzip On, WinCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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