NX二次开发点通过云配准获取相同体

先找到体的参考方向(这个参考方向对于相同体重合之后是相同的),这个时候我们的思路是三个不共线的点确定一个坐标系,然后和绝对方向求转换矩阵。然后获取体的所有边的几何中心,把这些点通过转换矩阵转换之后存起来,再和另外一个体转换之后的点数据作对比,在误差范围内配对点的数量等于体获取点的数量就是相同体(有的体没有边,只有面,那就通过大小和面重合来判断就行了,PK函数有判断面重合,我的PK专栏有写),具体实现代码如下:

//需要用到的结构体
struct BODYDATA
{
   tag_t body_tag;//体的tag
   tag_t ps_tag;//转PK的tag
   PK_EDGE_t* edge;//体的所有边
   PK_FACE_t* face;//体的所有面
   PK_EDGE_t first_edge;//体的第一条边
   PK_FACE_t first_face;//体的第一个面
   double transorigin[3];//最小包络框的中心,即转换原点
   double dirx[3];//体的转换方向
   double diry[3];//体的转换方向
   double MinBlockLen[3];//最小包络框的长宽高
   int edge_num;//边的数量
   int face_num;//面的数量
   int topol_num;//子类型的数量
   int num_reation;
   int ver_num;//顶点的数量
   BODYDATA()//初始化结构体数据
   {
      for(int i=0;i<3;i++)
      {
         MinBlockLen[i]=0;
      }
      dirx[0]=1;
      dirx[1]=0;
      dirx[2]=0;
      diry[0]=0;
      diry[1]=1;
      diry[2]=0;
      body_tag=NULL;
      edge=NULL;
      face=NULL;
      edge_num=0;
      face_num=0;
      ver_num=0;
      num_reation=0;
      topol_num=0;
   }
}
void GetBodyData(BODYDATA& bodydata)
{
  PK_VERTEX_t vertiex;
  PK_BODY_ask_faces(bodydata.ps_tag,&bodydata.face_num,&bodydata.face);//PK获取体的所有面
  PK_BODY_ask_edges(bodydata.ps_tag,&bodydata.edge_num,&bodydata.edge);//PK获取体的所有边
  PK_BODY_ask_vertices(bodydata.ps_tag,&bodydata.ver_num,&vertiex);//pk或取体的所有顶点
  PK_BODY_ask_first_edge(bodydata.ps_tag,&bodydata.first_edge);//PK获取体的第一条边
  PK_BODY_ask_first_face(bodydata.ps_tag,&bodydata.first_face);//PK获取体的第一个面
  PK_BODY_ask_topology_o_t options;
  PK_BODY_ask_topology_o_m(options);
  PK_TOPOL_t* topols;
  PK_CLASS_t* class_type;
  int numrelation=0;
  int* parents;
  int* children;
  PK_TOPOL_sense_t* senses;
PK_BODY_ask_topology(bodydata.ps_tag,&options,&bodydata.topol_num,&topols,&class_type,&bodydata.num_reateion,&parents,&children,&senses);
}

 点云我写完了,代码有点多没时间敲,先放图片,将就看看,有时间我再放上去

 

有需要的话可以关注一下私信我

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/314206.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

因成本不断增加,阿里云发布区域调价公告|一周IT资讯

因成本不断增加&#xff0c;阿里云发布域名调价公告 1月9日晚&#xff0c;阿里云在官网发布域名调价公告&#xff1a;因注册局成本上调、域名实名制审核等服务成本不断增加&#xff0c;经慎重考虑&#xff0c;现决定于2024年2月1日&#xff0c;对 .net 英文域名进行价格调整&a…

Java的NIO

Java NIO&#xff08;New I/O&#xff0c;新 I/O&#xff09;是 Java 1.4 版本引入的一组用于进行非阻塞 I/O 操作的 API。相比于传统的 Java I/O&#xff08;或称为 IOStream&#xff09;&#xff0c;Java NIO 提供了更为灵活、可扩展和高性能的 I/O 处理方式。 Java NIO 的核…

