Исключение при присвоении высоты текста в таблице

Автор Тема: Исключение при присвоении высоты текста в таблице  (Прочитано 1907 раз)

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

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

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Здравствуйте!
Не получается создать таблицу (один столбец, переменное число строк). Получаю исключение Autodesk.AutoCAD.Runtime.Exception: eInvalidInput
   at Autodesk.AutoCAD.DatabaseServices.CellRange.set_TextHeight(Nullable`1 value) at IsoSketches.TableCreator.CreateAuxDocTable(Database db, Point3d insertionPoint, List`1 source).
Как это исправить?

Код - C# [Выбрать]
  1.  class TableCreator
  2.     {
  3.         public void CreateAuxDocTable(Database db, Point3d insertionPoint, List<string> source)
  4.         {
  5.            
  6.             Table tbl = new Table();
  7.             tbl.TableStyle = db.Tablestyle;
  8.             tbl.SetSize(source.Count, 1);
  9.             tbl.SetRowHeight(10);
  10.             tbl.Columns[0].Width = 55;
  11.  
  12.  
  13.             tbl.Position = insertionPoint;            
  14.  
  15.  
  16.             for (int j = 0; j < source.Count; j++)
  17.  
  18.             {
  19.  
  20.                 tbl.Cells[0, j].TextHeight = 4.5;
  21.  
  22.                 tbl.Cells[0, j].TextString = source[j];
  23.  
  24.                 tbl.Cells[0, j].Alignment = CellAlignment.MiddleCenter;
  25.             }
  26.  
  27.  
  28.             tbl.GenerateLayout();
  29.  
  30.             Transaction tr = db.TransactionManager.StartTransaction();
  31.             using (tr)
  32.             {
  33.                 BlockTable bt = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
  34.  
  35.                 BlockTableRecord btr = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);
  36.  
  37.                 btr.AppendEntity(tbl);
  38.  
  39.                 tr.AddNewlyCreatedDBObject(tbl, true);
  40.                 tr.Commit();
  41.             }
  42.         }
  43.     }

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

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

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Сразу после создания Table, вызывай для неё SetDatabaseDefaults, добавляй в базу, и только затем меняй высоту ячеек и т.д. Ну а если эта база не рабочая в редакторе AutoCAD, то еще и предварительно устанавливай её рабочей.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение