Как получить список открытых в Компасе чертежей?

Автор ZeroLine, 25.04.09, 11:08:30

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

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

ZeroLine

25.04.09, 11:08:30 Последнее редактирование: 25.04.09, 11:17:42 от ZeroLine
Собственно сабж!
Получить  активный файл.
Так же хотелось получить свойства выбранногоф айла. Такие как: размер, дата создания.
И еще одна задача из списка файлов выбрать нужный с последующей активизацией его в самом компасе.

Максимилиан

var activedoc:integer;

activedoc:=Kompas.ksGetDocumentType(0); {0-указывает на активный документ}

//результат число, означающее какой документ открыт
   1   - чертеж стандартного формата
   2   - чертеж нестандартного формата
   3   - фрагмент
   4   - спецификация
   5   - деталь
   6   - сборка
   7   - текстовый документ стандартный
   8   - текстовый документ нестандартный
   9   - спецификация - нестандартный формат

cosmosliva

Пример на C#
            string progId = "KOMPAS.Application.5";
//Подключаемся к текущей сессии Компаса
            try
            {
                KompasObject kompas = (KompasObject)Marshal.GetActiveObject(progId);
            }
            catch (Exception)
            {
                MessageBox.Show("Подключение к Компасу не прошло");
            }
            if (kompas!=null)
            {
//используем API  - 7-ой версии
            KompasAPI7._Application My7Komp = (_Application)kompas.ksGetApplication7();

         // Ссылка на текущий и активный документ
             KompasDocument KompDoc = (KompasDocument)My7Komp.ActiveDocument;

// Узнаем количество активных-открытых документов
    int ActiveDocCount = My7Komp.Documents.Count;

// Цикл для прохода по всем элементам коллекции
            for (int i = 0; i < ActiveDocCount; i++)
            {
// Обращаемся к элементу по индексу
                 IKompasDocument kDoc = My7Komp.Documents[i];

// При необходимости делаем активным
// хотя для чтение свойств и необязательна активность
//kDoc.Active = true;

// Получаем полное имя файла
                string hyt = kDoc.PathName;

                FileInfo f = new FileInfo(hyt);
                // Врямя создания файла
                DateTime Creation = f.CreationTime;
                //Длина файла в байтах
                long FileSize = f.Length;
            }
            }
        }