【昕宝爸爸小模块】深入浅出之Java 8中的 Stream

深入浅出之Java 8中的 Stream 一、&#x1f7e2;典型解析1.1 &#x1f7e0;Java 8中的Stream 都能做什么1.2 &#x1f7e0;Stream的创建 二、✅ Stream中间操作2.1 &#x1f7e0;Filter2.2 &#x1f7e0;Map2.3 &#x1f7e0;limit / skip2.4 &#x1f7e0;sorted2.5 &#x1…

FFmpeg编程录制音频(Mac OS)

之前我们使用FFmpeg命令行工具进行了简单的音视频操作&#xff0c;这次在Mac OS环境下编写代码实现简单的音频录制功能。 FFmpeg命令行音频录制 首先回顾一下Mac OS环境下简单的音频录制命令行实现&#xff1a; ffmpeg -f avfoundation -i ":0" -t 20 -acodec pcm…

电商平台如何引爆用户自主裂变:从策略到实践的全面解析

在当今竞争激烈的电商市场中&#xff0c;用户裂变成为企业持续增长的关键。如何引导用户自发传播&#xff0c;实现口碑与销量的双赢&#xff0c;是电商平台必须面对的挑战。本文将深入探讨电商平台如何通过精心策划和实施策略&#xff0c;激发用户自主裂变&#xff0c;助力企业…

蓝屏代码0x000007E解决办法

概述 出现该问题&#xff1a; 1、硬件冲突造成的蓝屏 驱动冲突&#xff1a;与其他设备或应用程序的驱动冲突可能会引起系统崩溃。 2、内存虚拟不足造成的蓝屏 错误配置&#xff1a;不正确的配置或设置可能会导致蓝屏错误。 3、超频后也可能出现蓝屏 CUP超频或者显卡超频后出现蓝…

水汽稳定度修正函数\Psi_q对潜热通量影响--模式验证工作

我之前提出了一个水汽通量廓线关系&#xff0c;这项工作偏理论&#xff0c;如果对下面说的背景不了解的话可以看下 https://agupubs.onlinelibrary.wiley.com/share/YNSG74MV8B8BAAUMCHN3?target10.1029/2022JD036708 那会没把提出的水汽稳定度修正函数加到CAS-ESM,当时对CAS-…

Ubuntu20.04-剪贴板

针对图形界面用户 1.两种方式 1.1 安装Parcellite 简单轻量级剪贴板管理器 sudo apt install parcellite 1.2 安装Gpaste 更强大的剪贴板管理器&#xff0c;包含历史记录和同步功能 sudo apt install gpaste

仿真验证方法(1)——动态验证

一、概述 1.1 验证的目的和方法 在现代集成电路设计中&#xff0c;验证所占工作量超过70%。验证要求真实而完备&#xff0c;它决定了设计的成败与成本。 验证的目的 原始描述是否正确&#xff1f;&#xff08;代码&#xff09; 逻辑功能是否正确&#xff1f;&#xff08;功能…

MATLAB--pie函数绘制分类饼图(1)--附案例代码

MATLAB–pie函数绘制分类饼图&#xff08;1&#xff09; 目录 MATLAB--pie函数绘制分类饼图&#xff08;1&#xff09;摘要1. pie函数概述2. 使用pie函数绘制分类图的步骤步骤1&#xff1a;准备数据步骤2&#xff1a;调用pie函数步骤3&#xff1a;定制图形&#xff08;可选&…

从事铁路工作保护足部,穿什么劳保鞋更安全

铁路运输在我国交通运输业中起着骨干作用&#xff0c;为国民经济的可持续发展和人口流动做出了巨大贡献。安全是铁路运输不可忽视的问题&#xff0c;在作业场地随处能见到“安全就是生命&#xff0c;责任重于泰山”的安全标语&#xff0c;由此可见安全问题是放在首位的。 铁路施…

