Ошибка при установке типа колонок в Mtext

Автор Тема: Ошибка при установке типа колонок в Mtext  (Прочитано 7150 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Здравствуйте!
Не могу понять технологию работы с установкой колонок для 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.         }



Отмечено как Решение Atomohod 06-08-2019, 22:39:49

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13898
  • Карма: 1790
  • Рыцарь ObjectARX
  • Skype: rivilis
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1