明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1103|回复: 5

求助:分类求和

[复制链接]
发表于 2023-1-12 10:49:06 | 显示全部楼层 |阅读模式
本帖最后由 gogozb 于 2023-1-12 10:50 编辑

烦请老师们出手相助,我已经没有币可悬赏呢!
现在需要求和的数据样式有如图两种形式,需要得到有四种。



本帖子中包含更多资源

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

x
发表于 2023-1-12 11:53:42 | 显示全部楼层
你这个需求,我有经验搞过,但是没有现成的代码。

我可以提供编程思路,也可以提供插件定制,有兴趣加我qq859779429。
发表于 2023-1-12 16:09:35 | 显示全部楼层
结果不是问题,主要工作量在数据提取上,如果你给的数据样式准确,实现起来应该不是特别难。
最笨的办法,单个读取字符,遇到要统计数量的关键字,就开始判断后续字符,如果是数字就持续读,直到非数字,然后把数字字符转化成数值,然后把关键字和数量做成点对存储起来方便处理。
我也是初学不久,什么正则表达式的不会,只能这个最笨的办法了
发表于 2023-1-12 18:13:56 | 显示全部楼层
本帖最后由 vitalgg 于 2023-1-12 18:54 编辑

  1. (setq res
  2.       (stat:classify
  3.        (mapcar
  4.   '(lambda(x)
  5.      (cons (car x)
  6.      (atoi
  7.       (cadr x))))
  8.   (list:split
  9.    (string:auto-split
  10.     (string:subst-all "" "+"
  11.           (entity:getdxf (car(entsel)) 1)))
  12.    2))))
  13. (setq pt (getpoint "绘制结果"))
  14. (entity:make-text
  15. (string:from-list
  16.   (mapcar '(lambda(x)
  17.        (strcat (car x)
  18.          (itoa  (cdr x))))
  19.     res)
  20.   "+")
  21. (setq pt (polar pt (* 1.5 pi) 5))
  22. 3 0 0.8 0 "LB")

  23. (entity:make-text
  24. (string:from-list
  25.   (mapcar '(lambda(x)
  26.        (strcat (car x)
  27.          (itoa  (cdr x))))
  28.     res)
  29.   "")
  30. (setq pt (polar pt (* 1.5 pi) 5))
  31. 3 0 0.8 0 "LB")


  32. (foreach txt (mapcar '(lambda(x)
  33.       (strcat (car x)
  34.         (itoa  (cdr x))))
  35.          res)
  36.    (entity:make-text
  37.     txt
  38.     (setq pt (polar pt (* 1.5 pi) 5))
  39.     3 0 0.8 0 "LB"))

  40. (table:make
  41. (setq pt (polar pt (* 1.5 pi) 5))
  42. "统计表"
  43. '("名称" "数量")
  44. (append
  45.   (mapcar '(lambda(x)
  46.        (list (car x)(cdr x)))
  47.     res)
  48.   (list
  49.    (list "合计"
  50.    (apply '+ (mapcar 'cdr res))))
  51. ))

基于 @lisp 函数库,代码中所有含有 : 的均为 @lisp提供的函数。
https://gitee.com/atlisp/atlisp-lib






本帖子中包含更多资源

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

x
 楼主| 发表于 2023-1-12 21:32:01 | 显示全部楼层
vitalgg 发表于 2023-1-12 18:13
基于 @lisp 函数库,代码中所有含有 : 的均为 @lisp提供的函数。
https://gitee.com/atlisp/atlisp-lib
...

谢谢大佬!后面有时间再研究,最近太忙了。
再次感谢。
发表于 2023-5-11 20:10:17 | 显示全部楼层
留个QQ一起研究
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 07:54 , Processed in 0.170621 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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