Я пытаюсь извлечь параметры детали Inventor (.ipt) с помощью Python, используя следующий код:
#Open Inventor
invApp = win32com.client.Dispatch("Inventor.Application")
#Make inventor visible
invApp.Visible = True
#Set file names of template
Part_FileName_BaseIPT = 'C:\\Base.ipt'
#Open the base model
oPartDoc=invApp.Documents.Open(Part_FileName_BaseIPT)
#Collect parameters
oParams = oPartDoc.ComponentDefinition.Parameters
(Это часть фрагмента кода, который я нашел здесь: Использование python для автоматизации Autodesk Inventor а>)
Я получаю следующее сообщение об ошибке: …» объект не имеет атрибута «ComponentDefinition».
Есть идеи, что не так?
Может быть, мне нужно каким-то образом сообщить Python, что oPartDoc связан с документом детали (а не с документом сборки). В VBA получение параметров детали будет выглядеть так:
Dim partDoc As PartDocument
Set partDoc = ThisApplication.ActiveDocument
Dim param As Parameter
Set param = partDoc.ComponentDefinition.Parameters
Я предполагаю, что информация, приведенная в первой строке VBA, пока отсутствует в коде Python.
Это часть таблицы модели объекта API Inventor, которая может быть полезна для решения: модель объекта API
К сожалению, использование Inventor API с Python документировано очень плохо, а сообщение на форуме Autodesk не принесло никакого решения. Но поскольку Python — единственный известный мне язык программирования, мне приходится полагаться на него.
Я пытался решить эту проблему уже довольно давно, любая помощь будет высоко оценена!
(Я использую Inventor 2018, Python 3.6.2 (Anaconda) и Windows 10.)