Форум сайта python.su
Всех приветствую.
Друзья, следующий вопрос:
Есть задача: получать данные из САПР Autodesk Inventor. Там 3D-модели, у которых есть параметры - размеры, материал и т.д. Хочется обращаться к Инвентору и брать у него эти самые параметры, чтобы потом что-то с ними делать (передавать куда-то дальше или обсчитывать питоном - неважно).
У Инвентора есть свой API, который можно программировать на встроенном VBA. А хочется создать внешнюю программу на питоне для этого.
И вот вопрос: Можно ли это сделать без каких-то специализированных модулей? Если нет, то знает ли кто-нибудь, где можно найти такие модули для Питона?
Спасибо
Офлайн
lexa24
Хочется обращаться к Инвентору и брать у него эти самые параметры
lexa24Это разные задачи. Параметры проще брать из dwg файла. Для этого есть библиотеки на питоне. https://pythonhosted.org/dxfgrabber/ например.
Инвентора есть свой API, который можно программировать на встроенном VBA.
lexa24???
Можно ли это сделать без каких-то специализированных модулей?
Отредактировано doza_and (Июнь 10, 2015 21:26:55)
Офлайн
doza_andСпасибо.
Офлайн
Код будет работать вкзде;) а так да, не принциаиально, но удобнее
Офлайн
lexa24Вообще инструменты важны. Что выбрать зависит от вашего стиля. pycharm ориентирован на работу с проектом. Под windows советуют pyscripter он допускает проекты но можно работать и с отдельными файлами сценариев. Многие работают просто настроив текстовые редакторы под свои нужды/
не особо важно, где писать?
Офлайн
Всем привет
Решилась одна проблемка, о появилось две других:
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
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
Офлайн