import math
from datetime import datetime
 
# import pythoncom
from win32com.client import Dispatch, gencache
 
'''
-----------------------------------------------------------------------------
    inventor v2016
-----------------------------------------------------------------------------
'''
 
import inventorApiV16 as inventorApi
from inventorApiV16 import constants as in_const_
 
AppInvCom = Dispatch('Inventor.Application')
AppInvType = inventorApi.Application(AppInvCom)
 
file_import = r"D:\test\Корпус.stp"
 
oSTPTranslator = AppInvCom.ApplicationAddIns.ItemById("{90AF7F40-0C01-11D5-8E83-0010B541CD80}")
oSTPTranslator = inventorApi.TranslatorAddIn(oSTPTranslator)
 
oTransientObject = AppInvCom.TransientObjects
oTransientObject = inventorApi.TransientObjects(oTransientObject)
 
oDataMedium = oTransientObject.CreateDataMedium()
oDataMedium = inventorApi.DataMedium(oDataMedium)
 
oDataMedium.FileName = file_import
 
oTranslationContext = oTransientObject.CreateTranslationContext()
oTranslationContext = inventorApi.TranslationContext(oTranslationContext)
 
oTranslationContext.Type = in_const_.kDataDropIOMechanism
 
oOptions = oTransientObject.CreateNameValueMap()
oOptions = inventorApi.NameValueMap(oOptions)
 
print(oOptions.Count)
 
#сохранение компонента во время загрузки
oOptions.Value("SaveComponentDuringLoad", True)
 
# не совсем понятно
oOptions.Value("SaveLocationIndex", 0)
 
# путь к папке, в которую будет сохранен компонент.
oOptions.Value("ComponentDestFolder", "")
 
# импорт твердых тел
oOptions.Value("ImportSolid", True)
 
# импорт поверхностей
oOptions.Value("ImportSurface", False)
 
#импорт проволочных моделей
oOptions.Value("ImportWire", False)
 
#импорт точек
oOptions.Value("ImportPoint", False)
 
#Задает индекс для создания поверхности
oOptions.Value("CreateSurfIndex", 1)
 
#Задает индекс имени группы
oOptions.Value("GroupNameIndex", 0)
 
#указать имя группы
oOptions.Value("GroupName", "")
 
#Задает уровень группы элементов совместной среды
oOptions.Value("CEGroupLevel", 0)
 
#отключение префикса
oOptions.Value("CEPrefixCk", False)
 
#Здесь можно указать префикс
oOptions.Value("CEPrefixString", "")
 
#Задает единицы измерения при импорте
oOptions.Value("ImportUnit", 0)
 
#отключение проверки во время загрузки
oOptions.Value("CheckDuringLoad", False)
 
#автоматическое объединение
oOptions.Value("AutoStitchAndPromote", True)
 
#отключение расширенного восстановления
oOptions.Value("AdvanceHealing", False)
 
oDoc = None
oSTPTranslator.Open(oDataMedium, oTranslationContext, oOptions, oDoc)