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

29/10/2019

Установка типа колонки мультитекста при его создании

Мы получили недавно сообщение о том, что в программе возникает исключение eNotApplicable при попытке установить тип колонки (ColumnType) при создании мультитекста таким кодом:

Код - C#: [Выделить]
  1. MText mytext = new MText();
  2. mytext.SetDatabaseDefaults();
  3. mytext.Contents = "mytext";
  4. mytext.Layer = "0";
  5. mytext.ColorIndex = 3;
  6. mytext.Location = new Point3d(0.0, 0.0, 0.0);
  7. mytext.ColumnType = ColumnType.NoColumns;

Чтобы избежать этого исключения необходимо предварительно установить MText.Width в значение > 0. Следующая команда устанавливает ColumnType 

Код - C#: [Выделить]
  1. [CommandMethod("TESTMTEXT")]
  2. public static void testMtext()
  3. {
  4.     Document doc = Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager.MdiActiveDocument;
  5.     if (doc == null)
  6.         return;
  7.     try
  8.     {
  9.         using (Transaction tr = doc.TransactionManager.StartTransaction())
  10.         {
  11.             MText mytext = new MText();
  12.             mytext.SetDatabaseDefaults();
  13.             mytext.Contents = "mytext";
  14.             mytext.Layer = "0";
  15.             mytext.ColorIndex = 3;
  16.             mytext.Location = new Point3d(0.0, 0.0, 0.0);
  17.             mytext.Width = 100.0; // Не забываем!
  18.             mytext.ColumnType = ColumnType.NoColumns;
  19.  
  20.             BlockTable bt = (BlockTable)tr.GetObject(doc.Database.BlockTableId, OpenMode.ForRead);
  21.             BlockTableRecord btr = (BlockTableRecord)tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
  22.             btr.AppendEntity(mytext);
  23.             tr.AddNewlyCreatedDBObject(mytext, true);
  24.             tr.Commit();
  25.         }
  26.     }
  27.     catch (System.Exception ex)
  28.     {
  29.         doc.Editor.WriteMessage("\nError: " + ex.ToString());
  30.     }
  31. }

Отметим, что попытка установить ColumnType выбранного мультитекста MText без установки  Ширины большей чем 0.0 невозможна в Панели свойств:

Автор перевода: Александр Ривилис
Опубликовано 29.10.2019
Отредактировано 29.10.2019 в 16:13:52