03/12/2015
Путь к надстройкам Fusion 360
Некоторые функции могут требовать полный путь к файлу. Если вы знаете что это относительный путь к надстройке, то это может вам помочь. Пример ниже показывает как получить папку надстройки на различных языках программирования – эти примеры основаны на примере из онлайн-справки APIFusion: http://fusion360.autodesk.com/learning/learning.html?caaskey=caas/CloudHelp/cloudhelp/ENU/Fusion-360-API/files/ExportManager-Sample-htm.html
Код - Python: [Выделить]
def getAddInFolder():
import os
folderPath = os.path.dirname(os.path.realpath(__file__))
return folderPath
Код - JavaScript: [Выделить]
function getAddInFolder() {
var url = window.location.pathname;
var des = decodeURI(url);
// Удалить символ / в начале
if (navigator.platform.match('Win')) {
des = des.substr(1);
}
var index = des.lastIndexOf('/');
var dir = des.substring(0, index);
return dir;
}
Код - C++: [Выделить]
std::string getAddInFolder()
{
#if defined(_WINDOWS) || defined(_WIN32) || defined(_WIN64)
HMODULE hModule = NULL;
if (!GetModuleHandleExA(
GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS |
GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
(LPCSTR) ≥tDllPath,
&hModule))
return "";
char winTempPath[2048];
::GetModuleFileNameA (hModule, winTempPath, 2048);
std::string strPath = winTempPath;
size_t stPos = strPath.rfind('\\');
return strPath.substr(0, stPos);
#else
Dl_info info;
dladdr((void*) getDllPath, ∈fo);
std::string strPath = info.dli_fname;
int stPos = (int)strPath.rfind('/');
if(stPos != -1)
return strPath.substr(0, stPos);
else
return "";
#endif
}
Source: http://modthemachine.typepad.com/my_weblog/2015/11/fusion-add-in-path.html