CN110543819B - 3d打印的三角网格单孔洞分类识别与修复方法及系统 - Google Patents
3d打印的三角网格单孔洞分类识别与修复方法及系统 Download PDFInfo
- Publication number
- CN110543819B CN110543819B CN201910681062.6A CN201910681062A CN110543819B CN 110543819 B CN110543819 B CN 110543819B CN 201910681062 A CN201910681062 A CN 201910681062A CN 110543819 B CN110543819 B CN 110543819B
- Authority
- CN
- China
- Prior art keywords
- points
- holes
- hole
- point
- boundary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 230000008439 repair process Effects 0.000 title claims abstract description 31
- 238000007639 printing Methods 0.000 title description 2
- 238000010146 3D printing Methods 0.000 claims description 11
- 238000009958 sewing Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 10
- 239000011159 matrix material Substances 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 238000013459 approach Methods 0.000 claims description 3
- 230000005484 gravity Effects 0.000 claims description 3
- 230000001131 transforming effect Effects 0.000 claims 2
- 230000000694 effects Effects 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 8
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/77—Retouching; Inpainting; Scratch removal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开公开了3D打印的三角网格单孔洞分类识别与修复方法及系统,包括:获取3D打印的三角网格的单孔洞的基本信息;根据单孔洞的基本信息,对单孔洞进行识别并分类,获得缝隙孔洞、错位孔洞、环形孔洞或简单孔洞;根据单孔洞的分类,采用不同的修复算法进行修复。对每一类型的单孔洞,根据其特点,有针对性地进行修复,以达到自动修复模型孔洞,同时获取较好修复效果的目的。
Description
技术领域
本公开涉及3D打印技术领域,尤其涉及3D打印的三角网格单孔洞分类识别与修复方法及系统。
背景技术
本部分的陈述仅仅是提到了与本公开相关的背景技术,并不必然构成现有技术。
三角网格是一种应用非常广泛的几何模型表达形式,是3D打印的重要应用基础。在网格模型的构建和获取过程中,经常会存在孔洞的出现,严重影响了3D打印模型的外观和质量。因此,三角网格模型中孔洞的识别和修复是提高3D打印质量的关键。
在实现本公开的过程中,发明人发现现有技术中存在以下技术问题:
目前三角网格孔洞的修复多采用用户交互的方式进行孔洞修复,自动孔洞识别和修复算法多将孔洞作为单一类型的单孔洞进行处理,大多研究或文献关注单孔洞的修复算法,但是没有考虑单孔洞的几何形态以及相关孔洞之间的拓扑关系,因而导致模型的修复效果不理想,模型存在新的缺陷。
单孔洞的修复算法目前主要算法有三类:
第一类算法是直接采用原始孔洞点,根据点的相邻边夹角、法向等逐步构建空间三角形,该类算法实现简单,但由于孔洞的形态可能比较复杂,没有新增三角形内部点,往往不能保持模型的连续性,修复效果不够理想。
第二类算法是在第一类算法的基础上,通过边交换、细化三角形等方法,在初始构建的三角形面片中新增点,以改善填孔三角形的形态,但由于未考虑相邻区域的连续性和几何形态,在复杂孔洞形态下,也难以获得理想的补洞效果。
第三类算法是根据孔洞的点分布,计算特征平面,将孔洞点投影到特征面上进行分元,然后采用隐式函数、径向基函数、薄板理论等,将特征面上的点映射到三维模型上,该类方法得到的填孔面的形态往往比较理想,但适用场景较为苛刻,在简单孔洞形态下能够获取理想的效果,但对复杂单孔洞形态可能出现映射失败或者映射错误的情况,导致填孔效果差。
发明内容
为了解决现有技术的不足,本公开提供了3D打印的三角网格单孔洞分类识别与修复方法及系统;
第一方面,本公开提供了3D打印的三角网格单孔洞分类识别与修复方法;
3D打印的三角网格单孔洞分类识别与修复方法,包括:
获取3D打印的三角网格的单孔洞的基本信息;
根据单孔洞的基本信息,对单孔洞进行识别并分类,获得缝隙孔洞、错位孔洞、环形孔洞或简单孔洞;
根据单孔洞的分类,采用不同的修复算法进行修复。
第二方面,本公开还提供了3D打印的三角网格单孔洞分类识别与修复系统;
3D打印的三角网格单孔洞分类识别与修复系统,包括:
获取模块,其被配置为:获取3D打印的三角网格的单孔洞的基本信息;
分类识别模块,其被配置为:根据单孔洞的基本信息,对单孔洞进行识别并分类,获得缝隙孔洞、错位孔洞、环形孔洞或简单孔洞;
修复模块,其被配置为:根据单孔洞的分类,采用不同的修复算法进行修复。
第三方面,本公开还提供了一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成第一方面所述方法的步骤。
第四方面,本公开还提供了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成第一方面所述方法的步骤。
与现有技术相比,本公开的有益效果是:
本公开提出一种单孔洞分类识别和修复的算法,将单孔洞按照拓扑关系和几何形态划分为缝隙孔洞、错位孔洞、环形孔洞、简单孔洞等四类孔洞;对每一类型的单孔洞,根据其特点,有针对性地进行修复,以达到自动修复模型孔洞,同时获取较好修复效果的目的。
本公开重点是提出一种系统的实用性较强的单孔洞分类识别与修复方法,通过分类修复,将复杂模型的单孔洞错误,转换为各类孔洞的识别和修复。其中,缝隙孔洞、错位孔洞、环形孔洞的识别和修复,为本公开的独特之处;简单孔洞的修复采用上述第三类算法理论,确保模型修复效果。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为本公开第一个实施例的方法流程图;
图2为本公开第一个实施例的三角网格单孔洞的分类识别流程;
图3为本公开第一个实施例的缝隙孔洞示意图;
图4为本公开第一个实施例的错位孔洞示意图;
图5为本公开第一个实施例的环形孔洞示意图;
图6为本公开第一个实施例的简单孔洞示意图;
图7为本公开第一个实施例的缝隙孔洞修复流程图;
图8为本公开第一个实施例的错位孔洞检查与修复流程;
图9为本公开第一个实施例的环形孔洞修复流程;
图10为本公开第一个实施例的环形孔洞初始缝合面片构建示意图;
图11为本公开第一个实施例的三角形边交换示意图。
图12为本公开第一个实施例的简单孔洞修复流程。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在增材制造中,要求三角网格模型是封闭的,但在其创建和编辑过程中,可能存在面片丢失或拓扑错误,导致模型产生孔洞。因此,本公开针对模型孔洞的不同形态,对孔洞进行检测分类和修复,保证修复后的模型最大程度地接近原始模型。其步骤包括:根据输入模型数据,快速建立模型的面片、边和顶点的拓扑结构,识别网格模型中的单连通区域,每个单连通区域称为部件并获取模型中存在的所有单孔洞;根据孔洞的几何形态,识别孔洞类型,建立缝隙孔洞、错位孔洞、环形孔洞和简单孔修复的基本修复步骤。该方法修复后的模型一方面保证修复后模型拓扑正确、填补孔洞区域曲率连续,另一方面保证修复后的模型最大程度的接近原始模型。
本公开要解决的技术问题是在3D打印中,要求输入的模型必须封闭,孔洞全部正确填充,而现有三角网格的单孔洞识别和修复算法中未对单孔洞进行分类识别和修复导致的模型自动修复效果不理想的问题,提出一种对三角网格模型的单孔洞进行自动识别和分类,以及按照不同类型进行针对性修复的算法。
获取输入模型,解析三角网格模型数据,获取单孔洞的基本信息;对单孔洞,根据孔洞的几何形态,划分为缝隙孔洞、错位孔洞、环形孔洞以及简单孔洞;对每一种类型的孔洞,根据其几何形态,采用相应的填充方法进行孔洞修复。
本公开的第一个实施例,提供了3D打印的三角网格单孔洞分类识别与修复方法;
3D打印的三角网格单孔洞分类识别与修复方法,如图1所示,包括:
S1:获取3D打印的三角网格的单孔洞的基本信息;
S2:根据单孔洞的基本信息,对单孔洞进行识别并分类,获得缝隙孔洞、错位孔洞、环形孔洞或简单孔洞;
S3:根据单孔洞的分类,采用不同的修复算法进行修复。
作为一种或多种实施例,所述单孔洞的基本信息,包括:孔洞线、孔洞方向、孔洞上的点和线的关系。孔洞线是在保持原始三角网格模型拓扑关系的基础上,将每个部件的自由边首尾连接成的闭合线。自由边是指仅连接一个面片的边。
作为一种或多种实施例,根据三角网格模型的面片与边的连接关系,获取三角网格模型的所有单连通区域;将每个单连通区域视为一个部件。
作为一种或多种实施例,根据三角网格模型的面片与边的连接关系,获取三角网格模型的所有单连通区域的具体步骤包括:
S31:标记所有三角形面片为未访问状态;
S32:从所有未访问状态的三角形面片中,随机找出一个三角形面片,选择三角形面片中的任意一条边为种子边,将种子边添加到种子边集合中;
S33:从种子边集合中取出一条种子边,找出与当前种子边连接的处于未访问状态的面片,将找出的面片加入到当前面片集合中,标记找出的面片的状态为已访问,并将已访问的面片与种子边不同的边添加到种子边集合中;
S34:判断种子边集合是否为空,如果是,则当前面片集合是一个单连通区域,定义为一个部件,部件数量加1,进入S35;如果否,则返回S33;
S35:判断所有面片是否均已经被访问,如果是,就输出部件数量和每一部件的三角面片集合,且将每个部件视为一个单连通区域;如果否,则返回S32。
作为一种或多种实施例,对所有单孔洞,根据孔洞的几何形态,划分为缝隙孔洞、错位孔洞、环形孔洞以及简单孔洞,如图2所示,其分类识别的具体步骤为:
S201:判断构成单孔洞的边中的任意两条边,其夹角和累计夹角是否均小于设定的阈值;如果是,继续执行S202;如果否,继续执行S203;所述累计夹角,是指:从第一条边开始,计算所有夹角的和;
S202:输出为缝隙孔洞,示例如图3所示;
S203:判断单孔洞上的点与最近的边之间的距离是否小于设定距离;如果是,当前点为错位点,继续执行S204;如果否,继续执行S205;
S204:输出为错位孔洞,示例如图4所示;
S205:判断部件数目是否小于2。如果是,继续执行S211;如果否,继续执行S206;
S206:计算每一个部件的边界;
S207:判断有边界的部件数目是否小于2;如果是,继续执行S211;如果否,继续执行S208;
S208:计算每一条边界在除当前边界所在部件以外的部件中的最近边界;
S209:判断是否存在互为最近边界的边界;如果是,继续执行S210;如果否,继续执行S211。即,边界L0的最近边界是L1,且L1的最近边界是L0,则认为L0、L1组成环形孔洞;
S210:输出为环形孔洞,示例如图5所示;
S211:输出为简单孔洞,示例如图6所示。
作为一种或多种实施例,对缝隙孔洞,采用对应的填充方法进行孔洞填充,如图7所示,具体步骤包括:
S301:输入检测出的缝隙的边界点,计算缝隙所有线段的方向;
S302:计算S301中相邻的有向线段之间的夹角,查找夹角最大的两个点,作为缝隙的两个端点;
S303:将缝隙上的除两个端点外的其他点投影到两个端点连接的线段上,记录点投影的线段上的参数t。通过投影参数计算投影点所在的边,投影点P的参数表示:
S304:采用S303计算的边上的投影点,将该边分割为若干条线段,利用若干条线段将该边对应的三角面片重新进行三角剖分;
例如三角形A-B-C,如果将边AB分割为AD和DB,重新三角剖分后得到三角面片A-D-C和D-B-C。
S305:采用重新剖分后的三角面片替换原三角面片,更新面片索引。
作为一种或多种实施例,对错位孔洞,采用对应的填充方法进行孔洞填充,其流程如图8所示,具体步骤包括:
S501:根据错位点与最近边的位置关系,将所有错位点对应的最近边首尾连接,得到错位线段集合;
S502:判断错位线段集合与错位点是否有公共点,如果有则执行S503,否则执行S504;
S503:将错位点与错位线段集合中的公共点合并为一个点,并将错位点与公共点临接的三角面片顶点索引更新为合并后的点索引;
S504:将错位线段集合的起始点投影到最近的边上,并对错位线段内的除起始点外的其他点进行最近边投影;
S505:合并错位点,将边界从错位点处分割开,根据缝隙孔洞的修复方法修复。
作为一种或多种实施例,对环形孔洞采用对应的修复方法进行孔洞修复,其流程如图9所示,具体步骤包括:
S701:采用最近距离点连接的方法对环形孔洞进行缝合,构造初始缝合面片,如图10所示,具体步骤为:
S7011:将环形孔洞的两条孔洞线调整为相同方向,相同方向是指在两孔洞线的最佳拟合平面上,孔洞线投影形成的多边形,均为顺时针或逆时针。
S7012:从点较少的一条孔洞线(L0)起点(如图10中P0)开始,计算该点在另一条孔洞线(L1)上的最近点Q0,连接P0和Q0。
S7013:查找L0的下一个点Q1在L1上的最近点,最近点为Q2,连接P1和Q2。
S7014:对P0-P1-Q2-Q0构成的区域进行三角划分,得到三角形P0Q1Q0、P0P1Q1、P1Q2Q1。
S7015:对L0上的点重复执行S7011-S7015,直到L0上所有点计算完毕。
S702:对缝合后的面片进行细化,使得缝合面片与原始模型光滑连接。细化的具体方法如下:
S7021:对面片面积大于指定面积的三角形面片,在三角形中心处取一点,将该点与三角形的三个顶点进行连线,从而将三角形面片分割为三个三角形面片;
S7022:对含有狭长边的三角形,采用边交换方法进行优化。
狭长边识别方法为:如果一条边连接的两个三角形,其中一个三角形在另一个三角形外接圆的内部,则该边为狭长边。
边交换方法为:交换两个相邻的三角形构成凸四边形的对角线,实现边交换,使得狭长三角性趋近正三角形。如图11所示。
S703:对细化后的网格模型,计算边界的法向信息;
S704:通过边界点的对应约束关系,即在保持缝合面片集合边界点的位置保持不变的前提下,将缝合面片集合的边界点法向作为变形源,将原始模型中对应点的法向作为变形目标,构建匹配约束,基于变分隐式曲面算法或薄板理论算法计算变形函数F,实现所有的约束条件;
将变形函数F应用到缝合面片集合的内部点X,得到一个变形后的点:
x=F(X);
使用变形后的点替换缝合面片集合中的对应点,完成缝合面片集合的变形,得到满足法向连续的网格,完成环形孔洞的填充。
作为一种或多种实施例,对简单孔洞,采用对应的修复方法进行孔洞修复,流程如图12所示,具体步骤包括:
S801:采用简单孔洞的边界点拟合平面。
点拟合平面算法为:根据点坐标以及点的重心,构造一个3*3的协方差矩阵C,使用Jacobi方法计算3*3协方差矩阵C的特征值和特征向量,特征值的存储顺序是从大到小,特征向量与特征值对应,取第一个特征向量作为x方向,最小特征值对应的特征向量作为面法向,右手法则构建局部坐标系。
S802:将孔洞点投影到S801中创建的平面上,并将平面上的投影点变换到S801中构建的局部坐标系下。
S803:在局部坐标系下,将孔洞边界点连接成的多边形,进行保持边界不变的Delaunay三角剖分,构建修复孔洞的三角形面片集合。
S804:基于变分隐式曲面算法或薄板理论等经典变形算法对S803中构建的修复孔洞的三角面片集合进行整体变形,使其满足位置连续、相切连续或曲率连续等指定的连续性条件。
该方法修复后的模型一方面保证修复后模型拓扑正确、填补孔洞区域曲率连续,另一方面保证修复后的模型最大程度的接近原始模型。
实施例二,本实施例还提供了3D打印的三角网格单孔洞分类识别与修复系统;
3D打印的三角网格单孔洞分类识别与修复系统,包括:
获取模块,其被配置为:获取3D打印的三角网格的单孔洞的基本信息;
分类识别模块,其被配置为:根据单孔洞的基本信息,对单孔洞进行识别并分类,获得缝隙孔洞、错位孔洞、环形孔洞或简单孔洞;
修复模块,其被配置为:根据单孔洞的分类,采用不同的修复算法进行修复。
实施例三,本实施例还提供了一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成方法中的各个操作,为了简洁,在此不再赘述。
所述电子设备可以是移动终端以及非移动终端,非移动终端包括台式计算机,移动终端包括智能手机(Smart Phone,如Android手机、IOS手机等)、智能眼镜、智能手表、智能手环、平板电脑、笔记本电脑、个人数字助理等可以进行无线通信的移动互联网设备。
应理解,在本公开中,该处理器可以是中央处理单元CPU,该处理器还算可以是其他通用处理器、数字信号处理器DSP、专用集成电路ASIC,现成可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本公开所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元即算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能的划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外一点,所显示或讨论的相互之间的耦合或者直接耦合或者通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (4)
1.3D打印的三角网格单孔洞分类识别与修复方法,其特征是,包括:
获取3D打印的三角网格的单孔洞的基本信息;
根据单孔洞的基本信息,对单孔洞进行识别并分类,获得缝隙孔洞、错位孔洞、环形孔洞或简单孔洞;
根据单孔洞的分类,针对每一类型单孔洞的特点,采用不同的修复算法进行修复;
对所有单孔洞,根据孔洞的几何形态,划分为缝隙孔洞、错位孔洞、环形孔洞以及简单孔洞,其分类识别的具体步骤为:
S201:判断构成单孔洞的边中的任意两条边,其夹角和累计夹角是否均小于设定的阈值;如果是,继续执行S202;如果否,继续执行S203;所述累计夹角,是指:从第一条边开始,计算所有夹角的和;
S202:输出为缝隙孔洞;
S203:判断单孔洞上的点与最近的边之间的距离是否小于设定距离;如果是,当前点为错位点,继续执行S204;如果否,继续执行S205;
S204:输出为错位孔洞;
S205:判断剩余部件数目是否小于2;如果是,继续执行S211;如果否,继续执行S206;所述部件是指单连通区域;
S206:计算每一个部件的边界;
S207:判断有边界的部件数目是否小于2;如果是,继续执行S211;如果否,继续执行S208;
S208:计算每一条边界在除当前边界所在部件以外的部件中的最近边界;
S209:判断是否存在互为最近边界的边界;如果是,继续执行S210;如果否,继续执行S211;边界L0的最近边界是L1,且L1的最近边界是L0,则认为L0、L1组成环形孔洞;
S210:输出为环形孔洞;
S211:输出为简单孔洞;
对缝隙孔洞,采用对应的填充方法进行孔洞填充,具体步骤包括:
S301:输入检测出的缝隙的边界点,计算缝隙所有线段的方向;
S302:计算S30中相邻的有向线段之间的夹角,查找夹角最大的两个点,作为缝隙的两个端点;
S303:将缝隙上的除两个端点外的其他点投影到两个端点连接的线段上,记录点投影的线段上的参数t;通过投影参数计算投影点所在的边;
S304:采用S303计算的边上的投影点,将该边分割为若干条线段,利用若干条线段将该边对应的三角面片重新进行三角剖分;
S305:采用重新剖分后的三角面片替换原三角面片,更新面片索引;
对错位孔洞,采用对应的填充方法进行孔洞填充,具体步骤包括:
S501:根据错位点与最近边的位置关系,将所有错位点对应的最近边首尾连接,得到错位线段集合;
S502:判断错位线段集合与错位点是否有公共点,如果有则执行S503,否则执行S504;
S503:将错位点与错误线段集合中的公共点合并为一个点,并将错位点与公共点临接的三角面片顶点索引更新为合并后的点索引;
S504:将错位线段集合的起始点投影到最近的边上,并对错位线段内的除起始点外的其他点进行最近边投影;
S505:合并错位点,将边界从错位点处分割开,根据缝隙孔洞的修复方法修复;
对环形孔洞采用对应的修复方法进行孔洞修复,具体步骤包括:
S701:采用最近距离点连接的方法对环形孔洞进行缝合,构造初始缝合面片;
S702:对缝合后的面片进行细化,使得缝合面片与原始模型光滑连接;
S703:对细化后的网格模型,计算边界的法向信息;
S704:通过边界点的对应约束关系,即在保持缝合面片集合边界点的位置保持不变的前提下,将缝合面片集合的边界点法向作为变形源,将原始模型中对应点的法向作为变形目标,构建匹配约束,基于变分隐式曲面算法或薄板理论算法计算变形函数F,实现所有的约束条件;
将变形函数F应用到缝合面片集合的内部点X,得到一个变形后的点:
x=F(X);
使用变形后的点替换缝合面片集合中的对应点,完成缝合面片集合的变形,得到满足法向连续的的网格,完成环形孔洞的填充;
所述S701具体步骤为:
S7011:将环形孔洞的两条孔洞线调整为相同方向,相同方向是指在两孔洞线的最佳拟合平面上,孔洞线投影形成的多边形,均为顺时针或逆时针;
S7012:从点较少的一条孔洞线L0起点P0开始,计算该点在另一条孔洞线L1上的最近点Q0,连接P0和Q0;
S7013:查找L0的下一个点Q1在L1上的最近点,最近点为Q2,连接P1和Q2;
S7014:对P0-P1-Q2-Q0构成的区域进行三角划分,得到三角形P0Q1Q0、P0P1Q1、P1Q2Q1;
S7015:对L0上的点重复执行S7011-S7015,直到L0上所有点计算完毕;
或者,
S702的具体步骤如下:
S7021:对面片面积大于指定面积的三角形面片,在三角形中心处取一点,将该点与三角形的三个顶点进行连线,从而将三角形面片分割为三个三角形面片;
S7022:对含有狭长边的三角形,采用边交换方法进行优化;
狭长边识别方法为:如果一条边连接的两个三角形,其中一个三角形在另一个三角形外接圆的内部,则该边为狭长边;
边交换方法为:交换两个相邻的三角形构成凸四边形的对角线,实现边交换,使得狭长三角性趋近正三角形;
对简单孔洞,采用对应的修复方法进行孔洞修复,具体步骤包括:
S801:采用简单孔洞的边界点拟合平面;
点拟合平面算法为:根据点坐标以及点的重心,构造一个3*3的协方差矩阵C,使用Jacobi方法计算3*3协方差矩阵C的特征值和特征向量,特征值的存储顺序是从大到小,特征向量与特征值对应,取第一个特征向量作为x方向,最小特征值对应的特征向量作为面法向,右手法则构建局部坐标系;
S802:将孔洞点投影到S801中创建的平面上,并将平面上的投影点变换到S801中构建的局部坐标系下;
S803:在局部坐标系下,将孔洞边界点连接成的多边形,进行保持边界不变的Delaunay三角剖分,构建修复孔洞的三角形面片集合;
S804:基于变分隐式曲面算法对S803中构建的修复孔洞的三角面片集合进行整体变形,使其满足位置连续、相切连续或曲率连续等指定的连续性条件。
2.3D打印的三角网格单孔洞分类识别与修复系统,其特征是,包括:
获取模块,其被配置为:获取3D打印的三角网格的单孔洞的基本信息;
分类识别模块,其被配置为:根据单孔洞的基本信息,对单孔洞进行识别并分类,获得缝隙孔洞、错位孔洞、环形孔洞或简单孔洞;
修复模块,其被配置为:根据单孔洞的分类,针对每一类型单孔洞的特点,采用不同的修复算法进行修复;
对所有单孔洞,根据孔洞的几何形态,划分为缝隙孔洞、错位孔洞、环形孔洞以及简单孔洞,其分类识别的具体步骤为:
S201:判断构成单孔洞的边中的任意两条边,其夹角和累计夹角是否均小于设定的阈值;如果是,继续执行S202;如果否,继续执行S203;所述累计夹角,是指:从第一条边开始,计算所有夹角的和;
S202:输出为缝隙孔洞;
S203:判断单孔洞上的点与最近的边之间的距离是否小于设定距离;如果是,当前点为错位点,继续执行S204;如果否,继续执行S205;
S204:输出为错位孔洞;
S205:判断剩余部件数目是否小于2;如果是,继续执行S211;如果否,继续执行S206;所述部件是指单连通区域;
S206:计算每一个部件的边界;
S207:判断有边界的部件数目是否小于2;如果是,继续执行S211;如果否,继续执行S208;
S208:计算每一条边界在除当前边界所在部件以外的部件中的最近边界;
S209:判断是否存在互为最近边界的边界;如果是,继续执行S210;如果否,继续执行S211;边界L0的最近边界是L1,且L1的最近边界是L0,则认为L0、L1组成环形孔洞;
S210:输出为环形孔洞;
S211:输出为简单孔洞;
对缝隙孔洞,采用对应的填充方法进行孔洞填充,具体步骤包括:
S301:输入检测出的缝隙的边界点,计算缝隙所有线段的方向;
S302:计算S30中相邻的有向线段之间的夹角,查找夹角最大的两个点,作为缝隙的两个端点;
S303:将缝隙上的除两个端点外的其他点投影到两个端点连接的线段上,记录点投影的线段上的参数t;通过投影参数计算投影点所在的边;
S304:采用S303计算的边上的投影点,将该边分割为若干条线段,利用若干条线段将该边对应的三角面片重新进行三角剖分;
S305:采用重新剖分后的三角面片替换原三角面片,更新面片索引;
对错位孔洞,采用对应的填充方法进行孔洞填充,具体步骤包括:
S501:根据错位点与最近边的位置关系,将所有错位点对应的最近边首尾连接,得到错位线段集合;
S502:判断错位线段集合与错位点是否有公共点,如果有则执行S503,否则执行S504;
S503:将错位点与错误线段集合中的公共点合并为一个点,并将错位点与公共点临接的三角面片顶点索引更新为合并后的点索引;
S504:将错位线段集合的起始点投影到最近的边上,并对错位线段内的除起始点外的其他点进行最近边投影;
S505:合并错位点,将边界从错位点处分割开,根据缝隙孔洞的修复方法修复;
对环形孔洞采用对应的修复方法进行孔洞修复,具体步骤包括:
S701:采用最近距离点连接的方法对环形孔洞进行缝合,构造初始缝合面片;
S702:对缝合后的面片进行细化,使得缝合面片与原始模型光滑连接;
S703:对细化后的网格模型,计算边界的法向信息;
S704:通过边界点的对应约束关系,即在保持缝合面片集合边界点的位置保持不变的前提下,将缝合面片集合的边界点法向作为变形源,将原始模型中对应点的法向作为变形目标,构建匹配约束,基于变分隐式曲面算法或薄板理论算法计算变形函数F,实现所有的约束条件;
将变形函数F应用到缝合面片集合的内部点X,得到一个变形后的点:
x=F(X);
使用变形后的点替换缝合面片集合中的对应点,完成缝合面片集合的变形,得到满足法向连续的的网格,完成环形孔洞的填充;
所述S701具体步骤为:
S7011:将环形孔洞的两条孔洞线调整为相同方向,相同方向是指在两孔洞线的最佳拟合平面上,孔洞线投影形成的多边形,均为顺时针或逆时针;
S7012:从点较少的一条孔洞线L0起点P0开始,计算该点在另一条孔洞线L1上的最近点Q0,连接P0和Q0;
S7013:查找L0的下一个点Q1在L1上的最近点,最近点为Q2,连接P1和Q2;
S7014:对P0-P1-Q2-Q0构成的区域进行三角划分,得到三角形P0Q1Q0、P0P1Q1、P1Q2Q1;
S7015:对L0上的点重复执行S7011-S7015,直到L0上所有点计算完毕;
或者,
S702的具体步骤如下:
S7021:对面片面积大于指定面积的三角形面片,在三角形中心处取一点,将该点与三角形的三个顶点进行连线,从而将三角形面片分割为三个三角形面片;
S7022:对含有狭长边的三角形,采用边交换方法进行优化;
狭长边识别方法为:如果一条边连接的两个三角形,其中一个三角形在另一个三角形外接圆的内部,则该边为狭长边;
边交换方法为:交换两个相邻的三角形构成凸四边形的对角线,实现边交换,使得狭长三角性趋近正三角形;
对简单孔洞,采用对应的修复方法进行孔洞修复,具体步骤包括:
S801:采用简单孔洞的边界点拟合平面;
点拟合平面算法为:根据点坐标以及点的重心,构造一个3*3的协方差矩阵C,使用Jacobi方法计算3*3协方差矩阵C的特征值和特征向量,特征值的存储顺序是从大到小,特征向量与特征值对应,取第一个特征向量作为x方向,最小特征值对应的特征向量作为面法向,右手法则构建局部坐标系;
S802:将孔洞点投影到S801中创建的平面上,并将平面上的投影点变换到S801中构建的局部坐标系下;
S803:在局部坐标系下,将孔洞边界点连接成的多边形,进行保持边界不变的Delaunay三角剖分,构建修复孔洞的三角形面片集合;
S804:基于变分隐式曲面算法对S803中构建的修复孔洞的三角面片集合进行整体变形,使其满足位置连续、相切连续或曲率连续等指定的连续性条件。
3.一种电子设备,其特征是,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成权利要求1方法所述的步骤。
4.一种计算机可读存储介质,其特征是,用于存储计算机指令,所述计算机指令被处理器执行时,完成权利要求1方法所述的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910681062.6A CN110543819B (zh) | 2019-07-26 | 2019-07-26 | 3d打印的三角网格单孔洞分类识别与修复方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910681062.6A CN110543819B (zh) | 2019-07-26 | 2019-07-26 | 3d打印的三角网格单孔洞分类识别与修复方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110543819A CN110543819A (zh) | 2019-12-06 |
CN110543819B true CN110543819B (zh) | 2020-05-19 |
Family
ID=68710299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910681062.6A Active CN110543819B (zh) | 2019-07-26 | 2019-07-26 | 3d打印的三角网格单孔洞分类识别与修复方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110543819B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113059162B (zh) * | 2021-04-08 | 2023-04-11 | 重庆大学 | 复杂曲面零件缺陷修复方法 |
CN117292373B (zh) * | 2023-09-22 | 2024-06-04 | 雅客智慧(北京)科技有限公司 | 三维模型的通道识别方法、装置、电子设备及存储介质 |
CN117876631B (zh) * | 2024-03-12 | 2024-05-28 | 北京适创科技有限公司 | 一种基于三角形网格模型的破面处理方法和相关装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104504663B (zh) * | 2014-12-29 | 2018-05-01 | 佛山市诺威科技有限公司 | 一种义齿三角网格模型孔洞的迭代修补方法 |
CN108629833A (zh) * | 2018-05-07 | 2018-10-09 | 四川省有色冶金研究院有限公司 | 一种3d打印模型的结构优化方法 |
CN109410334A (zh) * | 2018-09-21 | 2019-03-01 | 桂林电子科技大学 | 一种基于特征线的三维网格模型缺陷孔洞修复方法 |
-
2019
- 2019-07-26 CN CN201910681062.6A patent/CN110543819B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110543819A (zh) | 2019-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110543819B (zh) | 3d打印的三角网格单孔洞分类识别与修复方法及系统 | |
US9619587B2 (en) | Decomposition of 3D geometry into developable surface patches and 2D cut patterns | |
US10997796B2 (en) | Identification and redesign of critical thin segments below 3D printer resolution | |
CN110544255B (zh) | 面向3d打印的三角网格孔洞的分割方法及系统 | |
Wang et al. | Enhanced remeshing from STL files with applications to surface grid generation | |
WO2020191731A1 (zh) | 点云生成方法、系统和计算机存储介质 | |
CN112017232A (zh) | 图像内圆形图案的定位方法、装置及设备 | |
CN104851133A (zh) | 一种图像自适应网格生成变分方法 | |
Reberol et al. | Quasi-structured quadrilateral meshing in Gmsh--a robust pipeline for complex CAD models | |
CN116721230A (zh) | 一种三维实景模型的构建方法、装置、设备及存储介质 | |
Xu et al. | Machining feature recognition from in-process model of NC simulation | |
US9977993B2 (en) | System and method for constructing a statistical shape model | |
CN113792458B (zh) | 一种有限元三角形网格的优化方法及装置 | |
Luo et al. | Construction of near optimal meshes for 3D curved domains with thin sections and singularities for p-version method | |
US11763526B2 (en) | Multizone quadrilateral mesh generator for high mesh quality and isotropy | |
Gosselin et al. | Tetrahedral mesh generation using Delaunay refinement with non‐standard quality measures | |
CN115937460A (zh) | 基于最优传输的保特征表面重建方法 | |
WO2013116859A1 (en) | Computer process for determining best-fitting materials for constructing architectural surfaces | |
Rypl et al. | Triangulation of 3D surfaces reconstructed by interpolating subdivision | |
US20200074727A1 (en) | Generating 3D Models | |
Zhang et al. | Quad meshing with coarse layouts for planar domains | |
US8056026B2 (en) | Determining manufacturability of lithographic mask by selecting target edge pairs used in determining a manufacturing penalty of the lithographic mask | |
CN118070434B (zh) | 一种汽车零部件的工艺信息模型构建方法及系统 | |
US11092948B1 (en) | Systems and methods of determining a difference of position between a malleable object and a target shape | |
CN115719403B (zh) | 构建刀具轨迹的方法和装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |