CN105740497B - 对工件的加工进行仿真 - Google Patents
对工件的加工进行仿真 Download PDFInfo
- Publication number
- CN105740497B CN105740497B CN201511024992.2A CN201511024992A CN105740497B CN 105740497 B CN105740497 B CN 105740497B CN 201511024992 A CN201511024992 A CN 201511024992A CN 105740497 B CN105740497 B CN 105740497B
- Authority
- CN
- China
- Prior art keywords
- depth
- line
- intersection
- workpiece
- volume
- 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
Images
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
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/406—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
- G05B19/4069—Simulating machining process on screen
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/4097—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by using design data to control NC machines, e.g. CAD/CAM
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/35—Nc in input of data, input till input file format
- G05B2219/35346—VMMC: virtual machining measuring cell simulate machining process with modeled errors, error prediction
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40091—Tele-programming by graphical simulation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/80—Technologies aiming to reduce greenhouse gasses emissions common to all road transportation technologies
- Y02T10/82—Elements for improving aerodynamics
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Human Computer Interaction (AREA)
- Automation & Control Theory (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Numerical Control (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Processing Or Creating Images (AREA)
Abstract
提供了一种用于对利用切削工具的工件的加工进行仿真的计算机实现方法,所述切削工具具有至少一个切削部分和至少一个非切削部分。所述方法包括:提供(S10)表示工件的深度元素的集合,切削工具的轨迹,以及每一个都表示切削工具的相应的切削部分或者非切削部分的网格的集合并且随后,方法包括针对每个深度元素,针对每个网格计算(S20)描述时间(h,t)图的所有折线的末端点;以及基于所有折线的集合的下包络,沿深度元素来对切削工具与工件之间的冲突进行测试(S30)。这样的方法改进了对工件的加工的仿真。
Description
技术领域
本发明涉及计算机程序和系统领域,并且更具体地,涉及用于对工件的加工进行仿真的方法、系统和程序。
背景技术
市场上提供了大量的用于对象的设计、工程和制造的系统和程序。CAD是计算机辅助设计的首字母缩略词,例如,其与用于设计对象的软件解决方案有关。CAE是计算机辅助工程设计的首字母缩略词,例如,其与用于对未来产品的物理行为进行仿真的软件解决方案有关。CAM是计算机辅助制造的首字母缩略词,例如,其与用于定义制造过程和操作的软件解决方案有关。在这样的计算机辅助设计系统中,图形化用户界面在如技术效率的方面起着重要的作用。这些技术可以嵌入在产品生命周期管理(PLM)系统内。PLM指的是商业策略,其帮助公司在扩展公司的概念上针对产品从概念到生命终点的开发而共享产品数据、应用通用过程、以及生命施加公司知识。。
由DASSAULT SYSTEMES(商标CATIA、ENOVIA和DELMIA下)提供的PLM解决方案提供了对产品工程知识进行组织的工程中心、对制造工程知识进行管理的制造中心以及使得企业能够整合并且连接到与工程中心和制造中心两者的企业中心。该系统作为整体交付了开放对象模型,所述开放对象模型链接产品、过程、资源,以使得能够进行动态的、基于知识的产品创造以及驱动优化的产品定义、制造准备、生产和服务的决策支持。
这些系统中的一些允许利用深度元素的集合的建模体积的表示。多篇文章或专利文献特别提出了将深度元素表示用于加工仿真或交互式造型(sculpting)。
这样的文献的示例是:
-Computer-Aided Design and Applications,2009中,Xiaobo Peng和WeihanZhang的名为“A Virtual Sculpting System Based on Triple Dexel Models withHaptics”的论文;
-Proceedings of the 21st annual conference on Computer graphics andinteractive techniques,1994中,Yunching Huang和James H.Oliver的名为“NC MillingError Assessment and Tool Path Correction”的论文;
-SM'03Proceedings of the eighth ACM symposium on Solid modeling andapplications中,Heinrich Muller、Tobias Surmann、Marc Stautner、Frank Albersmann、Klaus Weinert的名为“Online Sculpting and Visualization of Multi-DexelVolumes”的论文;
-Virtual and Physical Prototyping,2006中,Yongfu Ren、Susana K.Lai-Yuen以及Yuan-Shin Lee的名为“Virtual prototyping and manufacturing planning byusing tri-dexel models and haptic force feedback”的论文;
-The International Journal of Advanced Manufacturing Technology,1995中,Sabine Stifter的名为“Simulation of NC machining based on the dexel model:Acritical analysis”的论文;
-Computer Graphics International,1998.Proceedings中,Konig,A.H.和Groller,E.的名为“Real time simulation and visualization of NC millingprocesses for inhomogeneous materials on low-end graphics hardware”的论文;
-美国专利No.5,710,709;以及
-美国专利No.7,747,418。
GPGPU(图形处理单元上的通用计算)是使用图形处理单元(GPU)的技术,所述图形处理单元通常仅处理计算机图形的计算,以执行传统上由中央处理单元(CPU)处理的应用程序中的计算。一些论文考虑将现代图形处理单元(GPU)的计算能力用于深度元素表示。这些论文使用了与特定的存储模型相关联的LDNI(分层的标准深度图像)算法。
这样的论文的示例是:
-CCP:94:Proceedings Of The Seventh International Conference OnEngineering Computational Technology中,B.Tukora和T.Szalay的名为“GPGPU-basedMaterial Removal Simulation and Cutting Force Estimation”的论文;
-Proceedings of ASME international design engineering technicalconferences.Brooklyn(NY)中,Charlie C.L.Wang和Yong Chen的名为“Layered Depth-Normal Images:a Sparse Implicit Representation of Solid Models”的论文。
一般而言,用于冲突检测的算法可以描述例如n个移动体情况下的冲突。对于多边形表示而言,很多冲突检测方法基于诸如二元空间划分(Binary Space Partition)或定向边界体(oriented bounding volume)等传统的的几何对象。存在用于由CSG表示的固体的多个算法。CSG结构描述作为简单图元上执行的一系列布尔运算的结果的3D封闭实体。最后,可以通过参数方程或隐式方程来表示固体。这些表示已经产生了很多用于测试表面之间的相交,由此来检测冲突的算法。可以将这些方案归为几组,例如,分析方法、网格方法、追踪方法、隐式方程。
论文的示例是:
-Proc.of IMA Conference on Mathematics of Surfaces,1998中,Lin,M.和Gottschalk,S.的“Collision detection between geometric models:A survey”;
-Journal of Huazhong University of Science and Technology中,ZhangQin、Huang Kun、Li Guangming的“Improvement of collision-detection algorithmbased on OBB”;
-Proceedings Eurographics workshop on animation and simulation,1991中,W.Bouma和G.Vanecek的“Collision detection and analysis in a physicallybased simulation”;
-Computers in Industry,Volume 40,Issue 1,September 1999,Pages 1–13中,Chuan-Jun Sub、Fuhua Lina、和LanYeb的“A new collision detection method for CSG-represented objects in virtual manufacturing”;以及
-“Geometric and Solid Modeling”;C.M.Hoffmann,Morgan Kaufmann,SanMateo,California,1989
然而,用于NC仿真的冲突检测是特殊的。加工仿真的特殊性是二重性的。一方面,在加工期间,工件的几何结构连续地演变。另一方面,移动的工具包括切削部分和非切削部分,分别例如为柄(工具的侧面)和支座。在NC加工仿真,或者更一般的造型仿真的上下文中,非常少的作者已经考虑对非切削的移动部分和演变的工件之间的冲突进行检查。
在下面的参考文献中,通过更新每个冲突测试之间的零件的几何结构来解决检测冲突问题的问题:
-Computer-Aided Design 37(2005)909–920中,Oleg Ilushina、GershonElberb、Dan Halperin、Ron Wein、Myung-Soo Kim的“Precise global collisiondetection in multi-axis NC-machining”;
-Computer-Aided Design 39(2007)1012–1024中,T.D.Tang、Erik L.J.Bohez、Pisut Koomsap的“The sweep plane algorithm for global collision detection withworkpiece geometry update for five-axis NC machining”;以及
-商业软件CAMWorks(注册商标)。
如可以看出的,加工仿真的历史长久。然而,现有的解决方案缺乏效率,特别是从存储性能视点、从仿真精确度视点、和/或从用户使用的视点来看。
图1-3示出了在对工件的加工进行仿真时可能出现的问题。
仅检测工具位置上的冲突的方案(这尤其在“Precise global collisiondetection in multi-axis NC-machining”,Oleg Ilushina,Gershon Elberb,DanHalperin,Ron Wein,Myung-Soo Kim,Computer-Aided Design 37(2005)909–920以及CAMWorks的情况下)在每个工具位置上执行冲突检测。因此,在工具从一个位置移动到下一位置时发生的情况被忽略。这暗示着在两个相邻位置之间发生的冲突被忽略。为了克服该缺陷,工具轨迹通常是过于离散化的,这使得两个连续工具位置之间的距离永不超过给定的容限。这导致差的性能,因为需要大量的检查。图1示出了工件10与工具14的非切削部分12之间的遗漏的冲突。图2示出了对工件10与工具14的非切削部分12之间的所述遗漏的冲突20的检测,其归功于充分的离散化。注意,这样的离散化是有成本的(导致仿真的流动性(例如,视觉上的)的缺乏),而且不可能100%安全。
多个方案假定工件保持恒定,这表示材料移除现象不被处理,这在处理加工过程时是不切实际的。这些方案属于更一般的检测被假定不随时间演变的两个对象之间的冲突的算法类别。这样的算法一般用于解决路径规划问题。在加工仿真的上下文中,这样的算法被用于检查没有发生与被设计的部分的冲突。通过这种方式只能检查出凿挖。
很少有方案能够处理之前的两个问题:这些方案一般目的在于将工件考虑为随着时间而演变,并且允许沿着工具的移动而不是仅在工具位置上来检测冲突。然而,这些方案可能基于有关工具几何形状的限制性假设,并且它们可能会丢弃可能需要大量的(甚至无数个)凸起部分(例如,环面)的工具。这些方案也不能处理具有孔隙的工具或者圆角(round-over)工具。更一般地,这些方案无法处理由凸起部分之间的布尔减法得到的工具。通过连结凸起部分来对这样的工具进行近似将导致很差的性能和精确度的损失。图3示出了包括非凸起的切削部分32的切削工具30,其能够对工件34进行加工而不与非切削部分36发生冲突。可以看出,不应报告冲突,这时因为切削工具的形状及其轨迹确保了切削部分总是先与工件材料相遇。然而,这些方案有可能误报冲突(尽管这些方案从其他视点来看可能是高性能的)。
在此上下文中,仍然存在对用于对工件的加工进行仿真的改进的解决方案的需要。
发明内容
因此,根据一个方面,提供了一种对利用具有至少一个切削部分和至少一个非切削部分的切削工具的工件的加工进行仿真的计算机实现方法。方法包括提供表示工件的深度元素的集合,每个深度元素包括表示线与工件之间的相交的至少一个线段的集合;切削工具的轨迹,切削工具的轨迹是刚性运动;以及网格的集合,每个网格表示切削工具的相应切削部分或者非切削部分。方法随后包括,针对每个深度元素,根据切削工具的轨迹针,针对每个网格,计算将深度元素的线与网格之间的相交的时间描述为相交的高度的函数的所有折线的末端点。并且方法包括沿深度元素来测试切削工具与工件之间的冲突。测试包括针对与属于所有网格的所有折线的集合的下包络的位置相对应的高度的值,该位置所属的折线与非切削部分相关联,确定该高度的值是否属于深度元素的线段。
方法可以包括以下中的一个或多个:
-计算所有折线的末端点包括,针对每个网格以及,针对相应的折线的每个末端点:基于与相应的折线相关联的网格的所有面,根据切削工具的轨迹来确定被网格的面扫掠的体积的边界面,边界面与深度元素的线的相交与末端点相对应;以及基于深度元素的线与确定的边界面之间的相交来计算时间和高度;
-计算所有折线的末端点还包括,针对每个网格,确定网格的可视部分,该可视部分是网格的指向切削工具的轨迹的部分;根据切削工具的轨迹计算被可视部分扫掠的体积的边界;以及随后针对相应的折线的每个末端点,迭代地确定被网格的面扫掠的体积的边界面,深度元素的线与边界面的相交与端点相对应,并且迭代地计算时间和高度,其中,确定边界面包括识别所计算出的被可视部分扫掠的体积的边界的相应的边界面。
-计算所有折线的末端点还包括,针对每个网格,确定与被所述可视部分的面扫掠的体积有关的邻接信息,以及针对每个相应的折线,确定被网格的面扫掠的体积的边界面,深度元素的线与边界面的相交与折线的第一末端点相对应,确定被网格的面扫掠的体积的边界面包括通过几何计算来确定计算出的被可视部分扫掠的体积的边界的第一面,所述第一面与深度元素的线相交;以及确定被面扫掠的体积的边界面,深度元素的线与边界面的相交与折线的第二末端点相对应,确定被面扫掠的体积的边界面包括通过基于邻接信息的拓扑传播来确定计算出的被可视部分扫掠的体积的边界的第二面,第二面与深度元素的线相交;和/或
-在所述深度元素的集合上对所述迭代进行参数化;
-对第一面的确定实现了在所述深度元素的集合上的光栅化。
-还提出了一种数据结构(例如,存储在文件中),包括根据该方法,对利用具有至少一个切削部分和至少一个非切削部分的切削工具的工件的加工进行仿真的规范。
-还提出了一种系统,包括耦合到存储器的处理器,该存储器具有记录在其上的用于执行方法的指令。该处理器可以是大规模并行处理单元。该系统可以包括适于发起指令的执行的至少一个GUI。该GUI可以包括GPU并且该处理器可以是GPU。
-还提出了一种计算机系统,包括用于执行上述的方法的指令。
-还提出了一种具有记录在其上的上述计算机程序的计算机可读存储介质。
-还提供了一种用于生产/制造产品的方法。该生产方法包括其中重复用于对加工进行仿真的方法的仿真阶段,以及随后的对工件的加工阶段。
附图说明
现在将通过非限制性的示例并且参照附图,对本发明的实施例进行描述,在附图中:
-图1-3示出了加工仿真中的主要问题;
-图4示出了方法的示例的流程图。
-图5示出了图形化用户界面的示例;
-图6示出了客户端计算机系统的示例;以及
-图7-42示出了方法。
具体实施方式
参考图4,提供了一种用于对利用切削工具的工件的加工进行仿真的计算机实现的方法。该方法考虑的切削工具具有至少一个切削部分和至少一个非切削部分(又称为“抵触部分”,这使得该工具可能潜在地是-部分-抵触对象)。方法包括提供S10(以3D方式)表示工件的深度元素的集合(在下文中又将该深度元素的集合和/或该工件称为“建模的体积/对象”)。根据定义,每个深度元素包括表示线与工件(由工件占用的体积)之间的相交的至少一条线段的集合。这里,深度元素与线上的存在工件材料的位置(即,深度元素的线段)相对应。然而,应该注意到,术语“深度元素(dexel)”可以可替换地指定与这样的3D模型的所有线相关联的数据,以使得一些深度元素可以被除去任何材料/线段,例如,从开始或通过所述方法来除去。这仅是定义的问题。在S10中提供的数据还包括切削工具的轨迹(在3D当中,例如,非平面的,虽然可替换地,该轨迹可以是平面的,例如,平面中的一系列序列,例如,2,5-轴轨迹)(的规范)。在该方法的情况中,切削工具的轨迹是刚性运动(不失一般性,是由一系列刚性运动构成的更加复杂的轨迹,并且在该系列的刚性运动的每个上重复该方法)。在S10中提供的数据还包括网格的集合。每个网格表示切削工具的相应的切削部分或非切削部分(由此,该网格的集合表示切削工具)。则方法包括对每个深度元素的特定(例如,并行)处理(例如,利用GPU)。其包括针对每个网格(方法在网格的集合上循环)计算S20所有折线的末端点,所述折线将深度元素的线与网格(即网格的面,乃至边缘或顶点)之间的相交的时间描述为相交高度的函数,该计算20是根据在S10中提供的切削工具的轨迹而执行的。随后,沿该深度元素来测试S30切削工具(例如,工具的扫掠)与工件的冲突(即,至少响应于切削工具的非切削部分是否与深度元素的至少一个材料段抵触(例如,在某个时间点相交)的问题,考虑当切削工具的切削部分对深度元素进行更新/修改时深度元素的演变)。具体地,测试包括,针对与属于所有网格的所有折线的集合的下包络的位置相对应的高度的值,该位置所属的折线与非切削部分相关联,确定该高度值是否属于深度元素的线段(由此测试是否存在这样的高度值)。这样的方法改进了对工件的加工的仿真。
特别地,方法涉及对利用具有至少一个切削部分和至少一个非切削部分的切削工具的工件的加工进行仿真,所述切削工具经过轨迹(方法不关心经过该轨迹的速度,这使得在计算中可以考虑任何速度,例如,任何恒定的速度—在距离相对时间的方面),并且方法检测(S20和S30)切削刀具与工件的冲突(更具体地,切削工具的非切削部分,由此,即抵触部分)。由此,方法允许工业加工的精细仿真。
此外,所述方法是基于深度元素表示的,并且因此其在缓存和计算方面是轻的(因为深度元素形成了既离散又可大规模地并行化的表示)。作为结果,方法是流畅/平滑的并且由此是响应性的,这在用户端是受欢迎的。如果方法还显示工件的表示和经过轨迹的切削工具的表示,例如,与加工的表示一起显示,则这样的显示是相对流畅/平滑的,并且是不间断的。现在,所述方法还在S30中基于特定的数据(即,在S20中计算出的那些数据)来执行测试。具体地,方法根据切削工具的轨迹来计算将深度元素的直线与网格之间的相交时间描述为相交高度的函数的所有折线的末端点。而且,这些数据是离散的,并且在S20中考虑的数据结构确保计算在深度元素上可以是并行化的。由此,从计算、响应性、和存储器缓冲视点的角度,方法都更有效率。
此外,所计算的数据具有特定的含义,并且其具有特定的数学特性,该特性允许进行该方法在S30中提出的特定的容易并且全面(相对于作为连续函数的时间,其与上文提到的可以被视为离散方案的现有技术中的基于时间步长的方法相反)的测试。实际上,一旦问题被合适地写出,方法确定使所述方法输出正确结果并且由此得到符合实际的并且正确的仿真的几何条件。这些数学特性将在下文详述。就此,应该注意到,所述方法能够处理相对任意的工具(即,仿真是正确的,例如,正确地报告更多的冲突和/或误报更少的冲突),以使得方法即使对于非凸起的切削工具和/或具有非凸起切削部分的切削工具而言也能很好地工作。切削工具不局限于旋转实体(尽管这当然是有可能的)。切削工具例如可以具有孔隙或者可以是圆角工具。更一般地,切削工具可以具有从凸起部分之间的布尔减法所产生的形状。例如,方法在图3的情况下(即,没有冲突被误报)能够很好地工作,具有相当好的动画速度。在示例中,切削工具可以是圆角的端铣刀、四分之一圆工具、一组铣刀、或一套刀具。同样地,方法背后的数学解析使得方法能够在任何(一系列)刚性运动的情况下相对很好地工作,以使得方法相对地不受限于工具轨迹方面。
由此,方法以鲁棒、流畅/平滑并且全面的方式,利用相对任意的工具表示和/或相对任意的工具演化来处理工具移动期间的冲突检测。
方法是计算机实现的。方法的步骤实际上是可以通过计算机系统单独地或者通过图形化用户交互(即与计算机系统的GUI交互的用户)在计算机上执行。由此,具体通过计算机系统执行的步骤可以完全自动地执行。在示例中,对方法的至少一些步骤的触发可以通过用户-计算机交互来执行。特别地,提供步骤S10是通过用户交互执行的,其中,用户指定在S10中提供的数据。S10实际上可以与发起加工仿真的用户相对应。计算S20和测试S30可以随后被自动地执行。所需的用户-计算机交互水平可以取决于所预见的自动化水平,并且与实现用户的期望的需求相平衡。在示例中,该水平可以是用户定义和/或预定义的。
方法的计算机实现的典型示例是利用适于此目的的系统来执行该方法。该系统可以包括耦合到存储器的处理器和图形用户界面(GUI),存储器具有记录在其上的包括用于执行方法的指令的计算机程序。存储器还可以存储数据库。存储器是适于这样的存储的任何硬件,可能包括多个物理不同部分(例如,一个用于程序,并且可能一个用于数据库)。GUI可以包括GPU。在这样的情况下,处理器可以是GPU。换言之,执行所述方法的至少一些步骤,特别是计算S20步骤和/或测试S30步骤的处理器可以是GPU。这样的系统是用于对加工进行仿真的有效工具。在工件被表示为深度元素的集合时,尤其如此。由于基于深度元素的算法非常适合于大规模并行的硬件,因此考虑使用现代图形处理单元(GPU)的计算能力是有效的。
所述方法一般对建模对象进行操纵。建模对象是由存储在数据库中的数据定义的任何对象。扩展而言,表达“建模对象”指定数据本身。方法可以是用于设计建模对象(例如工件)的过程的一部分,例如,通过先定义工件(该工件由此可以是3D建模对象),并且随后根据方法来对工件的加工进行仿真。“设计3D建模对象”指定至少作为制作3D建模对象的过程的一部分的任何动作或一系列动作。由此,方法可以包括从草图(scratch)创建3D建模对象。可替换地,方法可以包括提供之前创建的3D建模对象,以及随后修改该3D建模对象,特别是通过由该方法所仿真的加工。
根据系统的类型,建模对象可以由不同种类的数据定义。实际上,系统可以是CAD系统、CAE系统、CAM系统、PDM系统和/或PLM系统的任何组合。在这些不同的系统当中,建模对象由相应的数据定义。因此,可能相应地提到CAD对象、PLM对象、PDM对象、CAE对象、CAM对象、CAD数据、PLM数据、PDM数据、CAM数据、CAE数据。然而,这些系统不是相互排斥的,这是因为建模对象可以由与这些系统的任何组合相对应的数据来进行定义。系统由此很可能是CAD和PLM系统两者,这从下文提供的对这样的系统的定义将是显而易见的。
就CAD系统而言,其表示至少适于基于建模对象的图形化表示来设计建模对象的任何系统,例如,CATIA。在该情况下,定义建模对象的数据包括允许该建模对象的表示的数据。CAD系统可以例如利用边或线,一些情况下利用面或表面来提供CAD建模对象的表示。线、边、或表面可以以各种方式表示,例如,非均匀有理B样条(NURBS)。具体地,CAD文件包括规范,根据所述规范可以生成几何结构,几何结构又继而允许生成表示。建模对象的规范可以存储在单个CAD文件或多个CAD文件中。CAD系统中的表示建模对象的文件的典型大小在每个零件1M字节的范围中。并且,建模对象通常可以是几千个零件的组件。
在CAD系统的上下文中,建模对象通常可以是3D建模对象,例如,其表示诸如零件或零件的组件等的产品,或者可能表示产品的组件。就“3D建模对象”而言,其表示由允许其3D表示的数据进行建模的任何对象。3D表示允许从所有的角度查看零件。例如,当3D建模对象被3D表示时,可以围绕3D对象的任何轴,或者围绕显示该表示的屏幕中的任何轴新来处理或转动该3D建模对象。这特别排除了不是3D建模的2D图标。3D表示的显示有利于设计(即,提高了设计者统计地完成其任务的速度)。这加快了工业中的制造过程,因为产品的设计是制造或建模过程的一部分。
3D建模对象可以表示产品的几何结构,其在利用例如CAD软件解决方案或CAD系统来完成虚拟设计之后,要在现实世界中进行制造,该产品例如是(例如,机械的)零件或零件的组件,或者更一般地,任何刚体组件(例如,移动机构)。CAD软件解决方案允许各种以及无限制的工业领域中的产品的设计,所述领域包括:航天、建筑、建造、消费用品、高科技设备、工业装备、运输、航海和/或离岸或运输。由该方法设计的3D建模对象由此表示工业产品,该工业产品可以是地面车辆(例如,包括汽车和轻型卡车装备、赛车、摩托车、卡车和电机装备、卡车和公共汽车、火车)的零件、飞行器(例如,包括例如机身装备、航天装备、推进装备、防御产品、航空装备、空间装备)的零件、船只(例如,包括)海军装备、商用轮船、离岸装备、游艇和作业船、航海装备)的零件、机械零件(例如,包括工业制造机械机器、重型移动机器或装备、安装装备、工业装备产品、制造的金属产品、轮胎制造产品)、机电或电子零件(例如,包括消费电子、安全和/或控制和/或仪器产品、计算和通信装备、半导体、医用设备和装备)、消费用品(例如,包括家具、家庭和园林产品、休闲用品、时尚产品、硬商品零售商的产品、软商品零售商的产品)、包装(例如,包括视频和饮料和烟草、美容及个人护理、家用产品的包装)。
就PLM系统而言,其表示适于对表示物理制造产品的建模对象进行管理的任何系统。因而,在PLM系统中,建模对象由此由适于物体对象的制造的数据来进行定义。这些数据通常可以是尺寸值和/或容限值。对于对象的正确制造,实际上最好具有这样的值。
CAM代表计算机辅助制造。就CAM解决方案而言,其表示适于管理产品的制造数据的任何解决方案、软件或硬件。制造数据一般包括与所要制造的产品、制造过程和所需资源有关的数据。CAM解决方案用于对产品的整个制造过程进行计划和优化。例如,其可以为CAM用户提供可行性、制造过程持续时间或者资源数量方面的信息,所述资源例如可以是可以在制造构成的特定步骤上使用的特定机器人;并且由此允许管理或所需投资方面的决策。CAM是CAD过程和可能的CAE过程之后的后续过程。这样的CAM解决方案由商标下的Dassault Systèmes提供。
CAE代表计算机辅助工程。就CAE解决方案而言,其表示适合用于建模对象的物理行为的分析的任何解决方案、软件或硬件。公知的并且广泛使用的CAE技术是有限元方法(FEM),其通常涉及将建模对象划分成其物理行为可以通过方程来进行计算和仿真的元素。这样的CAE解决方案由商标下的Dassault Systèmes提供。另一种正在发展的CAE技术涉及对由来自不具有CAD几何数据的不同物理领域的多个部件组成的复杂系统的建模和分析。CAE解决方案允许对产品的仿真,并且由此允许对产品的优化、改进以进行制造。这样的CAE解决方案由商标下的Dassault Systèmes提供。
PDM代表产品数据管理。就PDM解决方案而言,其表示适于管理与特定产品有关的所有类型数据的任何解决方案,软件或硬件。PDM解决方案可以由产品生命周期中涉及到的所有参与者使用:主要是工程师但是也有项目管理者、财务人员、销售人员和购买者。PDM解决方案一般基于面向产品的数据库。其允许用户共享他们的有产品的一致数据并且由此避免参与者使用不同的数据。这样的PDM解决方案由商标下的Dassault Systèmes提供。
图5示出了系统的GUI的示例,其中,该系统是CAD系统。
GUI 2100可以是典型的类CAD界面,其具有标准菜单栏2110、2120以及底部和侧边工具栏2140、2150。这样的菜单和工具栏包含用户可选择的图标的集合,每个图标与一个或多个操作或功能相关联,如本领域中已知的。这些图标中的一些与适合用于在GUI 2100中显示的3D建模对象2000上进行编辑和/或工作的软件工具相关联,显示的3D建模对象2000例如是执行方法的结果。软件工具可以被分组为工作台。每个工作台包括软件工具的子集。特别地,工作台中的一个是编辑工作台,其适合于编辑建模产品2000的几何特征。在操作中,设计者例如可以预先选择对象2000的一部分,并且然后通过选择适当的图标来启动操作(例如,改变尺寸、颜色等)或者编辑几何约束。例如,典型的CAD操作是对显示在屏幕上的3D建模对象的冲压或折叠进行建模。GUI例如可以显示与所显示的产品2000有关的数据2500。在图2的示例中,数据2500被显示为“特征树”,并且其3D表示2000属于包括制动钳和盘的制动组件。GUI可以进一步示出例如用于有助于对象的3D定位的、用于触发所编辑的产品的操作的仿真的能够的各种类型的图形工具2130、2070、2080,或者GUI可以呈现所显示的产品2000的各种属性。光标2060可以由触觉设备控制,以允许用户与图形工具进行交互。
图6示出了系统的示例,其中,该系统是客户端计算机系统,例如,用户的工作站。
示例的客户端计算机包括连接到内部通信总线1000的中央处理单元(CPU)1010、同样连接到该总线的随机存取存储器(RAM)1070。客户端计算机进一步被提供有图形处理单元(GPU)1110,所述图形处理单元1110与连接到总线的视频随机存取存储器1100相关联。视频RAM 1100在本领域中还被称为帧缓冲器。大容量存储设备控制器1020管理对大容量存储器设备(例如,硬盘驱动器1030)的访问。适合于有形地实现计算机程序指令和数据的大容量存储器设备包括所有形式的非易失性存储器,举例而言,包括诸如EPROM、EEPROM、以及闪速存储设备等的半导体存储器设备;诸如内部硬盘和可移动盘等的磁盘;磁光盘;以及CD-ROM盘1040。前述中的任何设备都可以由专门设计的ASIC(专用集成电路)来补充或被集成到所述ASIC当中。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉装置1090,例如,光标控制设备、键盘或其类似物。光标控制设备用于客户端计算机中,以允许用户选择性地将光标定位在显示器1080上任何希望的位置处。此外,光标控制设备允许用户选择各种命令,以及输入控制信号。光标控制设备包括用于将控制信号输入到系统的多个信号生成设备。通常,光标控制设备可以是鼠标,鼠标的按键用于生成信号。可替换地或除此之外,客户端计算机系统可以包括感应/触控板和/或感应/触摸屏。
计算机程序可以包括可由计算机执行的指令,所述指令包括用于使上述系统执行方法的模块。程序可以是在包括系统的存储器的任何数据存储介质上可记录的。例如,程序可以在数字电子电路中、或者在计算机硬件、固件、软件或其组合中实现。程序可以被实现为装置,例如有形地实现在用于由可编程处理器执行的机器可读存储设备中的产品。方法步骤可以由可编程处理器执行,所述可编程处理器通过对输入数据进行操作并且生成输出来执行指令的程序,以实施方法的功能。处理器由此可以是可编程的、并且被耦合以从数据存储系统、至少一个输入装置、以及至少一个输出设备接收数据和指令,以及将数据和指令发送到所述数据存储系统、至少一个输入设备以及至少一个输出设备。应用程序可以以高级过程或面向对象的编程语言来实现,或者在需要时以汇编或机器语言来实现。在任何情况下,语言可以是编译的或解释的语言。程序可以是完全的安装程序或更新程序。在任何情况下,该程序在系统上的应用产生用于执行方法的指令。
此外,应该注意的是,方法的规范(即,在S10中提供的数据、在S20中计算的数据以及在S30中确定的结果)可以全部存储(例如)在数据文件当中,以供后续使用,例如,由第三人使用。特别地,仿真可以在任何时间被重放/重新显示。此外,仿真可以在产品生产/制造过程中实现,例如,基于所述数据文件而执行。如已知的,这样的过程可以包括在其中重复加工仿真的仿真阶段,以及随后的基于仿真结果在(实际)工件上的(实际)加工阶段。例如,在检测到冲突的每个仿真当中,过程可以通过调整轨迹来重复仿真。这里应该注意,图4的仿真方法允许容易地计算冲突深度(在加工领域中被认为重要的传统数据),并且可以由此基于这样的数据来有效率地调整轨迹。这可以被重复直到检测不到冲突和/或确定令人满意的轨迹为止。之后,可以执行实际的加工,再现所保留的仿真的轨迹。
现在将讨论提供S10。
方法包括提供表示(工件的)建模体积的深度元素的集合S10。这允许建模体积的轻表示(换言之,可以使用很少的存储器空间来表示建模体积)。这还允许可以易于处理的建模体积的表示。特别地,当建模体积由深度元素的集合表示时,由于深度元素集合的数据结构,建模体积上的设计操作可以特别有效地执行(例如,并行化地)。换言之,该结构允许大规模的并行处理。由此可以以高的响应性和高的鲁棒性来执行设计操作。
在该方法的情况中,在S20和S30还特别依赖深度元素表示来执行冲突测试。由此,方法有效地结合了深度元素表示的计算优势和仿真方面的现实性的考虑。
术语“深度元素(dexel)”已知是“深度元素(depth element)”的简写(正如术语“像素(pixel)”是“像素(picture element)”的简写)。深度元素的概念已经在大量学术论文中提到。在该方法的上下文中,深度元素包括至少一条线段(即,一对3D点)的集合。在示例中,建模体积包括至少一个深度元素,该深度元素包括至少两个线段的集合。如果深度元素的线段为多个,则多个线段可以是有序的(在这样的情况下,深度元素是列表),或者是乱序的。深度元素的线段表示线与建模体积之间的相交。换言之,考虑与建模体积相交的虚拟线,则深度元素是源自给定的线并且产生自对相交的计算的线段的集合。由此,提供深度元素的集合可以包括计算这样的相交,例如,通过跟踪虚拟线并且计算它们与建模体积的相交,所述建模体积最初可以通过B-Rep或者任何其他体积表示来表示。因此,深度元素的集合表示建模体积(即,工件)。
值得重视的是,在S10中深度元素的集合被提供作为计算机实现的数据。由此,在上文和下文提供的有关建模体积的任何表示的定义从数据结构的视点,具有隐含意义。例如,线段可以被提供为一对3D位置(例如,彼此链接的两个3D位置),例如被提供为深度元素的线上的高度,该线的几何结构也被提供(参考点和方向)。还可以将3D位置提供为与参考3D框架相关联的三个坐标(例如,浮点)的列表。深度元素是线段的集合,这暗示线段在集合结构中被链接在一起。深度元素集合中的深度元素也可以链接在一起。通过本身包含至少一个线段的集合的深度元素的集合来表示工件,允许工件的快速更新S30。
现在将参考图7-9说明深度元素的概念,图7-9呈现了提供S10深度元素的集合作为深度元素结构67的步骤的示例。
给定建模体积并且给定无限的线,深度元素是表示无限的线与(工件的)建模体积之间的相交的线段(或间隔)的集合。在存储器中,线段的集合被捕获为每条线段的边界点的集合。例如,可以在每条线上定义参考/原点(0-零-高度的点),并且所述线上的高度(例如,代数值,即负的或正的标量值;例如,整数或实数、编码数值,例如,浮点或者任何其他适合的数据类型)可以确定边界点(注意,用于定义高度的该框架可以应用于S20,例如,具有相同的原点)。深度元素结构是例如在矩形栅格上进行排序(例如,共享相同的方向,例如,整个结构包括其方向两两正交的三个栅格)的被组织的深度元素(每个包括线段的集合)的集合。图7和图8示出了建模体积40连同线50的10×10的栅格。示例的方法包括提供建模体积40(表示工件),例如提供为B-Rep,如图7所示。随后,示例的方法包括定义与建模体积40(至少部分地)相交的线50的10×10的栅格,如图8所示。方法的示例随后包括计算深度元素65,其包括线段60和/或62的集合,如图9所示。在该图上圈出了一个深度元素65。深度元素65可以包括多个线段60,或一个线段62,这取决于线50是在一个点上还是在多个单独的点上与建模体积40相交。当然,方法可以可替换地从存储器取回深度元素65。在任何情况下,深度元素结构67由此被提供。
图9示出了产生的深度元素结构67。应当注意到,并非所有的线50都与建模体积40相交(在示例中,只有五十二条线与建模体积40相交),产生同样多的深度元素65(实际上未与建模体积40相交的线可以被丢弃,并且不产生深度元素)。此外,一些线50通过一个线段62(例如,深度元素(2,3(或者深度元素(9,6))与建模体积40相交,其他的则通过多个线段60,例如通过两个线段(例如,深度元素(7,7)或深度元素(4,7))、或三个线段(深度元素(2,8)或者深度元素(5,8))、或者四个线段(深度元素(2,9)或者深度元素(4,9))与建模体积40相交。产生的深度元素结构67包括五十二个深度元素65,其包括具有一条线段62的三十六个深度元素65,具有两条线段60的六个深度元素65,具有三条线段60的五个深度65元素以及具有四条线段60的五个深度元素。
在S10中提供的深度元素的集合可以是三维深度元素(tridexel)结构。三维深度元素结构被定义为包括三个深度元素结构,通常为平行于x轴的深度元素结构、平行于y轴的深度元素结构和平行于z轴的深度元素结构。方法可以包括在任何时间显示工件的图形化表示,例如在计算S20和测试S30期间。该显示可以基于深度元素的集合。三维深度元素结构提供了良好的显示,这是因为其最不依赖于“视向”。在用户改变视点时,三维深度元素结构尤其提供了更加准确的显示。
图10-12每个显示了表示同一建模体积的深度元素结构。换言之,可以通过包括图10-12的三个深度元素结构(例如,具有正交的方向)的三维深度元素数据来定义建模体积。图10示出了沿y轴的深度元素结构67。图11示出了沿x轴的深度元素结构68。图12示出了沿z轴的深度元素结构69。在每个图上,深度元素的线平行于相应的轴。
用于该方法的加工仿真的原理是计算每个深度元素与工具的扫掠体积的相交,并且相应地修剪其材料间隔。本发明可以至少虚拟地通过(1)在S20中计算与工具的切削和非切削部分的相交以及通过(2)在S30中根据时间顺序对这些相交进行排序来更进一步。随后,可能理解切削部分是在非切削部分之前或者之后遇到材料,并且能够仅报告实际冲突。
在S10中提供的数据还包括网格的集合形式(与切削工具的几何结构相对应)的切削工具的表示。网格利用顶点(3D位置)和将顶点两两链接并且形成所谓的网格的面(即边的最小周期)的边(例如,线段)来指定任何图形结构。网格可以是不同类型中的一种,例如,凸面网格-例如,具有凸的多边形面的网格-包括四边形网格(主要或者完全由四条边的凸面构成)和三角形网格(主要或者完全由三条边的面构成),以用于S20中的特别快速并且直接的计算。在其他细化的示例中,网格可以具有更加复杂的结构,例如B-Rep,在此情况下术语“网格”被理解为其最一般的定义。
工具模型(例如,与现实世界的工具相对应)由相邻实体的列表定义,每个实体是切削部分或非切削部分。在示例中,网格是实体的三角形的边界。因此,在S10中工具被提供为闭合的并且非自相交的网格的列表。每个网格表示工具的切削部分,或该工具的非切削部分。可以将表示切削部分的网格标记为(例如)“切削”,和/或可以将表示非切削部分的网格标记为(例如)“抵触”。工具的两个网格之间的相交具有零体积,这表示两个网格或者是分开的或者它们共享对接触区域进行建模的面(或者面的重叠)。通过使用布尔多面体运算可以将任何工具的几何结构这样表示。因此,这些假设不限制方法的一般性。
在S10还提供切削工具的轨迹。下文主要针对3轴轨迹来描述所述方法,但是可以将其扩展成更为复杂的轨迹(例如,5轴)。轨迹可以被提供为三维空间中的折线,并且在下文中每条线段被命名为“基本轨迹”。根据平移,工具沿3轴轨迹的线段移动。根据平移,工具沿5轴轨迹的线段移动,并且此外,工具的轴还从初始取向线性地改变为最终取向。然而,可以考虑指定在S10中提供的轨迹的任何其他方式。
方法随后包括针对建模体积的每个深度元素D的特定处理。首先,方法在S20中相对于每个网格M计算形成仿真的所谓“(h,t)图”的所有折线(在下文中记为L1,L2,L3)的末端点。根据定义,折线描述(h,t)位置,换言之,2D位置具有与深度元素上的高度(例如,使用上文提到的高度的定义,例如,基于任何-例如任意的-原点/参考点和/或基于任何-例如任意的-标尺)相对应的横坐标和与时间相对应的纵坐标。可以实现任何高度标尺和/或时间标尺,只要标尺在整个方法中对给定的深度元素是一致的(例如,相同)即可。对于更容易的实现,可以对所有的深度元素实现相同的标尺。关于高度标尺,在三维深度元素结构的情况中,例如,图10-12中的结构,每一方向的原点可以针对具有相同方向的线所支持的所有深度元素在与所述线正交的同一平面上进行定义。应该注意到,所有的这些数据都不必须是在S20中计算出的,这仅要求具有可比较的(h,t)位置(其可以仅被表示为整数值和/或实数值的对(即有序对)),而不具有进一步的信息(除了切削/抵触属性信息)。由此,下文更详细描述的(h,t)图,以及甚至折线必须被理解为与方法处理的数据(具体地,在S20中计算出的数据包括图的所有折线的末端点)相关联的数学对象。
现在,按照定义,折线根据切削工具的轨迹(注意,如上文所述,任何时间/速度可以针对轨迹来进行保持,例如,恒定时间,因此必须获得每个由连接的理想线段构成的折线,总之,下文详述的(h,t)图的主要特性还适用于更加一般的情况),将相应的深度元素D与相应的网格的线之间的相交的时间t(由此,折线与网格的集合中的相应的网格相关联,注意,一个网格可以与多个相应的折线相关联,这取决于轨迹的复杂性以及网格的复杂性,注意如果网格定义了凸体,则其可以产生单个折线-例如,在平移轨迹上-尽管如果该网格没有定义凸体,则对于同一轨迹而言其可以引起与其可视部分具有的相连部分一样多的折线)描述/表示成相交的高度h的函数。实际上,每个网格根据轨迹被虚拟地移动,并且因此每个网格与每个深度元素的线虚拟地相遇或相交(注意,不相交-例如,网格与给定的线从未相遇-可以在数学上-并且由此在实现中-被视为与空/无折线相关联的空相交,而不失一般性)。针对所有的网格,方法虚拟地跟踪相对于时间的这样的相遇的高度。随后,方法虚拟地考虑与高度有关的相遇时间(跟踪到的数据的倒置)。但是,方法最终在S20中仅计算所述折线的末端点。
由于S20,并且考虑所有折线末端点(针对所有网格),并且由于(h,t)图的特定性质,方法随后可以在S30中(仍然针对每个深度元素)简单地测试是否存在冲突,并且在冲突的情况下,其还可以提供冲突的深度(深度元素线,以及深度元素线上的冲突的边界高度)。测试S30具体包括针对与属于所有网格的所有折线的集合的下包络的位置(该位置所属的折线与非切削部分相关联)相对应的高度值,判断该高度的值是否属于深度元素的线段(即该高度的值还被包括在存储在深度元素中的材料间隔中)。这里再次应该注意,所有网格的所有折线的集合的下包络(其被定义为最小时间位置,换言之,当涉及(h,t)图中的折线时,在传统的下包络定义中,相对于(h,t)图的特定取向,换言之相对于时间,再换言之,相对于在h轴上的投影,其被定义为与高度有关的折线的(h,t)对)仅是虚拟地考虑的数学对象,实际上测试不需要计算这样的对象。应当指出,折线的2D图中的下包络还是被定义为能够由位于(0,-∞)的观察者向上看所看到的折线的部分的2D对象。注意,在由被扫掠的网格和深度元素之间的相交给出的(h,t)平面中的折线是分段线性函数的图。由此,相对于时间值的下包络的计算仅是传统定义的应用。实际上,仅测试深度元素的线段/间隔上的点(由此与工件材料相对应,与对应于空气/孔隙的深度元素的非线段位置相反)先(按时间顺序)遇到切削网格还是抵触网格。一旦基于与其折线相对应的网格的类型将所有折线的所有末端点聚集并关联到“切削”或“抵触”标签/属性,就可以采用上文提供的数学捷径容易地完成(由于下文解释的(h,t)图的特性)。在某种程度上,其相当于将折线的下包络投影到深度元素上,并且针对深度元素的每个线段的每个位置确定被标记为抵触的位置是否已经先被投影(在这种情况下存在冲突,因为在相反情况下-即被标记为切削的位置已经先被投影或者根本没有折线位置被投影-不存在冲突,这是因为存在与切削部分的相遇并且由此移除了材料,或者是因为根本没有相遇)。
显然,一旦执行了测试S30,例如,特别是在测试结论为没有冲突的情况下,所述方法可以包括根据与切削工件的切削部分的相交的位置-即高度-(例如,以及相交的时间),通过移除深度元素的线段或其部分来对深度元素的集合进行更新。这样的数据实际上可以是在S20和/或S30中确定的数据的一部分。
因而,方法允许冲突的快速检测,并且其甚至可以准确地提供冲突深度(冲突的幅度和位置),这可以经由深度元素上的大规模的并行化来执行。注意,在现有技术中,处理精确解决方案(其提供鲁棒的并且全面的冲突检测)的问题还没有被执行(尽管加工仿真已经被研究了很多年),这可能是因为人们认为获取加工的全部时间的描述过于复杂(从计算的视点)。实质上,连续问题被自然地避免了,因为其计算机实现的解决方案从理论上可能呈现出无限的复杂度。然而,本方法通过使问题离散化而取得了精确解决方案(使测试S30基于在S20中计算出的末端点,并且由此基于离散化的输入集合)。然而,该离散化并不是在时间上执行的(如在时间序列的现有技术方法中),而是在深度元素上执行的,这产生更加实际的解决方案。这是通过利用支持所述末端点的底层图的具体特性完成的。下文将对此详述。此外,这种表示更适于大规模并行计算,允许即使利用精细的工件离散化的良好的性能。
在示例中,方法使用在S10中提供的轨迹来计算(在S20中)扫掠体积(例如,通过扫掠实体的三角形边界)和/或被扫掠的表面。典型的参考文献是:Computer-Aided Design&Applications,Vol.2,No.5,2005,pp599-608中,M.Petemell、H.Pottmann、T.Steiner、H.Zhao的Swept Volumes。下文将详述该概念。
该扫掠是M沿线段[Pstart,Pend]的所有平移的并集。在之前公式中,参数t∈[0,1]起到时间的作用。在t=0,网格M在位置Pstart上被平移,其被写为M+Pstart。在t=1,网格M在位置Pend被平移,其被写为M+Pend。这在图13中示出(出于清楚的目的,以2D示出)。
出于计算目的并且出于鲁棒性的目的(特别是考虑到可利用的折线,与循环折线相反),方法可以仅使用M的可见部分(更多的细节在下文提供)。M的可见部分(记为M+)是点P∈M的集合,这使得Pend-Pstart与P点处的M的外法线(记为NP)的标量积为正,即<Pend-Pstart,NP>>0。图14示出了可见M的2D示例。由于M+由线段组成,所以扫掠区域S(M+)由相邻的平行四边形构成,如图15中所示。三角形的M的3D版本在图16中示出。根据Pstart和Pend,左侧的图是M,右侧的图是M+。图17示出了M+的一个三角形的扫掠。其产生了基础扫掠体积,该扫掠体积是包括以下边界面的棱柱(即,由轨迹上的三角形网格面的积分(即扫掠)定义的体积的外部面,这样的边界面可能以任何方式定义,只要其形成扫掠体积的整个外部面的划分即可,例如,所述外部面的所有最大的平面,或者该外部面的最大的三角划分):起始三角形τstart、终点三角形τend以及六个侧边三角形。(应该注意,棱柱还是三角形与定义沿轨迹的时间的1D线段的笛卡尔积,如在Mathematical Analysis and Numerical Methods forScience and Technology p229中解释的)。当处理三轴加工轨迹时,这六个侧面三角形成为三个平行四边形。产生的扫掠体积S(M+)由相邻这样的棱柱构成:M+的每个三角形的一个棱柱。注意到,为了清楚,没有示出所有的三角形。
方法灵活地考虑所谓的(h,t)图。图18示出了yz空间中的根据轨迹(粗箭头)从初始位置被扫掠到(以恒定的速度)最终位置的线段M(粗线)。M的扫掠区域S(M)是平行四边形。
现在详述与深度元素(垂直的线)相关联的(h,t)图。第一步(画出(h,t)图,这实际上不一定由方法执行,如上文解释的)是计算深度元素线与扫掠区域S(M)的边界之间的交点,这得到点P1和P2。根据这些交点,高度h1和h2是交点在深度元素线上的相应的横坐标。随后,由于(例如,恒定的)速度运动假设,时间t1和t2被相应的计算,如在图18中示出的。计算的数学表达式在下文中详细介绍。
现在,将简述与深度元素相关联的(h,t)图。其为二维图(即使对于3维的工件和工具)。高度值h1和h2在水平的h轴上被报告,并且时间值t1和t1在垂直的t轴上被报告。这定义了将点(h1,t1)和(h2,t2)结合的线段,如图19所示。
物理解释如下。当时间t<t1时,深度元素线看不到移动的线段M。在时间t=t1上,线段的下顶点在高度h1上与深度元素线相遇。从时间t=t1到时间t=t2,线深度元素与移动的线段M之间的交点是沿所述线深度元素从P1移到P2的点。t和h之间的相关性是线性的。当t>t2时,深度元素不再看到移动的线段M。
为了清楚起见,利用2维工件和工具来对下述讨论进行充分说明。现在考虑图20所示的2D工件、工具、轨迹和深度元素。
第一步是计算初始工件间隔,其为深度元素线与工件之间的相交。这得到图21所示的值h0和h9。取决于工件的形状,其与深度元素的相交可以包括多个间隔。随后,计算工具的非切削部分的扫掠体积,并且其与深度元素线的相交产生了图22中所示的t1、t2、h1、h2。随后,计算工具的第一切削部分的扫掠体积,并且其与深度元素线的相交产生了图23所示的t3、t4、h3、h4。随后,计算工具的第二切削部分的扫掠体积,并且其与深度元素线的相交产生了图24所示的t5、t6、h5、h6。随后,计算工具的第三切削部分的扫掠体积,并且其与深度元素线的相交产生了图25所示的t7、t8、h7、h8。
现在将所有之前的高度和时间的计算聚集到深度元素D的(h,t)图内,如图26所示。[h0,h9]线段就是所谓的工件间隔,其为深度元素线与工件之间的相交。其在h轴上被表示。(h,t)图捕获了时间和空间信息,这使得能够执行准确的冲突诊断。
(h,t)图包括被标记为“切削”或“抵触”的非垂直线段的集合。冲突诊断(S30)可以被如下实现。从工件间隔的所有点,画出t方向中的垂直的线。如果每条这样的线都在抵触线之前与切削线相遇,则没有冲突。否则,存在冲突。在示例中,如所预期地没有冲突,这是因为根据t方向,切削线2和3位于冲突线以下。
现在将讨论前面提到的(h,t)图的特性,该特性带来方法的冲突诊断的简单性和鲁棒性。
根据构造,(h,t)图包括被标记为“切削”或“抵触”的非垂直线段的集合(这由以下事实确保:轨迹可以是不包括点状轨迹(punctual traiectory)的刚体运动,即PStart≠PEnd)。这些线段具有用于加快计算的有用特性。首先,两条线段不能在内部点上交叉,与图27所示的不同。其次,两条线段不能共享端点并且重叠,与图28所示不同。这是因为切削部分的内部和非切削部分的内部不能同时位于同一个地方。
因此,(h,t)图的线段可以被布置为切削折线和冲突折线的集合,每一个由数学映射:来进行定义(更准确地,定义为这样的分段线性映射的图)。进一步地,任何两个折线不能在内部点交叉。在下文中,约定Li(h)=+∞(时)有利于最小值计算。
现在讨论S30(计算冲突诊断)的示例。该示例仅是一种可能的实现,并且示例的整体思想可以以其他方式实现。
从计算的视点,在示例中,对给定的深度元素D的冲突诊断被如下执行。给定折线并且给定深度元素D的所有工件间隔的并集B,第一步是将数字集合排序成列表h1≤h2≤…≤h2n。必须理解,该有序列表混合了抵触折线的hj横坐标和切削折线的hj横坐标。第二步是识别所有的抵触间隔[hj,hj+1],取决于在其上定义的下折线的类型。接下来,算法将所述抵触集合C计算为所有冲突间隔[hj,hj+1]的并集。
For j:=1to 2n-1do begin
查找k∈{1,…,n}以使得Lk(m)=min{Li(m),i=1,…,n}
如果折线Lk的类型是“冲突”,则
C:=C∪[hj,hj+1]
End if
End for
回到2D示例,抵触集合为C=[h6,h2],其不与工件间隔B=[h0,h9]相遇,因此,沿深度元素没有冲突。
下文中讨论该方法所遵从的方案的(至少是概念上的)概要(再次注意到,方法可以仅计算折线末端点)。
工具包括相邻的切削部分和非切削部分。每个部分通过其三角形的闭合边界(被称为“网格”)来建模。通过三维深度元素结构来对工件进行建模。对象的扫掠是该对象沿轨迹的被平移的副本的并集。工具轨迹的基本步长是两个连续位置之间的工具移动。不失一般性地,方法可以考虑时间在两个连续的工具位置之间线性变化:在起点,时间等于0并且在终点,等于1。在计算深度元素和工具扫掠之间的相交时,方法还可以计算每个工具网格与深度元素相交的时间。通过对得到的时间的集合进行排序,方法能够确定工具部分先遇到存储在深度元素上的物料间隔的每处(注意,物料间隔表示工件物料)。如果非切削部分先遇到物料,则报告冲突。
示例中的方法的关键特征是仅通过使用被扫掠体积的几何形状来计算与深度元素相交的时间。该信息被聚集在所谓的(h,t)图中。这产生了速度增益、可靠性增益以及通用性增益。不需要细化每个基本轨迹步长的步骤,由此允许良好的速度性能。可靠性不依赖于任何数值精确值。性能和可靠性不依赖于位移向量的方向。通用性:关于输入网格的仅有的假设在大部分情况下被验证,因为这些网格被假设为接近与真实的3D实体的边界。如果需要,则许多现有的算法可以被用作修复这些网格的预处理器。
更具体地,在示例中,计算S20所有折线(例如,上文指出的L1、L2、L3)的末端点包括针对每一网格M,并且针对相应的折线的每个末端点,根据切削工具的轨迹,基于与相应的折线相关联的网格的所有面来确定被网格的面扫掠过的体积S(τ)的边界面的子步骤(标记为S282),深度元素的线与所述边界面的交与该末端点相对应。由于(h,t)图的定义和形成(h,t)图的折线的定义,并且由于3D几何理论,折线的末端点与(相应的深度元素的)支撑线和被相应的网格的面中的一个扫掠过的体积的外边界的相交相对应。参考有关图17所做的讨论,可以说体积S(τ)的“边界面”被网格的所述面扫掠。方法在所有可能的边界面中确定这样的边界面(注意,不一定必须计算所有这样的边界面)。随后,示例的计算S20包括基于深度元素的线与所确定的边界面的这样的(几何)相交来计算定义相应的末端点(相对于所保存的标尺)的时间和高度的子步骤(记为S284)。这允许简单的计算S20。实际上,对该时间的计算可以直接来自于几何考虑,因为只要3D交点保持在相同的棱柱中,时间和高度就线性地变化。
现在,在示例中进一步详述通过3D线/三角形相交来计算“h”参数的方式。
令Q为垂直于D的平面,以及d为D和Q的相交点。将xyz记为参考坐标系,如果D平行于z轴(其可以表示高度),则Q是xy平面并且D由平面xy(其可以表示深度元素栅格的支撑平面)中的两个坐标(xD,yD)定义。如果D平行于y轴,则Q为zx平面并且D由平面zx中的两个坐标(zD,xD)定义。如果D平行于x轴,则Q为yz平面并且D由平面yz中的两个坐标(yD,zD)定义。
令U,V,W为三角形Δ的顶点,并且U′,V′,W′是定义2D三角形Δ′的平面Q上的它们相应的投影。图31示出了当D平行于z轴时的几何结构。
从现有技术中公知的是,当且仅当点d在三角形Δ′内部时,线D与三角形Δ相遇。当且仅当所有的代数区域Area(d,V′,W′)、Area(U′,d,W′)和Area(U′,V′,d)具有相同的符号时,点d在三角形Δ′内部。进一步地,交点D∩Δ的高度h是:
其中,hU、hV和hW分别是U,V,W沿线D的高度。
最后,通过将D在平面Q中的2D坐标连同h相结合,得知点D∩Δ的3D坐标。如果D平行于z轴,则D∩Δ=(xD,yD,h)。如果D平行于y轴,则D∩Δ=(xD,h,zD)。如果D平行于x轴,则D∩Δ=(h,yD,zD)。
现在在示例中讨论计算“t”参数的这种方式。
令A,B,C为三角形τ的顶点,e1=B-A、e1=B-A以及e3=Pend-Pstart。这在图32上示出。令τstart=τ+Pstart为三角形τ的初始副本并且τend=τ+Pend为三角形τ的最终副本。由于三角形τ是常态不是退化的,因此向量e1与e2不是共线的。由于三角形τ没有沿着其支撑平面进行平移,因此向量e3不属于由e1和e2张成的空间。这使得矩阵[e1 e2 e3]不可逆。因此,任何点P∈T由三个数字r、s和t唯一地表示,这使得:
P=A+re1+se2+te3
注意到,向量e1、e2、e3没有被标准化,并且它们不是相互垂直的。
给定点P的坐标,可以通过求解以下线性方程组来计算数字r、s和t:
当三角形τ从Pstart移动到Pend时,数字t起到时间的作用。当t=0时,点P属于τstart,当t=1时,点P属于τend,并且当0<t<1时,点P属于中间的三角形τ+(tPend+(1-t)Pstart)。
现在讨论从3维几何结构生成(h,t)图。
棱柱T包括两个三角形(τstart和τend)和三个平面的平行四边形。平行四边形被三角划分,这使得棱柱T除了τstart和τend之外还包括六个侧面三角形。给定这样的三角划分的棱柱和深度元素线D,计算D∩T成为线/三角形相交的问题,如在之前的图中解释的。令P∈D∩T,。其h参数通过使用公式(1)来计算,并且其t参数通过使用公式(2)来计算。如果P属于τstart,则其t参数为t=0。如果P属于τend,则其t参数为t=1。
在示例中,数据结构可以将与D∩T中的点一样多的(h,t)参数与深度元素D相关联,并且具有同样多的具有与D的非空的相交的棱柱T。在示例中,仅折线的末端点被保留或甚至首先被计算。
图33示出了D∩T={P1,P2},其中P1∈τstart,这表示t1=0,并且示出了P2属于侧面三角形,这表示0<t2<1。数据结构将(h1,t1)和(h2,t2)与深度元素D相关联。图34示出了D∩T={P1,P2},其中,P1和P2属于侧面三角形,这表示0<t1<1以及0<t2<1。数据结构将(h1,t1)和(h2,t2)与深度元素D相关联。
现在参照图31-34讨论到5轴轨迹的示例计算的一般化。
用于由平移定义的基本轨迹的方法可以被一般化为由包括旋转在内的刚性运动定义的基本轨迹。如果旋转的角度值足够小,则这更加正确。下文解释在这种情况中如何计算(h,t)参数。
令τstart和τend是基本轨迹的初始的和最终的三角形。通过六个侧面三角形连同三角形τstart和τend来对扫掠体积的边界进行近似。将τstart的顶点与它们在τstart中的相应的副本相结合的三条线段被称为“时间线段”,如在图35中所示。随后近似的扫掠体积被划分成三个四面体。它们中的一个包括τstart而另一个包括τend。每个四面体仅包括一个时间线段,如图36中所示。向量e1、e2、e3根据下文的策略被关联到每个四面体。向量e3是时间线段,向量e1、e2是入射到τstart和/或τend的边。图37示出了针对每个四面体的e1、e2、e3向量。
通过使线深度元素与每个四面体的每个边界面相交并且通过使用公式(1)和(2)来执行(h,t)参数的计算。(h,t)图的折线被相应地生成。
上文的讨论提供了方法各方面的细节,方法的通用的直观性(即(h,t)图)方面的细节、以及通过方法执行的一些计算的示例用于经由几何相交以取回折线的末端点。(例如,特别地详细描述了一个深度元素与一个棱柱的三角形之间的交互)。然而,现实生活中的加工仿真涉及大量的深度元素和三角形,这使得计算时间成为关键问题。下文描述了有关如何布置深度元素以及如何使用棱柱的拓扑邻接(由扫掠相邻的三角形所引起)来加快计算的方法的示例。
在该示例中,计算S20所有折线(例如L1、L2、L3)的末端点还包括,针对每个网格M,首先确定该网格(M)的可见部分(M+)的子步骤(记为S22)。该可见部分是,如参照图14-16解释的,网格的指向切削工具的轨迹的部分(例如,面的最小子集)。应该注意到,M+可以包括多个子网格(即,分开的子网格,每个由连接的面构成)。这可以以任何方式执行。计算S20随后包括根据切削工具的轨迹来计算由可见部分扫掠的体积(S(M+))的边界(记为)的子步骤(记为S24)。这可以如以上解释的,使用棱柱和/或四面体来执行。并且随后,计算S20包括迭代子步骤(记为S28),其针对相应的(待计算的)折线的每个末端点,对上述的记为S282的确定,以及上述的记为S284的计算进行迭代。确定S282边界面包括识别被可见部分扫掠的体积(S(M+))的计算出的边界的相应的边界面。实际上,通过构建,(h,t)图中的折线的末端点与深度元素线和被网格面扫掠的体积的边界面之间的相交相对应,并且不是任何边界面,而是形成边界的边界面。示例的方法由此灵活地使用问题的几何特性来提高效率。
该示例的计算S20还可以包括针对每个网格M(显然地),确定S26与被可视部分的面扫掠的体积有关的邻接信息。该信息可以是指示被面扫掠的哪些体积(例如,棱柱和/或四面体)是相邻的任何类型的信息。这是基于网格的拓扑结构以直接的方式执行的,所述拓扑结构基于网格中的面的邻接和/或连接信息。然而,该拓扑信息允许高的速度效率。
实际上,对于每个相应的折线,计算S20可以随后包括以不同的方式确定S282计算出的边界的“第一”(或“进入”)面以及计算出的边界的“第二”(或离开)面。根据定义,相应的折线的末端点一般与两个3D点(即相同的深度元素线与计算出的边界的两个元素之间的相交上的点)相对应。现在,在该示例中实现的迭代S28当中,方法成对地考虑这样的边界面(即,深度元素线(例如)进入的“第一面”和深度元素线(例如)离开扫掠体积的“第二面”)。排序(“第一”和“第二”、“进入”和“离开”)是完全任意的并且取决于实现。
重要的是,不是暴力地识别出所有这样的面,方法在每次确定/找到第一面时实现所谓的“拓扑传播”,以便于找到其相关联的面(即,“第二面”)。具体地,确定S282与折线的末端点相关联的体积S(τ)的边界面包括通过几何计算(由此,规则的3D相交和相对繁重的计算,例如,上文参照图31-37解释的第一计算步骤)来确定计算出的边界的由深度元素的线相交的第一面。但是,在迭代S28期间的交替中,确定S282与同一折线的另一个末端点相关联的体积S(τ)的边界面包括通过基于邻接信息的拓扑传播(并且由此以相对非常快的方式)来确定计算出的边界的由深度元素的线相交的第二面(换句话说,与所述对中的第一面相关联的面,因为深度元素的线可能与相交于一对以上的点相交,并且由此可能相交于相交一个以上这样的对或其实例)。
现在进一步详述该拓扑传播特征。
在示例中,计算深度元素-三角形的相交如下执行。令M为初始网格,Pstart和Pend分别是基本轨迹的起点和终点。令M+为M的指向该基本轨迹的部分,并且令E+为M+的边界。不失一般性,假定M+是连通集。根据其性质,E+由三维闭合的折线组成。图38例示了这种情况。
·每个棱柱pi是M+的三角形τi的挤出结构(extrusion)。
·从E+的边挤出的平行四边形
·初始位置Pstart上的M+的三角形以及
·最终位置Pend上的M+的三角形。
·由两个相邻的棱柱pi和pj共享的平行四边形是由M+的三角形τi和τj共享的边的挤出结构。
这些邻接特性通过合适的拓扑数据结构来进行捕获。所述邻接特性由传播算法广泛使用。第一步是计算D与之间的相交点。其中发生该相交的面启动拓扑传播。随后,通过访问f0的邻面来找到与D相交的S(M+)的下一个棱柱p。这在图9的图中的标签A和B之间执行。
当计算在S(M+)的边界上的点时,传播结束。算法通过搜索D与S(M+)的边界面之间的另一个相交点来继续,如在一般情况中的,M+可以不是连通集。应该注意,根据该传播方法,根据相交点计算出的h值本质上是整体被排序的,这提高了效率。该特性被用于建立(h,t)图(即不需要对h值进行任何排序)。
现在,描述拓扑传播的核心。其发生在图40的图中的标签A与B之间。主要地,识别出了对面f0进行界定或起始的界边l0,以及与l0或f0有关的合适的三角形τ∈M+。下一个棱柱p是由三角形τ起始的棱柱。过程取决于与面f0相对的三角形相对的自然的平行四边形,如在图40的图中描述的。
在图41中示出的情况下,对算法进行例示。
2、由于面f0是平行四边形,因此得到使边界面f0起始的界边l0∈E+。
3、得到由l0界定的唯一的三角形τ1。
4、计算D与τ1的挤出结构p1的面之间的其他相交点。
5、得到开始与D相交的p1的面f1的边l1。
6、得到与τ1共享l1的三角形τ2。
7、计算D与τ2的挤出结构p2之间的其他相交点。
8、得到开始与D相交的p2的面f2的边l2。
9、得到与τ2共享l2的三角形τ3。
10、计算D与τ3的挤出结构p3的面的其他相交点。
11、得到开始与D相交的p3的面f3。
12、边l3是M+的界边,因此f3是S(M+)的边界面,并且传播结束,这是因为深度元素D局部地在S(M+)外。
在另一种情况中对算法进行了例示。图42的左侧图示出了其中与深度元素D相交的面f0是三角形的情况。图42的右侧图示出了从由V=Pend-Pstart定义的视点看到的S(M+)。在该右侧图中,每个三角形都是垂直于视平面的棱柱的底。
2、面f0是三角形并且边l0是生成与D相交的平行四边形的边。计算D与该平行四边形之间的相交点。
3、得到与f0共享l0的唯一的三角形τ1。
4、计算D与τ1的挤出结构p1的面之间的其他相交点。
5、得到开始与D相交的p1的面f1相交的边l1。
6、得到与τ1共享l1的三角形τ2。
7、计算D与τ2的挤出结构p2的面之间的其他相交点。
与D相交的p2的面f2是S(M+)的边界面,因此传播结束,这是因为深度元素局部地在S(M+)外。
现在,作为进一步的改进,对第一面的确定S282可以在深度元素的集合上实现栅格化(rasterization)。换言之,通过在被视为2D栅格的元素的深度元素上的的所有元素的栅格化来提供对第一面的确定S282。深度元素可以被考虑为2D栅格的元素(在垂直于栅格的正交平面中,深度元素是被同化成像素的2D位置)。
每个x、y和z方向的深度元素被布置成nm个深度元素的相邻的矩形的组。实现表明n=m=8给出好的性能。每个深度元素组与其边界框相关联。通过先删除边界框不与棱柱相遇的深度元素的组,搜索哪个深度元素可以与给定的棱柱相交被过滤。
应该注意到,上文的示例不限制方法的范围,因为还可以想到明显的修改。特别地,上文的讨论总是呈现“清楚的”3D相交点(在深度元素线和边界面之间,相交点总是被考虑为3D位置)。然而,应当理解,方法考虑了针对极端情况的明显调整,包括在深度元素线与形成了相交线段/直线(而不是点)的边界面相交时,其中,深度元素不与一个边界面相交,而是在几个边界面之间的边沿(两个面之间的线、或者甚至两个以上的面之间的点)处与多个边界面相交。例如,所述方法可以通过依赖所谓的精确的断言(predicates)来处理这些退化情况(参考Adaptive Precision Floating-Point Arithmetic and Fast RobustPredicates for Computational Geometry),这确保了鲁棒性和效率。方法还考虑了所有特定以及显而易见的实施方式,例如,对多次与同一边界面相交(例如,由于特定轨迹)的深度元素线的处理。
Claims (10)
1.一种用于对利用切削工具的工件的加工进行仿真的计算机实现的方法,所述切削工具具有至少一个切削部分和至少一个非切削部分,其中,所述方法包括:
·提供(S10):
-表示所述工件的深度元素的集合,每个深度元素包括表示线与所述工件之间的相交的至少一个线段的集合,
-所述切削工具的轨迹,所述切削工具的轨迹是刚性运动,以及
-表示所述切削工具的网格(M)的集合,每个网格表示所述切削工具的相应的切削部分或者非切削部分;
以及之后,针对每个深度元素(D):
·针对每个网格(M),根据所述切削工具的轨迹,计算(S20)所有折线(L1,L2,L3)的末端点,所述末端点将所述深度元素(D)的线与所述网格之间的相交的时间(t)描述为相交的高度(h)的函数;以及
·沿所述深度元素来测试(S30)所述切削工具与所述工件的冲突,其中,所述测试包括针对与属于所有网格的所有折线的集合的下包络的位置相对应的高度的值,所述位置所属的折线与非切削部分相关联,确定所述高度的值是否属于所述深度元素的线段。
2.根据权利要求1所述的方法,其中,计算(S20)所述所有折线(L1,L2,L3)的末端点包括,针对每个网格(M)以及,针对相应的折线的每个末端点:
·基于与所述相应的折线相关联的所述网格的所有面,根据所述切削工具的轨迹来确定(S282)由所述网格的面扫掠的体积(S(τ))的边界面,所述边界面与所述深度元素的线的相交与所述末端点相对应;以及
·基于所述深度元素的线与确定的边界面之间的相交来计算(S284)时间和高度。
3.根据权利要求2所述的方法,其中,计算(S20)所述所有折线(L1,L2,L3)的末端点还包括,针对每个网格(M):
·确定(S22)所述网格(M)的能够看见的部分(M+),所述能够看见的部分是所述网格的指向所述切削工具的轨迹的部分;
4.根据权利要求3所述的方法,其中,计算(S20)所述所有折线(L1,L2,L3)的末端点还包括针对每个网格(M),确定(S26)与由所述能够看见的部分的面扫掠的体积有关的邻接信息,以及针对每个相应的折线:
·确定(S282)由所述网格的面扫掠的体积(S(τ))的边界面包括通过几何计算来确定由所述能够看见的部分扫掠的所述体积(S(M+))的所述计算出的边界的第一面,其中,所述边界面与所述深度元素的线的相交与所述折线的第一末端点相对应,所述第一面与所述深度元素的线相交;以及
5.根据权利要求4所述的方法,其中,所述迭代(S28)在所述深度元素的集合上进行并行化。
6.根据权利要求5所述的方法,其中,确定(S282)第一面在所述深度元素的集合上实现栅格化。
7.一种用于生产产品的方法,其中,所述方法包括仿真阶段,在所述仿真阶段中重复权利要求1-6中的任一项所述的用于对加工进行仿真的所述方法,以及随后的对工件的加工阶段。
8.一种用于对利用切削工具的工件的加工进行仿真的系统,包括耦合到存储器的处理器,所述存储器具有记录在其上的用于执行权利要求1-6中的任何一项所述的方法的指令。
9.根据权利要求8所述的系统,其中,所述处理器是图形处理单元。
10.一种计算机可读存储介质,具有记录在其上并用于执行权利要求1-6中的任一项所述方法的指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP14307225.4A EP3040797B1 (en) | 2014-12-31 | 2014-12-31 | Simulating the machining of a workpiece |
EP14307225.4 | 2014-12-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105740497A CN105740497A (zh) | 2016-07-06 |
CN105740497B true CN105740497B (zh) | 2021-07-09 |
Family
ID=52432623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511024992.2A Active CN105740497B (zh) | 2014-12-31 | 2015-12-30 | 对工件的加工进行仿真 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10140395B2 (zh) |
EP (1) | EP3040797B1 (zh) |
JP (1) | JP6787661B2 (zh) |
KR (1) | KR20160082481A (zh) |
CN (1) | CN105740497B (zh) |
CA (1) | CA2915331A1 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2590143B1 (en) | 2011-11-03 | 2018-10-24 | Dassault Systèmes | Simulation of the machining of a workpiece |
EP2590144B1 (en) | 2011-11-03 | 2018-10-24 | Dassault Systèmes | Designing a modeled volume represented by dexels |
US9971335B2 (en) * | 2014-04-11 | 2018-05-15 | Thomas Marshall Tucker | Hybrid dynamic tree data structure and accessibility mapping for computer numerical controlled machining path planning |
US10423669B2 (en) * | 2016-01-04 | 2019-09-24 | Hanwha Precision Machinery Co., Ltd. | Manufacturing process visualization apparatus and method |
EP3220223B1 (de) * | 2016-03-16 | 2021-07-14 | Siemens Aktiengesellschaft | Verfahren zur bearbeitung eines werkstücks in einer werkzeugmaschine mit optimierter bearbeitungszeit |
IL247245B (en) * | 2016-08-11 | 2019-01-31 | Technion Res & Dev Foundation | Systems and methods for printing 3D models |
KR20190093552A (ko) * | 2016-08-12 | 2019-08-09 | 지멘스 코포레이션 | 그래픽스 프로세싱 유닛(gpu)들을 사용한 고분해능 격자 구조들에 대한 컴퓨터 보조 설계 |
EP3293648B1 (en) * | 2016-09-12 | 2024-04-03 | Dassault Systèmes | Representation of a skeleton of a mechanical part |
WO2018053637A1 (en) * | 2016-09-22 | 2018-03-29 | The University Of British Columbia | Geometric modelling for facilitating simulation for manufacturing operations |
CN108345503A (zh) * | 2018-01-18 | 2018-07-31 | 杭州电子科技大学 | 基于cpu-gpu的b样条曲面并行刀轨规划方法 |
EP3525175A1 (en) * | 2018-02-09 | 2019-08-14 | Dassault Systèmes | Designing a part manufacturable by milling operations |
JP6777672B2 (ja) * | 2018-04-03 | 2020-10-28 | Dmg森精機株式会社 | 情報処理装置、情報処理方法および情報処理プログラム |
EP3877889B1 (en) * | 2018-11-09 | 2023-09-27 | Autodesk, Inc. | Boundary based generative design with 2.5-axis subtractive manufacturing constraint for computer aided design and manufacturing |
EP3674930B1 (en) * | 2018-12-26 | 2024-02-28 | Dassault Systèmes | Designing a mechanical part |
TWI716849B (zh) | 2019-04-10 | 2021-01-21 | 財團法人工業技術研究院 | 預先檢測加工路徑碰撞方法及系統 |
US11243510B2 (en) * | 2020-05-20 | 2022-02-08 | Autodesk, Inc. | Computer aided generative design with tool size control to facilitate 2.5-axis subtractive manufacturing processes |
JP7567723B2 (ja) | 2021-08-30 | 2024-10-16 | 株式会社ジェイテクト | 歯車研削加工シミュレーション方法および装置 |
JP7284468B1 (ja) * | 2022-06-06 | 2023-05-31 | 株式会社コアコンセプト・テクノロジー | 3次元cad/camシステム |
JP7422906B1 (ja) * | 2023-01-30 | 2024-01-26 | アルム株式会社 | 加工制御装置、加工制御装置の制御方法およびプログラム |
CN116049995B (zh) * | 2023-03-15 | 2023-06-02 | 中国空气动力研究与发展中心高速空气动力研究所 | 级间分离试验中基于虚拟样机的特种机构碰撞预测方法 |
CN116493681A (zh) * | 2023-03-17 | 2023-07-28 | 西安钧诚精密制造有限公司 | 一种壳体内圆的切削控制系统及切削装置 |
CN116740317B (zh) * | 2023-08-14 | 2023-11-03 | 济南邦德激光股份有限公司 | 一种用于激光数控的三维仿真可视化展示方法及设备 |
CN118081477B (zh) * | 2024-04-28 | 2024-08-13 | 通用技术集团机床工程研究院有限公司 | 工件加工方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5710709A (en) * | 1993-08-19 | 1998-01-20 | Iowa State University Research Foundation, Inc. | NC milling simulation and dimensional verification via dexel representation |
CN101537585A (zh) * | 2009-03-26 | 2009-09-23 | 山东理工大学 | 产品的数控加工实时切削仿真方法 |
CN102282561A (zh) * | 2009-01-15 | 2011-12-14 | 三菱电机株式会社 | 冲突判定装置以及冲突判定程序 |
CN102490081A (zh) * | 2011-11-14 | 2012-06-13 | 华中科技大学 | 基于球头铣削加工的工件三维表面形貌的仿真方法 |
EP2590143A1 (en) * | 2011-11-03 | 2013-05-08 | Dassault Systèmes | Simulation of the machining of a workpiece |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4833617A (en) | 1987-08-14 | 1989-05-23 | General Electric Company | Solid modeling based adaptive feedrate control for NC machining |
US6311100B1 (en) | 1998-09-14 | 2001-10-30 | Mass. Institute Of Technology | Tool path generator for computer aided manufacturing |
DE19846426A1 (de) | 1998-10-08 | 2000-04-13 | Open Mind Software Technologie | Verfahren zum Steuern der Arbeitsbewegung eines Werkzeugs zur materialabtragenden Bearbeitung eines Materialblocks |
US20020133264A1 (en) | 2001-01-26 | 2002-09-19 | New Jersey Institute Of Technology | Virtual reality system for creation of design models and generation of numerically controlled machining trajectories |
DE10144932B4 (de) | 2001-09-12 | 2014-07-31 | Siemens Aktiengesellschaft | Visualisierung von Werkstücken bei der Simulation von Fräsprozessen |
WO2004110309A2 (en) | 2003-06-11 | 2004-12-23 | Case Western Reserve University | Computer-aided-design of skeletal implants |
DE10330831A1 (de) | 2003-07-08 | 2005-02-10 | Mtu Aero Engines Gmbh | Fräsverfahren zur Fertigung von Bauteilen |
KR100517880B1 (ko) | 2003-11-20 | 2005-09-28 | 학교법인 포항공과대학교 | Cnc 가공에서 생산시간 단축과 가공 정밀도 향상을위한 이송속도 스케줄링 방법 |
US20070203589A1 (en) | 2005-04-08 | 2007-08-30 | Manyworlds, Inc. | Adaptive Recombinant Process Methods |
US7747418B2 (en) | 2005-12-09 | 2010-06-29 | Leu Ming C | Computer aided dental bar design |
DE102007059568A1 (de) | 2007-12-11 | 2009-06-18 | Mtu Aero Engines Gmbh | Tauchfräsverfahren |
US8538574B2 (en) | 2009-04-02 | 2013-09-17 | Dmg Electronics Gmbh | Method and apparatus for generating control data for controlling a tool on a machine tool |
US8265909B2 (en) | 2009-05-19 | 2012-09-11 | Mitsubishi Electric Research Laboratories, Inc. | Method for reconstructing a distance field of a swept volume at a sample point |
EP2486462B1 (en) | 2009-10-06 | 2014-04-09 | Pécsi Tudomànyegyetem | Method, computer system and computer program product for machining simulation and for visually presenting such simulation |
KR101327571B1 (ko) | 2009-11-10 | 2013-11-12 | 미츠비시 쥬고교 가부시키가이샤 | 워크 계측 장치, 충돌 방지 장치 및 공작기계 |
DE112010005458T5 (de) | 2010-04-07 | 2013-01-24 | Mitsubishi Electric Corp. | Bearbeitungssimulationsverfahren, Einrichtung für dasselbe und Programm zum Veranlassen eines Computers, das Verfahren auszuführen |
EP2590142B1 (en) | 2011-11-03 | 2018-03-14 | Dassault Systèmes | Designing a modeled volume represented by dexels |
EP2590144B1 (en) | 2011-11-03 | 2018-10-24 | Dassault Systèmes | Designing a modeled volume represented by dexels |
-
2014
- 2014-12-31 EP EP14307225.4A patent/EP3040797B1/en active Active
-
2015
- 2015-11-30 US US14/954,820 patent/US10140395B2/en active Active
- 2015-12-15 JP JP2015244168A patent/JP6787661B2/ja active Active
- 2015-12-15 CA CA2915331A patent/CA2915331A1/en not_active Abandoned
- 2015-12-30 CN CN201511024992.2A patent/CN105740497B/zh active Active
- 2015-12-30 KR KR1020150189514A patent/KR20160082481A/ko unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5710709A (en) * | 1993-08-19 | 1998-01-20 | Iowa State University Research Foundation, Inc. | NC milling simulation and dimensional verification via dexel representation |
CN102282561A (zh) * | 2009-01-15 | 2011-12-14 | 三菱电机株式会社 | 冲突判定装置以及冲突判定程序 |
CN101537585A (zh) * | 2009-03-26 | 2009-09-23 | 山东理工大学 | 产品的数控加工实时切削仿真方法 |
EP2590143A1 (en) * | 2011-11-03 | 2013-05-08 | Dassault Systèmes | Simulation of the machining of a workpiece |
CN102490081A (zh) * | 2011-11-14 | 2012-06-13 | 华中科技大学 | 基于球头铣削加工的工件三维表面形貌的仿真方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3040797B1 (en) | 2020-10-28 |
CN105740497A (zh) | 2016-07-06 |
CA2915331A1 (en) | 2016-06-30 |
US20160188770A1 (en) | 2016-06-30 |
JP2016126776A (ja) | 2016-07-11 |
KR20160082481A (ko) | 2016-07-08 |
EP3040797A1 (en) | 2016-07-06 |
US10140395B2 (en) | 2018-11-27 |
JP6787661B2 (ja) | 2020-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105740497B (zh) | 对工件的加工进行仿真 | |
JP7164295B2 (ja) | 3dプリンティングのための現実の物体の向き付け | |
CN107067473B (zh) | 用于对3d建模对象进行重构的方法、装置及系统 | |
CN110134982B (zh) | 可通过铣削操作制造的部件的设计 | |
CN108228987B (zh) | 副本选择 | |
JP6282798B2 (ja) | 工作物の機械加工のシミュレーション | |
JP6356378B2 (ja) | 幾何学的三次元モデルオブジェクトを設計する方法 | |
US11100710B2 (en) | Extracting a feature tree from a mesh | |
CN108073682B (zh) | 基于参数视图函数查询数据库 | |
JP7235462B2 (ja) | 機械部品を表す2d図面の生成 | |
JP2010277585A (ja) | サンプル点において掃引容積の距離場を再構成する方法 | |
CN114078182A (zh) | 用于输出参数化3d模型的神经网络 | |
JP2017142779A (ja) | 切り欠きの検出 | |
CN114078169A (zh) | 用于输出3d模型的变分自动编码器 | |
JP2023056515A (ja) | モデル化オブジェクトの設計 | |
US11195330B2 (en) | Generation of a structured 3D model from a raw mesh | |
JP7256005B2 (ja) | 実オブジェクトのスキンを表すファセットの集合の決定 | |
US20230177229A1 (en) | Partitioning 3d cad model | |
JP2021131852A (ja) | 機械部品の構造シミュレーション | |
Lim et al. | Virtual Bloxing–Assembly Rapid Prototyping of Near Net Shapes | |
Tengler et al. | Ways of uneven road surface modelling used in the vehicle dynamics analysis | |
JP2024035154A (ja) | 工場を表す3dモデルの生成 | |
Lim et al. | Virtual assembly rapid prototyping of near net shapes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |