Тема: Как уменьшить промежуток между символами в объекте mText.
Здавствуйте!
Как уменьшить промежуток между символами в объекте mText,
или сузить mText каким либо другим методом,не меняя его высоты.
Заранее Спасибо, Николай.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Как уменьшить промежуток между символами в объекте mText.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Здавствуйте!
Как уменьшить промежуток между символами в объекте mText,
или сузить mText каким либо другим методом,не меняя его высоты.
Заранее Спасибо, Николай.
AA2009eng
1.
в режиме редактирования выделить нужные символы и в панели text formatting установить нужный traking и width factor
2.
преобразовать в блок, изменить масштаб по X, расчленить
Спасибо за ответ, второй способ я, пожалуй, смогу сделать срелать средствами VBA, только будет получаться много "лишних" блоков. Хотелось бы этого избежать, может есть решение попроще?
Если не найдется, придется делать, в соответствии с советом. Спасибо.
Другой способ есть, и он намного проще ;) :
Public Function TxtForm(lTxt As String, Width As Double, Optional Ang As Double = 0,_ Optional Track As Double = 1) As String Dim Lft As String Lft = "\A1;{\Q" & LTrim$(Str$(Ang)) & ";\W" & LTrim$(Str$(Width)) & ";\T" & LTrim$(Str$(Track)) + ";" + lTxt + "}" TxtForm = Lft End Function
функция вставляет теги форматирования текста (Width - сжатие, Ang - угол наклона текста,
Track - расстояние между символами)
полученный текст можно вставлять в MText, все будет соблюдено !
Мой тёзка прав и к тому же опередил меня :)
Тоже самое, только без использования функции:
Sub TextFormating() Dim MTextObj As AcadMText Dim width As Double Dim text As String Dim corner(0 To 2) As Double width = 200 text = "{\T1.4;РасстояниеМеждуБуквами 1.4}\P{\T0.75;Расстояние0.75}\P{\W0.3;Сжатие0.3}\P{\Q15;наклон15}\P{\W0.4;\T1.4;\Q15;РасстояниеСжатиеНаклон}" Set MTextObj = ThisDrawing.ModelSpace.AddMText(corner, width, text) End Sub
Сочетание /P - переход на новую строку
Чтобы посмотреть форматирование существующего MText можно использовать процедуру:
Sub GetTextFormat() Dim MTextObj As AcadMText Dim pt As Variant On Error Resume Next ThisDrawing.Utility.GetEntity MTextObj, pt, "Укажите MText: " If Err.Number = 0 Then Debug.Print MTextObj.TextString End If On Error GoTo 0 End Sub
Огромное Спасибо! Это то, что мне нужно!
Это я и буду испрользовать, сегодня вечером и сделаю.
Спасибо!
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Как уменьшить промежуток между символами в объекте mText.
Форум работает на PunBB, при поддержке Informer Technologies, Inc