明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1156|回复: 4

[函数] 提取TEXT/MTEXT内的纯文本,过滤文字样式格式

[复制链接]
发表于 2023-12-19 13:32:54 | 显示全部楼层 |阅读模式
  1. (if (null vlax-dump-object) (vl-load-com));;将 Visual LISP 扩展功能加载到 AutoLISP

  2. ;提取多行文字,去除无用格式符号--(一级)----
  3. ;由尘缘一生提供 QQ:15290049

  4. (defun gets-mt (nam / s ob)

  5.   (setq s (vlax-get (vlax-ename->vla-object nam) 'TextString))

  6.   (vlax-put-property (setq ob (vlax-create-object "Vbscript.RegExp")) "IgnoreCase" 0)

  7.   (vlax-put-property ob "Global" 1)

  8.   (setq s

  9.     (mapcar

  10.       '(lambda (x y) (vlax-put-property ob "Pattern" x) (setq s (vlax-invoke-method ob "Replace" s y)))

  11.       '("\\\\\\\\" "\\\\{" "\\\\}" "\\\\p(.[^;]*);" "\\\\S(.[^;]*)(\\^|#|\\\\)(.[^;]*);"

  12.          "(\\\\F|\\\\f|\\\\C|\\\\H|\\\\T|\\\\Q|\\\\W|\\\\A)(.[^;]*);" "(\\\\L|\\\\O|\\\\l|\\\\o)" "\\\\~"

  13.          "\\\\P" "\n" "({|})" "\\x01" "\\x02" "\\x03")

  14.       (list (chr 1) (chr 2) (chr 3) "" "" "" "" "" (chr 0) "" "" "\\" "{" "}")

  15.     )

  16.   )

  17.   (if ob (vlax-release-object ob))

  18.   (last s)

  19. )



  20. ;样例

  21. (defun  c:tt (/ str)

  22.   (setq mtext_name (car(entsel "\n 请选择MTEXT文字:?")))

  23.   (setq str (gets-mt mtext_name))

  24.   str

  25. )



评分

参与人数 2明经币 +2 金钱 +20 收起 理由
USER2128 + 1 赞一个!
kucha007 + 1 + 20 赞一个!

查看全部评分

发表于 2023-12-20 00:18:31 | 显示全部楼层
感谢分享代码
发表于 2023-12-20 01:00:05 | 显示全部楼层
感谢楼主分享
发表于 2023-12-20 22:43:12 | 显示全部楼层
MTEXT直接炸开获取更简单明了……
发表于 2023-12-25 02:27:24 | 显示全部楼层
天正文字不正持
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 01:31 , Processed in 0.177698 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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