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

UGNX二次开发——截图功能

        在NX中没有截图功能,为了方便加工工艺人员制定工艺是制作缩略图,本文介绍三种方法,也许会有第四种,参考【NX二次开发】视图对象截图。但是个人认为适合自己的才是最好。因为要制作一个案例,参考知网论文:一种自动输出数控程序清单的NX二次开发方法中用到该功能,因此提前进行实验功能是否可以使用。本人做过Creo二次开发,sw二次开法,NX二次开发,截至目前最感兴趣的是NX二次开发,作为新生真的有太多的无奈了,程序有太多的BUG了,能坚持到现在,其中要感谢各位博客博主,也要感谢王牌飞行员_里海,以及其他大佬,自学这个已经一年有余,每次遇到BUG是总会有人伸出援手,对此万分感谢。因此博主会分享给各位自己在学习中的一些问题以及解决方案。当然也有自己的小专题,有时需要一瓶饮料,内容可能不是那么完美,但是足够给新手提供思路。

第一种方法,使用单选函数进行截图。个人评价代码太多,哈哈哈,好像之高清截图。

//用户定义
#include <uf_ui.h>
#include <uf_part.h>
#include <uf_csys.h>
#include <uf_disp.h>
#include <uf_modl.h>
#include <uf_trns.h>
#include <uf_ui.h>
#include <uf_vec.h>
#include <uf_view.h>
#include <afx.h>


//用户定义
// 获取输入体相对于NX视图的左上角与右下角坐标
static void GetTwoPoints(tag_t body, double leftT[3], double rightB[3])
{
	// 创建临时坐标系
	UF_initialize();
	double temp = 0.0;
	double csys[12] = { 0.0 };
	tag_t mtxId = NULL_TAG, csysId = NULL_TAG;
	uc6430("", &csys[0], &temp);
	uc6433("", &csys[3]);
	UF_CSYS_create_matrix(&csys[3], &mtxId);
	UF_CSYS_create_temp_csys(&csys[0], mtxId, &csysId);

	// 计算包围盒并求得左上角与右下角的坐标
	double min[3] = { 0.0 };
	double dists[3] = { 0.0 };
	double dirs[3][3] = { { 0.0 },{ 0.0 },{ 0.0 } };
	UF_MODL_ask_bounding_box_aligned(body, csysId, 0, min, dirs, dists);
	UF_VEC3_affine_comb(min, dists[1], &dirs[1][0], leftT);
	UF_VEC3_affine_comb(min, dists[0], &dirs[0][0], rightB);

	// 将绝对坐标系的点转换为NX视图坐标
	int status = 0;
	double matrix[12] = { 0.0 };
	double abs[9] = { 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0 };
	uf5940(abs, &csys[0], matrix, &status);
	uf5941(leftT, matrix);
	uf5941(rightB, matrix);
	UF_terminate();
}
// NX视图坐标转屏幕像素坐标
static bool GetScreenPt(double p1[3], double p2[3], POINT pts[2])
{
	UF_initialize();
	HWND nxHwnd = (HWND)UF_UI_get_default_parent();
	HWND drawZone = FindWindowEx(nxHwnd, NULL, L"NX

相关文章:

  • Markdown在线转word格式
  • 11AI搭建preparationのmnist手写体识别的三种方法
  • 如何解决../rtSafe/safeRuntime.cpp (25) - Cuda Error in allocate: 2 (out of memory)
  • PyTorch量化进阶教程:第四章 Transformer 模型构建与训练
  • C/C++蓝桥杯算法真题打卡(Day12)
  • Python Flask并发demo(http并发与锁)独占接口、monkey功能还不太确定
  • 目标检测 AP 计算 实例 python
  • SpringBoot详细教程(持续更新中...)
  • 不同版本的mysql数据库对于注入的影响
  • 解决Win7下打开Delphi 11.3 后提示“LSP Server 已停止工作“
  • 【Ragflow】8.基于ragflow API 搭建极简聊天Web界面
  • CMake —— 1、CMake简介(附:Windows、Linux下的CMake安装方法,及编译测试结果)
  • C++的位与、位或、左移、右移、异或、位取反
  • c++的封装
  • 大数据与datax1.0
  • HarmonyOS Next~鸿蒙元服务开发指南:核心功能与实践
  • DAY 32 leetcode 242--哈希表.有效的字母异位词
  • PHP Swoole 启动时的进程关系
  • ISIS报文
  • ES6 新特性全面总结
  • 郑州汉狮做网站费用/电商运营推广怎么做
  • 敦化建设局网站/宁波最好的推广平台
  • 给客户做网站建设方案/成都网络运营推广
  • 上海做壁画的网站/收录是什么意思
  • 水果网站建设/厦门百度推广怎么做
  • 手机网站模板cms/qq营销软件