首页> 中国专利> 一种用于钣金件建模的基于KDtree的空间面域生成方法及系统

一种用于钣金件建模的基于KDtree的空间面域生成方法及系统

摘要

本发明的用于钣金件建模的基于KDtree的空间面域生成方法及系统,采用KDtree数据结构,实现对曲线段的近邻搜寻,并以此构建面积最小面域,来生成由多个单元网格构成的钣金件整体的空间面域,通过近邻搜寻方法,大大减少了搜寻配对的运算时长,解决了传统的冗余迭代搜寻方法运算耗时长的问题,还能将生成的面域进行参数化输出,实现连续化和自动化,提供后续建模模块的参数化输入,有效节约人力资源,操作简单,使用可靠,耗时少从而减少工人工作强度,打破了生产时间的约束,有效提高生产速度。

著录项

  • 公开/公告号CN108121868A

    专利类型发明专利

  • 公开/公告日2018-06-05

    原文格式PDF

  • 申请/专利权人 韶关学院;

    申请/专利号CN201711385135.4

  • 发明设计人 李璞;郑春龙;胡松喜;余志兵;

    申请日2017-12-20

  • 分类号

  • 代理机构广州骏思知识产权代理有限公司;

  • 代理人吴静芝

  • 地址 512005 广东省韶关市浈江区大学路288号

  • 入库时间 2023-06-19 05:35:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-08

    授权

    授权

  • 2018-06-29

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20171220

    实质审查的生效

  • 2018-06-05

    公开

    公开

说明书

技术领域

本发明涉及钣金件生产领域,尤其涉及用于钣金件建模的空间面域生成方法及系统。

背景技术

在生产制造业中,工件建模是大批量钣金件生产必要的制造环节,建模的质量和速度往往决定了生产的效率和效益。传统的工件建模主要是利用计算机软件进行人工建模,先构造平面图,然后再进行拉伸和扫掠等工序。然而,进行大批量钣金件生产时人工建模的工作量非常大,常会出现重复构造平面的情况,效率较低,造成工作量冗余。现有的面域生产过程大多是通过人工逐个的画图,然后逐个地生产面域,从而得到建模的基本信息,根据这些信息再进行模型构造,在对单个或小批量的产品建模时可能还基本能满足需求,但在建材装修的钣金件大批量生产时,这一过程就显得十分繁琐,而且人工逐个构造过程中无法实现对所建大批量模型的管理和实现参数化,这样的方法实在是非常不方便,影响了生产效率。

在申请号为201710208326.7的中国发明申请中,公开了一种利用Rhino(犀牛软件)环境下运行的Grasshopper插件实现的大批量钣金件的面域生成方法,其利用软件触发的方法控制区域平面图自动生成大批量生产中每一钣金件的基础面域,并将混入的钣金件之间的缝的干扰面域进行过滤,并以输出端口将生成面域参数化输出,实现连续化和自动化。但该技术只能对二维平面结构的钣金件进行面域生成,其所使用的切割函数仅适用于二维平面的多直线段切割,并不能用于具有三维空间结构的钣金件的空间面域生成,例如用于体育馆天花板等具有空间曲面结构上的钣金件,就无法用该技术进行建模。

现有技术中对三维的钣金件结构的空间面域生成方法,在勾画了钣金件整体区域的空间曲线图形后,通常采用传统的冗余迭代搜寻方法,以某一曲线段为基础线段,在所有的空间曲线段中搜寻与其相交的曲线段,来构建封闭面域,其运算耗时极长,生产效率低。

发明内容

基于此,本发明的目的在于,提供一种耗时短、生产效率高的用于钣金件建模的基于KDtree的空间面域生成方法。

本发明所采用的技术方案是:

一种用于钣金件建模的基于KDtree的空间面域生成方法,包括以下步骤:

步骤1:勾画空间曲线图形,生成曲线段集合A;

步骤2:将曲线段集合A的全部曲线段进行两两相交,获得交点信息,根据交点信息对曲线段集合A的全部曲线段进行打断,获得打断后的曲线段集合B;对曲线段集合B中的每个元素曲线段b进行过滤,如果曲线段b未能与曲线段集合B中的其余一个或多个曲线段形成至少一个封闭面域,则将该曲线段b从曲线段集合B中剔除;

