明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 121|回复: 5

[提问] 各位大神,求输入TT,选择文字,统计还有符号 - 的文字个数,分别列出

[复制链接]
发表于 4 小时前 | 显示全部楼层 |阅读模式
本帖最后由 664571221 于 2025-5-24 11:40 编辑

各位大神,求输入TT,选择文字,统计含有符号 - 的文字个数,分别列出插入cad,如下图,附图纸

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
回复

使用道具 举报

发表于 4 小时前 | 显示全部楼层
论坛有类似的  你得花点时间自己搜寻下
回复 支持 反对

使用道具 举报

发表于 1 小时前 | 显示全部楼层

  1. (defun c:tt2 (/ ss i ent txt prefix prefix-list count-dict text-style text-height text-layer text-color pt row y-pos)
  2.   (vl-load-com)
  3.   
  4.   ; 选择包含编号的文本对象
  5.   (if (setq ss (ssget '((0 . "TEXT"))))
  6.     (progn
  7.       ; 初始化前缀列表和统计字典
  8.       (setq prefix-list '()
  9.             count-dict '())
  10.       
  11.       ; 获取第一个文本的属性作为参考
  12.       (setq ent (ssname ss 0)
  13.             text-style (cdr (assoc 7 (entget ent)))
  14.             text-height (cdr (assoc 40 (entget ent)))
  15.             text-layer (cdr (assoc 8 (entget ent)))
  16.             text-color (cdr (assoc 62 (entget ent))))
  17.       
  18.       ; 遍历所有选中的文本
  19.       (repeat (setq i (sslength ss))
  20.         (setq ent (ssname ss (setq i (1- i)))
  21.               txt (cdr (assoc 1 (entget ent))))
  22.         
  23.         ; 提取前缀(字母部分)
  24.         (if (setq prefix (vl-string-right-trim "0123456789" txt))
  25.           (progn
  26.             ; 添加到前缀列表
  27.             (if (not (member prefix prefix-list))
  28.               (setq prefix-list (cons prefix prefix-list)))
  29.             
  30.             ; 更新统计计数
  31.             (if (assoc prefix count-dict)
  32.               (setq count-dict (subst (cons prefix (1+ (cdr (assoc prefix count-dict))))
  33.                                      (assoc prefix count-dict)
  34.                                      count-dict))
  35.               (setq count-dict (cons (cons prefix 1) count-dict))))))
  36.       
  37.       ; 按字母顺序排序前缀列表
  38.       (setq prefix-list (vl-sort prefix-list '<))
  39.       
  40.       ; 获取插入点
  41.       (setq pt (getpoint "\n指定统计结果插入点: "))
  42.       
  43.       ; 输出统计结果
  44.       (setq row 1)
  45.       (foreach prefix prefix-list
  46.         (setq y-pos (- (cadr pt) (* row text-height 1.5))
  47.               txt (strcat prefix "共有" (itoa (cdr (assoc prefix count-dict))) "个"))
  48.         
  49.         (entmake (list '(0 . "TEXT")
  50.                        (cons 1 txt)
  51.                        (cons 10 (list (car pt) y-pos 0))
  52.                        (cons 40 text-height)
  53.                        (cons 7 text-style)
  54.                        (cons 8 text-layer)
  55.                        (if text-color (cons 62 text-color))))
  56.         (setq row (1+ row))))
  57.     (princ "\n未选择任何文本对象。"))
  58.   (princ))
同行?给排水的?

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 1 小时前 | 显示全部楼层
shujh1989 发表于 2025-5-24 15:24
同行?给排水的?

厉害了兄弟,加我qq头像上
回复 支持 反对

使用道具 举报

 楼主| 发表于 1 小时前 | 显示全部楼层
(defun c:tt (/ e i p s s0 s1 ss)
    (if (setq s (ssget '((0 . "TEXT") (1 . "*-*"))))
        (progn
            (setq i -1)
            (while (setq e (ssname s (setq i (1+ i))))
                (setq s0 (cdr (assoc 1 (entget e))))
                (setq s0 (substr s0 1 (1+ (vl-string-search "-" s0))))
                (setq ss (cons s0 ss))
            )
            (setq s1 "")
            (while (setq e (car ss))
                (setq s (vl-remove-if-not '(lambda(x)(= e x))ss))
                (setq ss (vl-remove e ss))
                (setq s1 (strcat s1  e "共有" (itoa (length s))"个\\P"))     
            )   
            (and (setq p (getpoint))
                (entmakex
                    (list '(0 . "MTEXT")
                        '(100 . "AcDbEntity")
                        '(100 . "AcDbMText")
                        (cons 7 (getvar "TEXTSTYLE"))
                        (cons 1 s1)
                        (cons 10 p)
                    )
                )
            )
        )
    )
)波总的代码
回复 支持 反对

使用道具 举报

发表于 半小时前 | 显示全部楼层
664571221 发表于 2025-5-24 15:29
厉害了兄弟,加我qq头像上

以前加过,哈哈
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-24 16:33 , Processed in 0.185269 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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