• 【NX二次开发】指定矢量控件,记住上次选择的方向


    block UI控件如果有RetainValue属性,就用这个属性。没有这个属性可以参考下面这种方法。以矢量控件为例:

     1.在apply_cb回调中,将控件值保存到文本中

    double TopForTextDir[3] = { 0.0,0.0,0.0 };
    Vector3d vec = this->vector0->GetProperties()->GetVector("Vector");
    TopForTextDir[0] = vec.X;
    TopForTextDir[1] = vec.Y;
    TopForTextDir[2] = vec.Z;
                
    string strFile = "D:\haha\temp\k_cam_BoosCupFace_vector0.temp";
    FILE *fp = NULL;
    errno_t err = fopen_s(&fp, strFile.c_str(), "w");
    fprintf(fp, "%f,%f,%f", TopForTextDir[0], TopForTextDir[1], TopForTextDir[2]);
    fclose(fp);

    2.在initialize_cb回调中,从文本中读取,设置控件值

        string strFile = "D:\haha\temp\k_cam_BoosCupFace_vector0.temp";
        FILE *fp = NULL;
        errno_t err = fopen_s(&fp, strFile.c_str(), "r");
        if (fp != NULL)
        {
            char szLineContentTemp[501] = "";
            fgets(szLineContentTemp, 500, fp);
            if (strlen(szLineContentTemp) > 3)
            {
                if (szLineContentTemp[strlen(szLineContentTemp) - 1] == '
    ') szLineContentTemp[strlen(szLineContentTemp) - 1] = '';
                string strLineTemp = szLineContentTemp;
                if (strLineTemp.find(",") != strLineTemp.npos)
                {
                    vector<string> vecTemp;
                    splitString(strLineTemp, vecTemp, ",");
                    if (vecTemp.size() == 3)
                    {
                        double douDir[3] = { 0.0,0.0,0.0 };
                        douDir[0] = atof(vecTemp[0].c_str());
                        douDir[1] = atof(vecTemp[1].c_str());
                        douDir[2] = atof(vecTemp[2].c_str());
                        Vector3d vecDir(douDir[0], douDir[1], douDir[2]);
                        this->vector0->GetProperties()->SetVector("Vector", vecDir);
                    }
                }
            }
        }
        fclose(fp);

    其他方法,先记录一下以后再说吧:

    你把值读出来,写到部件属性里,在打开工具对话框去部件属性里读出来啊

    除了这个方法还有方法,自己做个UDO把那个值 自定义数据管理起来

    UDO 再次弹出对话框的时候,就把那个值 显示到 对话框里了

  • 相关阅读:
    test
    flash链接需要后台调用时的插入flash方法
    js验证码倒计时
    设置Cookie
    用in判断input中的placeholder属性是否在这个对象里
    常用的正则表达式规则
    webApp添加到iOS桌面
    .substr()在字符串每个字母前面加上一个1
    PAT 甲级1001 A+B Format (20)(C++ -思路)
    PAT 1012 数字分类 (20)(代码+测试点)
  • 原文地址:https://www.cnblogs.com/KMould/p/14282770.html
Copyright © 2020-2023  润新知