几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » ObjectARX(VB.NET/C#)
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


回复
 
主题工具 搜索本主题 显示模式
旧 2009-04-29, 05:20 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】关于多行文字转换成单文字的方法 - 精华帖集合

关于多行文字转换成单文字的方法 - 精华帖集合
www.dimcax.com
关于多行文字转换成单文字的方法
用过explode命令的人都知道,在cad环境中这个命令是可以选中多行文字直接分解为单文字。但是在vb或vba编程中用
retval=object.explode时,object是不包含多行文字及填充图案等对象的。这样,想用选择集选中所有多行文字用explode方法一次分解为单文字是不可能,除非新版本的cad出来支持这个功能吧。那总不可能就这样放弃自己的目的啊。下面我们用一个较笨的方法解决这个问题。
我就少说话多做事。
第一步,用以下语句选择出所有的多行文字
for i = 0 to acadapp.activedocument.modelspace.count - 1
if acadapp.activedocument.modelspace(i).entitytype = acmtext then
set mtextobj = acadapp.activedocument.modelspace(i)
tstring = mtextobj.textstring'得到当前文字内容
mtextobj.getboundingbox mtstar, mtend '取得多行文字的坐标
th = mtextobj.height: tw = mtextobj.width '取得多行文字的高和宽
set addt = acadapp.activedocument.modelspace.addtext(tstring, mtend, th)'在同一坐标中写入单文字
end if
next
第二步:通过第一步我们已经在原多行文字的几乎相同的的位置写入了单文字。接下来肯定是把多行文字删除就可以了。那就做一个删除过程吧
sub delmtext() '删除所有多行文字

'---------------------------------------------------------------
dim ssetobj as acadselectionset '定义选择集
set ssetobj = acadapp.activedocument.selectionsets.add("gtext") '新建选择集
dim ftype(0) as integer '组码过滤
dim fdata(0) as variant
ftype(0) = 0
fdata(0) = "mtext"
dim ft as variant '数据转换
dim fd as variant

ft = ftype
fd = fdata

ssetobj.select acselectionsetall, , , ft, fd '选中所有多行文本
ssetobj.erase
'-------------------------------------------------------------------------------
这样多行文字到单文字就转换完毕。方法有点笨,但能完成任务就可以了,效率也不低。
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 11:57 PM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多