UG/NX二次开发Siemens官方NXOPEN实例解析—1.9 BlockStyler/UpdateExample

列文章目录

UG/NX二次开发Siemens官方NXOPEN实例解析—1.1 BlockStyler/ColoredBlock
UG/NX二次开发Siemens官方NXOPEN实例解析—1.2 BlockStyler/EditExpression
UG/NX二次开发Siemens官方NXOPEN实例解析—1.3 BlockStyler/ExtrudewithPreview
UG/NX二次开发Siemens官方NXOPEN实例解析—1.4 BlockStyler/HoleCoordinates
UG/NX二次开发Siemens官方NXOPEN实例解析—1.5 BlockStyler/MatrixOperations
UG/NX二次开发Siemens官方NXOPEN实例解析—1.6 BlockStyler/SelectionExample
UG/NX二次开发Siemens官方NXOPEN实例解析—1.7 BlockStyler/TreeListDemo
UG/NX二次开发Siemens官方NXOPEN实例解析—1.8 BlockStyler/UDB_CreateCylinder
UG/NX二次开发Siemens官方NXOPEN实例解析—1.9 BlockStyler/UpdateExample​​​​​​​

文章目录

目录

列文章目录

文章目录

前言

一、UI样式文件分析

1. 样式文件目录

2. 样式文件导入预览 

 3. 样式文件解析

二、源码文件解析

1. 主程序分析

2. 处理模块分析

3. 运行结果截图

总结


前言

        随着工业智能化的不断发展,UG二次开发的需求越来越多,也吸引了大批的二开从业人员,本人作为一名资深IT从业者(10年+)也毅然加入二次开发大军。

        然而,和流行IT行业(互联网、金融、医疗等)相比,工业智能化的门槛显得更高一点,专业的工业软件,相对封闭的开发理念和更小的开发圈子,让刚进入二开的从业者有点举步维艰。边学边整理,希望通过这系列文章的整理能给二开的生态增添一叶绿。


一、UI样式文件分析

1. 样式文件目录

目录位置:UGOPEN\SampleNXOpenApplications\C++\BlockStyler\UpdateExample\UpdateExample.dlx

2. 样式文件导入预览 

3. 样式文件解析

本实例主要用到了一下几个控件:字符串、开关、整数

二、源码文件解析

1. 主程序分析

int UpdateExample::update_cb(NXOpen::BlockStyler::UIBlock* block)
{
    try
    {
        if(block == string0)
        {
			updateOutputString();
        }
        else if(block == toggle0)
        {
			updateOutputString();
        }
        else if(block == integer0)
        {
			updateOutputString();
        }
        else if(block == string01)
        {
        }
        else if(block == toggle01)
        {
		BlockStyler::PropertyList *string0Props = string0->GetProperties();
		BlockStyler::PropertyList *toggle01Props =  toggle01->GetProperties();
		string0Props->SetLogical("Enable", !(toggle01Props->GetLogical("Value")));
		delete string0Props;
		delete toggle01Props;
        }
        else if(block == toggle02)
        {
		BlockStyler::PropertyList *integer0Props = integer0->GetProperties();
		BlockStyler::PropertyList *toggle02Props = toggle02->GetProperties();
		BlockStyler::PropertyList *toggle0Props = toggle0->GetProperties();

		integer0Props->SetLogical("Enable", !(toggle02Props->GetLogical("Value")));
		toggle0Props->SetLogical("Enable", !(toggle02Props->GetLogical("Value")));

		delete integer0Props;
		delete toggle02Props;
		delete toggle0Props;
		}
    }
    catch(exception& ex)
    {
        UpdateExample::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
    return 0;
}

int UpdateExample::updateOutputString()
{
    int errorCode = 0;
    try
    {
		BlockStyler::PropertyList *string0Props = string0->GetProperties();
		NXOpen::NXString inputText = string0Props->GetString("Value");
		delete string0Props;
		NXString numberText = "";
		PropertyList *toggle0Props = toggle0->GetProperties();
		if(toggle0Props->GetLogical("Value"))
		{
			BlockStyler::PropertyList *integer0Props = integer0->GetProperties();
			int numberValue = integer0Props->GetInteger("Value");

			std::stringstream stringBuffer;
			stringBuffer << numberValue;
			numberText = " - ";
			numberText += stringBuffer.str();
			delete integer0Props;
		}
		delete toggle0Props;
		BlockStyler::PropertyList *string01Props = string01->GetProperties();
		string01Props->SetString("Value", (inputText+=numberText));
		delete string01Props;	
    }
    catch(exception& ex)
    {
        errorCode = 1;
        UpdateExample::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
    return errorCode;
}

update_cb()方法主要控制各控件的update事件响应,这里主要完成了一次字符串的拼接显示方法updateOutputString()

3. 运行结果截图

总结

官方实例UpdateExample

本节主要是对update_cb()方法的实践和验证,做了一次简单的字符串的拼接和显示。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MarcoPro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值