• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Как узнать открыт ли документ cdw в компасе?

Автор IvanKonov, 04.02.16, 13:32:58

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

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

IvanKonov

Как узнать открыт ли документ cdw в компасе?
Ответ желательно на C# , но рассмотрю и на других языках если что.

#programmer

Перебором документов:

KompasObject ikompas = (KompasObject)Marshal.GetActiveObject("Kompas.Application.5");
IApplication app = ikompas.ksGetApplication7();
IDocuments docs = app.Documents;
for (int i = 0; i < docs.Count; i++)
{
       IKompasDocument doc = docs"["i"]";
       DocumentTypeEnum dte = doc.DocumentType;               
}

Ну или если документ 1, то :
IKompasDocument doc = app.ActiveDocument;
DocumentTypeEnum dte = doc.DocumentType;

где

DocumentTypeEnum - Типы документов КОМПАС

ksDocumentUnknown Неизвестный тип

ksDocumentDrawing Чертеж

ksDocumentFragment Фрагмент

ksDocumentSpecification Спецификация

ksDocumentPart Деталь

ksDocumentAssembly Сборка

ksDocumentTextual Текстовый доку­мент

ksDocumentTechnologyAssembly Технологическая сборка

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

IvanKonov

Подскажите ещё пожалуйста, какую библиотеку подключить чтобы получить типы KompasObject и тд ?

#programmer

%ProgramFiles%\ASCON\KOMPAS-3D V16\SDK\C#\Common
Все необходимые библиотеки там.

IvanKonov

Подключил Kompas6API5.dll.
Выдаёт исключение на строке:
KompasObject ikompas = (KompasObject)Marshal.GetActiveObject("Kompas.Application.5");

Исключение:
Недопустимая строка с указанием класса (Исключение из HRESULT: 0x800401F3 (CO_E_CLASSSTRING))


#programmer

А потом, лучше, добавьте эти ссылки как COM объекты: