zoukankan      html  css  js  c++  java
  • NX二次开发 拔模增量计算工具

    在塑胶模具设计行业拔模增量计算经常都需要用到,平常都是利用计算器工具或者外部的计算工具去算。曾经有一个模具设计的培训老师把拔模增量计算工具称为模具设计的神器,好吧,我也造个神器。-_-!

    VS2019  NX1946

    用的都是VS函数,理伦上NX大部份版本都可以用。

    头文件

    #include <cmath>
    #include <uf.h>
    #include <uf_ui.h>
    #include<iomanip>
    #include <sstream>

    //自定义函数

    char msg[256];
    void SetUI_DefaultValue(); //设置UI默认值
    double CalculateValue(double InputAngle); //计算增量
    void SetUI_IncrementalValue(); //设置UI增量值
    double doubleToDigits(double value);//double转换NXString


    void DraftAngle::SetUI_DefaultValue() //设置UI默认值
    {
    try
    {
    expression01->SetValue(0.00);
    expression02->SetValue(0.00);
    expression03->SetValue(0.00);
    expression04->SetValue(0.00);
    expression05->SetValue(0.00);
    expression06->SetValue(0.00);
    expression07->SetValue(0.00);
    expression08->SetValue(0.00);
    expression09->SetValue(0.00);
    expression10->SetValue(0.00);
    expression11->SetValue(0.00);
    expression12->SetValue(0.00);
    expression13->SetValue(0.00);
    expression14->SetValue(0.00);
    expression15->SetValue(0.00);
    expression16->SetValue(0.00);
    expression17->SetValue(0.00);
    expression161->SetValue(0.00);
    expression20->SetValue(1.00);
    }
    catch (exception& ex)
    {
    //---- Enter your exception handling code here -----
    DraftAngle::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
    }

    double DraftAngle::CalculateValue(double InputAngle) //计算增量
    {
    try
    {
    //角度转弧度: B = A / 180 * pi(3.141592653589793); 弧度转角度: A = B / pi(3.141592653589793) * 180.
    double Dis = tan(InputAngle / 180 * 3.141592653589793);//计算增量
    return double (Dis);//返回double值
    }
    catch (exception& ex)
    {
    //---- Enter your exception handling code here -----
    DraftAngle::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
    }

    void DraftAngle::SetUI_IncrementalValue() //设置UI增量值
    {
    try
    {
    double H1 = expression20->Value();
    if (H1 > 0)
    {
    expression01->SetValue(doubleToDigits(CalculateValue(0.3) * H1));
    expression02->SetValue(doubleToDigits(CalculateValue(0.5) * H1));
    expression03->SetValue(doubleToDigits(CalculateValue(0.6) * H1));
    expression04->SetValue(doubleToDigits(CalculateValue(0.8) * H1));
    expression05->SetValue(doubleToDigits(CalculateValue(1.00) * H1));
    expression06->SetValue(doubleToDigits(CalculateValue(2.00) * H1));
    expression07->SetValue(doubleToDigits(CalculateValue(3.00) * H1));
    expression08->SetValue(doubleToDigits(CalculateValue(4.00) * H1));
    expression09->SetValue(doubleToDigits(CalculateValue(5.00) * H1));
    expression10->SetValue(doubleToDigits(CalculateValue(6.00) * H1));
    expression11->SetValue(doubleToDigits(CalculateValue(7.00) * H1));
    expression12->SetValue(doubleToDigits(CalculateValue(8.00) * H1));
    expression13->SetValue(doubleToDigits(CalculateValue(9.00) * H1));
    expression14->SetValue(doubleToDigits(CalculateValue(10.00) * H1));
    if (expression15->Value() > 0)
    {
    expression16->SetValue(doubleToDigits(CalculateValue(expression15->Value()) * H1));
    }
    else
    {
    expression16->SetValue(0.00);
    }

    if (expression17->Value() > 0)
    {
    expression161->SetValue(doubleToDigits(CalculateValue(expression17->Value()) * H1));
    }
    else
    {
    expression161->SetValue(0.00);
    }
    }
    else
    {
    uc1601("请输入正确高度", 1);
    return;
    }

    }
    catch (exception& ex)
    {
    //---- Enter your exception handling code here -----
    DraftAngle::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
    }

    double DraftAngle::doubleToDigits(double value)//转换小数点位数
    {
    char TemValue[256];
    sprintf(TemValue, "%.4f", value);
    return double(atof(TemValue));
    }

    怡宁塑胶模具设计
  • 相关阅读:
    scapy-python
    多进程和多线程
    Python函数
    while循环
    打印print的另一种方式sys.stdout
    python3 pickle & struct
    正则表达式
    【牛客网刷题】两种排序方法
    使用Python matplotlib做动态曲线
    【牛客网刷题】一次难忘的编程教训
  • 原文地址:https://www.cnblogs.com/hqsalanhuang/p/15015046.html
Copyright © 2011-2022 走看看