# -*- coding: utf-8 -*-
#|L_CreateSpc

import pythoncom
from win32com.client import Dispatch, gencache

import LDefin2D
import MiscellaneousHelpers as MH

#  Подключим константы API Компас
const_2d = gencache.EnsureModule("{75C9F5D0-B5B8-4526-8681-9903C567D2ED}", 0, 1, 0).constants

#  Подключим описание интерфейсов API5
kapi_5 = gencache.EnsureModule("{0422828C-F174-495E-AC5D-D31014DBBE87}", 0, 1, 0)
iKompas_5 = kapi_5.KompasObject(Dispatch("Kompas.Application.5")._oleobj_.QueryInterface(kapi_5.KompasObject.CLSID, pythoncom.IID_IDispatch))
MH.iKompasObject = iKompas_5

#  Подключим описание интерфейсов API7
kapi_7 = gencache.EnsureModule("{69AC2981-37C0-4379-84FD-5DD2F3C0A520}", 0, 1, 0)
iApplication_7 = kapi_7.IApplication(Dispatch("Kompas.Application.7")._oleobj_.QueryInterface(kapi_7.IApplication.CLSID, pythoncom.IID_IDispatch))
MH.iApplication = iApplication_7


#  Создаем новый документ через API7
iDocuments_7 = iApplication_7.Documents
iDocument_7 = iDocuments_7.AddWithDefaultSettings(const_2d.ksDocumentSpecification, True)

iDocumentSpc_7 = kapi_7.ISpecificationDocument(iDocument_7)

iDocument_7.SaveAs("D:\\Уроки программированию в КОМПАС\\Python курс 2\\Пример_Спецификация.spw")

#  Создаем новый документ через API5
i5pcDocuments_5 = iKompas_5.SpcDocument()

# Параметры документа
Spc_Parms_5 = iKompas_5.GetParamStruct(const_2d.ko_DocumentParam)
Spc_Parms_5.Init()
Spc_Parms_5.type = 4

# Создание и заполнение структуры параметров листа
iSheetParms_5 = Spc_Parms_5.GetLayoutParam()
iSheetParms_5.Init()

# Создание и заполнение структуры параметров стандартного листа
iSt5heet_5 = iSheetParms_5.GetSheetParam()
iSt5heet_5.Init()

i5pcDocument_5 = i5pcDocuments_5.ksCreateDocument(Spc_Parms_5)
i5pcDocuments_5.ksSaveDocument("D:\\Уроки программированию в КОМПАС\\Python курс 2\\Пример_Спецификация_API5.spw")

