明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1758|回复: 3

[求助]用选择集提取出来的文本文字的高度

[复制链接]
发表于 2010-6-27 09:29:00 | 显示全部楼层 |阅读模式

  本来文本文字的高度为3,但是用选择集提取出来后,发现文本文字高度变为了510,请问这是怎么回事?

 

  Set objText = PickedObjs           '将选择集里的PickedObjs实体对象赋值给objText文本对象
  objString = objText.textString   '得到每个实体对象的文本内容

  Height = TextHeight(objString)   '利用全局变量得到了字体的高度
 

 楼主| 发表于 2010-6-27 10:25:00 | 显示全部楼层

 已解决,是因为字体的原因。

 原来选择集中的是romans字体,后来生成的是HZ字体,所以高度也相应改变了。

 楼主| 发表于 2010-6-28 22:28:00 | 显示全部楼层

  今天试了一下,发现问题没有解决。

  图层layer 0是 HZ字体,

  选择集选的文本是romans字体,字体高度为3,但为什么用  

         Height = objText.Height         
   或者Height = TextHeight(objString)  

         得到的Height都不是3,而是510,很奇怪?(由于CAD是2004,用不了GetTextHeight())

 

如下代码供参考:

 

  '过滤组码和过滤值

   Dim FilterType(0) As Integer
   Dim FilterData(0) As Variant

   FilterType(0) = 0
   FilterData(0) = "Text"            '只选择文本对象

  ssetObj.Select mode, point1, point2, FilterType, FilterData            '选择矩形窗口内对象(acselectionsetwindow)
  'MsgBox "拾取点的坐标为" & point1(0) & "," & point1(1) & "," & point1(2) & ")"
  'MsgBox "拾取点的坐标为" & point2(0) & "," & point2(1) & "," & point2(2) & ")"
  
  '循环每个被选择的实体
  Dim PickedObjs As AcadEntity
  For Each PickedObjs In ssetObj
  PickedObjs.Color = acRed         '可将所有被选择实体将变为红色

 
  Set objText = PickedObjs         '将PickedObjs实体对象赋值给objText文本对象
  objString = objText.textString   '得到每个实体对象的文本内容
  'MsgBox objString                '在屏幕上显示文本内容,测试时用
  'Height = objText.GetTextHeight(objString)   '返回指定行类型的文字高度。(2005新增)
  Height = objText.Height          '利用全局变量得到了字体的高度
  'Height = TextHeight(objString)   '利用全局变量得到了字体的高度
  MsgBox Height

发表于 2012-6-11 15:21:35 | 显示全部楼层
没看懂~~~~~~~~~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 18:41 , Processed in 0.173994 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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