当前位置: 首页 > article >正文

NX二次开发—批量导出点工具

在NX上进行二次开发,设计一个UI界面,将选择的点导出

在NX上,进行UI样式编辑器

添加选择对象,修改标题,设置为多选

创建一个组,添加枚举,设置标题和枚举内容,不显示枚举标题LabelVisibility设置为false,更改枚举风格PresentationStyle设置为Radio Box

添加组,添加特殊里的选择浏览选择文件,设置标题,设置保存文件的类型

然后生成C++代码,保存。

第一步参考:

NX—UI界面生成的文件在VS上的设置

设置点的过滤器,在initialize_cb()里添加

		//设置过滤
		Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
		std::vector<Selection::MaskTriple>maskArray(1);
		maskArray[0] = Selection::MaskTriple(UF_point_type, 0, 0);//点
		selection0->GetProperties()->SetSelectionFilter("SelectionFilter", action, maskArray);

设置当勾选显示在信息窗口时,下面的文件成灰色,勾选输出到本地文件时,下面的文件亮起,在update_cb(NXOpen::BlockStyler::UIBlock* block)和dialogShown_cb()添加

if (enum0->GetProperties()->GetEnum("Value")==0)
		{
			group1->SetEnable(false);
		}
		else
		{
			group1->SetEnable(true);
		}

将选择的点要么显示在窗口,要么保存到本地,先进行判断是显示还是保存。

显示在窗口,选择点,获取点的坐标,将坐标显示在信息窗口

	if (enum0->GetProperties()->GetEnum("Value") == 0)
	{
		//打印到信息窗口
		//打开信息窗口
		UF_UI_open_listing_window();
		
		for (int i = 0; i < points.size(); i++)
		{
			UF_CURVE_ask_point_data(points[i]->Tag(), point_cords);//获取点的坐标
			sprintf(msg, "%f\t %f\t %f\n", point_cords[0], point_cords[1], point_cords[2]);
			UF_UI_write_listing_window(msg);
		}

	}

设置输出到本地文件,.dat文件需提前创建好

else
	{
		//输出到本地
		int opendat = uc4504(nativeFileBrowser0->Path().GetLocaleText(), 3, 87);//打开.dat的文档
		for (int i = 0; i < points.size(); i++)
		{
			UF_CURVE_ask_point_data(points[i]->Tag(), point_cords);
			sprintf(msg, "%f\t %f\t %f", point_cords[0], point_cords[1], point_cords[2]);
			uc4524(opendat, msg);//写入
		}
		uc4540(opendat, 0);//关闭文档
	}


http://www.kler.cn/a/307849.html

相关文章:

  • 23种设计模式的Flutter实现第一篇创建型模式(一)
  • sealos部署K8s,安装docker时master节点突然NotReady
  • Python——NumPy库的简单用法,超级详细教程使用
  • (六)Spark大数据开发实战:豆瓣电影数据处理与分析(scala版)
  • Go语言 实现将中文转化为拼音
  • Linux 常用操作指令大揭秘(下)
  • html限制仅有一个音/视频可播放
  • 阿里云社区领积分自动打卡Selenium IDE脚本
  • How to see if openAI (node js) createModeration response “flagged“ is true
  • 代码随想录算法训练营第五十八天 | 拓扑排序精讲-软件构建
  • Arduino IDE离线配置第三方库文件-ESP32开发板
  • 8.JMeter+Ant(基于工具的实现接口自动化,命令行方式)
  • 常见的限流算法
  • 【C/C++】程序的构建(编译)过程概述
  • 【C++】函数重载
  • Python使用pymysql返回字典类型的数据
  • yum本地源配置
  • 基于 SpringBoot 的车辆充电桩管理系统
  • 医药|基于springboot的医药管理系统设计与实现(附项目源码+论文+数据库)
  • JAVA算法数据结构第一节稀疏矩阵
  • ADB ROOT开启流程
  • C# AutoResetEvent ManualResetEvent Mutex 对比
  • 54.【C语言】 字符函数和字符串函数(strncpy,strncat,strncmp函数)
  • ip映射域名,一般用于mysql和redis的固定映射,方便快捷打包
  • python基本数据类型简记
  • vue3 组合式API defineEmits() 与 emits 组件选项