本文针对目前UGII与反求工程系统存在的不足,以Visual Studio.NET 2003为开发工具,开展了UGII反求工程模块的部分研发工作。论文主要完成的研究内容如下:
(1)通过研究UG/Open API接口技术和UDO方法,设计了点云类,创建了点云对象、UDO类及对象,并结合C++纯虚函数技术,成功地将海量数据点以像素点的形式显示在UGII系统的主窗口中;
(2)通过采用WINDOWS API函数和UG/OPEN C API函数获取了UGII的主窗口指针,利用鼠标钩子捕捉鼠标点的屏幕位置,并进一步通过OpenGL API函数将世界坐标系下的点映射到窗口坐标系下,结合多边形内外点的判断算法,在UGII中实现了点云的交互区域分割;
(3)通过研究支持数据动态管理的空间数据结构R-tree,在优选其变种R*-tree作为本课题的点云空间数据结构的基础上,提出了一种在R*-tree中搜索数据点K近邻的算法;
(4)通过研究固定球拟合、坐标转换及数据融合算法,提出了一种基于最小二乘球的多视点云拼合算法,并与UGII系统无缝集成,该算法可快速、精确地对多视点云数据进行对齐与融合;
(5)研究了曲率估算方法和数据精简原则,提出了一种适用于任意类型测量点云的曲率精简算法,将其集成到UGII系统后,实现了对大量密集数据点直接、有效地精简;
(6)通过分析已有散乱数据三角网格剖分算法,制定了候选点有效准则、匹配点查找及优化准则和四种数据更新方法,提出了一种通用的三角网格快速剖分算法——螺旋波扩展法,实现了散乱数据的快速、高质量地三角网格剖分;
(7)实现了四种三角网格后处理算法,包括:内外边界提取、数据分块、网格自适应加密及网格模型抽壳,为快速构建特征线、有限元分析及快速原型奠定了基础。