建立增益集

增益集是一種外掛程式,也會載入顯示新 JavaScript API 的 DLL。

下載 FormIt API

若要建置支援 FormIt 的 DLL,需要 FormIt API。FormIt API 可從 Autodesk 開發商合作網下載。需要登入才能存取下載。

登入後,可在「SOFTWARE」下看到 FormIt API。

增益集可以存取 FormIt APIFormIt Modeling Kernel C++ API

增益集有下列結構:

            // FormIt looks for REGISTERAPIMETHODS to load new JS APIs
            REGISTERAPIMETHODS
            {
                // Declare new namespace for the new JS APIs
                REGISTERNAMESPACE("HelloDLL")
                // Create a JS API with no arguments
                APIMETHOD(HelloDLL, API1, "") {}
                // Create a JS API with 1 argument
                APIMETHOD(HelloDLL, API2, "arg1") {}
                // Create a JS API with 2 argument
                APIMETHOD(HelloDLL, API3, "arg1, arg2") {}
                ...
                ...
            }

若要讓引數變成 C++ 變數,請使用 SCRIPTCONVERTER-

            // Create a JS API with 2 argument
            APIMETHOD(HelloDLL, API3, "arg1, arg2")
            {
                // NOTE: The arg names above ^^^^ have to match the args in the macros below.
                // arg1 expects a bool
                SCRIPTCONVERTER(bool, arg1);
                // arg2 expects an int
                SCRIPTCONVERTER(int, arg2);
                return JSON_UNDEFINED;
            }

可以傳回 JSON_UNDEFINED 或任何 JSON 物件。使用 to_json 將您的 C++ 變數轉換為 json

            // Create a JS API with 2 argument
            APIMETHOD(HelloDLL, API3, "arg1, arg2")
            {
                // NOTE: The arg names above ^^^^ have to match the args in the macros below.
                // arg1 expects a bool
                SCRIPTCONVERTER(bool, arg1);
                // arg2 expects an int
                SCRIPTCONVERTER(int, arg2);

                std::string myValue = "Test";
                return to_json(myValue);
            }

DLL 定義所有需要的 JS API 後,外掛程式必須告訴 FormIt 需要載入的 DLL。這可在 manifest 中完成。

        "DLLs" : ["PLUGINLOCATION/MyClass.dll", "PLUGINLOCATION/HelloDLL.dll"]

HelloAddIn 是一個說明如何建立增益集的有用範例。

HelloWSMAddIn是一個說明如何使用 FormIt Modeling Kernel C++ API 建立增益集的有用範例。

Last updated