明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2064|回复: 6

VBA如何将多行文字转为大小相同的单行文字

[复制链接]
发表于 2015-1-12 15:43:32 | 显示全部楼层 |阅读模式
本帖最后由 浪迹天涯追月 于 2015-1-14 11:46 编辑

     多行文本击碎后  , 我需要它完美的和原图形重合 ,包括图层颜色都不变   
问题1 :  炸碎方法,  vba 如何调用explode 击碎多行文字 ? 击碎后文字的定位点可能会变 ,调整定位点后 ,文字的位置会变
问题2 :  删除重生方法, 重新生成文字 但它的宽度因子 无法从原多行文字那里得到信息 , 有什么办法可以得到么  ?调整定位点后它的位置也是会变的,如何才能一模一样的?   请高手出招啊。。。。。。。

本帖子中包含更多资源

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

x
发表于 2015-1-12 21:34:34 | 显示全部楼层
宽度因子不是width属性吗?
多测试一下以下两个属性,会有结果的
InsertionPoint
AttachmentPoint (mtext)/Alignment (text)
 楼主| 发表于 2015-1-14 08:36:21 | 显示全部楼层
zzyong00 发表于 2015-1-12 21:34
宽度因子不是width属性吗?
多测试一下以下两个属性,会有结果的
InsertionPoint

谢谢支招 ,发帖前都已经测试好几天了....width是多行文本的宽度属性,并非构成多行文本的文字的宽度因子 。有空接着测试吧 先忙别的
发表于 2015-1-14 10:24:42 | 显示全部楼层
浪迹天涯追月 发表于 2015-1-14 08:36
谢谢支招 ,发帖前都已经测试好几天了....width是多行文本的宽度属性,并非构成多行文本的文字的宽度因子 ...


Public Sub ss()
Dim objMT As AcadMText, pnt(2) As Double
Set objMT = ThisDrawing.ModelSpace.AddMText(pnt, 1, "asdf")
Dim objTS As AcadTextStyle
Set objTS = ThisDrawing.TextStyles(objMT.StyleName)
Debug.Print "宽度因子:"; objTS.Width

End Sub
 楼主| 发表于 2015-1-14 11:51:20 | 显示全部楼层
zzyong00 发表于 2015-1-14 10:24
Public Sub ss()
Dim objMT As AcadMText, pnt(2) As Double
Set objMT = ThisDrawing.ModelSpace.Ad ...

感谢支招,  不过麻烦的是 , 同一种字体类型 文本使用的宽度因子有的是1 ,有的是0.8 , 并非获得样式这么简单。像上图红框框里面的, 测试结果一样, 实际上文本的宽度因子是不一样的 、

点评

哪种问题是比较奇怪的,实际上,在Mtext编辑框中,选中文字,重新指定原来的文字样式,宽度就一样了!但目前为止,不知道这种现象出现的原因,是否是正常的,就不得而知了!autocad也不是没有bug  发表于 2015-1-14 13:34
 楼主| 发表于 2015-1-14 15:56:47 | 显示全部楼层
谢谢 受教了
发表于 2015-1-20 09:15:32 | 显示全部楼层
关注下。以前也研究过类似问题,mtext里面有控制符,都不会获取文本内容。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 12:34 , Processed in 0.186280 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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