CN118070548A - 一种基于stl模型虚拟铣削的方法 - Google Patents
一种基于stl模型虚拟铣削的方法 Download PDFInfo
- Publication number
- CN118070548A CN118070548A CN202410360896.8A CN202410360896A CN118070548A CN 118070548 A CN118070548 A CN 118070548A CN 202410360896 A CN202410360896 A CN 202410360896A CN 118070548 A CN118070548 A CN 118070548A
- Authority
- CN
- China
- Prior art keywords
- intersecting
- milling cutter
- stl model
- milling
- triangle
- 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.)
- Pending
Links
- 238000003801 milling Methods 0.000 claims abstract description 40
- 238000000034 method Methods 0.000 claims abstract description 33
- 239000000463 material Substances 0.000 claims abstract description 5
- 239000013598 vector Substances 0.000 claims description 20
- 238000001514 detection method Methods 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 claims description 3
- 238000012360 testing method Methods 0.000 abstract description 5
- 238000004519 manufacturing process Methods 0.000 abstract description 4
- 238000005094 computer simulation Methods 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 description 5
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000010146 3D printing Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000003754 machining Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Operations Research (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
虚拟铣削是一项广泛应用于制造业的计算机模拟技术,旨在模拟和分析铣削加工过程,以增强工艺规划并优化铣削操作。为了实现虚拟铣削中材料去除的动态过程,本发明提出了一种基于STL模型的虚拟铣削方法。首先通过STL模型中三角面片相交测试得到交线段,并利用这些交线段构造交线链和交线环。然后根据交线链和交线环,将相交三角形分割为互不重叠的封闭区域。随后确定STL模型被交线分割的各个区域与另一个STL模型之间的位置关系。最后通过布尔运算确定需要保留和生成的区域,并对这些区域三角化,最终这些三角面片构成一个新的STL模型。
Description
技术领域
本发明属于虚拟铣削的技术领域。具体为一种基于STL模型虚拟铣削的方法。
背景技术
随着全球经济的发展以及市场的竞争的日益激烈,制造企业必须降低生产成本,提供高质量的产品。为增强企业的竞争力,虚拟制造技术应运而生并得到迅速发展。虚拟制造以信息技术、仿真技术以及虚拟铣削技术等技术为基础,构造一个虚拟世界,并在此模拟产品设计、制造记忆装配的全过程。虚拟铣削技术在计算机上模拟真实铣削加工过程,不占用机床设备也不消耗真实材料,是经济有效的验证方法。
在本发明中,虚拟铣削是通过两个STL模型之间的连续布尔运算实现的。具体来说,使用STL模型表示工件和刀具扫描体,通过两个STL模型之间的布尔求差运算来实现铣削过程的动态仿真。STL模型是目前应用最为广泛的三维实体的边界表示方法,STL模型使用多个空间三角面片表达三维实体的表面信息,每个三角面片用三角形的三个顶点和指向外部的法向量表示。STL模型具有格式简单、跨平台性良好等优点,广泛应用于3D打印、快速成形、数控加工、虚拟制造等领域。
发明内容
为了实现虚拟制造中材料去除的动态过程,本发明提供一种基于STL模型虚拟铣削的方法。该方法首先通过三角面片的相交测试得到交线段,并以此来构造交线链和交线环。然后根据交线链和交线环将相交三角形分割为互不重叠的封闭区域。接着确定STL模型被交线分割的各个区域相对于另一个STL模型的位置关系。最后通过布尔运算确定需要保留的区域,并对保留区域三角化,最终这些三角面片构成一个新的STL模型。
本发明为了实现上述目的,本发明采用的技术方案是:一种基于STL模型的虚拟铣削方法,采用以下步骤:
步骤1:根据铣刀类型和铣刀参数确定铣刀轮廓线,同时根据包络理论生成铣刀扫描体的STL模型。根据加工工件几何参数,生成工件STL模型。
步骤2:将步骤一中建立的铣刀扫描体和工件的STL模型进行相交检测。铣刀铣削工件的过程,在两个STL模型中体现为铣刀扫描体与工件模型相交。通过两个STL模型的相交检测,找出构成STL模型中所相交的三角面片。
步骤3:通过步骤二中的相交三角面片求出相交线段。将相交线段连接即为铣刀扫描体与工件模型的相交交线。
步骤4:将交线段组成交线链和交线环。
步骤5:通过步骤4中交线链和交线环将相交三角形分割为不同区域。相交三角面片中,有的区域与铣刀扫描体重叠,删除该重叠区域,实现铣削过程材料去除的动态过程。
步骤6:判断步骤5中分割出的区域相对于另一个STL模型的位置关系。
步骤7:判断非相交三角面片相对于另一个STL模型的位置关系。加工工件中未加工区域在铣刀扫描体外部;已加工区域在铣刀扫描体内部。
步骤8:确定加工工件中需要保留和生成的区域。通过布尔运算,删除已加工区域;保留未加工区域;生成铣刀铣削工件内部区域,该区域通过计算铣刀几何特征得出,法向量与在刀具STL模型中相反。
步骤9:将步骤8中生成的区域和相交三角形中保留的区域三角化。
步骤10:将步骤9中三角化生成的三角形和步骤8中,非相交三角形存入List(T)中,确定每个三角形的顶点和法向量,最终形成铣削后的STL模型。
本发明的有益效果:该方法是基于刀具扫描体和工件这两个STL模型,首先通过三角面片的相交测试得到交线段,并以此来构造交线链和交线环。然后根据交线链和交线环将相交三角形分割为互不重叠的封闭区域。接着确定STL模型被交线分割的各个区域相对于另一个STL模型的位置关系。最后通过布尔运算确定需要保留和生成的区域,并对这些区域三角化,最终这些三角面片构成一个新的STL模型。
附图说明:
图1是本发明方法实施例中分割相交三角形的边点追踪准则;
图2是本发明方法实施例中将保留区域分割为多个凸边形方法;
图3是本发明方法实施例中将凸边形三角化方法;
图4是本发明方法实施例中将插入点插入原三角化三角形中;
图5是本发明方法实施例中Delaunay三角剖分算法边翻转方法;
图6是本发明方法实施例中带内孔多边形的Delaunay三角剖分。
图7是本发明方法实施例中平底铣刀虚拟铣削过程。
具体实施方式:
下面结合具体实例描述本发明:
本实例中的STL模型虚拟铣削方法,采用以下步骤:
步骤1:生成刀具扫描体和待加工工件这两个STL模型。
步骤2:将步骤一中建立的STL模型进行三角面片相交检测。通过两个三角面片相交检测求出相交交线,将所有相交三角面片求出,通过计算求出两实体相交交线。
步骤2.1:用TA、TB表示两个三角面片,它们所在的平面分别为πA、πB。
若三角面片TA与平面πB相交,则两相交平面交线l方向向量为:
其中分别为πA、πB的法向量。
在平面πA内作直线l1,直线l1与三角面片顶点P=(xP,yP,zP)相交,且垂直于直线l,垂足为C点,直线l1的方向向量为:
直线l1的方程为:
其中t为常数;
平面πB的法向量其平面方程为:
πB:A2x+B2y+C2z+D=0
将直线l1方程代入πB平面方程,计算得出:
根据tc即可求出C点坐标,进而求出平面πA与平面πB相交直线l。分别在同一平面内判断三角面片TA与直线l、三角面片TB与直线l是否有交线段,若有分别求出交线段继续判断线段/>与线段/>是否存在重合线段,若有,则三角面片TA与三角面片TB相交,该重合线段即为相交线段;否则两三角面片不相交。
步骤2.2:通过步骤2.1求出相交三角形上所有交线段之后,根据交线段与所在三角形相交点数量不同,把交线段分为三种类型:两端相交、一端相交、两端远离。
步骤2.3:根据相交线段不同类型,分别提取出交线链和交线环。首先提取由两条一端相交的交线段组成交线链;其次提取由多条两端远离和两条一端相交的交线段组成交线链;最后提取多条两端远离交线段组成交线环。
步骤3:根据步骤2.3的交线链和交线环把相交三角形分割成不同区域。根据追踪点为边点的追踪准则,把相交三角形分割为多个独立区域。
步骤3.1:如图1所示。三角形边点表为A→D→B→E→H→C→G→A,得到的向量方向作为判断方向。目前可追踪线段为/>由于E点为多个交线链的公共端点和边点,所以需要根据追踪准则确定下一追踪方向。当前/>为进入边,出边有通过/>分别与向量/>叉乘得到向量方向与的方向比较得出,/>不可能为正确追踪方向,边/>与边/>分别形成∠DEF、∠DEG、∠DEH,形成最小角的边EF即为正确追踪方向。
步骤4:判断步骤3分割出的独立区域和非相交三角形,与另一个实体的相对位置关系。相对位置关系分为外部(out)、内部(in)、边界(on)。判断实体A上的三角面片或者三角面片的某个区域,与实体B的位置关系,可在区域内选择一点,实体A与实体B的交点除外。若该点位于实体B的外部,则该区域位于实体B外部;反之,位于实体B内部。判断点与实体的位置关系,可采用射线法检测。判断q点与实体P的位置关系方法如下:
步骤4.1:以q点为起点,选取测试线段线段方向指向待测实体中的三角面片Ti重心,为保证线段穿过待测实体,线段长度设为实体对角线长度2倍。
步骤4.2:令交点计数器c=0,组成实体P三角面片Ti,i表示三角形序号,初始值i=0。
步骤4.3:判断线段与三角面片Ti是否相交,若不相交,则令i=i+1,并重复执行步骤4.3;若相交,执行步骤4.4。
步骤4.4:线段与三角面片Ti进行相交测试。
Case1:若线段穿过三角面片顶点、与三角面片边共线或者与面共面,则需要重新选择射线,即执行步骤4.1。
Case2:若线段端点与三角面片顶点重合、位于三角面片边的内部或者位于三角面片的内部,则表示q点位于实体P边界上(r点位于实体P外部),程序结束。
Case3:若线段交于三角面片内部,则令c=c+1,i=i+1,判断实体P中其他面与线段相交关系。执行步骤4.3。
步骤4.5:重复执行步骤4.3-步骤4.4,直到所有三角面片都完成测试(Case2中程序结束除外)。
步骤4.6:若c为奇数,则表示q点位于实体内部;反之位于实体外部。
步骤5:实体A和实体B的STL模型通过以上步骤,实体A中分割区域都完全位于实体B的内部、外部或者边界上,反之亦然。将实体A作为加工工件,实体B作为刀具扫描体。虚拟铣削生成新实体的过程,即为两实体布尔求差运算A-B。A-B组成新STL实体的区域有:
(1)实体A上位置类型为out的非相交三角形,以及相交三角形中位置类型为out区域。
(2)实体B上位置类型为in的非相交三角形,以及相交三角形中位置类型为in区域,需要将这些区域的法向量反向。
(3)实体A上位置类型为on的非相交三角形,以及相交三角形中位置类型为on区域。这些区域只保留一部分,保留条件为:三角面片的法向量与实体B上与其共面重叠的三角面片的法向量方向相反。
步骤6:通过步骤5布尔运算确定需要保留的区域,对需要保留的区域进行三角化。每个区域三角化的过程需要将多边形的顶点坐标转变为二维坐标。为提高计算精准度,选择三角面片法向量的三个分量中绝对值最大的方向作为投影方向,将顶点投影到二维平面上。
步骤6.1:对保留区域内无内孔多边形的区域三角化。如图2所示,通过向量法将保留区域分割为多个凸边形。如图3所示,选择凸边形的一个顶点作为参照点,把该顶点和剩余每个顶点依次连接起来得到的对角线即可完成三角化。需要注意的是每个三角形的法向量指向外侧。
步骤6.2:对保留区域内有内孔多边形的区域三角化。使用而二维约束Delaunay三角剖分算法,将带有内孔多边形的区域三角化。将带有内孔多边形的三角形记为ΔABC,对该三角形所保留区域进行三角化。ΔABC各边称为固定边,不需要进行边翻转操作。
步骤6.2.1:将内孔多边形顶点按顺序依次插入ΔABC中,找到插入点Pr所在的三角形ΔPiPjPk。新建一个后进先出的堆栈Stack(E)。List(T)为插入点Pr之前的Delaunay三角剖分得到的三角形的集合。
步骤6.2.2:将Pr与ΔPiPjPk顶点连接起来,如图4所示。将ΔPiPjPk从List(T)删除,将三条边存入Stack(E)。
步骤6.2.3:从堆栈Stack(E)中取出一条边(设为),如图5所示。判断/>是否为固定边,若是,则将ΔPuPvPr存入List(T)。若不是,则判断/>是否为合法边。若是,则将ΔPuPvPr存入List(T)。若不是,ΔPuPvPw与ΔPuPvPr为共享边/>的相邻三角形,对边/>进行边翻转操作,将其替换为边/>同时再将/>和/>存入Stack(E)。
步骤6.2.4:重复步骤6.2.3直到堆栈Stack(E)为空。
步骤6.2.5:重复步骤6.2.1-步骤6.2.4,直到将内孔多边形所有顶点插入。
步骤6.2.6:将List(T)三角形集合中,删除由内孔多边形三个顶点构成的三角形。
含有内孔多边形的区域三角化运算结果如图6所示。
步骤7:将步骤6区域三角化后的三角形存入List(AllT)中,确定每个三角形顶点坐标和法向量,最终形成铣削后的STL实体模型。如图7所示为平底铣刀虚拟铣削过程。
Claims (4)
1.一种基于STL模型的虚拟铣削方法,采用以下步骤:
步骤1:根据铣刀类型和铣刀参数确定铣刀轮廓线,同时根据包络理论生成铣刀扫描体的STL模型。根据加工工件几何参数,生成工件STL模型。
步骤2:将步骤一中建立的铣刀扫描体和工件的STL模型进行相交检测。铣刀铣削工件的过程,在两个STL模型中体现为铣刀扫描体与工件模型相交。通过两个STL模型的相交检测,找出构成STL模型中所相交的三角面片。
步骤3:通过步骤二中的相交三角面片求出相交线段。将相交线段连接即为铣刀扫描体与工件模型的相交交线。
步骤4:将交线段组成交线链和交线环。
步骤5:通过步骤4中交线链和交线环将相交三角形分割为不同区域。相交三角面片中,有的区域与铣刀扫描体重叠,删除该重叠区域,实现铣削过程材料去除的动态过程。
步骤6:判断步骤5中分割出的区域相对于另一个STL模型的位置关系。
步骤7:判断非相交三角面片相对于另一个STL模型的位置关系。加工工件中未加工区域在铣刀扫描体外部;已加工区域在铣刀扫描体内部。
步骤8:确定加工工件中需要保留和生成的区域。通过布尔运算,删除已加工区域;保留未加工区域;生成铣刀铣削工件内部区域,该区域通过计算铣刀几何特征得出,法向量与在刀具STL模型中相反。
步骤9:将步骤8中生成的区域和相交三角形中保留的区域三角化。
步骤10:将步骤9中三角化生成的三角形和步骤8中非相交三角形存入List(T)中,确定每个三角形的顶点和法向量,最终形成铣削后的STL模型。
2.根据权利要求1所述的三角面片中的交线链和交线环,其特征在于:铣削过程中铣刀连续运动,交线链和交线环不可能同时存在一个相交三角形中,同一三角形中可同时存在多个交线链。
3.根据权利要求1所述的保留未加工区域,其特征在于:未加工区域包括在铣刀扫描体外部的非相交三角形和相交三角形中在铣刀扫描体的外部区域。
4.根据权利要求1所述的区域三角化,其特征在于:对无内孔多边形的区域三角化,通过向量法将区域分割为多个凸边形,对分割形成的多个凸边形三角化,选择凸边形的一个顶点作为参照点,把该顶点和剩余每个顶点依次连接起来得到的对角线即可完成三角化。对有内孔多边形的区域三角化,使用二维约束Delaunay三角剖分算法,将带有内孔多边形的区域三角化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410360896.8A CN118070548A (zh) | 2024-03-27 | 2024-03-27 | 一种基于stl模型虚拟铣削的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410360896.8A CN118070548A (zh) | 2024-03-27 | 2024-03-27 | 一种基于stl模型虚拟铣削的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118070548A true CN118070548A (zh) | 2024-05-24 |
Family
ID=91101976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410360896.8A Pending CN118070548A (zh) | 2024-03-27 | 2024-03-27 | 一种基于stl模型虚拟铣削的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118070548A (zh) |
-
2024
- 2024-03-27 CN CN202410360896.8A patent/CN118070548A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113348459B (zh) | 将网格几何结构转换为水密边界表示的方法、系统及介质 | |
EP1710720B1 (en) | Method of computer-aided design of a modeled object having several faces | |
Woo et al. | A new segmentation method for point cloud data | |
Jun et al. | A new curve-based approach to polyhedral machining | |
OuYang et al. | On the normal vector estimation for point cloud data from smooth surfaces | |
CN103617603B (zh) | 一种三维数字几何网格模型结构的自动修复方法 | |
US8175734B2 (en) | Methods and system for enabling printing three-dimensional object models | |
Feito et al. | Fast and accurate evaluation of regularized Boolean operations on triangulated solids | |
US7372460B2 (en) | Method and program for generating volume data from boundary representation data | |
Kim | Tool path generation for contour parallel milling with incomplete mesh model | |
US20120206457A1 (en) | Methods and Systems for Generating Continuous Surfaces from Polygonal Data | |
CN111932669A (zh) | 一种基于边坡岩体特征对象的变形监测方法 | |
CN107680154A (zh) | 基于视图的体素几何参数提取方法 | |
Chuang et al. | A new approach to z-level contour machining of triangulated surface models using fillet endmills | |
Chuang et al. | A reverse engineering approach to generating interference-free tool paths in three-axis machining from scanned data of physical models | |
CN106814699A (zh) | 一种五轴增材几何仿真方法 | |
Liu et al. | Toolpath generation for partition machining of T-spline surface based on local refinement | |
WO2006097926A2 (en) | Methods and systems for creating and altering cad models | |
US7333104B2 (en) | Method and program of converting three-dimensional shape data into cell internal data | |
Ko et al. | Shape intrinsic properties for free-form object matching | |
CN112381950A (zh) | 一种网格孔洞修补方法、电子设备和计算机可读存储介质 | |
KR102575356B1 (ko) | 금형 수정가공의 단차 최소화 방법 및 이를 이용한 금형 수정가공 시스템 | |
CN107610229A (zh) | 基于启发式包络侵蚀的三维建筑物模型自动修复方法 | |
CN118070548A (zh) | 一种基于stl模型虚拟铣削的方法 | |
Lu et al. | Robust and fast CAD model tessellation for inspection |
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 |