Тема: Как программно узнать высоту Mtext ?
уважаемые знатоки
не могли Вы помочь мне программно узнать высоту Mtext то есть расстояние от вехней части первой линии и нижней части последней.
заранее благодарен
саша
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Как программно узнать высоту Mtext ?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
уважаемые знатоки
не могли Вы помочь мне программно узнать высоту 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'~
> Fatty
уважаемый знаток!!
у меня вопрос насчет USERR1.
сколько таких переменных можно сделать есть ли предел ?
как я понял это вроде бы как буфер но сохраняется как переменная ?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Как программно узнать высоту Mtext ?
Форум работает на PunBB, при поддержке Informer Technologies, Inc