明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1688|回复: 11

【FB】找到属性文字标记含"灯"的块并计数

[复制链接]
发表于 2023-5-7 18:36:14 | 显示全部楼层 |阅读模式
本帖最后由 kucha007 于 2023-5-9 17:20 编辑

求助出处:http://bbs.mjtd.com/forum.php?mo ... 762&fromuid=7329538

  1. ;找到属性文字标记含"灯"的块并计数
  2. (defun C:FB (/ SS i obj AttLst Flag Count STR p1 p2)
  3.   (if (setq SS (ssget '((0 . "INSERT")(66 . 1)))) ;只选属性块
  4.     (progn
  5.       (setq Count 0) ;计数归零
  6.       (repeat (setq i (sslength SS))
  7.         (setq obj (vlax-ename->vla-object (ssname SS (setq i (1- i)))))
  8.         (setq AttLst (vlax-safearray->list
  9.                        (vlax-variant-value (vla-GetAttributes Obj))
  10.                      )
  11.         ) ;收集块内属性成表
  12.         (setq Flag T)
  13.         (while (and Flag AttLst)
  14.           (if (wcmatch (vla-get-TextString (car AttLst)) "*灯*")  ;判断标记是否有"灯"
  15.             (progn
  16.               (setq Count (1+ Count))
  17.               (setq Flag nil) ;找到一次就停止循环
  18.             )
  19.             (setq AttLst (cdr AttLst))
  20.           )
  21.         )
  22.       )
  23.       (if (eq Count 0)
  24.         (princ "\n——★★★ 未找到符合条件的属性块 ★★★——")
  25.         (if
  26.           (and
  27.             (setq STR (strcat "共选择了" (rtos Count 2 0) "个符合条件的属性块"))
  28.             (setq p1 (getpoint "\n→请指定文字插入点:"))
  29.             (setq p2 (getpoint p1 "\n→请指定第二点确定文字高度:"))
  30.           )
  31.           (entmake
  32.             (list
  33.               '(0 . "TEXT")
  34.               (cons 1 STR) ;文字内容
  35.               (cons 8 (getvar "Clayer")) ;图层名称
  36.               (cons 10 p1) ;插入点
  37.               (cons 40 (distance p1 p2)) ;文字高度
  38.             )
  39.           )
  40.         )
  41.         
  42.       )
  43.       (command "redraw")
  44.       (princ)
  45.     )
  46.   )
  47. )

评分

参与人数 2明经币 +2 收起 理由
菜鸟初来乍到 + 1
panliang9 + 1 赞一个!

查看全部评分

发表于 2023-5-8 08:49:47 | 显示全部楼层
注意筛选时注意66组码

点评

👍  发表于 2023-5-8 09:39
回复 支持 1 反对 0

使用道具 举报

发表于 2023-5-8 10:08:39 | 显示全部楼层
点赞,谢谢分享
发表于 2023-5-9 16:23:31 | 显示全部楼层
谢谢大神,功能很不错了,要是能统计多个就好了,比如灯  开关,两断文字列出有几个灯几个开关或则还有其他的
 楼主| 发表于 2023-5-9 16:44:51 | 显示全部楼层
664571221 发表于 2023-5-9 16:23
谢谢大神,功能很不错了,要是能统计多个就好了,比如灯  开关,两断文字列出有几个灯几个开关或则还有其他 ...

你要的太复杂了,花点钱让别人给你写吧。
发表于 2023-5-9 17:17:27 | 显示全部楼层
能不能后面不要有小数,因为个数都是整数
 楼主| 发表于 2023-5-9 17:20:07 | 显示全部楼层
664571221 发表于 2023-5-9 17:17
能不能后面不要有小数,因为个数都是整数

这个:(rtos Count)
改成:(rtos Count 2 0)
发表于 2023-5-10 08:01:15 | 显示全部楼层
点赞,支持一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 04:45 , Processed in 0.178176 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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