Тема: Текущий текстовый стиль

Доброе утро!
Создаю программно новый текстовый стиль

    Dim newText As AcadTextStyle
    Set newText = ThisDrawing.TextStyles.Add("Tbl_SPDS")
    newText.SetFont "ISOCPEUR", False, False, 1, 0
    newText.Height = 3#

Как программно сделать его текущим?

Re: Текущий текстовый стиль

Public Sub CreateAndSetNewTextStyle(StyleName As String)
Dim txtStyle As AcadTextStyle
  On Error GoTo lErrorCreate
  Set txtStyle = ThisDrawing.TextStyles(StyleName)
  txtStyle.SetFont "isocpeur", False, False, 1, 0
  txtStyle.Height = 0
  ThisDrawing.ActiveTextStyle = txtStyle
  Exit Sub
lErrorCreate:
  Set txtStyle = ThisDrawing.TextStyles.Add(StyleName)
  Resume Next
End Sub
Sub test()
  CreateAndSetNewTextStyle "abc"
End Sub

Вроде так.

Re: Текущий текстовый стиль

Спасибо! Стиль стает активным.
Но почему-то при создании текста его высота при вставке 250, но в стиле указано 3(ставила и 0 - не помогает).

Dim MTextObj As AcadMText
Set MTextObj = ThisDrawing.PaperSpace.AddMText(pt, 50, text)

Только если принудительно выставляю

MTextObj.Height = 3#

Текст стает нужной высоты, но тогда он отлетает от точки вставки.
В чем тут может быть причина?

Re: Текущий текстовый стиль

Странно, у меня ничего "не отлетает". Может, меняется выравнивание объекта? Тогда надо по новой будет устанавливать точку вставки. Примерно так:

Public Sub CreateNewTextStyle(ByVal StyleName As String, _
      Optional ByVal dblTextHeight As Double = 0#)
Dim txtStyle As AcadTextStyle
  On Error GoTo lErrorCreate
  Set txtStyle = ThisDrawing.TextStyles(StyleName)
  txtStyle.SetFont "isocpeur", False, False, 1, 0
  txtStyle.Height = dblTextHeight
  Exit Sub
lErrorCreate:
  Set txtStyle = ThisDrawing.TextStyles.Add(StyleName)
  Resume Next
End Sub
Sub test()
Dim objMText As AcadMText
Dim ptIns(2) As Double
  ptIns(0) = 10#: ptIns(1) = 20#: ptIns(2) = 0#
  Set objMText = ThisDrawing.ModelSpace.AddMText(ptIns, 0#, "test text")
  CreateNewTextStyle "abc"
  objMText.StyleName = "abc"
  objMText.Height = 3#
  objMText.AttachmentPoint = acAttachmentPointMiddleCenter
  objMText.InsertionPoint = ptIns
End Sub

Re: Текущий текстовый стиль

Да, если вставка происходит в чистый новый рисунок, то там проблем нет. Но вот я взяла уже готовый чертеж и там в текущем стиле стоял Standart, а высота его была 250. Так после замены текущего стиля высота его почему-то не меняется. И текст вставляется = 250. (Проверяю обновлением рисунка) Соответственно, если я выставляю этому тексту =3 - он стает маленьким и уезжает от точки вставки. :(
Может высота хранится в какой-нибудь глобальной переменной?

Re: Текущий текстовый стиль

Хранится. Textsize

Re: Текущий текстовый стиль

Спасибо!!! :)