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