• CAMAPI
  • API Documentation
Show / Hide Table of Contents
  • Supported programming languages
    • C#
    • Delphi
    • C++
  • Tutorial lessons
    • Lesson 1 - general introduction to the extension ideology using the example of a C# project
    • Lesson 2 - connecting the SDK to a Delphi project using the build system
    • Lesson 3 - connecting the SDK to a C++ project using the build system
    • Lesson 4 - demonstration of methods for unloading an extension during main application is running
    • Lesson 5 - Creating a custom operation
    • Lesson 6 - Creating a C# application to interact with geometry in main application
    • Lesson 7 - Creating a C# application to connect to main application for managing it
  • System extensions
    • Extension.Util.Common.Dll
    • Extension.Util.Common.Exe
  • Debugging of extensions
    • Debugging a .NET extension using Visual Studio Code
    • Debugging a Delphi extension using RAD Studio
    • Debugging a C++ extension using Visual Studio
  • Entry points
    • Utilitiy in main form
    • Executor for utility in main form
    • New item to the operation's context menu
  • Machining Tools Import
    • Preparing the environment
    • Working with the tool library
    • Working with cutting tools
      • Milling Tools
      • Turning Tools
      • Custom Axial Shaped Tools
    • Working with the tool holder
  • API Documentation
  • External applications
    • Connecting in a C# application
    • Connecting in a Delphi application
    • Connecting in a C++ application

Extension settings

An extension integrated into main application consists not only of a DLL but also a JSON file that contains a description of the library.

Description of the library as a container for multiple extensions

List of fields:

  • name;
  • description;
  • module_path. Each of these fields appears in the IExtensionLibraryInfo interface.

Description of each extension separately

List of extensions is a JsonArray, where each extension is described in separate JsonObject. This JsonObject contains only one key - unique identifier of entry point. Value is a JsonObject with fields:

  • id;
  • name.

There may also be additional properties (configuration settings) required for a specific entry point.

The ID must be unique among all other extensions, so it is recommended to use a prefix in the name to ensure this uniqueness.

Example

{
    "name": "Library for empty extension",
    "description": "Library for empty extension",
    "module_path": "${extensionJsonFolder}/ExtensionEmpty.dll",
    "extensions": [
        {
            "utility": {
                "id": "Extension.Utility.Empty",
                "name": "Empty extension"
            }
        }
    ]
}
In this article
Back to top Generated by DocFX