Tworzenie dodatku

Dodatek to wtyczka wczytująca również pliki DLL, które ujawniają nowe interfejsy API języka JavaScript.

Pobieranie interfejsu API programu FormIt

Aby można było utworzyć pliki DLL obsługujące program FormIt, wymagany jest interfejs API programu FormIt. Interfejs API programu FormIt można pobrać z witryny Autodesk Developers Network. Pobranie jest możliwe dopiero po zalogowaniu się.

Po zalogowaniu się interfejs API programu FormIt jest dostępny w obszarze SOFTWARE (OPROGRAMOWANIE).

Dodatek ma dostęp do interfejsu API programu FormIt oraz interfejsu API FormIt Modeling Kernel C++.

Dodatek ma następującą strukturę:

            // 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") {}
                ...
                ...
            }

Aby pobrać argumenty do zmiennych C++, użyj polecenia 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;
            }

Może zostać zwrócony obiekt JSON_UNDEFINED lub dowolny obiekt json. Za pomocą to_json przekonwertuj zmienną C++ na 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);
            }

Po zdefiniowaniu przez bibliotekę DLL wszystkich potrzebnych interfejsów API języka JS wtyczka musi poinformować program FormIt, które biblioteki DLL wymagają wczytania. Jest to realizowane w manifeście.

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

HelloAddIn to działający przykład, w którym wyjaśniono sposób tworzenia dodatku.

HelloWSMAddIn to działający przykład, w którym wyjaśniono sposób tworzenia dodatku za pomocą interfejsu API FormIt Modeling Kernel C++.

Last updated