RUS  ENG 

Смещение бирок

Страницы: 1
RSS
Смещение бирок
 
Здравствуйте!
Для смещения бирок надписей нужно использовать следующий код
Layer.LabelLayers[1].Labels.MoveLabel(sys, dblYShift, dblXShift);
проблема в том, что при этом двигается вся бирка и точка привязки (SnapPoint) тоже.

вопрос:
как можно в этой ситуации сдвинуть точку привязки обратно?

пробовал
Layer.Elements[sys].GetXY(out double X, out double Y);
Layer.LabelLayers[1].Labels.Item[sys].SnapPoint.SetPoint(X, Y);
не работает.
Изменено: Максим Попов - 16.01.2018 14:06:58
 
Первым делом нужно скачать обновление.

Двигать можно и точку привязки и точку вывода бирки отдельно.

VBScript:
Код
'Получаем бирку
Set Lbl = Layer.LabelLayers.Item(1).Labels.Item(sys)

'Получаем объект-точку
Set Pt = Lbl.CenterPoint

'Сдвигаем точку
Pt.SetPoint Pt.X + dblYShift, Pt.Y + dblXShift    

'Меняем точку вывода бирки
Lbl.CenterPoint = Pt

'Перезаписываем бирку
Layer.LabelLayers.Item(1).Labels.SetItem Lbl

Обновление нужно скачать, т.к. Lbl.CenterPoint = Pt по ошибке переворачивало координату.
 
Алексей Аширов, спасибо, разобрался, заработало!
получается, что на snap point можно не обращать внимания, она автоматически перерисовывается
Layer.LabelLayers.Item(1).Labels.SetItem Lbl

не сразу понял, что point.X и point.Y выдают координаты в сантиметрах.

а можете проверить, Layer.GetBounds() правильно выдает верх и низ?
 
Исторически сложилось, что в сантиметрах.
GetBounds вроде всегда правильно выдавал. Не жаловались.
 
Алексей Аширов, можно ли программным путем узнать габариты бирки?
 
На данный момент нельзя.
Страницы: 1