Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Алексей (IdeaSoft) от 09-03-2017, 14:23:55

Название: Ошибка выравнивания DBtext
Отправлено: Алексей (IdeaSoft) от 09-03-2017, 14:23:55
Подскаджите что не так делаю.
Вот есть функция.

Код - C# [Выбрать]
  1. public static DBText acadnet_Element_Create_DBText(string s, pnt pos, TextHorizontalMode THm) {
  2.             DBText txt = new DBText();
  3.             txt.TextString = s;
  4.             txt.Position = new Point3d(pos.x, pos.y, 0);
  5.             txt.Height = 0.5;
  6.             txt.HorizontalMode = THm;
  7.             txt.AlignmentPoint = txt.Position;
  8.             return txt;
  9. }

1) Если в параметр THm передаю значение  = TextHorizontalMode.TextMid - ВСЕ ХОРОШО!!!
2) А если передаю  TextHorizontalMode.TextLeft или  TextHorizontalMode.TextRight,
то сообщает ошибку:
Autodesk.AutoCAD.Runtime.Exception: eNotApplicable

Название: Re: Ошибка выравнивания DBtext
Отправлено: Александр Ривилис от 09-03-2017, 14:31:01
то сообщает ошибку:
Autodesk.AutoCAD.Runtime.Exception: eNotApplicable
Правильно. Для случая когда HorizontalMode == TextHorizontalMode.TextLeft назначать AlignmentPoint нельзя. Нужно назначать только Position.
Ну и еще нужно вызвать метод AdjustAlignment для правильного выравнивания текста. Пример: https://knowledge.autodesk.com/search-result/caas/CloudHelp/cloudhelp/2016/ENU/AutoCAD-NET/files/GUID-8B9FD3E9-C3B1-4F2D-B52C-215299183D76-htm.html
Название: Re: Ошибка выравнивания DBtext
Отправлено: Алексей (IdeaSoft) от 10-03-2017, 08:01:42
Спасибо за ответ!