步骤3:基于KDtree方法构建一个KDtree数据结构C,其根节点或中间节点表示一个空间范围,对于步骤2中过滤后得到的曲线段集合B中的曲线段b,根据每一曲线段b的空间信息,将其存储到对应的KDtree数据结构C的每个叶子节点ci中,令i=1;

步骤4:选取KDtree数据结构C的叶子节点ci中存储的曲线段d0,根据该叶子节点ci存储的空间信息进行近邻搜寻,得到与该曲线段d0最近邻的n个近邻曲线段,在该曲线段d0及其n个近邻曲线段中构建一面积最小面域f,将其存储到面域集合F中;n的取值小于曲线段集合B中的曲线段总数;

步骤5:令i=i+1,重复步骤4,直至所有叶子节点ci遍历完毕;输出面域集合F。

本发明的用于钣金件建模的基于KDtree的空间面域生成方法及系统,采用KDtree数据结构,实现对曲线段的近邻搜寻,并以此构建面积最小面域,来生成由多个单元网格构成的钣金件整体的空间面域,通过近邻搜寻方法,大大减少了搜寻配对的运算时长,解决了传统的冗余迭代搜寻方法运算耗时长的问题,还能将生成的面域进行参数化输出,实现连续化和自动化,提供后续建模模块的参数化输入,有效节约人力资源,操作简单,使用可靠,耗时少从而减少工人工作强度,打破了生产时间的约束,有效提高生产速度。

进一步地,步骤2中的过滤方法为:将曲线段集合B的全部曲线段进行两两相交,如果曲线段b与曲线段集合B中的其余全部曲线段仅存在最多一个共同交点,则将该曲线段b从曲线段集合B中剔除。

进一步地,步骤4具体包括以下步骤:

步骤41:选取KDtree数据结构C的叶子节点ci中存储的曲线段,记为d0,该d0作为初始的基础曲线d,并将其存储到一数组Di中;根据每个叶子节点ci存储的空间信息进行近邻搜寻,得到与初始的基础曲线段d0最近邻的n个曲线段,将该n个曲线段存储形成一个数组E,每个近邻曲线段标记为e;

步骤42:逐一判断数组E中的每个曲线段e是否与基础曲线段d的起点相交,如果相交,则计算该基础曲线段d的终点到该曲线段e的距离,获得使该距离具有最小值所对应的曲线段e,将该曲线段e从数组E中剔除,并将其替换为新的基础曲线段d,并存储到数组Di中;

步骤43:重复步骤42直至迭代所得的基础曲线段d与初始的基础线段d0的终点相交,停止迭代;根据数组Di中的曲线段生成面域f,将其存储到面域集合F中。

进一步地,步骤4中,得到与初始的基础曲线段d0最近邻的n个曲线段,n的取值范围为10≤n≤30。

进一步地,步骤4中,得到与初始的基础曲线段d0最近邻的n个曲线段,n的取值范围为20≤n≤30。

进一步地,利用CAD制图软件执行步骤1,以生成曲线段集合A,并将其信息保存到CAD文件中。

进一步地,利用Rhino软件打开步骤1中获得的CAD文件,以获取曲线段集合A的信息,并执行步骤2-5。

本发明还提供一种用于钣金件建模的基于KDtree的空间面域生成系统,包括存储设备,适于存储多条指令;以及处理器,适于实现各指令;所述指令适于由处理器加载并执行上述用于钣金件建模的基于KDtree的空间面域生成方法。

为了更好地理解和实施,下面结合附图详细说明本发明。

附图说明

图1为本发明的流程图。

具体实施方式

本实施例的用于钣金件建模的基于KDtree的空间面域生成方法,利用CAD制图软件执行步骤1,并采用Rhino软件执行步骤2-5,但并不限于以上软件,在其他实施方式中,也可以采用CAD以外的其他制图软件执行本步骤1,或采用Rhino以外的其他三维建模软件执行步骤2-5。请参阅图1,本发明的方法包括以下步骤:

步骤1:利用CAD制图软件,勾画所需建模的钣金件整体区域的空间曲线图形,生成曲线段集合A,并将其信息保存到CAD文件中。钣金件整体包括同一批量共同使用的多个钣金件,例如共同构成天花板的多个钣金件。

