Возвращает периметр текущего объекта в метрах. У линейных, символьных и текстовых объектов периметр равен 0.
Visual Basic:
Property Perimeter As Double
read-only
Свойство относится к площадным объектам. Длину линейного объекта им получить нельзя: у линии оно возвращает 0, как и Area.
Единицы не зависят от системы координат слоя: периметр считается в метрах и тогда, когда координаты объектов заданы в градусах.
Visual Basic:
Sub IZEnumElements_Perimeter 'Итератор по объектам активного слоя карты Set L = Zulu.ActiveMapDoc.Layers.Active Set En = L.EnumElements En.MoveFirst 'Периметр считается только у площадных объектов Do While Not En.IsEOF If En.Area > 0 Then MsgBox "Объект " & En.ElemID & ": площадь " & En.Area & ", периметр " & En.Perimeter Exit Sub End If En.MoveNext Loop MsgBox "В слое нет площадных объектов" End SubPython:
import zulu def Macro_IZEnumElements_Perimeter(): # Итератор по объектам активного слоя карты L = zulu.App.ActiveMapDoc.Layers.Active En = L.EnumElements() En.MoveFirst() # Периметр считается только у площадных объектов while not En.IsEOF(): if En.Area > 0: print("Объект %d: площадь %s, периметр %s" % (En.ElemID, En.Area, En.Perimeter)) return En.MoveNext() print("В слое нет площадных объектов")