[发明专利]一种工件表面轮廓自适应离散方法在审

专利信息
申请号: 202210117507.X 申请日: 2022-02-08
公开(公告)号: CN114491865A 公开(公告)日: 2022-05-13
发明(设计)人: 张勇;蒋栓栓;葛家顺 申请(专利权)人: 合肥工业大学
主分类号: G06F30/17 分类号: G06F30/17;G06F30/20
代理公司: 石家庄嘉宏智信知识产权代理有限公司 13160 代理人: 李兵
地址: 230009 安徽省合*** 国省代码: 安徽;34
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 工件 表面 轮廓 自适应 离散 方法
【权利要求书】:

1.一种工件表面轮廓自适应离散方法,其特征在于:所述工件表面轮廓自适应离散方法包括以下步骤:

S1:先进行模型的读取,首先定义读取文件的格式为STLControl_Reader;然后使用ReadFile()方法加载文件,文件读取成功返回True,否则返回false;接着转换CAD模型中的所有实体,转换为拓扑形状,模型数据储存到TopoDS_Shape类,数据储存到定义的拓扑类型的哈希表中;最后将TopoDS_Shape类型的对象转换为可交互操作的AIS_Shape类型的对象;

S2:再进行曲面的选取,利用OpenCASCADE可视化模块中的AIS_InteractiveContext类实现曲面的选取;首先通过AIS_InteractiveContext::ActivateStandardMode确定拾取的类型为TopAbs_FACE类型;然后通过AIS_InteractiveContext::SetSelected将选择的曲面加入到队列中,通过AIS_InteractiveContext::HightSelected对拾取的面进行高亮显示,建立TopoDS_shape类型的vector容器,通过AIS_InteractiveContext::SelectedShape从队列中取出拾取的面储存到vector容器中;

S3:之后进行环的选取,利用OpenCASCADE的建模数据模块中的TopExp类实现对环的选取;首先从TopoDS_shape的vdector数组中取出选取的曲面m_selshape,然后对TopExP::MapShape进行初始化,设定遍历操作的对象为m_selshape,遍历的类型为TopAbs_WIRE,遍历所得的所有环储存到TopTools_IndexedMapOfShape图中;利用OpenCASCADE的建模算法模块中的BRepGProp::LinearProperties计算遍历所得环的弧长,比较每一段弧长的大小,取得弧长最大环Max_wire;

S4:进行轮廓线的分段

首先对TopExP::MapShape进行初始化,设定遍历的操作对象为Max_wire,遍历的类型为TopAbs_EDGE,遍历所得的所有边储存到TopTools_IndexedMapOfShape图中;根据直线,圆弧,B样条曲线对遍历所得的所有边进行分类;首先确定所有边中的直线,空间中直线的表达式为:

p=p(u)=[x(u),y(u),z(u)],u∈[u0,un];

S5:通过BRepAdaptor_Curve获取直线的参数域,按照u0,(u0+un)/2,un对参数域进行划分,分别计算直线在u0,(u0+un)/2,un处的切向量;分别比较三处切向量的模长与向量角是否相等;如果三处的模长,向量角均相等,则获取的这条边为直线,计算直线在u0,un处的x,y,z值;否则进入下一个判断语句,判断其是否为圆弧;空间中圆弧的表达式为:

C=C(u)=[x(u),y(u)z(u)],u∈[u0,un];

S6:同样通过BRepAdaptor_Curve获取曲线的参数域,随机选取参数域中的参数值u0,u1,…,u5,计算x(u0),y(u0),z(u0)…x(un),y(un),z(un)等坐标值;通过这种方法我们随机获得了圆弧上六组坐标点的值;六组坐标点分别为:

P0(x0,y0,z0),P1(x1,y1,z1),p2(x2,y2,z2),…,P5(x5,y5,z5);取前三组坐标构成一段圆弧,后三组坐标构成一段圆弧,分别计算得到圆弧的圆心D0,D1,半径R0,R1;设定圆心的偏离误差qc=0.01,半径容许误差qr=0.001;比较圆心D1相对于D0的偏离是否在偏离误差内,比较R1相对于R0的误差是否在容许误差内;

S7:进行B样条曲线的离散,所述B样条曲线的离散为自适应的B样条曲线离散算法,采样点合理地分布在曲率变化不大和曲率变化较大的区域,满足轮廓的变化特征;

首先通过BRepAdaptor_Curve获取曲线的参数域,对曲线的参数域进行等参划分,根据等参划分所得的参数值计算B样条曲线上型值点的值;根据计算所得型值点的值反求B样条曲线的控制点Pi以及样条基函数Ni,k(t);通过积分法计算B样条曲线的弧长L;

S8:接着根据弧长的步长以及曲线的弧长L确定离散点的节点矢量t,进而确定离散点的位置;若要想求得节点矢量t,首先要确定节点t所在的节点区间,假定t为第n个离散点,第n-1个离散点对应的节点区间为[tm-1,tm),n个离散点,n个离散点到起点的弧长为Ln=n*s,

B样条曲线在[0,tm)上的弧长为如果则离散点t可能在节点区间[tm,tm+1)上;计算B样条曲线在[0,tm+1)上的弧长如果则离散点t在节点区间[tm,tm+1)上;

S9:接着遍历等弧长离散所得离散点,所有离散点储存到gp_pnt类型的容器中,从容器中依次取出两点对B样条曲线进行分段,假设有n个离散点,则B样条曲线被分为(n-1)段,分别取(n-1)段曲线的首端点P1,中点P3,末端点P2;

S10:最后依次取出分段曲线L1,L2...Ln-1,首先将曲线L1以及曲线的两端点压入栈中,然后记录曲线的两端点,接着判断栈是否为空,若为空输出采样点Pi,不为空计算当前曲线的中点,角度偏差θ和曲率偏差α,若θ>θb,α>αb,取曲线的中点,将曲线分成两段,继续压入栈中,若θ<θb,α<αb,判断栈是否为空。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于合肥工业大学,未经合肥工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202210117507.X/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top