CN112182790A - 设计以凹凸为特征的零件 - Google Patents
设计以凹凸为特征的零件 Download PDFInfo
- Publication number
- CN112182790A CN112182790A CN202010632396.7A CN202010632396A CN112182790A CN 112182790 A CN112182790 A CN 112182790A CN 202010632396 A CN202010632396 A CN 202010632396A CN 112182790 A CN112182790 A CN 112182790A
- Authority
- CN
- China
- Prior art keywords
- faces
- face
- rep
- feature
- perimeter
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/17—Mechanical parametric or variational design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/15—Vehicle, aircraft or watercraft design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/12—Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/30—Polynomial surface description
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/18—Manufacturability analysis or optimisation for manufacturability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04817—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/12—Bounding box
-
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/42—Document-oriented image-based pattern recognition based on the type of document
- G06V30/422—Technical drawings; Geographical maps
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computational Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Architecture (AREA)
- Human Computer Interaction (AREA)
- Automation & Control Theory (AREA)
- Aviation & Aerospace Engineering (AREA)
- Algebra (AREA)
- Mathematical Physics (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明涉及一种计算机实现的方法,其用于利用CAD系统设计表示机械零件的3D建模对象。该方法包括:显示具有面和边并且表示所述机械零件的至少一部分的B‑rep,通过图形用户交互选择所述B‑rep的至少一个面,以及通过所述CAD系统自动地识别包括所述至少一个面并且表示凹凸的面集。识别包括:确定表示凹陷的第一面集和表示凸起的第二面集;以及在所述第一面集和所述第二面集之中,选择具有最短边界曲线周长并且与所选择的至少一个面和所述B‑rep二者都不同的面集。所述第一面集和所述第二面集二者都包括所述至少一个面。
Description
技术领域
本发明涉及计算机程序和系统的领域,并且更具体地,涉及一种用于利用CAD系统来设计表示机械零件的3D建模对象的方法、系统和程序。
背景技术
市场上提供了许多用于对象的设计、工程和制造的系统和程序。CAD是计算机辅助设计的首字母缩写,例如它涉及用于设计对象的软件解决方案。CAE是计算机辅助工程的首字母缩写,例如它涉及用于模拟未来产品的物理行为的软件解决方案。CAM是计算机辅助制造的首字母缩写,例如它涉及用于定义制造过程和操作的软件解决方案。在这样的计算机辅助设计系统中,图形用户界面对于技术的高效起着重要的作用。这些技术可以嵌入在产品生命周期管理(PLM)系统内。PLM指的是一种商业战略,该战略帮助公司跨扩展企业的概念共享产品数据、应用通用流程并针对从概念到其生命结束的产品开发利用企业知识。由达索系统(Dassault Systèmes)提供的PLM解决方案(商标为CATIA、ENOVIA和DELMIA)提供了:工程中心,它组织产品工程知识;制造中心,它管理制造工程知识;以及企业中心,它实现企业集成并连接到工程中心和制造中心二者中。系统共同提供了开放的对象模型,以将产品、过程、资源连接起来,以实现动态的、基于知识的产品创建和决策支持,其驱动优化的产品定义、制造准备、生产和服务。
在机械设计的上下文中,凹凸是由表示机械零件的至少一部分的B-rep的面表示的功能特征。它可能难以识别和/或选择表示凹凸的所有面。
用于凹凸识别和/或选择的现有方法遭受缺乏效率和/或工效学(ergonomics)的困扰。
在这种上下文内,仍然需要用于设计机械零件的改进的方法。
发明内容
因此,提供了一种计算机实现的方法,其用于利用CAD系统来设计表示机械零件的3D建模对象。该方法包括显示表示所述机械零件的至少一部分的B-rep。所述B-rep具有面和边。所述方法还包括:通过图形用户交互,选择所述B-rep的至少一个面。该方法还包括:通过所述CAD系统,自动地识别面集。所述面集包括所选择的至少一个面。所述面集表示凹凸。识别所述面集包括确定第一面集和第二面集。所述第一面集和所述第二面集二者都包括所述至少一个面。所述第一面集表示凹陷并且所述第二面集表示凸起。识别所述面集还包括:在所述第一面集和所述第二面集之中,选择具有最短边界曲线周长并且与所选择的至少一个面和所述B-rep二者都不同的面集。
这构成了一种用于设计机械零件的改进的方法。
显著地,该方法允许识别表示B-rep中的凹凸的一个面集。换言之,该方法允许确定与机械设计相关的信息。显著地,表示凹凸的面集一旦被识别具可以输出给用户,使得可以对该面集执行设计操作。该方法可以还包括自动地并且以统一的方式对凹凸的所有面和/或边执行单个设计操作。
此外,该方法自动地识别面集。换言之,该方法不涉及在所述识别时的用户动作。该方法因此是符合工效学的。
此外,该方法分两步继续,首先选择至少一个面,并且然后识别包括所选择的至少一个面且表示凹凸的面集。这种两步方法改善了效率和工效学,这是因为用户仅选择凹凸的一部分(即,至少一个面)就足以使凹凸被自动识别。
这种两步方法实际上允许用户以简单的方式选择至少一个面,这是因为至少一个面不需要包含均表示凹凸的所有面。例如,至少一个面可以仅包含一个面(即,单个面)。然后,对面集的自动识别可以(例如,迭代地)从所选择的至少一个面推导出该面集。换言之,自动识别可以迭代地用邻接面扩展至少一个面,直到找到表示凹凸的面集为止。换言之,用户简单地选择一个面就足以然后自动识别一个面仅表示其一部分的凹凸。这使得该方法特别符合工效学并且高效。
此外,对面集本身的识别也以两步方法继续,首先确定第一面集和第二面集,并且然后在它们之中选择一个面集。这使得该方法高效且鲁棒。实际上,包括至少一个面的凹凸可以是凸起或凹陷,但是该方法在不知道是凸起还是凹陷的情况下识别凹凸。显著地,因为第一面集和第二面集中的至少一个(例如,仅一个)是真实地表示凹凸的面集,并且该方法在任何情况下通过查找表示凸起的面集和表示凹陷的面集二者(两个面集都包括至少一个面)来确定这两个面集。这确保至少一个表示凹凸的集被确定。然后,在第一面集和第二面集之中选择表示凹凸的集允许向用户输出两个集之中的表示凹凸的一个集。因此,当用户只选择凹凸的一小部分(即,至少一个面)时,就获得了他/她想要获得的凹凸。
该选择在第一面集和第二面集之中选择具有最短边界曲线周长并且与所选择的至少一个面和B-rep二者都不同的一个面集。现在,当选择至少一个面时,用户期望包括至少一个面的面集被识别。该面集用于表示凹凸。因此,该面集不应包括太多的面,而应仅包括表示凹凸的面。在第一面集和第二面集之中选择具有最短边界曲线周长的面允许识别不包括太多面且真正表示凹凸的面。这是在两个确定的面集之中选择真正表示凹凸的面集的高效方式。实际上,可以说“识别包括至少一个面的最小凹凸”或者“将至少一个面扩展到包括它的最小凹凸”。换言之,当用户仅选择了他/她想要选择的凹凸的一部分时,为用户提供自动的“最小凹凸识别”。
此外,独立于凹凸是凸起还是凹陷的任何知识来识别凹凸的能力是特别有利的。用户实际上只需选择他/她想要完全选择的凹凸的一小部分(即,至少一个面),并且然后凹凸被自动识别,无论它是凸起还是凹陷,对此用户实际上可能不知道。当B-rep是开放的,这更为有利,在这种情况下,如下文进一步讨论的,突起和凹陷的概念对于用户来说在视觉上可能是模糊的。
所述方法可以包括以下操作中的一个或多个:
-第一面集包括不包含凸内边(convex internal edge)和圆形面的一个或多个面的第一连接集,并且第二面集包括不包含凹内边(concave internal edge)和圆角面(filet face)的一个或多个面的第二连接集;
-一个或多个面的第一连接集仅以凸边和/或圆形面为边界,并且一个或多个面的第二连接集仅以凹边和/或圆角面为边界;
-第一面集包含一个或多个面的第一连接集,并且第二面集包含一个或多个面的第二连接集;
-至少一个面包含B-rep的一个面;
-在以下情况下,面集具有相对于另一面集的最短边界曲线:
·面集的边界曲线周长严格小于另一面集的边界曲线周长;或
·面集的边界曲线周长等于另一面集的边界曲线周长,并且面集的边界框的长度小于另一面集的边界框的长度;
-选择面集包括:
·确定:
■第一面集或第二面集是否是至少一个面;以及
■第一面集或第二面集是否是B-rep;然后
·如果第一面集和第二面集都不是B-rep,并且如果第一面集和第二面集都不是至少一个面,则:
■确定第一面集的边界曲线周长是否等于第二面集的边界曲线周长;以及
■如果第一面集的边界曲线周长等于第二面集的边界曲线周长,则将第一面集的边界框的长度和第二面集的边界框的长度进行比较;
-B-rep是开放的B-rep;
-B-rep对应于机械零件的物理表面;
-机械零件为:
·模制零件;
·机加工零件;
·钻孔零件;
·车削零件;
·锻造零件;
·冲压零件;和/或
·折叠零件;和/或
-凹凸为:
·质量减少特征;
·空间预留特征;
·固定器特征;
·紧度特征;
·调整特征;
·定位特征;
·机械接合特征;
·冷却特征;
·外卷或圆柱形机械接合特征;
·组装特征;
·加固特征;和/或
·用于所有机加工和钻孔凸起特征的支撑。
进一步提供了一种计算机程序,包括用于执行该方法的指令。
进一步提供了一种计算机可读存储介质,其上记录有该计算机程序。
进一步提供了一种系统,该系统包括耦合到存储器的处理器和图形用户界面,该存储器在其上记录有该计算机程序。
附图说明
现在将通过非限制性示例的方式并参考附图来描述本发明的实施例,其中:
图1示出了系统的图形用户界面的示例;
图2示出了系统的示例;并且
图3至图32示出了该方法。
具体实施方式
该方法是计算机实现的。这意味着该方法的步骤(或实质上所有步骤)由至少一台计算机或任何类似系统执行。因此,该方法的步骤由计算机(可能全自动地或半自动地)执行。在示例中,可以通过用户-计算机交互来执行触发方法的步骤的至少一些。所需的用户-计算机交互水平可以取决于所预见的自动化水平,并且与实现用户愿望的需要保持平衡。在示例中,该水平可以是用户定义的和/或预定义的。
方法的计算机实施方式的典型示例是利用适于此目的的系统来执行该方法。该系统可以包括耦合到存储器的处理器和图形用户界面(GUI),该存储器在其上记录有包括用于执行该方法的指令的计算机程序。存储器还可以存储数据库。存储器是适于这种存储的任何硬件,可能包括若干物理的不同的部分(例如,一个用于程序,并且可能一个用于数据库)。
该方法通常操纵建模对象。建模对象是由存储在例如数据库中的数据定义的任何对象。通过扩展,表达“建模对象”指定数据本身。该系统可以是CAD系统,并且由对应的数据定义建模对象。因此,人们可以说CAD对象。
通过CAD系统,附加地意味着至少适合于基于建模对象的图形表示来设计建模对象的任何系统(例如,CATIA)。在这种情况下,定义建模对象的数据包括允许表示建模对象的数据。CAD系统可以例如使用边或线(在某些情况下具有面或表面)来提供CAD建模对象的表示。线、边或表面可以以各种方式来表示,例如非均匀有理B-样条(NURBS)。特别地,CAD文件包含这样的规范:可以从中生成几何结构,这转而允许生成表示。建模对象的规范可以存储在单个或多个CAD文件中。表示CAD系统中建模对象的文件的典型大小在每零件1兆字节的范围内。并且建模对象通常可以是数千个零件的组装件。
在CAD的上下文中,建模对象通常可以是3D建模对象,例如以表示产品(例如,零件或零件的组装件),或者可能是产品的组装件。通过“3D建模对象”,它意味着通过允许其3D表示的数据来建模的任何对象。3D表示允许从所有角度查看零件。例如,3D建模对象当被3D表示时可以围绕其轴中的任一个或围绕显示该表示的屏幕中的任何轴进行处理和转动。这显然不包括2D图标,这些图标不是3D建模的。3D表示的显示促进设计(即,提高设计者在统计上完成其任务的速度)。这加快了工业中的制造过程,这是因为产品的设计是制造过程的一部分。
3D建模对象可以表示在完成其虚拟设计之后要在现实世界中制造的产品的几何结构,所述完成其虚拟设计例如利用CAD软件解决方案或CAD系统,例如(例如,机械)零件或零件的组装件(或等同地零件的组装件,这是因为从该方法的角度来看,零件的组装件可以被视为零件本身,或者该方法可以独立地应用于组装件的每个零件),或者更一般地,任何刚体组装件(例如,移动机构)。CAD软件解决方案允许在各种各样的和不受限的工业领域中设计产品,领域包括:航空航天、建筑、建设、消费品、高科技设备、工业装备、运输、海运和/或近海石油/天然气生产或运输。通过该方法设计的3D建模对象可以因此表示工业产品,该工业产品可以是任何机械零件,例如陆地车辆(包括例如,汽车和轻型卡车装备、赛车、摩托车、卡车和电机装备、卡车和公共汽车、火车)的零件、飞行器(包括例如,机身装备、航空航天装备、推进装备、国防产品、航空装备、航天装备)的零件、海军载具的零件(包括例如,海军装备、商船、近海装备、游艇和作业船、航海装备)、通用机械零件(包括例如,工业制造机械、重型移动机械或装备、安装的装备、工业装备产品、金属加工制品、轮胎制造产品)、电子机械或电子零件(包括例如,消费电子产品,安全和/或控制和/或仪表产品、计算和通信装备、半导体、医疗设备和装备)、消费品(包括例如,家具、家居和花园产品、休闲用品、时尚产品、耐用品零售商的产品、纺织品零售商的产品)、包装(包括例如,食品饮料和烟草、美容和个人护理、家用产品包装)。
在示例中,通过该方法设计的机械零件是以下各项中的任何一项或任何组合:模制零件(即,通过模制制造工艺制造的零件)、机加工零件(即,通过机加工制造工艺制造的零件)、钻孔零件(即,通过钻孔制造工艺制造的零件)、车削零件(即,通过车削制造工艺制造的零件)、锻造零件(即,通过锻造制造工艺制造的零件)、冲压零件(即,通过冲压制造工艺制造的零件)和/或折叠零件(即,通过折叠制造工艺制造的零件)。该方法对于设计经常包括凹凸的机械零件的这种示例特别高效。在这些示例的具体示例中,通过该方法设计的机械零件是模制零件、车削零件、冲压零件和/或折叠零件中的任何一个或任何组合。该方法对于设计特别是经常包括凹凸的机械零件的这种示例特别高效。
图1示出了系统的GUI的示例,其中系统是CAD系统。
GUI 2100可以是典型的类似CAD的界面,具有标准的菜单栏2110、2120以及底部和侧面工具栏2140、2150。此类菜单栏和工具栏包含一组用户可选择的图标,每个图标与一个或多个操作或功能相关联,如本领域中已知的。这些图标中的一些与软件工具相关联,适于编辑GUI 2100中显示的3D建模对象2000和/或对其起作用。可以将软件工具分组为工作台。每个工作台都包括软件工具的子集。特别地,工作台中的一个是编辑工作台,适于编辑建模产品2000的几何特征。在操作中,设计者可以例如预先选择对象2000的一部分,并且然后发起操作(例如,改变尺寸、颜色等)或通过选择适当的图标来编辑几何约束。例如,典型的CAD操作是建模在屏幕上显示的3D建模对象的冲压或折叠。GUI可以例如显示与所显示的产品2000相关的数据2500。在附图的示例中,显示为“特征树”的数据2500及其3D表示2000属于包括制动钳和制动盘的制动组装件。GUI可以进一步示出各种类型的图形工具2130、2070、2080,例如用于促进对象的3D定向、用于触发对已编辑产品的操作的模拟或呈现所显示的产品2000的各种属性。光标2060可以由触觉设备控制,以允许用户与图形工具进行交互。
图2示出了系统的示例,其中系统是客户端计算机系统,例如用户的工作站。
该示例的客户端计算机包括连接到内部通信总线1000的中央处理单元(CPU)1010、也连接到该总线的随机存取存储器(RAM)1070。客户端计算机进一步被提供有图形处理单元(GPU)1110,该图形处理单元与连接到总线的视频随机存取存储器1100相关联。视频RAM 1100在本领域中也被称为帧缓冲器。大容量存储设备控制器1020管理对大容量存储器设备(例如,硬盘驱动器1030)的访问。适合于有形地体现计算机程序指令和数据的大容量存储器设备包括非易失性存储器的所有形式,包括例如:半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘和可移动磁盘;磁光盘;以及CD-ROM磁盘1040。上述任何一项可以由专门设计的ASIC(专用集成电路)补充或并入专门设计的ASIC中。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,例如光标控制设备、键盘等。在客户端计算机中使用光标控制设备,以允许用户有选择地将光标定位在显示器1080上的任何期望位置处。此外,光标控制设备允许用户选择各种命令,并且输入控制信号。光标控制设备包括用于到系统的输入控制信号的多个信号生成设备。通常,光标控制设备可以是鼠标,鼠标按钮被用于生成信号。替代地或附加地,客户端计算机系统可以包括敏感垫和/或敏感屏幕。
计算机程序可以包括可由计算机执行的指令,该指令包括用于使上述系统执行方法的单元。程序可以是可记录在任何数据存储介质上的,包括系统的存储器。该程序可以例如在数字电子电路中、或计算机硬件、固件、软件中或它们的组合中实现。该程序可以被实现为装置,例如有形地体现在机器可读的存储设备中的产品,以供可编程处理器执行。方法步骤可以通过执行指令的程序的可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行该方法的功能。处理器可以因此是可编程的并且被耦合以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,以及向数据存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。应用程序可以用高级过程式编程语言或面向对象的编程语言实现,或者如果被期望,可以用汇编语言或机器语言实现。在任何情况下,语言都可以是经编译或解释的语言。程序可以是完整的安装程序或更新程序。程序在系统上的应用在任何情况下都会产生用于执行该方法的指令。
“设计3D建模对象”指定是详细说明3D建模对象的过程的至少一部分的任何动作或一系列动作。因此,该方法可以包括从头开始创建3D建模对象。替代地,该方法可以包括提供先前创建的3D建模对象,并且然后修改3D建模对象。
该方法可以被包括在制造过程中,该制造过程可以包括在执行该方法之后产生与建模对象相对应的物理产品。在任何情况下,通过该方法设计的建模对象都可以表示制造对象。建模对象可以因此是建模固体(即,表示固体的建模对象)。制造对象可以是产品,例如零件或零件的组装件。因为该方法改进了建模对象的设计,该方法也改进了产品的制造,并且因此提高了制造过程的生产率。
现在讨论了表示机械零件的至少一部分的B-rep的显示。在该讨论之前,现在参考图3-25讨论了方法中涉及的B-rep概念。
B-Rep包括拓扑实体和几何实体。拓扑实体是:面、边和顶点。几何实体是3D对象:表面、平面、曲线、直线、点。根据定义,面是表面的边界部分,称为支撑表面。边是曲线的边界部分,称为支撑曲线。顶点是3D空间中的点。它们如下相互关联。曲线的边界部分由曲线上的两个点(顶点)定义。表面的边界部分由其边界定义,该边界是位于表面上的一组边。面的边界的边通过共享顶点连接。面通过共享边连接。如果两个面共享边,则它们是相邻的。类似地,如果两条边共享顶点,则它们是相邻的。图3示出了由三个面构成的圆柱形槽的B-rep:顶部平面和两个侧面圆柱面。图3示出了槽的透视图。可见的面、边和顶点都被编号。图4示出了所有面的分解图。重复的数字示出了边和顶点共享。面1是平面的边界部分。面1的边界包括边4和5,它们中的每个由顶点以10和11为边界。它们二者都有相同的支撑圆。面2以边6、8、5和13为边界,这些边都位于无限的圆柱表面上。面1和面2相邻,这是因为它们共享边5。面2和面3相邻,这是因为它们共享边8和边13。面1和面3相邻,这是因为它们共享边4。图5示出了说明图3和图4的B-Rep的“以其为边界(is bounded by)”拓扑关系的图。上层节点为面,中层节点为边,并且下层节点为顶点。图6示出了说明图4的B-rep的拓扑实体(面、边、顶点)之间的关系的图。图7示出了支撑几何结构。在CAD系统中,B-Rep以适当的数据结构收集“以其为边界”关系、拓扑实体与支撑几何结构之间的关系以及支撑几何结构的数学描述。
根据定义,B-Rep的内部边由正好两个面共享。根据定义,边界边不是共享的,它只形成一个面的边界。根据定义,边界面以至少一条边界边为边界。如果B-Rep的所有边都是内部边,则B-Rep被称为闭合的。如果B-Rep包括至少一个边界边,则B-Rep被称为开放的。图3和图4中所示的示例的B-Rep是开放的,这是因为边6和边7是边界边。相反,边4、5、8和13是内部边。如图8所示,通过添加以边6和边7为边界的盘状面14,从图3和图4的示例中获得了闭合的B-Rep。图8示出了闭合的B-rep,并且图9示出了说明闭合的B-rep的“以其为边界”拓扑关系的图。闭合的B-rep用于建模厚3D体积,这是因为它定义了空间(实际上)封闭材料的内部部分。开放的B-Rep用于建模3D蒙皮,该蒙皮表示其厚度足够小到可以忽略的3D对象。在该方法的情况下,开放的B-rep可以显著地建模表示机械零件的物理表面的3D蒙皮。
B-Rep的每个面都装备有法向量,该法向量在支撑表面的帮助下被定义。首先,法向量与支撑表面的法向量共线。此外,表示机械零件的闭合B-Rep的法向量被指向材料外部。设F为B-Rep的面,并且N为它的外法向量。设E为面F的边,X为边E上的点,并且T为点X处的边E的归一化切线向量。根据定义,如果向量M=N×T指向面的内部区域,则边E逆时针方向地定向,如图10所示。注意,因为向量N和T是归一化的且垂直的,所以向量M是归一化的。按照惯例,B-Rep的所有面的所有边都是逆时针方向地定向的,如图11中所示。
因为无法定义内部和外部,因此定向开放的B-rep(其也被称为“开放蒙皮”)是模糊的。因此,如图12和图13所示,任何开放蒙皮都可以装备有两个朝向。图12示出了以第一方向定向的开放蒙皮,而图13示出了以第二方向定向的相同开放蒙皮。
在开放的B-rep的情况下,则朝向是任意的并且由CAD系统选择。这可能对用户没有意义,特别是因为用户可能不知道朝向是指向材料内部还是外部。换言之,CAD系统可以独立于材料内部或外部的位置对开放的B-rep进行任意地定向,而封闭的B-rep具有指向材料外部的法向量。例如,用户可能不知道B-rep上的凹凸是指向材料内部(在这种情况下,凹凸可能是凹陷),还是在材料外部(在这种情况下,凹凸可能是凸起)。特别地,CAD系统不会引起这种朝向的模糊性。CAD系统基于在B-rep上定义的法向量计算朝向。可能会发生法向量在被编辑时没有正确地指向(例如,关于材料的外部/内部,就像其在现实世界中一样)。这在编辑开放的B-rep时尤其经常发生,这是因为法向量在设计之初可能不会立即有用。换言之,CAD系统可能基于错误的数据计算朝向,这产生方向的这种模糊性。
现在参考图14至21讨论了3D建模对象的B-rep的边的凸性的概念。在该讨论中,B-rep可以是闭合的或开放的。在任何情况下,B-rep都有朝向(如前面所解释的,通过法向量的手段来定义)。
给定3D建模对象的B-Rep,设E为由面F1和面F2共享的边,并且设X为边E上的点。面F1和面F2的相应的外法向量记为N1和N2。设P1和P2为穿过点X的平面,具有相应的法向量N1和N2。平面P1和P2在点X的邻域中局部地定义外部3D区域和内部3D区域。本质上,向量N1+N2指向外部3D区域。设M1和M2为相对于面F1和F2的点X的相应材料矢量。本质上,向量M1+M2指向凸起的3D区域。根据定义,如果N1+N2和M1+M2具有相反的方向,即如果<M1+M2,N1+N2><0,则边E在点X处是凸起的,如图14和图15中所示。如果边E在所有点处都是凸起的,则它是凸起的。相反,如果N1+N2和M1+M2具有相同的方向,即如果<M1+M2,N1+N2>>0,则边E在点X处被称为凹陷的,如图16和图17中所示。如果边E在所有点处都是凹陷的,则它是凹陷的。否则,<M1+M2,N1+N2>=0意味着边是平滑边或刀刃边(knife edge)。光滑边使得M1+M2=0并且N1=N2,如图18和图19中所示。它通常发生在典型机械零件的B-Rep中。刀刃边使得N1+N2=0并且M1=M2,如图20和图21中所示。刀刃边是为了完整性而描述的,其通常不用于对机械零件建模。
显然,锐边的凸性(凸对凹)与法向量朝向密切相关。当处理开放的蒙皮时,这个朝向是任意的,并且这使得与闭合式B-rep的情况相比凸性对于用户视觉上意义较小。例如,在开放的B-rep的情况下,用户可以看到锐边具有凸性(即,凹或凸),但是用户可能不知道锐边的凸性是否与曾经在现实世界中制造的机械零件的对应于锐边的部分的凸性相同。
从几何学的观点来看,圆形面通过平滑过渡来代替凸锐边。过渡面是连接初始锐边的邻接面的滚动球的包络线。类似地,圆角面用基于相同滚动球几何结构的平滑过渡来替换凹锐边。图22和图23示出了圆形面和圆角面的几何结构。图22示出了凸边220和凹边222。图23示出了对应的圆形面230和圆角面232。就像规范表面(例如,柱面、平面、球体、锥面)一样,圆形面和圆角面通常在B-Rep数据结构中装备有逻辑类型。如果缺少此逻辑类型,可以按如下方式识别它们。参数化S:(其中)使得对于所有u∈[a,b],曲线是其半径不依赖于u的圆的一部分。或者,对于所有v∈[c,d],曲线是半径不依赖于v的圆的一部分。如果B-rep的外法向量朝向圆的凹侧,则由表面S支撑的面是圆形表面。如果B-rep的外法向量朝向圆的凸侧,则由表面S支撑的面是圆角表面。图24示出了圆形面240和圆角面242的参数化。圆形面和圆角面分别表现为凸边和凹边。这是因为,从机械的角度来看,圆形面是替换凸锐边的平滑过渡,并且圆角面是替换凹锐边的平滑过渡。这总是在设计通过模制与机加工方法制造的机械零件时发生。
下面讨论B-rep的对偶图的概念。B-rep的对偶图是只捕获面邻接的逻辑图。其定义如下。对偶图的节点与B-Rep的面相关联,并且对偶图的弧与B-Rep的边相关联。如果与弧相关联的B-Rep边由分别与节点相关联的B-Rep面共享,则对偶图的弧连接对偶图的两个节点。例如,图8的圆柱形B-Rep的对偶图在图25中表示。弧用边号标记。面的连接集形成B-rep的逐弧(arcwise)连接的部分,并且可以被定义如下:如果表示该面集的对偶图的节点是对偶图的连接的子图的节点,则该面集是连接的。
现在讨论凹凸、凸起和凹陷。
机械零件可以被设计为实现由一个或多个凹凸执行的机械功能。凹凸是执行机械功能的材料的布局(例如,布置)。凹凸可以是凹陷,凹陷是具有凹陷形状的材料的布局。替代地,凹凸可以是凸起,凸起是具有凸起形状的材料的布局。
凹凸具有可以对应于和/或表示和/或形成是凹凸的材料的布局的几何结构。几何结构可以包括(例如涉及,例如是其组合)若干基本几何结构。基本几何结构可以是线性挤压(linear extrusion)。线性挤压可以是衬垫(pad)(其添加材料)。线性挤压可以是口袋(pocket)(其移除材料)。基本几何结构可以是外卷(revolute)。外卷可以是轴(其添加材料)。外卷可以是凹槽(其移除材料)。基本几何结构可以是扫掠轮廓(swept profile)。扫掠轮廓可以是肋状物(rib)(其添加材料)和/或加劲杆(stiffener)(其添加材料)。外卷可以是槽(其移除材料)。
凹凸可以由面的连接集表示。换言之,与面的连接集相对应的B-rep部分可以建模和/或表示凹凸的几何结构。当面的连接集具有大体上凹形时并且当面集的边界为全凸时,凹凸可以称为凹陷。当面的连接集具有大体上凸形时并且当面集的边界为全凹时,凹凸可以被称为凸起。因此,当B-rep的法向量对用户有意义时,即在如前所讨论的闭合B-rep的情况下,可以在没有模糊性的情况下定义凸起和凹陷的概念。当处理开放的蒙皮时,取决于法向量朝向,凹凸可以是凸起或凹陷。根据给定的法向量朝向为凹陷的凹凸根据相反的法向量朝向变为凸起,反之亦然。
图26和图27示出了在开放的B-rep的情况下凸起和凹陷之间的视觉模糊性。通过“视觉模糊性”,其意味着当显示开放的蒙皮时,取决于视点用户可能将相同的几何结构解释为凹陷或凸起。这种误解在固体(由闭合式B-rep表示)的情况下是不可能的,这是因为视点始终在材料外部。图26和图27示出了这种现象。图26示出了开放的蒙皮,其以看起来像凸起的内容为特征。图27示出了开放的蒙皮,其以看起来像凹陷的内容为特征。然而,这两幅图都是相同的开放的蒙皮,但从不同的角度来看。
B-rep的显示可以由用户的动作引起,例如用户与方法的CAD系统之间的交互。在示例中,由B-rep(例如,部分地)表示的3D建模对象可以已经由另一个CAD系统上的另一个用户设计,并且可选地存储在存储器中和/或被发送(例如,通过网络)到该方法的CAD系统。然后,B-rep的显示可以包括从存储器中取回B-rep。替代地或附加地,用户可以从头开始或至少部分地设计3D建模对象。B-rep可以显示在CAD系统的任何显示器上,例如图形用户界面,例如参考图1所描述的图形用户界面。
B-rep可以是开放的B-rep或闭合的B-rep。在示例中,B-rep是开放的B-rep。B-rep表示机械零件的至少一部分。这意味着B-rep表示整个机械零件或仅机械零件的严格的一部分。
在示例中,开放的B-rep可以显著地对应于机械零件的物理表面。这意味着B-rep可以表示物理表面的几何结构,或者可以基于该几何结构推导出物理表面的几何结构。例如,B-rep可以表示中间表面的几何结构。中间表面是从中可以通过两个偏移量分别推导出上表面和下表面的表面,一个偏移量沿中间表面的法向量的方向,并且另一个偏移量沿该法向量的相反方向。
物理表面可以是机械零件的外部,例如顶表面或底表面。在这种情况下,B-rep可以表示外部的几何结构或者可以从中推导出外部的几何结构的中间表面的几何结构。
附加地或替代地,物理表面可以是由制造工具的外部成形的机械零件的外部与成形机械零件的外部的制造工具的外部之间的界面。在这种情况下,B-rep可以表示机械零件的外部的几何结构。替代地,B-rep可以表示制造工具的外部的几何结构。替代地,B-rep可以表示中间表面的几何结构,从该中间表面的可以推导出机械零件的外部的几何结构和/或制造工具的外部的几何结构。
附加地或替代地,当机械零件是模制零件(例如,塑料薄零件)时,物理表面可以表示制造模制零件的模具和由该模具成形的模制零件的外部之间的界面。
附加地或替代地,当机械零件是车削零件(例如,薄零件)时,物理表面可以表示该零件或其至少一部分。
附加地或替代地,当机械零件是冲压件(例如,薄铝冲压件、车门或车身的一部分)时,物理表面可以表示该零件或其至少一部分。
显示的B-rep包括一个或多个凹凸,其中之一是由该方法识别的凹凸。现在讨论这些凹凸。
在该方法的上下文中,凹凸可以是以下各项中的任何一项或任何组合:质量减少特征(即,执行质量减少功能)、空间保留特征(即,执行空间保留功能)、固定器特征(即,执行固定器功能)、紧度特征(即,执行紧度功能)、调整特征(即,执行调整功能)、定位特征(即,执行定位功能)、机械接合特征(即,执行机械接合功能)、冷却特征(即,执行冷却功能)、外卷或圆柱形机械接合特征(即,执行外卷或圆柱形机械接合功能)、组装特征(即,执行组装功能)、加固特征(即,执行加固功能)和/或用于所有机加工凸起和钻孔凸起特征的支撑(即,执行用于所有机加工凸起和钻孔凸起功能的支撑)。
现在讨论由凹凸的示例(其为凹陷)执行的功能示例。
在示例中,机械零件通过模制制造工艺制造。在这些示例中,是凹陷的B-rep的任何凹凸可以是质量减少特征(即,执行质量减少功能)和/或空间保留特征(即,执行空间保留功能)。
附加地或替代地,机械零件可以通过机加工制造工艺制造。在这些示例中,是凹陷的B-rep的任何凹凸可以是质量减少特征(即,执行质量减少功能)、固定器特征(即,执行固定器功能)、紧度特征(即,执行紧度功能)、调整特征(即,执行调整功能)、定位特征(即,执行定位功能)、机械接合特征(即,执行机械接合功能)、冷却特征(即,执行冷却功能)和/或空间预留特征(即,执行空间预留功能)。
附加地或替代地,机械零件可以通过钻孔制造工艺制造。在这些示例中,是凹陷的B-rep的任何凹凸可以是固定器特征(即,执行固定器功能)、定位特征(即,执行定位功能)、外卷或圆柱形机械接合特征(即,执行外卷或圆柱形机械接合功能)、冷却特征(即,执行冷却功能)和/或空间预留特征(即,执行空间预留功能)。
附加地或替代地,机械零件可以通过车削制造工艺制造。在这些示例中,是凹陷的B-rep的任何凹凸可以是外卷或圆柱形机械接合特征(即,执行外卷或圆柱形机械接合功能)。
附加地或替代地,机械零件可以通过锻造制造工艺制造。在这些示例中,是凹陷的B-rep的任何凹凸可以是质量减少特征(即,执行质量减少功能)。
附加地或替代地,机械零件可以通过冲压制造工艺制造。在这些示例中,是凹陷的B-rep的任何凹凸可以是组装特征(即,执行组装功能)、加固特征(即,执行加固功能)和/或空间预留特征(即,执行空间预留功能)。
附加地或替代地,机械零件可以通过折叠制造工艺制造。在这些示例中,是凹陷的B-rep的任何凹凸可以是组装特征(即,执行组装功能)、加固特征(即,执行加固功能)和/或空间预留特征(即,执行空间预留功能)。
现在讨论了由是凸起的凹凸的示例执行的功能的示例。
在示例中,机械零件通过模制制造工艺制造。在这些示例中,是凸起的B-rep的任何凹凸可以是加固特征(即,执行加固功能)。
附加地或替代地,机械零件可以通过机加工制造工艺制造。在这些示例中,是凸起的B-rep的任何凹凸可以是固定器特征(即,执行固定器功能)和/或定位销特征(即,执行定位销功能)。
附加地或替代地,机械零件可以通过车削制造工艺制造。在这些示例中,是凸起的B-rep的任何凹凸可以是外卷或圆柱形机械接合特征(即,执行外卷或圆柱形机械接合功能)和/或定位销特征(即,执行定位销功能)。
附加地或替代地,机械零件可以通过锻造制造工艺制造。在这些示例中,是凸起的B-rep的任何凹凸可以是加固特征(即,执行加固功能)和/或用于所有机加工和钻孔凸起特征的支撑(即,执行用于所有机加工和钻孔凸起功能的支撑)。
附加地或替代地,机械零件可以通过冲压制造工艺制造。在这些示例中,是凸起的B-rep的任何凹凸可以是组装特征(即,执行组装功能)、加固特征(即,执行加固功能)和/或空间预留特征(即,执行空间预留功能)。
附加地或替代地,机械零件可以通过折叠制造工艺制造。在这些示例中,是凸起的B-rep的任何凹凸可以是组装特征(即,执行组装功能)、加固特征(即,执行加固功能)和/或空间预留特征(即,执行空间预留功能)。
现在参考图28和图29讨论机械零件的示例上的凹凸的几何结构的示例。图28示出了冲压零件,该冲压零件是车门,并且图29示出了模制零件,该模制零件是薄塑料零件。图28和图29的零件的示例可以显著地由开放的B-rep表示。
其他零件的示例可能在其设计的某个点上具有构造为表面的子零件。在这些示例中,然而,在设计过程的一些其他点处(例如,在结束处),零件可以通过闭合的B-rep表示为体积。该方法还处理体积,即闭合的B-rep。
现在讨论对B-rep的至少一个面的选择。
选择是通过图形用户交互执行的。换言之,为了选择至少一个面,用户图形化地与显示器(例如,图形用户界面,例如图1所示的图形用户界面)进行交互。例如,用户可以通过点击至少一个面(例如,通过点击至少一个面的可见部分)来选择至少一个面。替代地,用户可以通过触摸至少一个面(例如,通过触摸至少一个面的可见部分)来选择至少一个面。这些选择至少一个面的方式是特别简单的且符合工效学的。显著地,在至少一个面仅包含一个面的示例中,用户只需要触摸该一个面或单击它来选择它。
至少一个面是表示凹凸的面集中的面,并且由该方法识别。在示例中,至少一个面包含B-rep的一个面,即B-rep的单个面。一个面可以例如是至少部分对用户可见的凹凸的面(例如,没有被B-rep的另一个面完全隐藏的面)。一个面可以例如是凹凸的最明显的面之一。替代地或附加地,一个面可以是凹凸的顶面或者凹凸的侧面。在示例中,如果由该方法显示的凹凸具有凸起的形状,则该一个面可以是凹凸的顶面或凹凸的侧面。例如如果所显示的凹凸具有长方体的形状,则可能是这种情况。在其他示例中,如果由该方法显示的凹凸具有凹陷的形状,则该一个面可以是凹凸的侧面,例如孔的内表面。例如如果所显示的凹凸具有孔(例如,通孔或非通孔)的形状,则可能是这种情况。
仅选择属于凹凸的B-rep的一个面是选择凹凸的一部分的一种特别简单的且符合工效学的方式,然后CAD系统基于该部分自动识别凹凸。这使得该方法用户友好且符合工效学。当一个面是对用户是可见的(例如,最明显的)面时,尤其是这种情况。当选择至少一个面时,这改善了简单性和工效学。
在示例中,所选择的至少一个面可以包含若干个面,例如,属于相应凹凸的至少一个面中的每个面。在这种情况下,可以对至少一个面中的每个面迭代地进行识别。换言之,对于至少一个面中的每个面,通过识别的相应的迭代来识别包括面并表示该面所属的相应凹凸的相应面集。
现在讨论了对表示凹凸的面集的识别。
表示凹凸的面集包括至少一个面,并且由CAD系统自动地识别。换言之,在用户图形化地选择凹凸的(例如,小的和可见的)部分(即,至少一个面)时,计算机自动识别表示该凹凸的所有面,例如,包括对用户隐藏的面(如果有的话)。这使得该方法高效且符合工效学。
面集的识别包括确定第一面集和第二面集。现在讨论这一点。
第一面集包括至少一个面并表示凹陷。换言之,该确定将至少一个面作为输入。该确定然后确定第一面集。这可以通过被配置为将至少一个面作为输入并输出包括至少一个面且表示凹陷的面集的任何过程或算法来执行。这种算法可以显著地包括迭代地访问至少一个面的邻接面,并且基于这些邻接面的凸性和/或它们共享的边的凸性来收集或不收集这些邻接面。所收集的面使得,与至少一个面一起,它们形成具有凹陷的凸性的面集。该确定还确定了第二面集。这可以通过被配置为将至少一个面作为输入并输出包括至少一个面且表示凸起的面集的任何过程或算法来执行。这种算法可以显著地包括迭代地访问至少一个面的邻接面,并且基于这些邻接面的凸性和/或由它们共享的边的凸性来收集或不收集这些邻接面。所收集的面使得,与至少一个面一起,它们形成具有凸起的凸性的面集。在任何情况下,该确定输出第一面集和第二面集。
应该理解的是,无论B-rep是闭合的还是开放的,B-rep都具有朝向。关于这个朝向(其如前所述可以是任意的且对用户不具有视觉意义),该确定对包括至少一个面的两个面集进行了确定,一个面集表示凸起并且一个表示凹陷。这些面集之一是表示凹凸的面集,凹凸是凹陷或凸起。因此,无论凹凸是凸起还是凹陷,所确定的面集中的至少一个表示凹凸。如下文所讨论的,然后将在两个确定的集之中选择该集。换言之,确定第一集和第二集二者确保凹凸将在不知道凹凸是凹陷还是凸起的情况下被识别。这使得该方法高效。
该方法在B-rep是开放的示例中显著地特别高效,如前所讨论的,这种B-rep的任意朝向使得凸起和凹陷的概念模糊清。实际上,该方法通过搜索凸起和凹陷二者来规避这种模糊性,然后通过如下文所解释的选择来选择凸起和凹陷之一。换言之,对于用于识别凹凸的方法,用户不需要知道凹凸是凸起还是凹陷。
在示例中,第一面集包括不包含凸内边和圆形面的一个或多个面的第一连接集。在这些示例中,第二面集包括不包含凹内边和圆角面的一个或多个面的第二连接集。
第一面集因此包括一个或多个面的第一连接集,该第一连接集通过不包含凸内边和圆形面而具有凹陷的凸性。类似地,第二面集包括一个或多个面的第二连接集,该第二连接集通过不包含凹内边和圆角面而具有凸起的凸性。
因此,在选择了至少一个面时,该方法自动地确定包括它的两个面集,一个面集实质上具有凸起的形状(即,第一面集),并且另一个实质上具有凹陷的形状。
在示例中,一个或多个面的第一连接集仅以凸边和/或圆形面为边界。在这些示例中,一个或多个面的第二连接集仅以凹边和/或圆角面为边界。
确定第一(或者第二)面集可以显著地迭代地访问至少一个面的邻接面,并且收集不是圆形(或者圆角)邻接面或者不与其他收集的邻接面共享凸(或者凹)边。这些收集的面可以显著地与至少一个面一起形成一个或多个面的第一(或者第二)连接集。一个或多个面的第一(或者第二)连接集以凸(或者凹)边和/或圆形(或者圆角)面为边界的要求仅可以是迭代访问和收集的停止标准。这样,不需要表示凹陷(或者凸起)的凸性的面不被收集,甚至不被访问。这改善了该方法的效率和鲁棒性。
在示例中,第一面集包含一个或多个面的第一连接集。在这些示例中,第二面集包含一个或多个面的第二连接集。
在这些示例中,该方法因此关于B-rep的朝向确定对应于面的连接集的凹陷,该连接集不包含凸内边和圆形面并且仅以凸边和/或圆形面为边界,以及确定对应于面的连接集的凸起,该连接集不包含凹内边和圆角面并且仅以凹边和/或圆角面为边界。搜索对应于面的连接集的凹陷(该连接集不包含凸内边和圆形面并且仅以凸边和/或圆形面为边界)以及搜索对应于面的连接集的凸起(该连接集不包含凹内边和圆角面并且仅以凹边和/或圆角面为边界)是用于以将至少一个面延伸到表示它的最小凹陷(例如,具有最小边界的凹陷)或延伸到表示它的最小凸起(例如,具有最小边界的凸起)的高效且简单的方法。换言之,由于所确定的凸起和所确定的凹陷之中的一个是要被识别的凹凸,搜索这样的凹陷和这样的凸起是用于将至少一个面延伸到包括它的最小凹凸(例如,具有最小边界的凹凸)的高效且简单的方法。在这些示例中,该方法因此高效地满足了用户需求,即,在简单选择了至少一个面时,自动地将其延伸到包括它的最小凹凸。
在任何情况下,该确定具有两个输出,这两个输出是第一面集和第二面集。第一面集表示凹陷,而第二面集表示凸起。第一面集和第二面集之中的一个集表示凹凸。该方法通过在第一面集和第二面集之中选择具有最短边界曲线周长并且与所选择的至少一个面和B-rep二者都不同的面集来自动地确定哪一个面集。
现在讨论这一点。
“在第一面集和第二面集之中选择面集”意味着选择将第一面集和第二面集作为输入,并输出具有最短边界曲线周长的一个面集。输出的面集是表示凹凸的面集。换言之,并且如前所述,确定表示凸起的第一面集和表示凹陷的第二面集(而不管关于凹凸是凸起还是凹陷的任何知识)确保了两个确定集中的至少一个表示凹凸。然后,选择自动地选择表示凹凸的一个集。这种分两步进行的识别是鲁棒的且高效的。
该选择在第一面集和第二面集之中选择具有最短边界曲线周长并且与所选择的至少一个面和B-rep二者不同的面集。现在,当选择至少一个面时,用户期望包括至少一个面的面集被识别。该面集用于表示凹凸。因此,面集不应该包括太多的面,而应仅包括表示凹凸的面。在第一面集和第二面集之中选择具有最短边界曲线周长的面集允许识别不包括太多面且真正表示凹凸的面集。这是在两个确定的面集之中选择真正表示凹凸的面集的高效方式。事实上,人们可以说“识别包括至少一个面的最小凹凸”或“将至少一个面延伸到包括它的最小凹凸”。
在示例中,选择可以包括在第一面集和第二面集之中评估具有最短边界曲线周长的一个集。评估可以包括计算第一面集的边界曲线周长,计算第二面集的边界曲线周长,以及将第一面集的计算的边界曲线周长和第二面集的计算的边界曲线周长进行比较。计算之后可以输出具有最小边界曲线周长的一个面集。
在评估之前,验证第一面集和第二面集与B-rep不同,并且包括与选择的至少一个面不同的面。如果集中的一个等于B-rep或等于至少一个面,则此集不表示凹凸,并且另一个集被选择。在这种情况下,不计算两个面集的边界曲线周长,这是因为已经识别出真正表示凹凸的集。
实际上,表示凹凸的面集应该包括至少另一个面(附加于所选择的至少一个面),这是因为在大多数示例中,单独的至少一个面(特别是当至少一个面包含一个面时)不表示整个凹凸。至少一个面只是凹凸的一部分,用户可以很容易地选择该部分以供随后识别整个凹凸。换言之,用户看到了凹凸,只选择了凹凸的一部分,并且期望整个凹凸都能被识别。因此,所识别的面集应该包括至少另一个面(附加于所选择的至少一个面),这是因为这是用户在他/她选择至少一个面时所想要的功能。
此外,表示凹凸的面集应该不同于整个B-rep,这是因为在大多数示例中,凹凸只是执行特定机械功能的B-rep的一部分。此外,用户所想要的功能是在仅选择了凹凸的一部分时自动地识别仅是B-rep的一部分的凹凸。
验证因此改善了选择的效率和鲁棒性,这是因为它允许以非常简单的方式并且在不计算任何边界曲线周长的情况下丢弃这样的面集:不表示B-rep并且不是当用户选择至少一个面时用户期望被识别的面集。
面集的边界曲线周长可以是表示该面集的边界曲线的大小的任何量。边界曲线可以定义为面集的边界边的集,即每个都具有在面集之中的单个边界面的边集。例如,它可以是边界曲线的任何长度。在示例中,边界曲线的长度是边界的每条边的曲线长度之和。面集的边界曲线周长可以通过用于计算面集的边界曲线的周长的任何已知方法来计算。
在示例中,一个面集相对于另一面集具有最短边界曲线,如果:
-面集的边界曲线周长严格小于另一面集的边界曲线周长;或
-面集的边界曲线周长等于另一面集的边界曲线周长,并且面集的边界框的长度小于另一面集的边界框的长度。
边界框可以是任何边界框,例如任何形状的边界框。边界框可以是任何体积,例如长方体、矩形、平行六面体、球体或椭球体的形状。边界框的长度可以是任何长度,例如被包括在体积中的最长线段的长度(例如,球体的直径或矩形的对角线)。
已经解释了选择面集如何可以包括评估在第一面集和第二面集之中的哪一个具有最短边界曲线周长。评估还可以包括如果第一面集的边界曲线周长等于第二面集的边界曲线周长,评估在第一面集的边界框的长度和第二面集的边界框的长度中哪一个是最小的。这可以包括计算和比较第一面集的边界框的长度和第二面集的边界框的长度,以及然后输出边界框具有最小长度的一个面集。
该方法因此能够处理其中第一面集和第二面集具有相同的边界曲线周长值的情况。该方法因此是高效的。
现在讨论选择面集的示例。
在这些示例中,选择包括确定第一面集或第二面集是否是至少一个面,以及确定第一面集或第二面集是否是B-rep。如果第一面集或第二面集是至少一个面,或者如果第一面集或第二面集是是B-rep,则选择然后可以包括输出既不是至少一个面也不是B-rep的一个面集。然后选择可以在输出之后结束,在这种情况下,输出的面集是用户期望的并且表示凹凸的面集。这允许高效地选择表示凹凸并且用户期望被识别的面集(基于前面解释的原因),这是因为在这样的情况下不需要计算边界曲线周长。
然后,在这些示例中,如果第一面集和第二面集都不是B-rep,并且如果第一面集和第二面集都不是至少一个面,则选择包括:
-确定第一面集的边界曲线周长是否等于第二面集的边界曲线周长;
以及
-如果第一面集的边界曲线周长等于第二面集的边界曲线周长,则将第一面集的边界框的长度和第二面集的边界框的长度进行比较。
这允许选择在第一面集和第二面集都不是B-rep或至少一个面的情况下输出具有最短边界曲线周长的一个面集,该面集因此是表示凹凸并满足用户期望的面集。
换言之,上面讨论的示例改善了方法的效率和鲁棒性,这是因为它们执行有序的测试序列,该测试序列在适当的情况下丢弃不表示凹凸并且用户不期望被识别的面集(基于先前解释的原因),而没有任何无用的边界曲线周长计算。
现在讨论选择的其他示例。
在这些示例中,面集的选择包括确定第一面集或第二面集是否是至少一个面。如果第一面集或第二面集是至少一个面,则选择然后可以包括输出不是至少一个面的两个面集之一。然后,选择可以在输出之后结束,在这种情况下,输出的面集是表示凹凸的面集。
然后,在这些示例中,如果第一面集和第二面集都不是至少一个面,则对该面集的选择包括确定第一面集或第二面集是否是B-rep。如果第一面集或第二面集是B-rep,则选择然后可以包括输出不等于B-rep的两个面集之一。然后,选择可以在输出之后结束,在这种情况下,输出的面集是表示凹凸的面集。
然后,在这些示例中,如果第一面集和第二面集都不是B-rep,则选择该面集包括确定第一面集的边界曲线周长是否等于第二面集的边界曲线周长。然后,如果第一面集的边界曲线周长等于第二面集的边界曲线周长,则选择包括将第一面集的边界框的长度和第二面集的边界框的长度进行比较。然后,选择可以输出具有最小边界框长度的面集。替代地,如果第一面集的边界曲线周长不等于第二面集的边界曲线周长,则选择可以输出具有严格最小边界曲线周长的面集。
这些示例通过进一步对前面讨论的有序测试序列进行层级化,进一步改善了该方法的效率。显著地,一旦该方法确定所确定的面集之一是至少一个面,或者一旦该方法确定所确定的面集之一是B-rep,就自动地识别出用户真正期望的并表示凹凸的面集。因此,在这样的情况下,缩短了有序测试序列。
在示例中,可以处理所识别的面集。处理所识别的面集可以包括以下动作中的一个或多个:
-从B-rep中提取所识别的面集和/或显示它(例如,在CAD系统的显示器的独立窗口中)和/或在B-rep的显示器内高亮显示它;
-将一个或多个设计和/或编辑操作(例如,更改尺寸、更改大小、平移、更改厚度、旋转、剪切、复制、复制和/或粘贴)自动地且以一种统一的方式应用(例如,通过用户图形化地与CAD系统交互)于所识别的面集中的所有面;和/或
-将一个或多个设计和/或编辑操作(例如,平移、更改大小、更改尺寸、圆形、圆角形、拔模角和/或更改厚度)自动地且以统一的方式应用(例如,通过用户图形化地与CAD系统交互)于形成识别的面集的边界面的一种类型的所有边(例如,锐利型、光滑型、刀型、凸型或凹型)。
自动地且以一种统一的方式将操作应用于面集和/或边包括:指定(例如,选择,例如,在用户操作时)集和操作,启动(例如,通过与CAD系统交互,例如,在用户操作时)该操作,以及自动地(例如,通过CAD系统)将该操作(例如,实质上)相同地和/或(例如,实质上)同时地应用于集的所有对象。
现在参考图30-32讨论该方法的实施方式。
该实施方式分四个步骤执行该方法。第一步骤执行对至少一个面的选择,并且第二、第三和第四步骤执行对表示凹凸的面集的识别。
该实施方式包括对至少一个面的用户选择的第一步骤。该至少一个面被记为L0,并且在该实施方式中包含属于要被标识/识别的凹凸的单个面。
该实施方式的第二步骤通过运行函数Depression(·)来确定第一面集,以便根据B-rep的当前朝向来识别凹陷。函数Depression(·)将单个面L0作为输入,并且输出第一面集LD,例如作为面的列表。
方法Depression(f)是迭代地访问初始面f的邻接面,直到达到凸边或圆形面。该传播算法利用记为H的后进先出(LIFO)列表和记为E的输出列表。LIFO列表是用于传播目的的内部数据结构。它通过标准指令Push(·)、Pop(·)和Size来使用。指令Push(x)将对象x添加到列表顶部并递增其大小。指令Pop(x)产生列表的最后一个对象(记为x),将其从列表中移除并递减其大小。输出列表E包括用输入面f初始化的面集。下面的伪代码描述了函数Depression。
该实施方式的第三步骤通过运行函数Protrusion(·)来确定第二面集,以便根据B-rep的当前朝向来识别凹陷。函数Protrusion(·)以单个面L0作为输入,并且输出第二面集LP,例如作为面的列表。
函数Protrusion(·)用于迭代地访问初始面f的邻接面,直到达到凹边或圆角面。该传播算法利用记为H的后进先出(LIFO)列表和记为E的输出列表。LIFO列表是用于传播目的的内部数据结构。它通过标准指令Push(·)、Pop(·)和Size来使用。指令Push(x)将对象x添加到列表顶部并递增其大小。指令Pop(x)产生列表的最后一个对象(记为x),将其从列表中移除并递减其大小。输出列表E包括用输入面f初始化的面集。函数Protrusion通过下面的伪代码描述。
应该理解,第二步骤可以在第三步骤之前或之后执行。替代地,第三步骤和第二步骤可以联合执行。
该实施方式的第四且最后一个的步骤在所确定的集LD或LP之中选择表示凹凸的面集。最后的步骤执行一系列逻辑测试,以便选择哪个输出列表LD或LP是适当的,即表示凹凸。面的输出列表记为L1。将面的列表L的边界曲线记为(L),将曲线C的长度记为(C),并且将面的列表L的边界框的长度记为Size(L)。测试如下。行从01到09进行编号。
符号y:=argminx∈X(x)是以下的缩写:找到x∈X使得(x)是最小值并且将x设置为变量y。行01至08处理特殊的情况。一般情况由指令09管理。针对最短边界曲线的选择的动机来自于以下事实:最相关的凹凸以与蒙皮的其余部分的小界面为特征。
图30示出了行01和行02。设计者选择形状的顶面,如图示1中所示。该形状看起来被显示为凸起的形状,并且顶面是对用户特别可见并且易于他/她选择的面。图示2和图示3示出了输入蒙皮的两个可能的朝向。图示4和图示5示出了取决于输入蒙皮朝向由传播算法计算的列表LP和LD。图示6示出了由该实施方式计算出的面L1的结果列表。由于以下原则,该实施方式会产生适当的结果。显然,存在两种可能的结果,如图示4和图示5所示。图示4正是由设计者选择的面,而图示5是更大的面列表,包括用户选择的面以及侧面。原理是如果用户通过了凹凸检测功能,它是出于识别的目的,而不是为了得到单个选择的面。因此,该实施方式丢弃图示4的结果列表,这是因为它等于用户的选择并提供了图示5的列表。
图31示出了算法的行09。设计者选择输入蒙皮的侧面,如图示1所示。输入蒙皮看起来被显示为凸起的形状,并且侧面是对于用户特别可见的并且易于他/她选择的面。图示2和图示3示出了输入蒙皮的两个可能的朝向。图示4和图示5示出了取决于输入蒙皮朝向由传播算法计算的列表LP和LD。图示6和图示7分别示出了图示4和图示5的面列表的边界曲线。该实施方式产生图示8的列表,这是因为它以最短边界曲线为特征。
图32示出了算法的行07。这里,输入的B-rep是固体,并且因此法向量是朝向材料外部的。设计者选择圆柱面,如图示1所示。输入的B-rep看起来被显示为凹陷的形状,并且B-rep的孔形部分的圆柱面对用户特别可见并且易于他/她选择。图示2和图示3示出了由传播算法计算的列表LP和LD。图示4和图示5分别示出了图示2和图示3的面列表的边界曲线。显然,它们以相同的长度为特征。该实施方式产生图示4的列表,这是因为它以最小边界框为特征。
Claims (14)
1.一种计算机实现的方法,用于利用CAD系统设计表示机械零件的3D建模对象,所述方法包括:
-显示表示所述机械零件的至少一部分的B-rep,所述B-rep具有面和边;
-通过图形用户交互,选择所述B-rep的至少一个面;以及
-通过所述CAD系统,自动地识别包括所选择的至少一个面的面集,所述面集表示凹凸,识别所述面集包括:
·确定第一面集和第二面集,所述第一面集和所述第二面集二者都包括所述至少一个面,所述第一面集表示凹陷并且所述第二面集表示凸起;以及
·在所述第一面集和所述第二面集之中,选择具有最短边界曲线周长并且与所选择的至少一个面和所述B-rep二者都不同的面集。
2.根据权利要求1所述的方法,其中:
-所述第一面集包括不包含凸内边和圆形面的一个或多个面的第一连接集;以及
-所述第二面集包括不包含凹内边和圆角面的一个或多个面的第二连接集。
3.根据权利要求2所述的方法,其中:
-一个或多个面的所述第一连接集仅以凸边和/或圆形面为边界;以及
-一个或多个面的所述第二连接集仅以凹边和/或圆角面为边界。
4.根据权利要求3所述的方法,其中:
-所述第一面集包含一个或多个面的所述第一连接集;以及
-所述第二面集包含一个或多个面的所述第二连接集。
5.根据权利要求1至4中任一项所述的方法,其中所述至少一个面包含所述B-rep的一个面。
6.根据权利要求1至5中任一项所述的方法,其中在以下情况下,面集具有相对于另一面集的最短边界曲线:
所述面集的边界曲线周长严格小于所述另一面集的边界曲线周长;或
所述面集的边界曲线周长等于所述另一面集的边界曲线周长,并且所述面集的边界框的长度小于所述另一面集的边界框的长度。
7.根据权利要求6所述的方法,其中选择面集包括:
-确定:
ο所述第一面集或所述第二面集是否是所述至少一个面;以及
ο所述第一面集或所述第二面集是否是所述B-rep;然后
-如果所述第一面集和所述第二面集都不是所述B-rep,并且如果所述第一面集和所述第二面集都不是所述至少一个面,则:
ο确定所述第一面集的边界曲线周长是否等于所述第二面集的边界曲线周长;以及
ο如果所述第一面集的边界曲线周长等于所述第二面集的边界曲线周长,则将所述第一面集的边界框的长度和所述第二面集的边界框的长度进行比较。
8.根据权利要求1至7中任一项所述的方法,其中所述B-rep为开放的B-rep。
9.根据权利要求8所述的方法,其中所述B-rep对应于所述机械零件的物理表面。
10.根据权利要求1至9中任一项所述的方法,其中所述机械零件为:
-模制零件;
-机加工零件;
-钻孔零件;
-车削零件;
-锻造零件;
-冲压零件;和/或
-折叠零件。
11.根据权利要求1至10中任一项所述的方法,其中所述凹凸为:
-质量减少特征;
-空间预留特征;
-固定器特征;
-紧度特征;
-调整特征;
-定位特征;
-机械接合特征;
-冷却特征;
-外卷或圆柱形机械接合特征;
-组装特征;
-加固特征;和/或
-用于所有机加工和钻孔凸起特征的支撑。
12.一种计算机程序,包括用于执行根据权利要求1至11中任一项所述的方法的指令。
13.一种计算机可读存储介质,其上记录有根据权利要求12所述的计算机程序。
14.一种计算机,包括耦合到存储器的处理器和图形用户界面,所述存储器在其上记录有根据权利要求12所述的计算机程序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19305916.9 | 2019-07-04 | ||
EP19305916.9A EP3761211A1 (en) | 2019-07-04 | 2019-07-04 | Designing a part featuring a bump |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112182790A true CN112182790A (zh) | 2021-01-05 |
Family
ID=67438610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010632396.7A Pending CN112182790A (zh) | 2019-07-04 | 2020-07-02 | 设计以凹凸为特征的零件 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11875092B2 (zh) |
EP (1) | EP3761211A1 (zh) |
JP (1) | JP2021012685A (zh) |
CN (1) | CN112182790A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3675062A1 (en) | 2018-12-29 | 2020-07-01 | Dassault Systèmes | Learning a neural network for inference of solid cad features |
EP3675063A1 (en) * | 2018-12-29 | 2020-07-01 | Dassault Systèmes | Forming a dataset for inference of solid cad features |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1710720B1 (en) * | 2005-04-08 | 2009-07-08 | Dassault Systèmes | Method of computer-aided design of a modeled object having several faces |
EP2028623B1 (en) | 2007-08-24 | 2011-10-19 | Dassault Systèmes | Method of computer-aided design of edges connecting faces of a modeled object |
US8872820B2 (en) | 2008-04-14 | 2014-10-28 | Siemens Product Lifecycle Management Software Inc. | System and method for splitting faces on a solid model |
US8244508B1 (en) * | 2008-09-26 | 2012-08-14 | SpaceClaim Corporation | Method for modifying a piece of 3D geometry |
US20120221297A1 (en) * | 2011-02-24 | 2012-08-30 | Siemens Product Lifecycle Management Software, Inc. | Global Deformation for a Modeled Object |
EP2521057A1 (en) * | 2011-05-06 | 2012-11-07 | Dassault Systèmes | Determining a parameter of a geometrical cad operation |
EP2750106B1 (en) | 2012-12-31 | 2021-09-15 | Dassault Systèmes | Geometrical elements transformed by rigid motions |
US11599086B2 (en) * | 2014-09-15 | 2023-03-07 | Desprez, Llc | Natural language user interface for computer-aided design systems |
US20160328496A1 (en) | 2015-05-04 | 2016-11-10 | Siemens Product Lifecycle Management Software Inc. | System and method for editing a model |
EP3179389B1 (en) * | 2015-12-07 | 2019-05-22 | Dassault Systèmes | Detecting cut-outs |
EP3203394B1 (en) * | 2016-02-02 | 2021-10-20 | Dassault Systèmes | B-rep design with face trajectories |
EP3340084A1 (en) * | 2016-12-22 | 2018-06-27 | Dassault Systèmes | Replica selection |
EP3460760B1 (en) * | 2017-09-26 | 2021-05-19 | Dassault Systèmes | Generating a 2d drawing representing a mechanical part |
-
2019
- 2019-07-04 EP EP19305916.9A patent/EP3761211A1/en active Pending
-
2020
- 2020-06-08 JP JP2020099605A patent/JP2021012685A/ja active Pending
- 2020-07-02 CN CN202010632396.7A patent/CN112182790A/zh active Pending
- 2020-07-06 US US16/921,844 patent/US11875092B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3761211A1 (en) | 2021-01-06 |
US20210004510A1 (en) | 2021-01-07 |
US11875092B2 (en) | 2024-01-16 |
JP2021012685A (ja) | 2021-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108228987B (zh) | 副本选择 | |
JP7049807B2 (ja) | パラメトリックビュー関数に基づくデータベースの照会 | |
US11934745B2 (en) | Designing a part featuring a protrusion or a depression | |
JP6975558B2 (ja) | モフォロジー基準によるデータベースの照会 | |
CN107092741B (zh) | 使用面轨迹的b-rep设计 | |
JP2019106177A (ja) | 3d部品の付加製造 | |
US11295040B2 (en) | Designing a mechanical part | |
JP2016224944A (ja) | 類似性基準を用いてデータベースにクエリを実行すること | |
CN105389412B (zh) | 顺序更新的执行 | |
US11604902B2 (en) | Modeling using a weak type definition | |
CN105389413B (zh) | 按序更新的准则 | |
CN112182790A (zh) | 设计以凹凸为特征的零件 | |
JP7477279B2 (ja) | B-Repスキンの3D設計 | |
US20230177229A1 (en) | Partitioning 3d cad model | |
JP2023143870A (ja) | スケッチ加工 | |
JP2021131852A (ja) | 機械部品の構造シミュレーション | |
JP2020115341A (ja) | 弱型定義を用いるフレキシブルモデリング | |
US20230195296A1 (en) | Setting typed parameter |
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 |