Добавляет в слой типовой текстовый объект.
Visual Basic:
Function AddTextByType(X As Double, Y As Double, Angle As Double, text As String, TypeID As Long, ModeNum As Long) As Long
X, Y - координаты точки привязки объекта
Angle - угол поворота текста в градусах
text - текст
TypeID- ID типа текстового объекта
ModeNum - номер режима данного типа
В случае успеха метод возвращает ключ (ID) добавленного в слой объекта.
В противном случае метод вернет -1.
Текст привязывается к типу и режиму слоя — узла или участка. Без типа (TypeID равен -1), с несуществующим типом и с пустой строкой метод объект не добавляет. Текст, не привязанный к структуре слоя, добавляется методом AddText.
Visual Basic:
Sub Layer_AddTextByType 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active 'Тип и режим берем у первого символа слоя Set En = L.EnumElements En.MoveFirst Do While Not En.IsEOF If En.GraphType = 2 Then Exit Do En.MoveNext Loop If En.IsEOF Then MsgBox "В слое нет типовых символов" Exit Sub End If 'Ставим текст правее слоя без поворота Set R = L.GetBoundsRectangle D = (R.Xmax - R.Xmin) / 10 MsgBox "Добавлен текст " & L.AddTextByType(R.Xmax + D, R.Ymin, 0, "Новый узел", En.TypeID, En.ModeId) End SubPython:
import zulu def Macro_Layer_AddTextByType(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active # Тип и режим берем у первого символа слоя En = L.EnumElements() En.MoveFirst() while not En.IsEOF() and En.GraphType != 2: En.MoveNext() if En.IsEOF(): print("В слое нет типовых символов") return # Ставим текст правее слоя без поворота R = L.GetBoundsRectangle() d = (R.Xmax - R.Xmin) / 10 print("Добавлен текст", L.AddTextByType(R.Xmax + d, R.Ymin, 0, "Новый узел", En.TypeID, En.ModeId))