Используйте C# для Catia V5 Automation
Я хочу написать Макросы / Программы для Catia V5 с языком программирования C#.
Как можно получить доступ к приложению Catia через C#(и Visual Studio). Я немного искал и обнаружил, что Catia предоставляет API, который Microsoft COM Technologie предоставляет для "COM-языков", таких как C# и python.
Вот как я представляю связь / взаимодействие между программой на C# и Catia:
C# -.NET <-двусторонняя интеграция-> COM <-> Catia API
Это верно?
Также: Как мне все настроить в Visual Studio, чтобы я мог получить доступ к Catia API (и к завершению кода и т. Д.)
3 ответа
1) Добавить INFITF
Ссылка на библиотеку типов, которая является интерфейсом к приложению CATIA
2) Определите CATIA как глобальную переменную как
INFITF.Application CATIA;
3) Свяжите приложение Catia с вашим CATIA
переменная, как указано ниже
CATIA = (INFITF.Application)Marshal.GetActiveObject("Catia.Application");
Надеюсь, что это поможет вам начать.
- Добавление ссылки на CSProj:
Как предложил Селин Раджа М.; вам нужно «Добавить библиотеку типов INFITF в ссылки, которая является интерфейсом для приложения CATIA (библиотека объектов CATIA V5 InfInterfaces)». Просто следуйте: Проект --> Ссылки --> Добавить ---> COM --> Библиотека объектов CATIA V5 InfInterfaces.
Связывание приложения CATIA и использование внутри CSProj
using INFITF; namespace SampleCatiaProj { public class LoadDocumentClass { public static INFITF.Application CATIA; public bool LoadDoc() { CATIA = INFITF.Application)Marshal.GetActiveObject("CATIA.Application"); CATIA.Visible = true; CATIA.DisplayFileAlerts = true; ProductStructureTypeLib.ProductDocument oRootProductDocument; oRootProductDocument = (ProductStructureTypeLib.ProductDocument)CATIA.ActiveDocument; // Some code goes here // Keep on adding code as per CATIA V5 automation API return true; } } }
Программу тренировок смотрите по этой ссылке
Ты можешь это сделать:
- Добавить
INFITF
ссылка на библиотеку typelib, которая является интерфейсом к приложению CATIA. -
INFITF.Application CATIA;
- Создать кнопку внутри; например,
Private void buttonX(object sender, EventArgs e){ CATIA.Visible = true; }