明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3274|回复: 10

得到mtext的值

[复制链接]
发表于 2004-12-27 13:56:00 | 显示全部楼层 |阅读模式
当我用dxf码得到mtext的值时如果用默认字体txt时会得到"aagagagagaghkahadgk",但是如果中间几个字的字体变掉了,dxf的1号码便会将其所用的字体也显示出来"a{\fTahoma|b0|i0|c0|p32;agagagagag}hkah{\fTahoma|b0|i0|c0|p32;ad}gk",但是我只要文字内容,不要字体信息,有什么好办法吗?谢谢
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2004-12-27 14:23:00 | 显示全部楼层
本帖最后由 作者 于 2004-12-27 15:46:28 编辑
  1. (DEFUN GETMTEXT ()
  2.   (SETVAR "CMDECHO" 0)
  3.   (PRINC "\nSelect a mtext :")
  4.   (SETQ SS (SSGET '((0 . "MTEXT"))))
  5.   (SETQ TL (CDR (ASSOC 1 (ENTGET (SSNAME SS 0)))))
  6.   (SETQ SL (STRLEN TL) I 1 TXT "")
  7.   (WHILE (< I SL)
  8.    (IF (= (SETQ ST (SUBSTR TL I 1)) "{") (PROGN
  9.      (WHILE (/= (SUBSTR TL (SETQ I (1+ I)) 1) "}"))
  10.      (SETQ I (1+ I))
  11.    )
  12.      (SETQ TXT (STRCAT TXT ST) I (1+ I))
  13.    )
  14.   )
  15.   (SETVAR "CMDECHO" 1)
  16.   TXT
  17. )
复制代码
 楼主| 发表于 2004-12-27 14:40:00 | 显示全部楼层
zzxxqq你好象没把ENTNAME函数给我吧。
发表于 2004-12-27 15:48:00 | 显示全部楼层
啊!敲错了!是SSNAME。二楼已改。
 楼主| 发表于 2004-12-27 16:23:00 | 显示全部楼层
返回值不对啊。如图返回"fagag"

本帖子中包含更多资源

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

x
发表于 2004-12-27 17:03:00 | 显示全部楼层
再改一下:[ code](DEFUN GETMTEXT ()
  (SETVAR "CMDECHO" 0)
  (PRINC "\nSelect a mtext :")
  (SETQ SS (SSGET '((0 . "MTEXT"))))
  (SETQ TL (CDR (ASSOC 1 (ENTGET (SSNAME SS 0)))))
  (SETQ SL (STRLEN TL) I 1 TXT "")
  (WHILE (< I SL)
   (IF (= (SETQ ST (SUBSTR TL I 1)) "{") (PROGN
     (WHILE (/= (SUBSTR TL (SETQ I (1+ I)) 1) ";"))
     (WHILE (/= (SETQ ST (SUBSTR TL (SETQ I (1+ I)) 1)) "}")
       (SETQ TXT (STRCAT TXT ST))
     )
     (SETQ I (1+ I))
   )
     (SETQ TXT (STRCAT TXT ST) I (1+ I))
   )
  )
  (SETVAR "CMDECHO" 1)
  TXT
)[/code]
 楼主| 发表于 2004-12-27 19:57:00 | 显示全部楼层
谢谢,这下可以了,万分感谢.
发表于 2004-12-28 09:16:00 | 显示全部楼层
6楼的函数可能还有点问题,当MTEXT的内容比较多时,1组码会分成几段,处理的结果会不正确。



比较好的是使用VLA-GET-TextString函数取得字符内容。


另外,去掉大括号中内容的处理方式不科学,处理速度慢,VL-STRING开头的函数中有专门处理这种事情的。


还有就是容错性问题,如果用户没有选择到MTEXT实体,将会如何处理?


以上纯属个人观点。
发表于 2004-12-29 21:13:00 | 显示全部楼层
Lisp获取MText的值炸开再连接不就可以了
发表于 2004-12-30 00:52:00 | 显示全部楼层
炸开好,我就是这么干的:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 13:42 , Processed in 0.187786 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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