今天试了一下,发现问题没有解决。
图层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 |