Возвращает центральную точку текущего объекта.
Visual Basic:
Function GetCenter() As ZPoint
Возвращает ту же точку, что и GetXY: на линейном, символьном, площадном и текстовом объекте обе совпадают.
У линии это середина по длине, а не центр габаритов. Для объекта с вершинами (37050, 52600), (36050, 52600), (36050, 53200) метод возвращает (36250, 52600) — 800 единиц от начала при общей длине 1600, тогда как центр габаритов равен (36550, 52900).
Visual Basic:
Sub IZEnumElements_GetCenter 'Итератор по объектам активного слоя карты Set L = Zulu.ActiveMapDoc.Layers.Active Set En = L.EnumElements En.MoveFirst Set c = En.GetCenter Set r = En.GetBoundsRectangle(0) MsgBox "Центр объекта: " & c.X & ", " & c.Y & vbCrLf & _ "Центр габаритов: " & (r.Xmin + r.Xmax) / 2 & ", " & (r.Ymin + r.Ymax) / 2 End SubPython:
import zulu def Macro_IZEnumElements_GetCenter(): # Итератор по объектам активного слоя карты L = zulu.App.ActiveMapDoc.Layers.Active En = L.EnumElements() En.MoveFirst() c = En.GetCenter() r = En.GetBoundsRectangle(0) print("Центр объекта:", c.X, ",", c.Y) print("Центр габаритов:", (r.Xmin + r.Xmax) / 2, ",", (r.Ymin + r.Ymax) / 2)