Criar um complemento
Um complemento é um plug-in que também carrega DLLs que expõem novas APIs de JavaScript.
Fazer download da API do FormIt
Para criar DLLs que suportam o FormIt, a API do FormIt é necessária. É possível fazer o download da API do FormIt na Autodesk Developers Network. É necessário um login para acessar o download.
Depois de conectado, a API do FormIt está disponível em SOFTWARE.


Um complemento tem acesso à API do FormIt e à API C++ do kernel de modelagem do FormIt.
Um complemento tem a seguinte estrutura:
// 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") {}
...
...
}
Para colocar os argumentos em variáveis C++, use 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 ou qualquer objeto json pode ser retornado. Use to_json para converter a variável C++ em 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);
}
Depois que a DLL está definindo todas as APIs JS necessárias, o plug-in deve informar ao FormIt quais DLLs precisam ser carregadas. Isso é feito no manifesto.
"DLLs" : ["PLUGINLOCATION/MyClass.dll", "PLUGINLOCATION/HelloDLL.dll"]
HelloAddIn é um exemplo de trabalho que explica como criar um complemento.
HelloWSMAddIn é um exemplo de trabalho que explica como criar um complemento com a API C++ do kernel de modelagem do FormIt.
Last updated