找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2025|回复: 19

[求助] 麻烦各位帮我处理下MTEXT转换成TEXT.

[复制链接]

已领礼包: 1个

财富等级: 恭喜发财

发表于 2018-5-22 17:44:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
本帖最后由 newer 于 2018-5-22 18:05 编辑

麻烦各位帮我处理下MTEXT转换成TEXT,不改变原先的字体,因为打破后会改变字体样式.
附件为处理效果.

搜狗截图20180522180408.png

44.rar

5.35 KB, 下载次数: 4, 下载积分: D豆 -1 , 活跃度 1

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-5-22 17:46:24 | 显示全部楼层
请不要在“每日插件”论坛发求助类和 代码无关的帖子,求助请发帖到 编程申请、悬赏求助等论坛。

点评

好的,我已经在申请哪里发了,下次会注意 但是我不会删帖子.  详情 回复 发表于 2018-5-22 17:53
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2018-5-22 17:53:02 | 显示全部楼层
newer 发表于 2018-5-22 17:46
请不要在“每日插件”论坛发求助类和 代码无关的帖子,求助请发帖到 编程申请、悬赏求助等论坛。

好的,我已经在申请哪里发了,下次会注意  但是我不会删帖子.

点评

请上传个实际的图纸供测试。MTEXT里面字体会很多种吗?还有,你为什么要炸开MTEXT啊  详情 回复 发表于 2018-5-22 17:56
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-5-22 17:56:25 | 显示全部楼层
qq542378516 发表于 2018-5-22 17:53
好的,我已经在申请哪里发了,下次会注意  但是我不会删帖子.

请上传个实际的图纸供测试。MTEXT里面字体会很多种吗?还有,你为什么要炸开MTEXT啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2018-5-22 18:01:48 | 显示全部楼层
因为公司的处理文字需要打破后才能转换成多段线.MTEXT的字体跟TEXT字体样式不一样,所以会产生这样的问题.

点评

请上传下你的图纸。  详情 回复 发表于 2018-5-22 22:52
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-5-22 22:52:22 | 显示全部楼层
qq542378516 发表于 2018-5-22 18:01
因为公司的处理文字需要打破后才能转换成多段线.MTEXT的字体跟TEXT字体样式不一样,所以会产生这样的问题.

请上传下你的图纸。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2018-5-23 19:30:49 | 显示全部楼层
本帖最后由 Lispboy 于 2018-5-23 19:36 编辑

试试,

