Метод возвращает длину штриха линии. (только для прерывистых линий)
Visual Basic:
Function GetLineDash() As Double
Метод возвращает то самое число в миллиметрах, которое задали методом SetLineDash, - в том числе отрицательное. У только что созданного элемента длина штриха равна 0.
У сплошной линии длина штриха равна 0; у штриховой она меньше шага, и остаток шага дает пропуск между штрихами.
Пример показывает, какую долю шага занимает штрих у элементов первых стилей слоя.
Visual Basic:
Sub LineStyleElement_GetLineDash 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active S = "" 'Нумерация стилей в коллекции с нуля, элементов в стиле - тоже For i = 0 To 5 Set lsd = L.LineStyles.Item(i) Set lse = lsd.StyleElements.Item(0) D = lse.GetLineDash St = lse.GetLineStep If St > 0 Then S = S & "стиль " & lsd.Id & ": штрих " & Round(D, 2) & " из шага " & Round(St, 2) & vbCrLf Else S = S & "стиль " & lsd.Id & ": сплошной" & vbCrLf End If Next MsgBox S End SubPython:
import zulu def Macro_LineStyleElement_GetLineDash(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active # Нумерация стилей в коллекции с нуля, элементов в стиле - тоже for i in range(6): lsd = L.LineStyles.Item(i) lse = lsd.StyleElements.Item(0) dash = lse.GetLineDash() step = lse.GetLineStep() if step > 0: print("стиль", lsd.Id, ": штрих", round(dash, 2), "из шага", round(step, 2)) else: print("стиль", lsd.Id, ": сплошной")