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

ADN Club => AutoCAD .NET API => Тема начата: Atomohod от 06-08-2019, 22:20:02

Название: Ошибка при установке типа колонок в Mtext
Отправлено: Atomohod от 06-08-2019, 22:20:02
Здравствуйте!
Не могу понять технологию работы с установкой колонок для Mtext. Создал простенькую команду для разворота текста и попутно установки колонок в статический режим. Однако при установке типа колонок команда перестает работать и выдает исключение. Если эту строку закомментировать то все работает. Что я делаю не так при установке колонок?
Код - C# [Выбрать]
  1.  [CommandMethod("0RotateMText")]
  2.         public static void RotateMtext()
  3.         {
  4.             var mtexts = SelectObjectsOnScreen();
  5.             Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
  6.             Document doc = Application.DocumentManager.MdiActiveDocument;
  7.             Database db = doc.Database;
  8.             Transaction tr = db.TransactionManager.StartTransaction();
  9.             using ( tr )
  10.             {
  11.                 foreach ( var item in mtexts )
  12.                 {
  13.                     MText mtext = (MText) tr.GetObject(item.ObjectId, OpenMode.ForWrite, false, true);
  14.                    
  15.                     mtext.Width = 0; // 0.66*mtext.TextHeight*chars;
  16.                     //mtext.ColumnType = ColumnType.StaticColumns;
  17.                     if ( mtext.Rotation == 0 )
  18.                     {
  19.                         mtext.Rotation = Math.PI/2;
  20.                     }
  21.                     else
  22.                     {
  23.                         mtext.Rotation = 0;
  24.                     }
  25.                 }
  26.  
  27.                 tr.Commit();
  28.             }
  29.         }
  30.         public static List < Entity > SelectObjectsOnScreen()
  31.         {
  32.             Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
  33.             Document doc = Application.DocumentManager.MdiActiveDocument;
  34.             Database db = doc.Database;
  35.             Transaction tr = db.TransactionManager.StartTransaction();
  36.  
  37.             List < Entity > listOfEntities = new List < Entity >();
  38.  
  39.             using ( tr )
  40.             {
  41.                 // Request for objects to be selected in the drawing area
  42.                 PromptSelectionResult PrSeRes = doc.Editor.GetSelection();
  43.  
  44.                 // If the prompt status is OK, objects were selected
  45.                 if ( PrSeRes.Status == PromptStatus.OK )
  46.                 {
  47.                     SelectionSet SelSet = PrSeRes.Value;
  48.  
  49.                     // Step through the objects in the selection set
  50.                     foreach ( SelectedObject SelObj in SelSet )
  51.                     {
  52.                         // Check to make sure a valid SelectedObject object was returned
  53.                         if ( SelObj != null )
  54.                         {
  55.                             // Open the selected object for write
  56.                             Entity entity = (Entity) tr.GetObject(SelObj.ObjectId, OpenMode.ForWrite);
  57.  
  58.                             if ( entity != null )
  59.                             {
  60.                                 listOfEntities.Add(entity);
  61.                             }
  62.                         }
  63.                     }
  64.                 }
  65.  
  66.                 tr.Commit();
  67.             }
  68.  
  69.             return listOfEntities;
  70.         }

(https://i.postimg.cc/5Hk9Ywp4/2019-08-06-221133.jpg) (https://postimg.cc/5Hk9Ywp4)
Название: Re: Ошибка при установке типа колонок в Mtext
Отправлено: Александр Ривилис от 06-08-2019, 22:23:53
Не перевёл я еще эту статью:
https://adndevblog.typepad.com/autocad/2018/04/set-columntype-of-mtext-on-creation-of-mtext-object.html
Название: Re: Ошибка при установке типа колонок в Mtext
Отправлено: Atomohod от 06-08-2019, 22:39:41
Не перевёл я еще эту статью:
https://adndevblog.typepad.com/autocad/2018/04/set-columntype-of-mtext-on-creation-of-mtext-object.html
Сработало, спасибо!