明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1906|回复: 15

[提问] 各位大神看下如何过滤选择块名中含有 灯 这个字的块

[复制链接]
发表于 2023-5-7 15:48:43 | 显示全部楼层 |阅读模式
输入tt,提示选择范围,框选范围后,选中快名中含有  灯   这个字的块,在命令栏提示选中了几个,最好能生成一段文字可以插入cad,比如选中了5个含灯的块插入cad
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2023-5-7 17:52:57 | 显示全部楼层
liuhe 发表于 2023-5-7 17:43
这哥们的图纸的块  就没有一个是灯命名的,不知道是什么系统导出来的

大哥你双击看下,好像在属性里面

本帖子中包含更多资源

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

x
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-5-14 21:49:27 | 显示全部楼层
(defun c:tt(/ p s)
        (if (ssget ":S" '((0 . "insert")(2 . "$equip$*")))
                (progn
                        (vlax-for e (vla-get-activeselectionset (vla-get-ActiveDocument (vlax-get-acad-object)))
                                (if        (vla-Get-HasAttributes e)
                                        (foreach x
                                                (vlax-safearray->list (vlax-variant-value (vla-GetAttributes e)))
                                                (if (and (= "A" (vla-Get-TagString x))
                                                                        (wcmatch (vla-Get-TextString x)"*灯*")
                                                                )
                                                        (setq s (cons e s))
                                                )
                                        )
                                )
                        )
                        (if (and  s (setq s (mapcar '(lambda(x)(vlax-get x 'insertionpoint)) s))
                                                (setq p (getpoint"\n大力出奇迹..."))
                                        )
                                (progn
                                        (command "text" p 350 0 (strcat "选中了"(itoa (length s))"个含灯的块"))
                                        (foreach x s (command "line" "non" x "non" p ""))
                                )
                        )
                       
                )               
        )
)
发表于 2023-5-9 13:34:31 | 显示全部楼层
  1. (defun c:tt ()
  2.   "统计块名称含灯的块"
  3.   (if (setq ss (ssget "x" '((0 . "INSERT") (66 . 1))))
  4.     (progn
  5.       (setq lst(vl-remove-if-not  '(lambda (x) (setq a (mapcar 'last (xyp-Att2list x))) (vl-some '(lambda (x) (vl-string-search "灯" x)) a))(xyp-Ss2List ss)))
  6.       (princ (strcat "\n一共选择了< " (itoa (length lst)) " >个块名称含灯的块"))
  7.     )
  8.   )
  9.   (princ)
  10. )



发表于 2023-5-7 17:01:50 | 显示全部楼层
本帖最后由 kucha007 于 2023-5-7 17:02 编辑

基础的东西建议自己摸索一下,以下是参考:
  1. (if (setq SS (ssget (list '(0 . "INSERT") (cons 2 "*灯*"))))
  2.   (progn
  3.     (princ (strcat "\n※一共选择了<" (rtos (sslength SS)) ">个块名称含灯的块"))
  4.     (princ)
  5.   )
  6. )

 楼主| 发表于 2023-5-7 17:08:51 | 显示全部楼层
本帖最后由 664571221 于 2023-5-7 17:12 编辑
kucha007 发表于 2023-5-7 17:01
基础的东西建议自己摸索一下,以下是参考:

大神我图纸发上来你看下

本帖子中包含更多资源

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

x
发表于 2023-5-7 17:43:48 | 显示全部楼层
这哥们的图纸的块  就没有一个是灯命名的,不知道是什么系统导出来的
发表于 2023-5-7 17:54:58 | 显示全部楼层
664571221 发表于 2023-5-7 17:52
大哥你双击看下,好像在属性里面

http://bbs.mjtd.com/forum.php?mo ... =%CD%B3%BC%C6%BF%E9


这个亲测可用
发表于 2023-5-7 18:30:54 | 显示全部楼层
本帖最后由 kucha007 于 2023-5-7 18:37 编辑

试试这个,检查块内属性的标记是否有"灯"字,如果有则计数

http://bbs.mjtd.com/forum.php?mo ... amp;fromuid=7329538

发表于 2023-5-7 20:00:34 | 显示全部楼层
小菜选择易可以搞定

本帖子中包含更多资源

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

x
发表于 2023-5-7 23:17:42 | 显示全部楼层
一共选择了<24>个块名称含灯的块
 楼主| 发表于 2023-5-8 09:02:13 | 显示全部楼层
kucha007 发表于 2023-5-7 18:30
试试这个,检查块内属性的标记是否有"灯"字,如果有则计数

http://bbs.mjtd.com/forum.php?mod=viewthre ...

大神可以数出来了,是否可以吧文字插入cad呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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