[求助]用选择集提取出来的文本文字的高度
<p> 本来文本文字的高度为3,但是用选择集提取出来后,发现文本文字高度变为了510,请问这是怎么回事?</p><p> </p>
<p><font face="Verdana"> Set objText = PickedObjs '将选择集里的PickedObjs实体对象赋值给objText文本对象<br/> objString = objText.textString '得到每个实体对象的文本内容<br/><br/> Height = TextHeight(objString) '利用全局变量得到了字体的高度<br/> </font></p> <p> 已解决,是因为字体的原因。</p>
<p> 原来选择集中的是romans字体,后来生成的是HZ字体,所以高度也相应改变了。</p> <p> 今天试了一下,发现问题没有解决。</p>
<p> 图层layer 0是 HZ字体,</p>
<p> 选择集选的文本是romans字体,字体高度为3,但为什么用 <font face="Verdana"> </font></p>
<p><font face="Verdana"> Height = objText.Height <br/> 或者Height = TextHeight(objString) </font></p>
<p> 得到的Height都不是3,而是510,很奇怪?(由于CAD是2004,用不了GetTextHeight())</p>
<p> </p>
<p>如下代码供参考:</p>
<p> </p>
<p><font face="Verdana"> '过滤组码和过滤值</font></p>
<p><font face="Verdana"> Dim FilterType(0) As Integer<br/> Dim FilterData(0) As Variant</font></p>
<p><font face="Verdana"> FilterType(0) = 0<br/> FilterData(0) = "Text" '只选择文本对象</font></p>
<p><font face="Verdana"> ssetObj.Select mode, point1, point2, FilterType, FilterData '选择矩形窗口内对象(acselectionsetwindow)<br/> 'MsgBox "拾取点的坐标为:(" & point1(0) & "," & point1(1) & "," & point1(2) & ")"<br/> 'MsgBox "拾取点的坐标为:(" & point2(0) & "," & point2(1) & "," & point2(2) & ")"<br/> <br/> '循环每个被选择的实体<br/> Dim PickedObjs As AcadEntity<br/> For Each PickedObjs In ssetObj<br/> PickedObjs.Color = acRed '可将所有被选择实体将变为红色</font></p>
<p><font face="Verdana"> <br/> Set objText = PickedObjs '将PickedObjs实体对象赋值给objText文本对象<br/> objString = objText.textString '得到每个实体对象的文本内容<br/> 'MsgBox objString '在屏幕上显示文本内容,测试时用<br/> 'Height = objText.GetTextHeight(objString) '返回指定行类型的文字高度。(2005新增)<br/> Height = objText.Height '利用全局变量得到了字体的高度<br/> 'Height = TextHeight(objString) '利用全局变量得到了字体的高度<br/> MsgBox Height</font></p> 没看懂~~~~~~~~~~~~
页:
[1]