Метод присваивает тип линейных размеров.
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 SubPython:
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))