Используйте 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");

Надеюсь, что это поможет вам начать.

  1. Добавление ссылки на CSProj:

Как предложил Селин Раджа М.; вам нужно «Добавить библиотеку типов INFITF в ссылки, которая является интерфейсом для приложения CATIA (библиотека объектов CATIA V5 InfInterfaces)». Просто следуйте: Проект --> Ссылки --> Добавить ---> COM --> Библиотека объектов CATIA V5 InfInterfaces.

  1. Связывание приложения 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;
           }
        }
     }
    

Программу тренировок смотрите по этой ссылке

Ты можешь это сделать:

  1. Добавить INFITFссылка на библиотеку typelib, которая является интерфейсом к приложению CATIA.
  2. INFITF.Application CATIA;
  3. Создать кнопку внутри; например,
            Private void buttonX(object sender, EventArgs e){
        CATIA.Visible = true;
    }
    
Другие вопросы по тегам