Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 10, 2015 16:33:27

lexa24
Зарегистрирован: 2015-06-10
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование Питона для API Autodesk Inventor

Всех приветствую.

Друзья, следующий вопрос:
Есть задача: получать данные из САПР Autodesk Inventor. Там 3D-модели, у которых есть параметры - размеры, материал и т.д. Хочется обращаться к Инвентору и брать у него эти самые параметры, чтобы потом что-то с ними делать (передавать куда-то дальше или обсчитывать питоном - неважно).
У Инвентора есть свой API, который можно программировать на встроенном VBA. А хочется создать внешнюю программу на питоне для этого.
И вот вопрос: Можно ли это сделать без каких-то специализированных модулей? Если нет, то знает ли кто-нибудь, где можно найти такие модули для Питона?

Спасибо

Офлайн

#2 Июнь 10, 2015 21:24:47

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Использование Питона для API Autodesk Inventor

lexa24
Хочется обращаться к Инвентору и брать у него эти самые параметры
lexa24
Инвентора есть свой API, который можно программировать на встроенном VBA.
Это разные задачи. Параметры проще брать из dwg файла. Для этого есть библиотеки на питоне. https://pythonhosted.org/dxfgrabber/ например.

Если надо управлять инвентором (что сложнее). То воспользуйтесь pywin32

lexa24
Можно ли это сделать без каких-то специализированных модулей?
???
Ну конечно можно. Если вы сами напишете специализированный модуль, то чужие не потребуются.



Отредактировано doza_and (Июнь 10, 2015 21:26:55)

Офлайн

#3 Июнь 11, 2015 09:59:31

lexa24
Зарегистрирован: 2015-06-10
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование Питона для API Autodesk Inventor

doza_and
Спасибо.

На одном форуме посоветовали писать вPyCharm. Сейчас пишу в IDLE.
Разумное предложение или это не особо важно, где писать?

Офлайн

#4 Июнь 11, 2015 15:13:19

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Использование Питона для API Autodesk Inventor

Код будет работать вкзде;) а так да, не принциаиально, но удобнее



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Июнь 11, 2015 23:17:02

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Использование Питона для API Autodesk Inventor

lexa24
не особо важно, где писать?
Вообще инструменты важны. Что выбрать зависит от вашего стиля. pycharm ориентирован на работу с проектом. Под windows советуют pyscripter он допускает проекты но можно работать и с отдельными файлами сценариев. Многие работают просто настроив текстовые редакторы под свои нужды/



Офлайн

#6 Июнь 17, 2015 15:21:15

lexa24
Зарегистрирован: 2015-06-10
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование Питона для API Autodesk Inventor

Всем привет

Решилась одна проблемка, о появилось две других:
1) Получается создавать новые файлы Инвентора через Питон, но вот обратиться к его параметрам никак не удается - пишет ошибки, что указанные атрибуты не входят в библиотеки:

import os
import win32com.client
from win32com.client import constants
os.system(r'C://Programm Files/Autodesk/Inventor 2014/Bin/Inventor.exe')
invApp = win32com.client.Dispatch("Inventor.Application")
invApp.Visible = True
asd = invApp.Documents.Add(constants.kPartDocumentObject,"",True)
qwe=invApp.Documents.Item(asd)
#nsk=qwe.PartDocument.Sketches.Add()
#nsk = invApp.ComponentDefinition.Sketches.Add()
#nsk=invApp.Documents.Add(constants.k2DSketchPunchRepresentation, "", True)
#ewq=invApp.Documents.PartDocument(asd).Add


Закомментированные строки - разные попытки добавить скетч в новом файле.

2) Тут вообще тяжко (для меня)

import os
import win32com.client
from win32com.client import constants
#from  import 
os.system(r'C://Programm Files/Autodesk/Inventor 2014/Bin/Inventor.exe')
invApp = win32com.client.Dispatch("Inventor.Application")
invApp.Visible = True
from win32com.client import gencache
mod = gencache.EnsureModule('{D98A091D-3A0F-4C3E-B36E-61F62068D488}', 0, 1, 0)
invApp=mod.Application(invApp) 
oAssemblyDoc=invApp.Documents.Add(constants.kAssemblyDocumentObject, "", True)
asd = invApp.Documents.Add(constants.kPartDocumentObject,"",True)
qwe=invApp.Documents.Item(asd)
oAss = oAssemblyDoc.Activate

При запуске появляется ошибка:
TypeError: ‘module’ object is not callable

На многих форумах пишут, что решение выглядит примерно так:
from YourClass import YourClass
или
from YourClassParentDir import YourClass

Что это значит? Как это реализовать?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version