SetLineDash method (LineStyleElement)

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

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

LineStyleElement

Синтаксис:

Visual Basic:

Sub SetLineDash(dDash As Double)

dDash - длина штриха.

Описание:

Для создания прерывистой линии нужно указать SetLineType = 1 (тип линии прерывистый). У сплошной линии длина штриха не используется.

Длина задается в миллиметрах: на экране с разрешением 96 точек на дюйм миллиметр - это около 3,8 точки. Остаток шага до следующего штриха остается пропуском.

Нулевая длина гасит линию: она не рисуется вовсе. Штрих длиннее шага или равный ему дает сплошную линию. Отрицательное значение метод принимает и возвращает как есть.

Пример:

Пример собирает частый пунктир - штрих 1 миллиметр через каждые 3.

Visual Basic:

Sub LineStyleElement_SetLineDash
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
Set lsd = CreateObject("ZuluLib.LineStyleDef")
Set lse = CreateObject("ZuluLib.LineStyleElement")
'Прерывистая линия: штрих 1 миллиметр через каждые 3
lse.SetLineColor RGB(0, 0, 255)
lse.SetLineType 1
lse.SetLineStep 3
lse.SetLineDash 1
lsd.AddLineElement lse
Set got = lsd.StyleElements.Item(0)
S = "Штрих " & got.GetLineDash & " при шаге " & got.GetLineStep
S = S & vbCrLf & "новый стиль получил Id " & L.LineStyles.AddItem(lsd, -1)
MsgBox S
End Sub

Python:

import zulu

def Macro_LineStyleElement_SetLineDash():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    lsd = zulu.LineStyleDef()
    lse = zulu.LineStyleElement()
    # Прерывистая линия: штрих 1 миллиметр через каждые 3
    lse.SetLineColor(16711680)
    lse.SetLineType(1)
    lse.SetLineStep(3)
    lse.SetLineDash(1)
    lsd.AddLineElement(lse)
    got = lsd.StyleElements.Item(0)
    print("Штрих", got.GetLineDash(), "при шаге", got.GetLineStep())
    print("новый стиль получил Id", L.LineStyles.AddItem(lsd, -1))