欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > NX二次开发—批量导出点工具

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

2024/11/30 14:50:52 来源:https://blog.csdn.net/weixin_48726365/article/details/142174209  浏览:    关键词: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);//关闭文档}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com