(изменено: Николай Кальницкий, 13 апреля 2009г. 12:53:43)

Тема: Как уменьшить промежуток между символами в объекте mText.

Здавствуйте!
Как уменьшить промежуток между символами в объекте mText,
или сузить mText каким либо другим методом,не меняя его высоты.
Заранее Спасибо, Николай.

Re: Как уменьшить промежуток между символами в объекте mText.

AA2009eng

1.
в режиме редактирования выделить нужные символы и в панели text formatting установить нужный traking и width factor

2.
преобразовать в блок, изменить масштаб по X, расчленить

Re: Как уменьшить промежуток между символами в объекте mText.

Спасибо за ответ, второй способ я, пожалуй, смогу сделать срелать средствами VBA, только будет получаться много "лишних" блоков. Хотелось бы этого избежать, может есть решение попроще?
Если не найдется, придется делать, в соответствии с советом. Спасибо.

Re: Как уменьшить промежуток между символами в объекте mText.

Другой способ есть, и он намного проще  ;) :

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, все будет соблюдено !

Re: Как уменьшить промежуток между символами в объекте 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 

Re: Как уменьшить промежуток между символами в объекте mText.

Огромное Спасибо! Это то, что мне нужно!
Это я и буду испрользовать, сегодня вечером и сделаю.
Спасибо!