Метод задает толщину линии в миллиметрах.
Visual Basic:
Sub SetLineWidth(dWidth As Double)
dWidth - толщина.
Толщина задается в миллиметрах: на экране с разрешением 96 точек на дюйм миллиметр дает около четырех точек.
У только что созданного элемента толщина равна 0,0265 - это тончайшая линия в одну точку; такой же она остается при любом значении примерно до 0,3. Нулевая толщина означает, что своей толщины у элемента нет и он берет ее от линии, которую рисует, - так устроены готовые стили.
Как толщина элемента сочетается с толщиной самой линии, решает вид толщины - метод SetLineWidthType: она может быть постоянной, добавочной или пропорциональной.
Метод не проверяет значение: отрицательная толщина принимается и читается обратно как есть.
Пример собирает стиль из красной линии толщиной 3 миллиметра.
Visual Basic:
Sub LineStyleElement_SetLineWidth 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set lsd = CreateObject("ZuluLib.LineStyleDef") Set lse = CreateObject("ZuluLib.LineStyleElement") 'Красная сплошная линия толщиной 3 миллиметра lse.SetLineColor RGB(255, 0, 0) lse.SetLineType 0 lse.SetLineWidth 3 'Толщина элемента постоянна и не зависит от толщины линии lse.SetLineWidthType 0 lsd.AddLineElement lse S = "Толщина в элементе: " & lsd.StyleElements.Item(0).GetLineWidth S = S & vbCrLf & "новый стиль получил Id " & L.LineStyles.AddItem(lsd, -1) MsgBox S End SubPython:
import zulu def Macro_LineStyleElement_SetLineWidth(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active lsd = zulu.LineStyleDef() lse = zulu.LineStyleElement() # Красная сплошная линия толщиной 3 миллиметра lse.SetLineColor(255) lse.SetLineType(0) lse.SetLineWidth(3) # Толщина элемента постоянна и не зависит от толщины линии lse.SetLineWidthType(0) lsd.AddLineElement(lse) print("Толщина в элементе:", lsd.StyleElements.Item(0).GetLineWidth()) print("новый стиль получил Id", L.LineStyles.AddItem(lsd, -1))