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

直接上代码:

static bool GetTclValue(UF_MOM_id_t mom_id, char *szName, char *szInfo, std::string &stValue,
                        bool bShowValue /*= false*/)
{
    UF_MOM_ask_string(mom_id, szName, (const char **)&szInfo);
    if (szInfo)
    {
        stValue = szInfo;
        if (bShowValue)
        {
            std::string stInfo = std::string(szName) + " = " + szInfo + "\n";
            WRITE(stInfo.c_str());
        }
        return true;
    }
    else
    {
        if (bShowValue)
        {
            std::string stInfo = std::string(szName) + " not found!\n";
            WRITE(stInfo.c_str());
        }
    }

    return false;
}

static bool GetTclArrayValue(UF_MOM_id_t mom_id, char *szName, char *szIndex, char *szInfo, std::string &stValue,
                             bool bShowValue /*= false*/)
{
    UF_MOM_ask_assoc_string_array(mom_id, szName, szIndex, (char **)&szInfo);

    if (szInfo)
    {
        stValue = szInfo;
        if (bShowValue)
        {
            std::string stInfo = std::string(szName) + "'s " + szIndex + " = " + szInfo + "\n";
            WRITE(stInfo.c_str());
        }
        return true;
    }
    else
    {
        if (bShowValue)
        {
            std::string stInfo = std::string(szName) + "'s " + szIndex + " not found!\n";
            WRITE(stInfo.c_str());
        }
    }

    return false;
}

static bool SaveTclValue(UF_MOM_id_t mom_id, char *szName, char *szInfo, std::string &stValue,
                         bool bShowValue /*= false*/)
{
    UF_MOM_ask_string(mom_id, szName, (const char **)&szInfo);

    std::string sDst = std::string(szName) + " = ";
    if (szInfo)
    {
        sDst += szInfo;
        sDst += '\n';
    }

    std::string sDir = "C:\\toolInfo";

    if (!CStdDir::IfAccessDirS(sDir) && !CStdDir::CreateDirS(sDir))
    {
        CLOG::Out("创建目录C:\\toolInfo失败!");
        return false;
    }

    CStdFile::SaveTXTLineS("C:\\toolInfo\\toolinfos.txt", sDst, true);

    return szInfo != nullptr;
}

static bool SaveTclArrayValue(UF_MOM_id_t mom_id, char *szName, char *szIndex, char *szInfo, std::string &stValue,
                              bool bShowValue /*= false*/)
{
    UF_MOM_ask_assoc_string_array(mom_id, szName, szIndex, (char **)&szInfo);

    std::string sDst = std::string(szName) + "'s "+  szIndex + " = ";
    if (szInfo)
    {
        sDst += szInfo;
        sDst += '\n';
    }

    std::string sDir = "C:\\toolInfo";

    if (!CStdDir::IfAccessDirS(sDir) && !CStdDir::CreateDirS(sDir))
    {
        CLOG::Out("创建目录C:\\toolInfo失败!");
        return false;
    }

    CStdFile::SaveTXTLineS("C:\\toolInfo\\toolinfos.txt", sDst, true);

    return szInfo != nullptr;
}

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

NX二次开发后处理中保存tcl变量值到文本_第1张图片

欢迎交流与讨论。

你可能感兴趣的:(nx二次开发,服务器,前端,算法)