• NX二次开发后处理中保存tcl变量值到文本


    直接上代码:

    1. static bool GetTclValue(UF_MOM_id_t mom_id, char *szName, char *szInfo, std::string &stValue,
    2. bool bShowValue /*= false*/)
    3. {
    4. UF_MOM_ask_string(mom_id, szName, (const char **)&szInfo);
    5. if (szInfo)
    6. {
    7. stValue = szInfo;
    8. if (bShowValue)
    9. {
    10. std::string stInfo = std::string(szName) + " = " + szInfo + "\n";
    11. WRITE(stInfo.c_str());
    12. }
    13. return true;
    14. }
    15. else
    16. {
    17. if (bShowValue)
    18. {
    19. std::string stInfo = std::string(szName) + " not found!\n";
    20. WRITE(stInfo.c_str());
    21. }
    22. }
    23. return false;
    24. }
    25. static bool GetTclArrayValue(UF_MOM_id_t mom_id, char *szName, char *szIndex, char *szInfo, std::string &stValue,
    26. bool bShowValue /*= false*/)
    27. {
    28. UF_MOM_ask_assoc_string_array(mom_id, szName, szIndex, (char **)&szInfo);
    29. if (szInfo)
    30. {
    31. stValue = szInfo;
    32. if (bShowValue)
    33. {
    34. std::string stInfo = std::string(szName) + "'s " + szIndex + " = " + szInfo + "\n";
    35. WRITE(stInfo.c_str());
    36. }
    37. return true;
    38. }
    39. else
    40. {
    41. if (bShowValue)
    42. {
    43. std::string stInfo = std::string(szName) + "'s " + szIndex + " not found!\n";
    44. WRITE(stInfo.c_str());
    45. }
    46. }
    47. return false;
    48. }
    49. static bool SaveTclValue(UF_MOM_id_t mom_id, char *szName, char *szInfo, std::string &stValue,
    50. bool bShowValue /*= false*/)
    51. {
    52. UF_MOM_ask_string(mom_id, szName, (const char **)&szInfo);
    53. std::string sDst = std::string(szName) + " = ";
    54. if (szInfo)
    55. {
    56. sDst += szInfo;
    57. sDst += '\n';
    58. }
    59. std::string sDir = "C:\\toolInfo";
    60. if (!CStdDir::IfAccessDirS(sDir) && !CStdDir::CreateDirS(sDir))
    61. {
    62. CLOG::Out("创建目录C:\\toolInfo失败!");
    63. return false;
    64. }
    65. CStdFile::SaveTXTLineS("C:\\toolInfo\\toolinfos.txt", sDst, true);
    66. return szInfo != nullptr;
    67. }
    68. static bool SaveTclArrayValue(UF_MOM_id_t mom_id, char *szName, char *szIndex, char *szInfo, std::string &stValue,
    69. bool bShowValue /*= false*/)
    70. {
    71. UF_MOM_ask_assoc_string_array(mom_id, szName, szIndex, (char **)&szInfo);
    72. std::string sDst = std::string(szName) + "'s "+ szIndex + " = ";
    73. if (szInfo)
    74. {
    75. sDst += szInfo;
    76. sDst += '\n';
    77. }
    78. std::string sDir = "C:\\toolInfo";
    79. if (!CStdDir::IfAccessDirS(sDir) && !CStdDir::CreateDirS(sDir))
    80. {
    81. CLOG::Out("创建目录C:\\toolInfo失败!");
    82. return false;
    83. }
    84. CStdFile::SaveTXTLineS("C:\\toolInfo\\toolinfos.txt", sDst, true);
    85. return szInfo != nullptr;
    86. }

    此代码在获取和保存变量的时候非常方便,有助于NX后处理二次开发的时候快速获取和保存变量,方便调试。

    欢迎交流与讨论。

  • 相关阅读:
    C++11 新特性 持续记录
    现在学习软件测试好找工作吗
    一次网络请求的流程
    Comparator::compare设定排序的升序 降序
    金融机构在实施敏捷时面临的巨大障碍
    剖析 Tomcat 线程池与 JDK 线程池的区别和联系
    iOS 18 为 iPhone 15 机型引入了更多充电限制选项
    Redis 发布和订阅
    P8630 [蓝桥杯 2015 国 B] 密文搜索
    03 - 调试环境的搭建(Bochs)(实验未完)
  • 原文地址:https://blog.csdn.net/autumoonchina/article/details/134081934