Метод задает масштаб символа объекту LineStyleElement.
Visual Basic:
Sub SetSymbolScale(Scale As Double)
Scale - масштаб.
Масштаб - множитель собственного размера символа: при масштабе 2 символ вдвое больше, чем при 1, при 0,5 - вдвое меньше. Расстояние между символами от масштаба не зависит - его задает шаг.
При нулевом масштабе символ не рисуется. У только что созданного элемента масштаб как раз нулевой, поэтому его нужно задать явно; обычное значение - 1.
Отрицательное значение метод принимает и возвращает как есть.
Пример собирает стиль из символа, увеличенного вдвое.
Visual Basic:
Sub LineStyleElement_SetSymbolScale 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set lsd = CreateObject("ZuluLib.LineStyleDef") Set lse = CreateObject("ZuluLib.LineStyleElement") lse.SetSymbol L.Symbols.ItemById(9) 'Символ вдвое больше своего размера lse.SetSymbolScale 2 lse.SetSymbolStep 40 lsd.AddSymbolElement lse S = "Масштаб символа в элементе: " & lsd.StyleElements.Item(0).GetSymbolScale S = S & vbCrLf & "новый стиль получил Id " & L.LineStyles.AddItem(lsd, -1) MsgBox S End SubPython:
import zulu def Macro_LineStyleElement_SetSymbolScale(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active lsd = zulu.LineStyleDef() lse = zulu.LineStyleElement() lse.SetSymbol(L.Symbols.ItemById(9)) # Символ вдвое больше своего размера lse.SetSymbolScale(2) lse.SetSymbolStep(40) lsd.AddSymbolElement(lse) print("Масштаб символа в элементе:", lsd.StyleElements.Item(0).GetSymbolScale()) print("новый стиль получил Id", L.LineStyles.AddItem(lsd, -1))