Метод присваивает длину штриха линии. (только для прерывистых линий)
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 SubPython:
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))