NX二次开发:ListingWindow窗口的应用

一、概述

在NX二次开发的学习中,浏览博客时发现看到[社恐猫]和[王牌飞行员_里海]这两篇博客中写道有关信息窗口内容的打印和将窗口内容保存为txt,个人人为在二次开发项目很有必要,因此做以下记录。

ListingWindow信息窗口发送信息四种位置类型

设置ListingWindow信息窗口发送信息的位置

二、显示类型

2.1信息只显示在ListingWindow信息窗口

关键代码:

cpp 复制代码
	UF_initialize();
	//启动计时器
	UF_timer_t timer = { 0 };
	UF_begin_timer(&timer);
	//创建块
	UF_FEATURE_SIGN sign = UF_NULLSIGN;
	double corner_pt[3] = { 0.0, 0.0, 0.0 };
	char * edge_len[3] = { "100", "100", "100" }; 
	tag_t blk_obj_id = NULL_TAG;
	UF_MODL_create_block1(sign, corner_pt, edge_len, &blk_obj_id);
	//结束计时器
	UF_timer_values_t ValueTime = { 0 };
	UF_end_timer(timer, &ValueTime);

	//打印统计信息
	std::ostringstream temp;
	temp << "耗时:cpu time:" << ValueTime.cpu_time << "\n" << "耗时:real time:" << ValueTime.real_time<< "\n"<<"提示:保存信息窗口内容至:"<< "D:\\GetRunningTime.txt";
	std::string tempStr = temp.str();

	NXOpen::Session* theSession = NXOpen::Session::GetSession();
	NXOpen::ListingWindow* list = theSession->ListingWindow();
	list->SelectDevice(NXOpen::ListingWindow::DeviceType::DeviceTypeWindow,"");//默认类型可省略
	if (!list->IsOpen()) list->Open();
	list->WriteLine(tempStr.c_str());
	list->Close();
	
	UF_terminate();

2.2信息只保存在ListingWindow窗口D:\\GetRunningTime.txt

关键代码:

cpp 复制代码
	UF_initialize();
	//启动计时器
	UF_timer_t timer = { 0 };
	UF_begin_timer(&timer);
	//创建块
	UF_FEATURE_SIGN sign = UF_NULLSIGN;
	double corner_pt[3] = { 0.0, 0.0, 0.0 };
	char * edge_len[3] = { "100", "100", "100" }; 
	tag_t blk_obj_id = NULL_TAG;
	UF_MODL_create_block1(sign, corner_pt, edge_len, &blk_obj_id);
	//结束计时器
	UF_timer_values_t ValueTime = { 0 };
	UF_end_timer(timer, &ValueTime);

	//打印统计信息
	std::ostringstream temp;
	temp << "耗时:cpu time:" << ValueTime.cpu_time << "\n" << "耗时:real time:" << ValueTime.real_time<< "\n"<<"提示:保存信息窗口内容至:"<< "D:\\GetRunningTime.txt";
	std::string tempStr = temp.str();

	NXOpen::Session* theSession = NXOpen::Session::GetSession();
	NXOpen::ListingWindow* list = theSession->ListingWindow();

	//信息只保存在ListingWindow窗口D:\\GetRunningTime.txt
	list->SelectDevice(NXOpen::ListingWindow::DeviceType::DeviceTypeFile, "D:\\GetRunningTime.txt");
	if (!list->IsOpen()) list->Open();
	list->WriteLine(tempStr.c_str());
	list->Close();
	list->SelectDevice(NXOpen::ListingWindow::DeviceType::DeviceTypeWindow, "");

	UF_terminate();

2.3信息显示在ListingWindow窗口并保存信息内容至D:\\GetRunningTime.txt

关键代码:

cpp 复制代码
	UF_initialize();
	//启动计时器
	UF_timer_t timer = { 0 };
	UF_begin_timer(&timer);
	//创建块
	UF_FEATURE_SIGN sign = UF_NULLSIGN;
	double corner_pt[3] = { 0.0, 0.0, 0.0 };
	char * edge_len[3] = { "100", "100", "100" }; 
	tag_t blk_obj_id = NULL_TAG;
	UF_MODL_create_block1(sign, corner_pt, edge_len, &blk_obj_id);
	//结束计时器
	UF_timer_values_t ValueTime = { 0 };
	UF_end_timer(timer, &ValueTime);

	//打印统计信息
	std::ostringstream temp;
	temp << "耗时:cpu time:" << ValueTime.cpu_time << "\n" << "耗时:real time:" << ValueTime.real_time<< "\n"<<"提示:保存信息窗口内容至:"<< "D:\\GetRunningTime.txt";
	std::string tempStr = temp.str();

	NXOpen::Session* theSession = NXOpen::Session::GetSession();
	NXOpen::ListingWindow* list = theSession->ListingWindow();

	//信息显示在ListingWindow窗口并保存信息内容至D:\\GetRunningTime.txt
	list->SelectDevice(NXOpen::ListingWindow::DeviceType::DeviceTypeFileAndWindow, "D:\\GetRunningTime.txt");
	if (!list->IsOpen()) list->Open();
	list->WriteLine(tempStr.c_str());
	list->Close();
	list->SelectDevice(NXOpen::ListingWindow::DeviceType::DeviceTypeWindow,"");

	UF_terminate();

2.4DeviceType::DeviceTypeNone既不显示在ListingWindow窗口,也不保存信息至D:\\GetRunningTime.txt这里不进行说明。

相关推荐
难搞靓仔11 天前
C# NX二次开发-获取对象名称
c#·.net·nx二次开发
难搞靓仔15 天前
C# NX二次开发-获取体全部面
c#·.net·nx二次开发
社恐猫3 个月前
【UG\NX二次开发】部件间表达式 (字符串类型的) 问题记录
nx二次开发
难搞靓仔3 个月前
C# NX二次开发-设置背景颜色
c#·.net·nx二次开发
恩·艾克斯·红4 个月前
NX\UG版本
nx二次开发
曹大师8 个月前
NX二次开发PK获取对象类型
nx二次开发·pk
恩·艾克斯·红10 个月前
NX/UG二次开发—踩坑(边上点与面上点)
c++·nx二次开发
王牌飞行员_里海10 个月前
NX二次开发UF_CURVE_create_combine_curves 函数介绍
java·服务器·开发语言·程序人生·nx二次开发
王牌飞行员_里海10 个月前
NX二次开发UF_CURVE_ask_wrap_parms 函数介绍
java·服务器·开发语言·数据库·算法·nx二次开发·ug二次开发