29/10/2019
Установка типа колонки мультитекста при его создании
Мы получили недавно сообщение о том, что в программе возникает исключение eNotApplicable при попытке установить тип колонки (ColumnType) при создании мультитекста таким кодом:
Код - C#: [Выделить]
- MText mytext = new MText();
- mytext.SetDatabaseDefaults();
- mytext.Contents = "mytext";
- mytext.Layer = "0";
- mytext.ColorIndex = 3;
- mytext.Location = new Point3d(0.0, 0.0, 0.0);
- mytext.ColumnType = ColumnType.NoColumns;
Чтобы избежать этого исключения необходимо предварительно установить MText.Width в значение > 0. Следующая команда устанавливает ColumnType
Код - C#: [Выделить]
- [CommandMethod("TESTMTEXT")]
- public static void testMtext()
- {
- Document doc = Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager.MdiActiveDocument;
- if (doc == null)
- return;
- try
- {
- using (Transaction tr = doc.TransactionManager.StartTransaction())
- {
- MText mytext = new MText();
- mytext.SetDatabaseDefaults();
- mytext.Contents = "mytext";
- mytext.Layer = "0";
- mytext.ColorIndex = 3;
- mytext.Location = new Point3d(0.0, 0.0, 0.0);
- mytext.Width = 100.0; // Не забываем!
- mytext.ColumnType = ColumnType.NoColumns;
- BlockTable bt = (BlockTable)tr.GetObject(doc.Database.BlockTableId, OpenMode.ForRead);
- BlockTableRecord btr = (BlockTableRecord)tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
- btr.AppendEntity(mytext);
- tr.AddNewlyCreatedDBObject(mytext, true);
- tr.Commit();
- }
- }
- catch (System.Exception ex)
- {
- doc.Editor.WriteMessage("\nError: " + ex.ToString());
- }
- }
Отметим, что попытка установить ColumnType выбранного мультитекста MText без установки Ширины большей чем 0.0 невозможна в Панели свойств:
Автор перевода: Александр Ривилис
Опубликовано 29.10.2019
Отредактировано 29.10.2019 в 16:13:52
Опубликовано 29.10.2019
Отредактировано 29.10.2019 в 16:13:52