步骤2:利用Rhino软件打开步骤1中获得的CAD文件,以获取曲线段集合A的信息。框选曲线段集合A的全部曲线,将曲线段集合A的全部曲线段进行两两相交,获得交点信息,根据交点信息对曲线段集合A的全部曲线段进行打断,获得打断后的曲线段集合B;对曲线段集合B中的每个元素曲线段b进行过滤,如果曲线段b未能与曲线段集合B中的其余一个或多个曲线段形成至少一个封闭面域,则将该曲线段b从曲线段集合B中剔除。

具体地,该过滤方法为:将曲线段集合B的全部曲线段进行两两相交,如果曲线段b与曲线段集合B中的其余全部曲线段仅存在最多一个共同交点,则将该曲线段b从曲线段集合B中剔除。该共同交点是指,假设在执行打断操作前,曲线段X与曲线段Y相交形成一交点O,执行打断操作后,曲线段X被打断为曲线段X1和X2,曲线段Y被打断为曲线段Y1和Y2,此时,曲线段X1分别与X2、Y1、Y2相交形成三个交点,但该三个交点重合,均为交点O,则该交点O仅计算为一个共同交点,即曲线段X与曲线段集合B中的其余全部曲线段需要至少形成两个不同的共同交点,才能形成至少一个封闭面域,从而不会被从曲线段集合B中剔除。在其他实施方式中,还可以采用其他过滤方法。

步骤3:基于KDtree方法构建一个KDtree数据结构C,其根节点或中间节点表示一个空间范围,对于步骤2中过滤后得到的曲线段集合B中的曲线段b,根据每一曲线段b的空间信息,将其存储到对应的KDtree数据结构C的每个叶子节点ci中,令i=1。

步骤4:选取KDtree数据结构C的叶子节点ci中存储的曲线段d0,根据该叶子节点ci存储的空间信息进行近邻搜寻,得到与该曲线段d0最近邻的n个近邻曲线段,在该曲线段d0及其n个近邻曲线段中构建一面积最小面域f,即形成一单元网格,将其存储到面域集合F中。

具体地,步骤4包括以下步骤:

步骤41:选取KDtree数据结构C的叶子节点ci中存储的曲线段,记为d0,该d0作为初始的基础曲线d,并将其存储到一数组Di中;根据每个叶子节点ci存储的空间信息进行近邻搜寻,得到与初始的基础曲线段d0最近邻的n个曲线段,将该n个曲线段存储形成一个数组E,每个近邻曲线段标记为e。近邻曲线段的数量n的取值大大小于曲线段集合B中的曲线段总数,具体地,n的取值范围为10≤n≤30,优选20≤n≤30,在本实施例中取20。

步骤42:逐一判断数组E中的每个曲线段e是否与基础曲线段d的起点相交,如果相交,则计算该基础曲线段d的终点到该曲线段e的距离,获得使该距离具有最小值所对应的曲线段e,将该曲线段e从数组E中剔除,并将其替换为新的基础曲线段d,并存储到数组Di中。

步骤43:重复步骤42直至迭代所得的基础曲线段d与初始的基础线段d0的终点相交,停止迭代;根据数组Di中的曲线段生成面域f,将其存储到面域集合F中。

本步骤中,通过对基础曲线段进行数量较少的近邻搜寻,来构建面积最小面域,该面积最小面域的曲线段的数量由近邻曲线段的数目进行控制,因此可控制在合理数量之下,通过对近邻曲线段n的合理取值,能够大大降低搜寻配对的计算量和耗时。在其他实施方式中,也可以通过其他方式选取构成最小面域的曲线段。

步骤5:令i=i+1,重复步骤4,直至所有叶子节点ci遍历完毕;输出面域集合F。

本发明还提供一种用于钣金件建模的基于KDtree的空间面域生成系统,包括存储设备,适于存储多条指令;以及处理器,适于实现各指令;所述指令适于由处理器加载并执行上述用于钣金件建模的基于KDtree的空间面域生成方法。

本发明的用于钣金件建模的基于KDtree的空间面域生成方法及系统,采用KDtree数据结构,实现对曲线段的近邻搜寻,并以此构建面积最小面域,来生成由多个单元网格构成的钣金件整体的空间面域,通过近邻搜寻方法,大大减少了搜寻配对的运算时长,解决了传统的冗余迭代搜寻方法运算耗时长的问题,还能将生成的面域进行参数化输出,实现连续化和自动化,提供后续建模模块的参数化输入,有效节约人力资源,操作简单,使用可靠,耗时少从而减少工人工作强度,打破了生产时间的约束,有效提高生产速度。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号