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

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

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

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

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

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

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

Как проверить открыт ли файл КОМПАС?

Автор SergNLMK, 18.03.23, 12:28:02

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

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

SergNLMK

Здравствуйте!
Есть задача проверить, открыт ли файл КОМПАС, на который имеется полный путь.

Это нужно для того, чтобы во время пакетной обработки файлов лишний раз не открывать их. А если они открыты, то не закрывать, чтобы пользователь мог продолжать с ними работать.

Задача, я считаю, популярная, но на форуме не нашел никакой информации по этому вопросу...  :cl:

Подскажите, пожалуйста, есть ли возможность проверки открыт ли файл КОМПАС?
Есть ли обсуждения на эту тему на форуме?

Михаил88

#1
Цитата: SergNLMK от 18.03.23, 12:28:02Подскажите, пожалуйста, есть ли возможность проверки открыт ли файл КОМПАС?

# -*- coding: utf-8 -*-
import pythoncom
from win32com.client import Dispatch, gencache

#  Подключим описание интерфейсов API7
kompas_api7_module = gencache.EnsureModule("{69AC2981-37C0-4379-84FD-5DD2F3C0A520}", 0, 1, 0)
application = kompas_api7_module.IApplication(
    Dispatch("Kompas.Application.7")._oleobj_.QueryInterface(kompas_api7_module.IApplication.CLSID,
                                                            pythoncom.IID_IDispatch))
documents = application.Documents
document = documents.Item(r"C:\Users\User\Desktop\Стенка.m3d")
print(document)

Если возвращается None, то документа в открытых файлах нет.
+ Благодарностей: 1

SergNLMK

Цитата: Михаил88 от 18.03.23, 13:02:29# -*- coding: utf-8 -*-
import pythoncom
from win32com.client import Dispatch, gencache

#  Подключим описание интерфейсов API7
kompas_api7_module = gencache.EnsureModule("{69AC2981-37C0-4379-84FD-5DD2F3C0A520}", 0, 1, 0)
application = kompas_api7_module.IApplication(
    Dispatch("Kompas.Application.7")._oleobj_.QueryInterface(kompas_api7_module.IApplication.CLSID,
                                                            pythoncom.IID_IDispatch))
documents = application.Documents
document = documents.Item(r"C:\Users\User\Desktop\Стенка.m3d")
print(document)

Если возвращается None, то документа в открытых файлах нет.

Спасибо! Получилось!
Единственная проблема была - не срабатывал скрипт из-за слэшей. У меня они прямые.
Решил следующим способом:
document = documents.Item(path.replace('/', '\\'))