找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 640|回复: 2

[求助] 晓东工具使用发现的问题-文字统计功能

[复制链接]
小康_U8y3Y 该用户已被删除
发表于 2018-5-29 23:06:25 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-5-29 23:30:52 | 显示全部楼层
把下面的拷贝回去,试试。

  1. (defun c:XDTB_TJTEXT( / hz i key lst pt ss txt val x xw y)
  2.   (defun _prompt ()
  3.     (xdrx_prompt
  4.       "\n当前方式:"
  5.       (if (= 0 #xd-tongji-text-mode)
  6.         "文字自身统计"
  7.         "文字内数字求和"
  8.       )
  9.     )
  10.     (princ)
  11.   )
  12.   (defun _KEYWORD (key)
  13.     (cond
  14.       ((= key "D")
  15.        (if (= 1 #xd-tongji-text-mode)
  16.          (setq #xd-tongji-text-mode 0)
  17.          (setq #xd-tongji-text-mode 1)
  18.        )
  19.       )
  20.     )
  21.     (_prompt)
  22.   )
  23.   (xdrx_begin)
  24.   (if (not #xd-tongji-textheight)
  25.     (setq #xd-tongji-textheight 3.5)
  26.   )
  27.   (if (not #xd-tongji-text-mode)
  28.     (setq #xd-tongji-text-mode 0)
  29.   )
  30.   (if (setq val        (getreal
  31.                   (xdrx_prompt "\n字高<" #xd-tongji-textheight ">:" t)
  32.                 )
  33.       )
  34.     (setq #xd-tongji-textheight val)
  35.   )
  36.   (_prompt)
  37.   (xdrx_initget "D")
  38.   (if (and (xdrx_initssget
  39.              "\n选取要统计的文字[统计方式(D)]<退出>"
  40.              "D"
  41.              ""
  42.              "_KEYWORD"
  43.            )
  44.            (setq ss (xdrx_ssget '((0 . "*TEXT"))))
  45.       )
  46.     (progn
  47.       (setq lst (xdrx_entity_getproperty ss "textstring"))
  48.       (if (= 0 #xd-tongji-text-mode)
  49.         (progn
  50.           (setq
  51.             lst (xd::list:groupbyindex lst 1.0)
  52.             lst        (mapcar        '(lambda (x) (list (car x) (length (cdr x))))
  53.                         lst
  54.                 )
  55.             lst        (vl-sort lst '(lambda (x y) (< (car x) (car y))))
  56.           )
  57.         )
  58.         (progn
  59.           (xdrx_sysvar_push '("dimzin" 0))
  60.           (setq        lst (mapcar
  61.                       '(lambda (x)
  62.                          (setq txt (xdrx_getpropertyvalue x "textstring"))
  63.                          (if (and
  64.                                (setq hz        (xd::string:regexps
  65.                                           "[\\u4e00-\\u9fa5]{0,}"
  66.                                           txt
  67.                                           ""
  68.                                         )
  69.                                )
  70.                                (setq xw        (xd::string:regexps
  71.                                           "(-?[0-9]+)(\\.[0-9]+)?"
  72.                                           txt
  73.                                           ""
  74.                                         )
  75.                                )
  76.                              )
  77.                            (list (car hz) (atof (car xw)))
  78.                          )
  79.                        )
  80.                       (xdrx_pickset->ents ss)
  81.                     )
  82.                 lst (xd::list:groupbyindex lst 0.1)
  83.                 lst (vl-sort lst
  84.                              '(lambda (x y)
  85.                                 (< (car x) (car y))
  86.                               )
  87.                     )
  88.                 lst (mapcar
  89.                       '(lambda (x)
  90.                          (list (car x)
  91.                                (rtos (apply
  92.                                        '+
  93.                                        (cdr x)
  94.                                      )
  95.                                      2
  96.                                      1
  97.                                )
  98.                          )
  99.                        )
  100.                       lst
  101.                     )
  102.           )
  103.         )
  104.       )
  105.       (setq i        0
  106.             lst        (mapcar        '(lambda (x) (cons (itoa (setq i (1+ i))) x))
  107.                         lst
  108.                 )
  109.       )
  110.       (setq lst (cons (list "序 号" "名 称" "数 量") lst)
  111.             lst (cons (list "统 计 表" nil nil)
  112.                        lst
  113.                  )
  114.       )
  115.       (if (setq pt (getpoint "\n表格插入点<退出>:"))
  116.         (progn
  117.           (xd::text:init 1)
  118.           (xd::table:makefromlist
  119.             lst
  120.             pt
  121.             #xd-tongji-textheight
  122.             (/ #xd-tongji-textheight 2.0)
  123.           )
  124.         )
  125.       )
  126.     )
  127.   )
  128.   (xdrx_end)
  129.   (princ)
  130. )


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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 23:01 , Processed in 0.170172 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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