找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 518|回复: 0

[统计] 你好各位大神CAD插件文本数字分类求和怎么在CAD2025里不好用

[复制链接]
发表于 2024-8-20 08:42:03 | 显示全部楼层 |阅读模式

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

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

×
你好各位大神CAD插件文本数字分类求和怎么在CAD2025里不好用,选完回车指定插入点就出现这种情况,指定插入点:; 错误: no function definition: XXEXP
;;--------------------------------------------正则表达式----------------------------------------------------;;
(defun xxexp (pat str key / end)
  ;(princ "\n ★"一刀屠文"(xxexp)(xxexpr) = 对字符串进行正则表达式测试及替换-by 梁雄啸.2007.7")
  (vl-load-com)
  (if (not *xxvb**p)
    (setq *xxvb**p (vlax-get-or-create-object "VBScript.RegExp"))
  )
  (vlax-put *xxvb**p 'Pattern pat)
  (if (not key)(setq key ""))  
  (setq key (strcase key))
  (setq keys '(("I"  "IgnoreCase")("G"  "Global")("M"  "Multiline")))
  (mapcar '(lambda(x)
       (if (wcmatch key (strcat "*" (car x) "*"))
         (vlax-put *xxvb**p (read(cadr x)) 0)
         (vlax-put *xxvb**p (read(cadr x)) -1)
         ))
    keys)
  (setq matches (vlax-invoke *xxvb**p 'Execute str))
  (vlax-for x matches (setq end (cons (vla-get-value x) end)))
  (reverse end)
)
;;--------------------------------------------end----------------------------------------------------;;
;|功能:分类统计求和,如:大叶女贞C 7 大叶女贞B 8大叶女贞C 10,会统计出大叶女贞C 17 大叶女贞B 8
        作者:杨春柳 2017.11.10
|;
(defun c:gfsum ( / acaddocument acadobject ent n name namelst newtext num pt sss text textlst txth x)
  (setq AcadObject(vlax-get-acad-object)
      AcadDocument(vla-get-ActiveDocument AcadObject)
    )
  (setvar "cmdecho" 0)
  (vla-StartUndoMark AcadDocument)
  (princ "功能:分类统计求和。作者:孤帆")
  (setq sss (ssget ":L" (list '(0 . "text"))))
  (setq pt (getpoint "\n指定插入点:"))
  (if (and sss pt)
    (progn
      (setq namelst '() textlst '())
      (setq ent (cdr (entget (ssname  sss 0))))
      (setq txth (cdr (assoc 40 ent)))
      (repeat (setq n (sslength sss))
            (setq namelst (cons (vlax-ename->vla-object(ssname  sss (setq n (1- n)))) namelst)))
      (setq namelst (mapcar '(lambda (x) (xxexp "[\\-,\\d,\\.]+|[^\\-,\\d,\\.]+" (vla-get-TextString x) "")) namelst))
      (foreach name namelst
              (if (setq text (assoc (car name) textlst))
                      (progn
                              (if (and (= 2 (vl-list-length name)) (numberp (setq num (read (cadr name)))))
                                      (progn
                                              (setq num (+ num (read (cadr text))))
                                              (setq newtext (list (car text) (vl-princ-to-string num)))
                                              (setq textlst (subst newtext text textlst))
                                      )
                              )
                      )
                      (progn
                              (if (and (= 2 (vl-list-length name)) (numberp (setq num (read (cadr name)))))
                                      (setq textlst (cons name  textlst))
                              )
                      )
              )
      )
      (foreach text textlst
              (setq text (apply 'strcat text))
              (setq ent (subst (cons 1 text)(assoc 1 ent)ent)
                ent (subst (cons 10 pt)(assoc 10 ent)ent)
                ent (subst (cons 11 pt)(assoc 11 ent)ent))
              (entmake ent)
              (setq pt (polar pt (* 1.5 pi) (* 1.3 txth)))
      )
      )
    )
(vla-EndUndoMark AcadDocument)
(setvar "CMDECHO" 1)
(princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-21 17:58 , Processed in 0.168265 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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