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

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

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

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

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

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

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

Подключение спецификации

Автор Kirill men, 27.03.21, 14:20:58

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

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

Kirill men

Доброго времени суток, други! Создаю автоматом чертеж по скрипту, вопрос такой: как можно подключить программно спецификацию к уже готовому чертежу? Может можно как то достучаться до кнопки "управление сборкой"? Или проще создать спецификацию без подключения, программно накидывать строки в специю...?

Михаил88

Я делаю так.
1. Создаю спецификацию по 3D модели сборки (kompas_object.ksExecuteKompasCommand(20183, False))
2. Создаю чертеж по 3D модели сборки.
3. Привязываю созданную спецификацию к нужному документу.(AttachedDocuments.Add(FileName, True)). FileName - полное имя файла присоединяемого до­кумента.
В итоге получаю ассоциативную спецификацию.

Kirill men

Благодарю за ответ. Спецификацию успешно создаю и сохраняю. А вот подключить через AttachedDocuments не получается. Почему то пишет AttachedDocuments не определено.
Я просто добавляю сорочку
AttachedDocuments.Add("путь к файлу",True).
Подскажите где косяк? Не могу понять синтаксис...

Михаил88

# -*- coding: utf-8 -*-

import pythoncom
from win32com.client import Dispatch, gencache

#  Получи API интерфейсов версии 5
kompas6_api5_module = gencache.EnsureModule("{0422828C-F174-495E-AC5D-D31014DBBE87}", 0, 1, 0)
kompas_object = kompas6_api5_module.KompasObject(
    Dispatch("Kompas.Application.5")._oleobj_.QueryInterface(kompas6_api5_module.KompasObject.CLSID,
                                                             pythoncom.IID_IDispatch))

#  Получи API интерфейсов версии 7
kompas_api7_module = gencache.EnsureModule("{69AC2981-37C0-4379-84FD-5DD2F3C0A520}", 0, 1, 0)
kompas_api_object = kompas_api7_module.IKompasAPIObject(
    Dispatch("Kompas.Application.7")._oleobj_.QueryInterface(kompas_api7_module.IKompasAPIObject.CLSID,
                                                             pythoncom.IID_IDispatch))
application = kompas_api_object.Application

# Создаем спецификацию
kompas_object.ksExecuteKompasCommand(20183, False)

kompas_document = application.ActiveDocument
kompas_document.SaveAs(r'C:\1\Спецификация.spw')

iSpecificationDocument = kompas_document._oleobj_.QueryInterface(
    kompas_api7_module.NamesToIIDMap['ISpecificationDocument'], pythoncom.IID_IDispatch)
iSpecificationDocument = kompas_api7_module.ISpecificationDocument(iSpecificationDocument)
AttachedDocuments = iSpecificationDocument.AttachedDocuments
iAttachedDocument = AttachedDocuments.Add(r'C:\1\Чертеж.cdw', True)
Name = iAttachedDocument.Name
print(Name)
kompas_document.SaveAs(r'C:\1\Спецификация.spw')

Михаил88

Запускать на активной сборке, здесь 'C:\1\Спецификация.spw' и 'C:\1\Чертеж.cdw' прописать свои пути.

Kirill men

Вот спасибо!!! Работает как надо!!!