Тема: Как программно узнать высоту Mtext ?

уважаемые знатоки
не могли Вы помочь мне программно узнать высоту Mtext то есть расстояние от вехней части первой линии и нижней части последней.
заранее благодарен
саша

Re: Как программно узнать высоту Mtext ?

> Саша
Можно таким корявым способом через SendCommand:

Option Explicit
' Fatty T.O.H. ()2006 * all rights removed
Public Sub GetMTextSize()
Dim varpt
Dim oEnt As AcadEntity
Dim hdl As String
Dim oMtext As AcadMText
On Error Resume Next
ThisDrawing.Utility.GetEntity oEnt, varpt, vbCr & "Select mtext"
If Err Then
MsgBox "0 selected, try again"
Err.Clear
End If
On Error GoTo 0
'//
If Not TypeOf oEnt Is AcadMText Then
MsgBox "Selected is not a MText object, try again"
Exit Sub
End If
'//
Set oMtext = oEnt
hdl = oMtext.Handle
Dim wid As Double
Dim hgt As Double
Dim ipt
'
' use lisp expression to get actual size of mtext
'
ThisDrawing.SendCommand "(setvar  " & Chr(34) & "USERR1" & Chr(34) & " (setq w (cdr (assoc 42 (entget (handent " & Chr(34) & hdl & Chr(34) & "))))))" & vbCr
' mtext width
wid = ThisDrawing.GetVariable("USERR1")
ThisDrawing.SendCommand "(setvar  " & Chr(34) & "USERR2" & Chr(34) & " (setq w (cdr (assoc 43 (entget (handent " & Chr(34) & hdl & Chr(34) & "))))))" & vbCr
'mtext height
hgt = ThisDrawing.GetVariable("USERR2")
MsgBox "Mtext width: " & vbTab & Round(wid, 2) & vbCr & _
"Mtext height: " & vbTab & Round(hgt, 2)
End Sub

Можно с помощью функции vbAssoc (Google - твой лучший
друг)
Там нужно использовать коды DXF:
42 - для длины мтекста
43 - для ширины мтекста
~'J'~

Re: Как программно узнать высоту Mtext ?

Благодарен друг !!!!!!!

Re: Как программно узнать высоту Mtext ?

> Fatty
уважаемый знаток!!
у меня вопрос насчет USERR1.
сколько таких переменных можно сделать есть ли предел ?
как я понял это вроде бы как буфер но сохраняется как переменная ?