明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 848|回复: 8

  怎么将普通文字转为属性文字?

[复制链接]
发表于 2024-5-1 13:50:57 | 显示全部楼层 |阅读模式
平时大多数都是普通文字,有时候需要属性文字,怎么将普通文字转为属性文字?
发表于 2024-5-1 16:12:42 | 显示全部楼层

  1. ;属性文字<--->单行文本相互转换
  2. (defun c:ta (/ ss num ee nam ent)
  3. (prompt "\n***属性文字与单行文字相互转换---LZYCAD做部分修改***")
  4. (setq ss (ssget '((0 . "ATTDEF,TEXT"))))
  5. (if ss (progn
  6. (setq num (sslength ss) ee 0)
  7. (repeat num
  8.    (setq nam (ssname ss ee)
  9.          ent  (entget nam)
  10.    )
  11.     (cond
  12.       ((= (cdr (assoc 0 ent)) "ATTDEF")
  13.        (att-to-tx ent)(entdel nam)
  14.       );1
  15.       ((= (cdr (assoc 0 ent)) "TEXT")
  16.        (txmtx-to-att ent)(entdel nam)
  17.       );2
  18.     );cond
  19.     (setq ee (1+ ee))
  20.   );repeat
  21. ));if
  22. (princ)
  23. );defun
  24. (prompt "\n***属性文字与单行文字相互转换---LZYCAD做部分修改,启动命令ta***\n")
  25. ;----------------------------------------------
  26. ;属性文本转单行文本                           
  27. ;----------------------------------------------
  28. (defun att-to-tx (ent / new dolst grp addto)
  29.     (setq new '((0 . "TEXT")))
  30.     (setq new (append new
  31.                       (list (cons 1 (cdr (assoc 2 ent))))
  32.               )
  33.     )
  34.     (setq dolst (list 7 8 10 11 39 40 41 50 51 62 71 72 73))
  35.     (foreach grp dolst
  36.       (setq addto (assoc grp ent))
  37.       (if (/= addto nil)
  38.         (setq new (append new (list (assoc grp ent))))
  39.       )
  40.     )
  41.     (entmake new)
  42. )
  43. ;----------------------------------------------
  44. ;单行文本转属性文本                           
  45. ;----------------------------------------------
  46. (defun txmtx-to-att (ent / new dolst grp addto)
  47.     (setq new '((0 . "ATTDEF")))
  48.     (setq new (append new
  49.                       (list (cons 1 (cdr (assoc 1 ent)))
  50.                             (cons 2 (cdr (assoc 1 ent)))
  51.                             (cons 3 (cdr (assoc 1 ent)))
  52.                             (cons 70 0)
  53.                       )
  54.               )
  55.     )
  56.     (setq dolst (list 7 8 10 11 39 40 41 50 51 62 71 72 73))
  57.     (foreach grp dolst
  58.       (setq addto (assoc grp ent))
  59.       (if (/= addto nil)
  60.         (setq new (append new (list (assoc grp ent))))
  61.       )
  62.     )
  63.     (entmake new)
  64. )

点评

很方便,NICE!  发表于 2024-5-1 19:03
回复 支持 4 反对 0

使用道具 举报

发表于 2024-5-1 17:46:55 | 显示全部楼层
以前在论坛搜到过
发表于 2024-5-5 00:25:00 | 显示全部楼层
刚好需要到,感谢
 楼主| 发表于 2024-5-5 11:32:24 | 显示全部楼层
weimeng555 发表于 2024-5-5 00:25
刚好需要到,感谢

其实源泉也有这个类似的命令:yq_blockatt2text-提取块内属性为文字(不打碎块)
发表于 2024-5-5 13:18:15 | 显示全部楼层

如果单行文字中间有空格的话,使用后文字会消失
发表于 2024-5-21 12:33:31 | 显示全部楼层
很方便,谢谢分享
发表于 2024-5-21 13:24:43 | 显示全部楼层
muai2010 发表于 2024-5-5 13:18
如果单行文字中间有空格的话,使用后文字会消失

确实有这个bug,我也不会解决
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 04:56 , Processed in 0.252571 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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