明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4493|回复: 14

【求助】改为框选

  [复制链接]
发表于 2011-11-25 15:27:16 | 显示全部楼层 |阅读模式
;;统计图形中的文本个数
(defun C:TT (/ SS LST I STR TMP)
    (if    (setq SS (ssget "X" '((0 . "*TEXT"))))
    (progn
        ;;统计数量
        (setq LST '()
          I   0
        )
        (repeat (sslength SS)
        (setq STR (cdr (assoc 1 (entget (ssname SS I)))))
        (if (setq TMP (assoc STR LST))
            (setq LST (subst (list STR (1+ (cadr TMP)))
                     TMP
                     LST
                  )
            )
            (setq LST (cons (list STR 1) LST))
        )
        (setq I (1+ I))
        )
        ;;输出结果
        (foreach TMP LST
;;;        (if (= (cadr TMP) 1)
;;;            ()
        (princ
            (strcat "\n内容: "
                (car TMP)
                " 个数为: "
                (itoa (cadr TMP))
            )
        )
;;;        )
        )
    ) ;_结束progn
    (princ "\n图形中不存在文本对象。")
    ) ;_结束if
    (princ)
) ;_结束defun

程序出自http://bbs.mjtd.com/forum.php?mod=viewthread&tid=62886


如上图,希望可以改为框选,希望结果可以写在模型空间上(如上图右边)(原显示在命令行中,查看不方便)谢谢。。。

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 昨天 21:18 | 显示全部楼层
谢谢大神分享!
回复 支持 反对

使用道具 举报

发表于 2011-11-25 20:29:58 | 显示全部楼层
字符串处理稍微熟悉一点,自己写了一个,看看能不能满足你的要求。。。

  1. (defun c:tjwb(/ LST1 N E S WB SS lst2 lst_new shuz lst lst11 lst12 height p1 WBJULI)
  2.   (setq ss(ssget '((0 . "TEXT")))N 0)
  3.   (REPEAT (SSLENGTH SS)
  4.     (SETQ E(SSNAME SS N)
  5.     S(ENTGET E)
  6.     WB(CDR(ASSOC 1 S))
  7.     height (CDR(ASSOC 40 s))
  8.           LST1 (CONS WB LST1)
  9.     )
  10.        (SETQ  N (1+ N))
  11.     )
  12.    (while (>(LENGTH LST1)0)
  13.    (IF (NOT(MEMBER (NTH 0 LST1)LST2))
  14.      (progn
  15.      (SETQ LST2 (append LST2 (list(strcat(NTH 0 LST1) "=")))
  16.            lst_new(vl-remove (NTH 0 LST1) LST1)
  17.            shuz (itoa(-(LENGTH LST1)(length lst_new)))
  18.            lst2 (append lst2 (list shuz))
  19.            lst1 lst_new)
  20.      )
  21.      )
  22.      (setq lst (cons lst2 lst)lst2 nil)
  23.      )
  24.   (mapcar '(lambda(x) (setq lst11(cons(strcat (car x)(cadr x))lst11))) lst)
  25.   (setq lst11(acad_strlsort lst11))
  26.   (setq WBJULI (* height 1.4))
  27.   (setq p1 (getpoint "\n请指定插入点:"))
  28.   (setq n 0)
  29.   (foreach x lst11
  30.      (command "text" p1 height "" x)
  31.      (command )
  32.     (setq p1 (list (car p1)(- (cadr p1) WBJULI) (caddr p1)))
  33.     (setq n(1+ n))
  34.    )
  35.    (princ)
  36.   )
  37.   
  38.    
  39.   



本帖子中包含更多资源

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

x

评分

参与人数 4明经币 +3 金钱 +20 收起 理由
革天明 + 1 赞一个!
669423907 + 1 很给力!
1993063 + 1
无痕月色 + 20 就这命令,谢谢....但不知为什么我统计出来的.

查看全部评分

发表于 2011-11-26 10:47:08 | 显示全部楼层
yjr111 发表于 2011-11-25 20:29
字符串处理稍微熟悉一点,自己写了一个,看看能不能满足你的要求。。。

开头加一句(setvar "osmode" 0)即可
发表于 2012-2-20 18:47:25 | 显示全部楼层
yjr111 发表于 2011-11-25 20:29
字符串处理稍微熟悉一点,自己写了一个,看看能不能满足你的要求。。。

这个很适合我!谢谢!
发表于 2012-2-20 19:21:11 | 显示全部楼层
挺不错的,方便使用,谢谢共享
发表于 2012-5-9 21:25:18 | 显示全部楼层
这个对我编门窗表有好处,谢谢
发表于 2012-8-17 13:19:45 | 显示全部楼层
挺不错的,对统计材料编号数量很方便,谢谢共享
发表于 2012-8-17 16:18:22 | 显示全部楼层
非常不错的代码
发表于 2012-11-29 14:51:09 | 显示全部楼层
正是我想要的
发表于 2012-11-29 15:09:56 | 显示全部楼层
来学习一下好代码~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-14 07:49 , Processed in 0.207531 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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