2023年全球软件质量效能大会(QECon上海站):核心内容与学习收获(附大会核心PPT下载)

会议聚焦于软件质量和效能的提升。在智能时代&#xff0c;随着数字化的深入人心&#xff0c;软件正在随着云计算、移动互联网、物联网等的发展而不断进化&#xff0c;软件对企业的发展愈加重要&#xff0c;大家对软件的质量要求也在从传统功能、性能、安全这些基础层面向着用户…

GVM垃圾收集器

Serial收集器&#xff08;新生代&#xff09; Serial&#xff08;串行&#xff09;收集器是最基本、历史最悠久的垃圾收集器&#xff0c;采用“标记-复制”算法负责新生代的垃圾收集。它是Hotspot虚拟机运行在客户端模式下的默认新生代收集器。 它是一个单线程收集器。它会使用…

C桑(Cython)从入门到入土(2): np数组操作对比

C桑(Cython)从入门到入土 2. np数组操作对比 Node sc518 Copy has image data of type unsigned long long实际上, &#x1f446;&#x1f3fb;这个错误是我探索Cython的缘起… code1: Form: 更现代的方法是使用内存视图而不是指针&#xff1a; cdef np.uint32_t[:,:,::1] …

大模型学习产品,一个月顶一年 | 对话网易有道周枫

OpenAI CEO奥特曼曾表示&#xff1a;“AI女友只不过是一个美丽的陷阱&#xff0c;AI教育才是最应该去发力的一个领域。” 场景的确定性&#xff0c;是OpenAI等一众公司尤为重视教育领域的原因所在。教与学是教育场景中的核心&#xff0c;但再将两个字进行拆解&#xff0c;教学…

展望2024:9大要点把握PLM软件趋势,云PLM领导者Arena

2023年《质量强国建设纲要》&#xff08;以下简称《纲要》&#xff09;的推出&#xff0c;再次确定了中国要走上制造业高质量发展之路的决心。《纲要》指出要深入实施质量强国战略&#xff0c;加快传统制造业技术迭代和质量升级&#xff0c;推动工业品质量迈向中高端。当前&…

蓝桥杯基础知识3 memset()

蓝桥杯基础知识3 memset() #include <bits/stdc.h> using namespace std;int main(){int a[5]; //随机数for(int i 0;i < 5; i)cout << a[i] << \n;cout << \n;memset(a, 0, sizeof a); //0for(int i 0;i < 5; i)cout << a[i] << …

高德打车引入“红绿灯倒计时”能力,算力技术升级打车体验

打到的车还有多久能到&#xff1f;接驾车辆原地不动是什么原因&#xff1f;乘客在打车时&#xff0c;常常因为无法了解实时接驾路况&#xff0c;容易出现“等车焦虑”。 如今&#xff0c;高德打车已全面应用“红绿灯倒计时”能力&#xff0c;让乘客在等车时就能掌握接驾路况&am…

Qt QTableWidget表格控件

文章目录 1 属性和方法1.1 行列数目和行表头和列表头1.2 单元格1.3 隔行交替背景色1.4 选择模式和选择行为1.5 设置样式表 2 实例2.1 布局2.2 代码实现 QTableWidget是Qt中的表格控件。 1 属性和方法 QTableWidget有很多属性和方法&#xff0c;完整的可查看帮助文档。 在窗口…

时间序列预测 — VMD-LSTM实现单变量多步光伏预测(Tensorflow):单变量转为多变量预测多变量

专栏链接&#xff1a;https://blog.csdn.net/qq_41921826/category_12495091.html 专栏内容 所有文章提供源代码、数据集、效果可视化 文章多次上领域内容榜、每日必看榜单、全站综合热榜 时间序列预测存在的问题 现有的大量方法没有真正的预测未来值&#xff0c;只是用历史数据…