zoukankan      html  css  js  c++  java
  • 【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 再次弹出对话框的时候,就把那个值 显示到 对话框里了

  • 相关阅读:
    比服务器的问题
    android studio adb.exe已停止工作(全面成功版 进程的查询和开启)
    安卓学习123
    java eclipse 安卓环境配置
    host访问goole
    Android studio自带的sample例子
    马士兵2string buffuer
    tomcat内存溢出,设置
    spring mvc 学习笔记【1】---前言
    dbutils报错:com.microsoft.sqlserver.jdbc.SQLServerException: 无法识别元数据的表
  • 原文地址:https://www.cnblogs.com/KMould/p/14282770.html
Copyright © 2011-2022 走看看