SetLineSizeType method (LineStyleElement)

Метод присваивает тип линейных размеров.

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

LineStyleElement

Синтаксис:

Visual Basic:

Sub SetLineSizeType(eType As eLinearSizeType)

eType - тип линейных размеров:

0 - постоянные.

1 - пропорциональные.

2 - плюс постоянная.

Описание:

Тип решает, меняется ли рисунок штриховой линии вместе с толщиной, с которой ее рисуют (у метода Draw это его параметр LineWidth).

При постоянном типе рисунок штрихов не зависит от толщины линии. При пропорциональном он растягивается вместе с толщиной, и на толстой линии штрих может перекрыть пропуск - линия становится сплошной. Тип 2 при выводе методом Draw ведет себя так же, как постоянный.

У только что созданного элемента тип равен 0, а у элементов готовых стилей обычно 1.

Значение метод не проверяет: число вне набора констант принимается и читается обратно как есть.

Пример:

Пример собирает штриховую линию, рисунок которой не зависит от толщины линии.

Visual Basic:

Sub LineStyleElement_SetLineSizeType
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
Set lsd = CreateObject("ZuluLib.LineStyleDef")
Set lse = CreateObject("ZuluLib.LineStyleElement")
'Штриховая линия: штрих 8 через каждые 20
lse.SetLineColor RGB(0, 0, 0)
lse.SetLineType 1
lse.SetLineStep 20
lse.SetLineDash 8
'Размеры штрихов постоянны и от толщины линии не зависят
lse.SetLineSizeType 0
lsd.AddLineElement lse
S = "Тип размеров в элементе: " & lsd.StyleElements.Item(0).GetLineSizeType
S = S & vbCrLf & "новый стиль получил Id " & L.LineStyles.AddItem(lsd, -1)
MsgBox S
End Sub

Python:

import zulu

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