任务详情
经前期充分沟通,双方对项目功能具体要求达成理解一致,如下:
需要编写step三维层模型的侧切面求取程序,该层模型是通过调用端程序,将一个整体模型逐层切割后获得。
该层模型数据为step格式(TopoDS_Shape格式,可通过occt库读取),层模型通常具有顶面、底面和侧面,其中顶、底面一般为平行面,特殊情况下,整体模型的顶部层模型,其顶面可能非平面(例如拱形),此时程序需创建一个平面替代该非平面(可参考附件“层模型处理需求补充说明”中3D示意图),层模型中平行的顶面和底面上可能有凹陷或贯穿的孔洞(可参考附件“层模型处理需求补充说明”中2D示意图),模型侧面凹凸不规则。
1、功能要求:
输入:
stp层模型数据;
处理:
(1)将模型顶面轮廓和底面轮廓(包括贯通顶底孔洞的边界轮廓,如有)上的对应点连线,该连线按照一定步长向模型外侧(如是顶底内部贯穿的孔洞则是向模型内侧)移动,直到与侧面相切(即线与面交点数 = 1)或大于侧面所在位置(即线与面交点数 = 0)即可,此时得到新位置的连线。围绕顶、底轮廓(或内部孔洞轮廓)一周重复上述动作,得到所有新连线,将这些新连线构成新的模型侧面(外侧以及内侧)。
(2)算法求得的切线与下平面的夹角如果小于预设角度(0°< 预设角度 ≤ 90°),则应按预设角度生成切线,即 空间向量与一个点相切(经过),得出这个夹角之后,需要判断这个夹角是否小于预设值,小于预设值的情况下,需要生成一条新的向量(与原向量在同一个竖直平面内),角度以预设角为准。注意,向量的起点与原向量的起点在一个水平平面内,向量的终点与原向量的终点在一个水平平面内。
(3)如果输入数据存在独立多块情况,则每块独立求切面模型,求取结果如果有相交(穿模)就合并对应相交的结果实体,没相交的则保持独立。
输出:
带有新(内外)侧面的stp模型数据,同时接口返回 true。
说明:输入的分层模型满足以下条件:2-流形、水密、无重叠点、无重叠边、无退化表面。对不满足以上条件的输入数据,乙方代码提示输入数据有几何错误,返回false;
2、交付要求: 在4周左右完成并提交完整的c++源码和技术说明文档,代码集成测试无误后,项目收尾。具体如下
1)阶段1:测试二进制版。符合功能要求解冻50%;
2)阶段2:提交符合功能需求的调用要求的完整c++源码,编译功能与阶段1一致无误,解冻剩余款项。如编译功能与阶段1对应的需求功能不符,则乙方需要退还已支付费用。
3、其他说明
1)平台中介费由甲方承担;
2)算法仅对单层stp输入数据(TopoDS_Shape格式的层模型数据)进行处理;
3)算法为独立c++代码形式,无UI,win系统。
4)乙方开发时间4周左右。从乙方提出问题到甲方回复的时间段不计入乙方开发时间。
5)乙方每次提交成果后的2周内甲方进行测试并反馈意见。如果2周内甲方没有反馈意见,则等同于已经测试验收通过,并自动进入付款流程。
6)如果甲方增加或改动需求,则甲乙双方另行协商开发时间和费用。协商不一致亦不影响本协议的执行。 文档下载
层模型处理需求补充说明.docx