明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 852|回复: 4

[源码] 批量获取块中的文字

[复制链接]
发表于 2020-8-7 22:05 | 显示全部楼层 |阅读模式
本帖最后由 muwind 于 2020-8-7 22:12 编辑

;终于会发网页代码了.....
;这一个副产物:批量获取块中的文字,
;本来的目的是获取仅含文字的块如果文字是,
;有特定特征的文字 对块(主要是匿名块)进行删除或者别的操作,
;但是好像比我想的复杂那么点点

  1. (defun c:getbt(/ blks ss m n e nam bnnew namlst)
  2.   (setq BLKs (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))));取得图形的Blocks集合
  3.   (if (setq ss (ssget  '((0 . "INSERT"))))
  4.       (progn
  5.        (setq namlst '())
  6.        (repeat (setq n (sslength ss))
  7.          (if  (setq e (ssname ss (setq n (1- n))))
  8.           (progn
  9.            (setq nam (vla-get-name (vlax-ename->vla-object e)));获取块名字
  10.            (if (= (member nam namlst) nil)
  11.                (setq namlst(cons nam namlst))
  12.            )
  13.           )
  14.         )
  15.       )
  16.         (foreach n namlst   
  17.           (progn
  18.            (setq strlst '())
  19.             (vlax-for m (vla-item blks n)
  20.                (if (= (vla-get-objectname m) "AcDbText")
  21.                    (setq strlst (cons (vla-get-TextString m) strlst))
  22.                )
  23.              )
  24.            (if strlst
  25.             (progn
  26.               (princ (strcat "\n My name is " n ";All texts in my body are:"))
  27.               (princ strlst)
  28.             )
  29.            )
  30.           )
  31.          )
  32.        )
  33.   )
  34.   (princ)
  35. )

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2020-8-8 09:34 | 显示全部楼层
块中块不行呀
发表于 2020-8-9 09:59 | 显示全部楼层
好像识别不出来哦,老大演示一下
发表于 2021-1-19 22:23 | 显示全部楼层
怎么取得块中块  块中所有图元的列表
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 01:09 , Processed in 0.320327 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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