Метод присваивает шаг между штрихами линии. (только для прерывистых линий)
Visual Basic:
Sub SetLineStep(dStep As Double)
dStep - длина шага.
Для создания прерывистой линии нужно указать SetLineType = 1 (тип линии прерывистый). У сплошной линии шаг не используется.
Шаг задается в миллиметрах и считается от начала штриха до начала следующего - то есть включает и сам штрих, и пропуск за ним.
Нулевой шаг гасит линию: она не рисуется вовсе. Если длина штриха больше шага или равна ему, линия выходит сплошной. Отрицательное значение метод принимает и возвращает как есть.
Зависит ли рисунок от толщины линии, решает вид размера - метод SetLineSizeType с константами eLinearSizeType: при пропорциональном виде рисунок растягивается вместе с толщиной.
Пример собирает штриховую линию с шагом 20 и штрихом 8 миллиметров.
Visual Basic:
Sub LineStyleElement_SetLineStep 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set lsd = CreateObject("ZuluLib.LineStyleDef") Set lse = CreateObject("ZuluLib.LineStyleElement") 'Прерывистая линия: штрих 8 миллиметров через каждые 20 lse.SetLineColor RGB(255, 0, 0) lse.SetLineType 1 lse.SetLineStep 20 lse.SetLineDash 8 lsd.AddLineElement lse Set got = lsd.StyleElements.Item(0) S = "Шаг " & got.GetLineStep & ", штрих " & got.GetLineDash S = S & vbCrLf & "новый стиль получил Id " & L.LineStyles.AddItem(lsd, -1) MsgBox S End SubPython:
import zulu def Macro_LineStyleElement_SetLineStep(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active lsd = zulu.LineStyleDef() lse = zulu.LineStyleElement() # Прерывистая линия: штрих 8 миллиметров через каждые 20 lse.SetLineColor(255) lse.SetLineType(1) lse.SetLineStep(20) lse.SetLineDash(8) lsd.AddLineElement(lse) got = lsd.StyleElements.Item(0) print("Шаг", got.GetLineStep(), ", штрих", got.GetLineDash()) print("новый стиль получил Id", L.LineStyles.AddItem(lsd, -1))