ADN Open CIS
Сообщество программистов Autodesk в СНГ

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: [Выделить]
  1. def getAddInFolder():
  2.     import os
  3.     folderPath = os.path.dirname(os.path.realpath(__file__))
  4.    
  5.     return folderPath

 

Код - JavaScript: [Выделить]
  1. function getAddInFolder() {
  2.  
  3.     var url = window.location.pathname;
  4.     var des = decodeURI(url);
  5.  
  6.     // Удалить символ / в начале
  7.     if (navigator.platform.match('Win')) {
  8.         des = des.substr(1);
  9.     }
  10.  
  11.     var index = des.lastIndexOf('/');
  12.     var dir = des.substring(0, index);
  13.  
  14.     return dir;
  15. }

 

Код - C++: [Выделить]
  1. std::string getAddInFolder()
  2. {
  3. #if defined(_WINDOWS) || defined(_WIN32) || defined(_WIN64)
  4.     HMODULE hModule = NULL;
  5.     if (!GetModuleHandleExA(
  6.         GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS |
  7.         GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
  8.         (LPCSTR) ≥tDllPath,
  9.         &hModule))
  10.         return "";
  11.  
  12.     char winTempPath[2048];
  13.     ::GetModuleFileNameA (hModule, winTempPath, 2048);
  14.  
  15.     std::string strPath = winTempPath;
  16.     size_t stPos = strPath.rfind('\\');
  17.     return strPath.substr(0, stPos);
  18. #else
  19.     Dl_info info;
  20.     dladdr((void*) getDllPath, ∈fo);
  21.  
  22.     std::string strPath = info.dli_fname;
  23.     int stPos = (int)strPath.rfind('/');
  24.     if(stPos != -1)
  25.         return strPath.substr(0, stPos);
  26.     else
  27.         return "";
  28. #endif
  29. }

Source: http://modthemachine.typepad.com/my_weblog/2015/11/fusion-add-in-path.html

Автор перевода: Дмитрий Емельянов

Обсуждение: http://adn-cis.org/forum/index.php?topic=3250

Опубликовано 03.12.2015