CAM API
  • CAM API
v20.0.1
Search Results for

    Show / Hide Table of Contents

    Использование ComWrapper

    Ядро CAM-системы написано на языке с ручным освобождением памяти. В C# и других языках с Garbage Collector память освобождается автоматически.

    Поэтому при взаимодействии .NET-расширений с ядром CAM-системы требуется механизм явного освобождения COM-объектов. Класс ComWrapper объединяет логику управления памятью этих объектов.

    Использование ComWrapper решает две задачи:

    1. Доступ к COM-объекту из нескольких потоков;
    2. Корректное освобождение памяти после использования, чтобы ядро CAM-системы могло продолжить работу.

    Примеры

    Получение другого COM-объекта:

    using var ncMakerCom = activeProjectCom.InvokeAndWrap(project => project.NCMaker);
    

    Вызов метода COM-объекта:

    applicationCom.Invoke(application =>
    {
        application.MainWorkMode = TMainWorkMode.mwmModel;
    });
    

    Передача ownership:

    var curveCom2 = curveCom1.TransferOwnership();
    

    Требование к .NET-расширениям

    Использование ComWrapper обязательно для расширений на .NET.

    In this article