Метод присваивает тип конца линии.
Visual Basic:
Sub SetLineEndCap(eType As eEndCapType)
eType - Тип конца линии:
0 - закругленный. (значение по умолчанию)
1 - квадратный.
2 - прямой.
Тип виден на концах каждого штриха прерывистой линии: закругленный конец выступает за конец штриха на половину толщины линии и сходит на нет скруглением, квадратный выступает на ту же половину толщины сразу полной толщиной, а прямой начинается ровно в конце штриха.
У сплошной линии тип конца на рисунок не влиял: при всех трех значениях линия выходила за свои крайние точки примерно на половину толщины.
Значение метод не проверяет: число вне набора констант принимается и читается обратно как есть. У только что созданного элемента тип равен 0.
Пример собирает штриховую линию с прямыми концами штрихов.
Visual Basic:
Sub LineStyleElement_SetLineEndCap 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set lsd = CreateObject("ZuluLib.LineStyleDef") Set lse = CreateObject("ZuluLib.LineStyleElement") 'Толстая штриховая линия: штрих 12 через каждые 30 lse.SetLineColor RGB(0, 128, 0) lse.SetLineType 1 lse.SetLineWidth 4 lse.SetLineStep 30 lse.SetLineDash 12 'Штрихи кончаются ровно в своих точках, без выступов lse.SetLineEndCap 2 lsd.AddLineElement lse S = "Тип конца в элементе: " & lsd.StyleElements.Item(0).GetLineEndCap S = S & vbCrLf & "новый стиль получил Id " & L.LineStyles.AddItem(lsd, -1) MsgBox S End SubPython:
import zulu def Macro_LineStyleElement_SetLineEndCap(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active lsd = zulu.LineStyleDef() lse = zulu.LineStyleElement() # Толстая штриховая линия: штрих 12 через каждые 30 lse.SetLineColor(32768) lse.SetLineType(1) lse.SetLineWidth(4) lse.SetLineStep(30) lse.SetLineDash(12) # Штрихи кончаются ровно в своих точках, без выступов lse.SetLineEndCap(2) lsd.AddLineElement(lse) print("Штрих", lsd.StyleElements.Item(0).GetLineDash(), "при шаге", lsd.StyleElements.Item(0).GetLineStep()) print("новый стиль получил Id", L.LineStyles.AddItem(lsd, -1))