搜狗截图20180523193503.png

  1. (defun c:tt ()
  2.   (if (and (xdrx_initssget "\n选择要炸开的多行文字<退出>:")
  3.            (setq ss (xdrx_ssget '((0 . "MTEXT"))))
  4.       )
  5.     (progn
  6.       (mapcar '(lambda (x)
  7.                  (setq txt (xdrx_getpropertyvalue x "contents"))
  8.                  (cond ((setq font (xdrx_string_regexps "(?<=\\\\f).*(?=\\|)" txt 6 t))
  9.                         (setq face (car (xdrx_string_regexps "[^|]+" font)))                       
  10.                         (if (not (xdrx_object_get "style" face))
  11.                           (progn (setq txt (xdrx_textstyle_make face "" "" 0.0 1.0))
  12.                                  (xdrx_setpropertyvalue txt "font" face)
  13.                           )
  14.                         )
  15.                        )
  16.                        ((setq font (xdrx_string_regexps "(?<=\\\\F).*(?=\\|)" txt 6 t))
  17.                         (setq face (car (xdrx_string_regexps "[^|]+" font)))
  18.                         (if (not (xdrx_object_get "style" face))
  19.                           (progn (setq txt (xdrx_textstyle_make face "" "" 0.0 1.0))
  20.                                  (xdrx_setpropertyvalue txt "filename" face)
  21.                           )
  22.                         )
  23.                        )
  24.                  )
  25.                  (setq ss1 (xdrx_entity_explode x))
  26.                  (xdrx_entity_setproperty ss1 "textstyle" face)
  27.                )
  28.               (xdrx_pickset->ents ss)
  29.       )
  30.     )
  31.   )
  32.   (princ)
  33. )


点评

你好,用了之后有些见效了,但有些不行,然后REGEN,重新生成就变字体了,附件为需要处理的图纸,麻烦测试下.  详情 回复 发表于 2018-5-24 09:17
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2018-5-24 09:17:52 | 显示全部楼层

你好,用了之后有些见效了,但有些不行,然后REGEN,重新生成就变字体了,附件为需要处理的图纸,麻烦测试下.

55.rar

7.46 KB, 下载次数: 2, 下载积分: D豆 -1 , 活跃度 1

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2018-5-24 09:20:08 | 显示全部楼层
应该要打破前读取MTEXT的样式新建一个一样的,打破后就让它回复之前的字体样式
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2018-5-24 09:36:11 | 显示全部楼层
qq542378516 发表于 2018-5-24 09:20
应该要打破前读取MTEXT的样式新建一个一样的,打破后就让它回复之前的字体样式

本来就是新建一个标注样式,你把你手工建立的样式都PURGE掉,你再用。
现在这个版本,把炸开的MTEXT字体样式 都 设置到 第一个你在MTEXT里面自定义的样式。

点评

我上传的图纸了,麻烦你试下,没打破前的样式清理不了,正在使用无法删除.  详情 回复 发表于 2018-5-24 09:46
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2018-5-24 09:46:03 | 显示全部楼层
Lispboy 发表于 2018-5-24 09:36
本来就是新建一个标注样式,你把你手工建立的样式都PURGE掉,你再用。
现在这个版本,把炸开的MTEXT字体 ...

我上传的图纸了,麻烦你试下,没打破前的样式清理不了,正在使用无法删除.

点评

SIMSUN样式就是新简历的,炸开后的单行文字样式就是SIMSUN。 SIMSUN是你的MTEXT里面第一个自定义使用的样式。 之前: [attachimg]77676[/attachimg] 之后: [attachimg]77675[/attachimg]  详情 回复 发表于 2018-5-24 11:44
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-5-24 11:44:37 | 显示全部楼层
qq542378516 发表于 2018-5-24 09:46
我上传的图纸了,麻烦你试下,没打破前的样式清理不了,正在使用无法删除.

SIMSUN样式就是新简历的,炸开后的单行文字样式就是SIMSUN。

SIMSUN是你的MTEXT里面第一个自定义使用的样式。

之前:

搜狗截图20180524114221.png

之后:

搜狗截图20180524114320.png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2018-5-24 13:34:37 | 显示全部楼层
qq542378516 发表于 2018-5-24 09:46
我上传的图纸了,麻烦你试下,没打破前的样式清理不了,正在使用无法删除.

修改了代码,现在适合多种样式了,试试,下面图片演示了和普通EXPLODE命令的不同。

MTEXT-exp.gif

  1. ;|
  2. 函数名称:        XD::Mtext:Explode
  3. 调用格式:        (XD::Mtext:Explode ss)
  4. 参数说明:        ss ---- 选择集 or Ename or vla-object
  5. 返回值:        表
  6. 函数简介:        炸开MTEXT,保持字体样式(样式随第一个自定义样式)
  7. 函数来源:        原创
  8. 函数作者:        Lispboy
  9. 适用版本:        XDRX API
  10. 最后更新时间:        2018-05-23
  11. |;
  12. (defun XD::Mtext:Explode (ss / x txt font face ss1 ss2 h prec y styl faces)
  13.   (cond ((= (type ss) 'PICKSET) (setq ss (xdrx_pickset->ents ss)))
  14.         ((= (type ss) 'ENAME) (setq ss (list ss)))
  15.         ((= (type ss) 'VLA-OBJECT)
  16.          (setq ss (list (vlax-vla-object->ename ss)))
  17.         )
  18.   )
  19.   (setq prec (xdrx_document_getprec))
  20.   (mapcar
  21.     '(lambda (x / )
  22.        (if (xdrx_object_isa x "AcDbMtext")
  23.          (progn (setq txt (xdrx_getpropertyvalue x "contents")
  24.                       row (xdrx_string_split txt "\\P")
  25.                       styl (xdrx_getpropertyvalue x "textstyle" nil)
  26.                 )
  27.                 (setq
  28.                   faces (mapcar '(lambda (y)
  29.                                    (cond ((setq font (xdrx_string_regexps "(?<=\\\\f).*(?=\\|)" y 6 t))
  30.                                           (setq face (car (xdrx_string_regexps "[^|]+" font)))
  31.                                           (if (not (xdrx_object_get "style" face))
  32.                                             (progn (setq txt (xdrx_textstyle_make face "" "" 0.0 1.0))
  33.                                                    (xdrx_setpropertyvalue txt "font" face)
  34.                                             )
  35.                                           )
  36.                                          )
  37.                                          ((setq font (xdrx_string_regexps "(?<=\\\\F).*(?=\\|)" txt 6 t))
  38.                                           (setq face (car (xdrx_string_regexps "[^|]+" font)))
  39.                                           (if (not (xdrx_object_get "style" face))
  40.                                             (progn (setq txt (xdrx_textstyle_make face "" "" 0.0 1.0))
  41.                                                    (xdrx_setpropertyvalue txt "filename" face)
  42.                                             )
  43.                                           )
  44.                                          )
  45.                                          (t
  46.                                           (setq face styl))
  47.                                    )
  48.                                    face
  49.                                  )
  50.                                 row
  51.                         )
  52.                 )
  53.                 (setq ss1 (xdrx_entity_explode x))
  54.                 (xdrx_entity_setproperty ss1 "textstyle" face)
  55.                 (setq h (xdrx_getpropertyvalue (ssname ss1 0) "textheight")
  56.                       h (/ h 2.0)
  57.                 )
  58.                 (xdrx_document_setprec h 0.01)
  59.                 (setq ss2 (xd::pickset:tablesort ss1 0 3 '> '<))
  60.                 (setq faces (XD::List:FillGap faces styl (length ss2)))
  61.                 (apply 'xdrx_document_setprec prec)
  62.                 (mapcar '(lambda (m n)
  63.                            (setq str (xdrx_entity_getproperty m "textstring")
  64.                                  str (apply 'strcat str)
  65.                            )
  66.                            (xdrx_setpropertyvalue (car m) "textstring" str)
  67.                            (xdrx_entity_delete (cdr m))
  68.                            (xdrx_setpropertyvalue (car m) "textstyle" n)
  69.                            (car m)
  70.                          )
  71.                         ss2
  72.                         faces
  73.                 )
  74.          )
  75.        )
  76.      )
  77.     ss
  78.   )
  79. )
  80. (defun c:tt()
  81.   (if (setq ss (ssget '((0 . "MTEXT"))))
  82.     (xd::mtext:explode ss)
  83.   )
  84.   (princ)
  85. )


点评

去下载安装 最新的 XDRX API [attachimg]77700[/attachimg]  详情 回复 发表于 2018-5-25 08:54
但是我试了下我上传的图纸好像不行啊,麻烦你用我的图纸做测试谢谢.  详情 回复 发表于 2018-5-25 08:43
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5060个

财富等级: 富甲天下

发表于 2018-5-24 22:47:31 来自手机 | 显示全部楼层
好像很牛的样子,有注释就最好了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2018-5-25 08:43:04 | 显示全部楼层
Lispboy 发表于 2018-5-24 13:34
修改了代码,现在适合多种样式了,试试,下面图片演示了和普通EXPLODE命令的不同。

但是我试了下我上传的图纸好像不行啊,麻烦你用我的图纸做测试谢谢.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-26 12:58 , Processed in 0.461740 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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