Нумерация таблиц с помощью API Интерфейсов

Автор ItProger, 07.03.23, 15:01:17

« назад - далее »

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

ItProger

Добрый день, коллеги! Надеюсь кто - нибудь поможет мне разобраться с этой проблемой. Как настроить автоматическую нумерацию таблиц в Компасе? Я так понимаю сперва нужно создать группу нумераций, после чего уже добавлять в нее таблицы. Компас - макро не генерирует этот код, кто - нибудь может с этим помочь? От чего получать интерфейс групп нумераций и тд?

Дмитрий22

У меня привычка создавать таблицы отдельно во фрагментах, а потом вставлять их в основной чертеж и работать с ними уже там:
  string pathname1 = "...\\1.frw" pathname2  = "...\\2.frw", pathname3 = "...\\3.frw" ;
  IKompasDocument2D1 doc2D1 = (IKompasDocument2D1)doc2D;
  IDrawingGroups dgs = doc2D1.DrawingGroups;
  IDrawingGroup dg1 = dgs.Add(true, "Table1");
  IDrawingGroup dg2 = dgs.Add(true, "Table2");
  IDrawingGroup dg3 = dgs.Add(true, "Table3");
  bool b1 = dg1.ReadFragment(pathname1, true, 0, 0, 0, 0, true);
  bool b2 = dg2.ReadFragment(pathname2, true, 0, 0, 0, 0, true);
  bool b3 = dg3.ReadFragment(pathname3, true, 0, 0, 0, 0, true);

  ITable table1 = (ITable)dg1.Objects[0];
  ITable table2 = (ITable)dg2.Objects[0];
  ITable table3 = (ITable)dg3.Objects[0];
  dg1.Store();
  dg2.Store();
  dg3.Store();

  var view = (doc2D as IKompasDocument2D)?.ViewsAndLayersManager?.Views?.ActiveView;
  var SymContainer = view as ISymbols2DContainer;
  var table = SymContainer.DrawingTables[0];
  var table1 = SymContainer.DrawingTables[1];
  var table2 = SymContainer.DrawingTables[2];
  var tableTmp = table as ITable;
  var tableTmp1 = table1 as ITable;
  var tableTmp2 = table2 as ITable;

  var cell1 = tableTmp1.Cell[3, 0];
  var text1 = cell1.Text as Text;
  var textline1 = text1.Add();
  textline1.Str = (string)value_obozn;

  var cell2 = tableTmp2.Cell[3, 1];
  var text2 = cell2.Text as Text;
  var textline2 = text2.Add();
  textline2.Str = "1";

  table1.Update();
  table2.Update();
  table3.Update();

+ Благодарностей: 1

p3452