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

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

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

//需要用到的结构体
struct BODYDATA
{tag_t body_tag;//体的tagtag_t ps_tag;//转PK的tagPK_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);
}

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

 

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

http://www.lryc.cn/news/278930.html

相关文章:

  • 5.4 Android BCC环境搭建(eadb版 下)
  • 【AI视野·今日Robot 机器人论文速览 第七十四期】Wed, 10 Jan 2024
  • 服务端性能测试——性能测试工具JMeter-L1
  • C# OpenCvSharp DNN FreeYOLO 目标检测
  • U盘启动安装win11遇到缺少计算机所需的介质驱动程序问题
  • 正则表达式、文件访问(Python实现)
  • ES高级查询
  • RT-Thread入门笔记6-空闲线程及两个常用的钩子函数
  • 网络正常运行时间监控工具
  • DEJA_VU3D - Cesium功能集 之 112-获取圆节点(1)
  • Matlab 建文件夹保存本次仿真图表数据和参数
  • @JsonFormat与@DateTimeFormat
  • 半监督学习 - 自训练(Self-training)
  • outlook邮件群发单显技巧?群发怎么单显?
  • 【REST2SQL】07 GO 操作 Mysql 数据库
  • [UI5] ODATA V4中的CRUD
  • js封装根据年月日获取星座效果demo(整理)
  • Vue.js设计与实现阅读-2
  • GEM5 McPAT教程:源代码解读McPAT NoC功耗 arbiter部分
  • 使用组合框QComboBox模拟购物车
  • 云服务器十大服务商——云服务器哪家好用
  • SQL DML
  • MySQL--基础篇
  • [VUE]5-TypeScript
  • Linux指令(一)
  • C语言中的回文素数
  • 前端生成pdf之html2canvas+jsPDF,以及解决图片不显示bug
  • PHP常用符号和函数
  • C#,入门教程(12)——数组及数组使用的基础知识
  • C语言中的副作用、序列点以及复杂表达式的求值顺序