SetLineStep method (LineStyleElement)

Метод присваивает шаг между штрихами линии. (только для прерывистых линий)

Применяется к:

LineStyleElement

Синтаксис:

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 Sub

Python:

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))