CN115087983A - 使用几何面片进行混合建模的方法和*** - Google Patents

使用几何面片进行混合建模的方法和*** Download PDF

Info

Publication number
CN115087983A
CN115087983A CN202080082032.4A CN202080082032A CN115087983A CN 115087983 A CN115087983 A CN 115087983A CN 202080082032 A CN202080082032 A CN 202080082032A CN 115087983 A CN115087983 A CN 115087983A
Authority
CN
China
Prior art keywords
geometric
triangles
triangle
rendering
patch
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
Application number
CN202080082032.4A
Other languages
English (en)
Inventor
曹尚稳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CN115087983A publication Critical patent/CN115087983A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2021Shape modification

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明提出了一种方法和***使用渲染面片进行混合几何建模,用于三维产品设计,其中几何操作包括这些步骤:将渲染面片映射到操作面片、创建相交线、拆分相交线穿过的每个三角形、划分几何形体、重新组合面以形成新的几何物体,并将每个新的几何物体映射到渲染面片。为了记录建模过程,该方法具有步骤:分配一个构造混合几何对象,组成包括几何物体和操作参数的每个操作几何,向对象添加操作几何,用面片进行操作,以及适时更新操作结果。该***灵活,能够使用基本几何物体、扩展几何物体和曲面片创建精细和多变的几何模型。

Description

使用几何面片进行混合建模的方法和***
背景
领域
本发明为计算机辅助设计和计算机图形***提供一种方法和一种嵌入该方法的***,执行布尔运算和几何裁剪,用基本几何物体、扩展形状和曲面片的渲染面片构建三维几何产品模型。计算机辅助设计和计算机图形***广泛用于设计产品和模拟环境物体。
相关技术
计算机包括:屏幕,显示用户界面;输入设备,包括鼠标和键盘,用户通过其输入文本并点击屏幕上的项目;处理器,执行指令和命令;以及一个媒体,存储数据和可执行指令。
CAD/CG***在计算机***中实现并用计算机操作,具有一些预定义的几何形状,例如基本几何物体,用户通过这些几何物体构建复杂的几何模型。
如果一个***使用基本几何形状构建几何模型,每个几何形状在空间上封闭一个体积并且是水密的,那么该***是一个实体几何建模***。
在实体几何建模***中,基本几何形状可以包括长方体、圆锥、圆柱、棱柱、棱锥、圆环、面封闭体积,并且***可以提供命令,例如拉伸和旋转,以创建扩展形状。图1显示一些基本几何形状和使用拉伸和旋转操作创建的扩展几何物体。部分或全部形体参与布尔运算,有与、或、差功能,用于构建几何产品模型。
如果一个***构建一个具有多个曲面片的几何模型,那么该***是一个曲面建模***。一个曲面片由一组点、阶数、节点和权重控制几何物体形状,这个几何物体在空间上可能不是封闭的。
曲面建模***有两种命令:创建一个曲面片和裁剪。
曲面片创建命令生成控制点、节点、阶数和权重。这些命令:拉伸、旋转、弯曲和连接,是一些例子,它们创建非常不同的形状。图2显示使用这些命令生成的一些曲面片。
裁剪命令可以用轮廓线或曲面裁剪曲面。轮廓线可以是曲面上的一条线,也可以是二维线,映射到曲面所在的三维空间。
在进行一次曲面-曲面裁剪时,一个曲面通常与另一个曲面相交,每个曲面被分成两个或多个部分,通常保留其中一个部分用于构建一个几何模型。
如果一个***用基本几何形状和曲面片进行布尔运算,或者***用基本几何形状和曲面片进行裁剪,则该***是混合几何建模***。
构造实体几何广泛应用于CAD/CG***,是一种以分层数据结构记录操作序列和几何物体的技术。使用CSG的***定义了一些基本的几何形状。一次布尔运算具有三个函数中的一个和两个几何物体,每个几何物体都定义了一个边界,将空间分为内部和外部两个半空间。内部半空间假设充满材料,外部半空间是空的。分层数据结构的一个叶节点记录一个几何物体,一个内部节点表示布尔函数类型,并与叶节点和分支节点相连接。
边界表示被认为是一种更灵活的方式,可以支持更多的几何形状,如扩展几何形体,以曲面为边界来表示几何模型,具有两对数据结构。一对数据结构表示几何元素,点、曲线和曲面;另一对指定拓扑元素,顶点、边、环、面和壳,它们记录几何元素如何相互连接。五个元素的数量满足欧拉-庞加莱公式,该公式具有一组欧拉算子和规则,可以在不破坏几何模型整体形状的情况下创建和删除拓扑元素。
发明内容
该方法和嵌入该方法的***使用广泛的几何形体进行布尔运算和几何裁剪,构建几何模型。这些几何形体包括基本几何形体、曲面片和扩展几何形体,用几何面片显示。这种方法和这个***灵活,能够创建精细和多变的模型。图5-7显示该***生成的一些模型。
一个***将几何物体分解为面片并显示这些面片表示基本几何形体、扩展几何形体和曲面片。三角形是最简单的面片。一几何物体,一个基本几何物体、扩展几何形状或曲面片,可以分解为不同的面片,创建显著不同的形状,它们在产品设计中有意义。图3显示的圆柱体,具有不同面片。图4显示一曲面片使用不同的细分渲染。
此方法使用渲染面片,它们是几何面片,渲染以表示几何物体,来进行布尔运算和几何裁剪。给定两个几何物体A和B,进行一次几何运算,即布尔运算或几何裁剪,第一步是将每个几何物体的渲染面片映射到一个操作三角形集,并为每个三角形设置比邻。
为了构建几何物体的一条相交线,该方法首先搜索A和B,找出一对相交三角形(Ta,Tb)的交点,其中三角形Ta属于物体A,三角形Tb属于物体B。
物体A的一个三角形和物体B的一个三角形有零个、一个或两个交点。如果Ta的一条边与Tb相交且交点落Tb中,则这两个三角形有一个交点。
为了延长相交线,该***检查三角形Ta和Tb的比邻。
上一步骤通常会重复多次,直到物体的所有三角形都被检查,***生成零、一条或多条相交线。
此方法使用生成二维Delaunay网格的修改后的Watson方法拆分相交线通过的每个三角形。一条相交线可能有一个或多个部分落在一个三角形中,这些部分将该三角形分成三个或更多更小的三角形。
在进行几何裁剪时,该方法用相交线对几何物体进行划分,一条相交线将一个几何物体分为两部分,左侧或右侧。一个部分分为两种类型:保留或丢弃。一个部分被标识为保留,如果该部分的几何属性匹配一个操作参数:
保留类型。
为布尔运算,此方法将三角形分成两种类型:不可见和可见。一个三角是不可见的,如果它在空间上被一个几何物体关闭。
此方法重新组合三角形,删除一些三角形并将一些三角形复制在一起以形成新的几何物体。对于布尔运算,根据运算类型,可以保留不可见的和可见的三角形;对于几何裁剪,仅保留可见三角形以形成新的几何物体。
该方法为新的几何物体生成渲染面片。新几何物体的坐标值被复制到渲染面片集,三角形被复制到渲染面片集。
映射步骤为参与一次几何操作的每个几何物体生成一个操作三角形集。
此方法为几何操作定义了这些类:构造混合几何、操作几何、几何操作属性和操作三角形。
构造混合几何类,Constructive Hybrid Geometry,有两个属性,操作序列和操作结果,是两个列表。在初始状态,这两个列表为空。
操作几何类,Operating Geometry,有两个属性,几何物体和操作参数。几何物体是用几何参数定义的,包括大小、尺寸和位置,它们初始化一个形状。操作参数描述:1)操作类型以及保留几何的哪些部分以生成一个几何操作结果,2)面片属性,指定物体如何实际渲染以表示要在几何操作中的操作形状。
此方法使用渲染面片来表示操作结果。如果选择了操作几何以执行一个几何操作,或者更新了构造混合几何对象中的操作几何并且其所有参数都有意义,***将生成操作结果。
操作结果记录在构造混合几何对象中,其中结果包含零、一组或多组几何面片,每组代表一个几何物体。
为了记录几何建模过程,该方法执行五个步骤:分配一个构造混合几何对象,它包一个含操作序列和操作结果,创建或选择一个操作几何,包含一个几何物体和操作属性,将该几何物体追加到对象中,把操作几何中的渲染面片和结果中的每个几何物体映射到用于几何操作的操作三角形,并更新对象的操作结果。
附图说明
图1显示最普及的基本几何形状,包括长方体、圆锥体、圆柱体、棱柱体、棱锥体、圆环体、面封闭体积、拉伸形状和旋转形状,可用于在实体建模***中进行布尔运算。
图2显示曲面建模***中广泛使用的不同曲面创建命令创建的一些曲面片示例。图像最小的一个示例是封闭体积。前三个示例渲染有接缝,但实际上非常平滑。
图3显示一个圆柱体被分解为不同的面片并模拟不同的棱柱物体。面片越多,形状就越平滑。
图4显示一个曲面片使用两个参数在不同方向上进行细分,生成不同的几何物体。
图5显示该***生成的十个模型,每个模型都包含两个实体,具有质量,由一个曲面片和九个基本几何形体创建,执行九次布尔运算。每个茶壶的底部都用一个圆柱挖空。所有模型都使用相同的几何形状和相同的曲面片,分解成不同的面片。在第一个模型中,曲面片的位置被略微调整以确保相交。
图6显示了该***生成的八个模型,都是开放的,没有质量。每个模型都使用四个曲面片构建,一个曲面片不参与任何几何裁剪。这些曲面片在模型中是相同的,分解为不同的面片。
如图7所示,该***生成了十个模型,所有这些模型都是实体的,具有质量,并且由六个相同的曲面片和一个圆柱体创建,分解为不同的面片。其中一个曲面片形成盖,不参与任何几何裁剪。
在图8中,左边是一个由两个曲面片组成的模型,一个裁剪操作将每个曲面片分成三个部分。右侧部分显示保留的部分用于构建模型。
在图9中,一个锥体和一个曲面片参与裁剪,将每个几何形体分成两部分,并且每个模型都保留了锥体和曲面片的一部分。
图10示的模型由分离的部分形成,每个部分可以被视为一个几何物体,例如,被平移到特定位置。
图11是该***的用于进行一次几何运算的主要流程图。
图12是当附加一个操作几何到操作序列的末尾时,该***的用于执行几何操作的主要流程图。
该方法定义了这些类:操作三角形,描述一个三角形,***通过它进行几何操作;操作几何,描述一个几何物体,具有操作参数;几何操作属性,指定几何操作参数。当被选择或创建以构造几何模型时,一个几何物体附加操作参数以形成一个操作几何,参与几何操作。
操作三角形
操作三角形类有四个属性:顶点,是指向坐标值的三个指针;一个包含四个浮点数的平面,表示由三角形定义的平面方程;一个包含三个浮点数的法线;以及最多三个比邻。
Figure GDA0003801690280000051
操作三角形集类有两个属性,一个操作三角形集,对应于一个几何对象的渲染面片;以及一个操作点集,为三角形提供坐标值。
Figure GDA0003801690280000052
一个操作点有一个标识号和三个浮点数来指示空间位置。
操作几何:
该***中,一个几何物体是水密的基本几何物体,或是通过扩展或其他方法生成的扩展几何物体,或是空间上封闭或开放的曲面片。
Figure GDA0003801690280000061
操作几何类有两个属性:1)几何,它指定一个几何物体,表示几何类型及其属性,包括大小、尺寸和位置,或控制点、节点、权重和阶数;2)操作属性,它包含一组数字,描述几何物体如何分解为用于渲染的面片。在描述基本几何形体或扩展几何形体时,该数组包含零到四个数字。在图3中,面片属性有三个整数控制面片。为了定义面片以渲染曲面片,该数组可能只包含最多两个数字,描述如何对曲面片进行镶嵌。在图4中,数组有两个数字表示u和v方向的镶嵌,左侧的物体比右侧的物体使用更少的面片。
几何操作属性
几何操作属性类是一个数据,有两个派生类,布尔运算属性和几何裁剪属性,通过它们几何物体参与混合几何建模。
Figure GDA0003801690280000062
一个几何操作属性对象指导此***执行一次布尔操作或几何裁剪。
在该***中,当几何操作属性指向布尔操作或裁剪操作时,无论一个操作几何引用基本几何形体或曲面片,这个几何操作属性对象都是有效的。
布尔运算属性类包含一个属性,类型,它的数据类型为字符串,或整数,或字符,表示组合、交、排除、差或除,是布尔运算类型,通过它,几何物体构造几何模型。
几何裁剪属性类有一个属性,保留类型,说明一个几何物体被另一个物体裁剪时要保留哪些部分。该属性有两个值,对应于参与裁剪操作的两个几何物体。每个值可以是字符串、整数或字符,表示一个或多个部分。通常,在裁剪一个物体时,会生成两个或更多部分。在图8中,一个裁剪操作将每个几何形体分为三个部分,保留类型的值为{BIG,BIG},表示每个几何形体的最大部分被预留形成运算结果。
几何裁剪属性类有一个属性,分离,一个布尔值,指示裁剪操作是否生成一个或多个几何物体。值为真时,裁剪操作生成多个物体;假值表示裁剪操作生成单个物体,它包含一组点和一组面。
几何裁剪
两个几何形体A和B相互裁剪并生成更多部分,每个部分保留或丢弃用于构建几何模型;
为创建新几何物体,操作参数设置哪些部分被保留。此方法还允许几何裁剪保留可见或不可见的三角形以进行建模。
将一个几何物体的渲染面片映射到一个操作三角形集包括步骤:将渲染面片中的点复制到操作三角形集并确保没有相同的点;将三角形从渲染面片复制到操作三角形集;为操作三角形集合中的每个三角形建立平面方程和法线;为操作三角形集合中的每个三角形设置相邻三角形。
如果两点Pi(x,y,z)和Pj(x,y,z)满足条件:|Pi(x)-Pj(x)|<ε和|Pi(y)-Pj(y)|<ε和|Pi(z)-Pj(z)|<ε,其中ε为正浮点数,则点Pi与Pj相同,记为Pi==Pj。
如果一个几何物体中的两个三角形T0和T1满足以下条件,则T0的第i个比邻是T1。
(Pi==Pj和P(i+1)%3==P(j+1)%3)或(Pi==P(j+1)%3和P(i+1)%3==Pj)
相交线
生成一条相交线包含两个步骤:搜索A和B,通过边与三角形相交计算,找一相交三角形对(Ta,Tb),其中三角形Ta属于物体A,三角形Tb属于物体B;搜索三角形对的相邻三角形并进行边与三角形相交计算以延长相交线。
执行该计算时,该***检查三角形Ta的边是否与三角形Tb定义的平面相交且交点落入Tb,即该点在Tb内,或者该点在Tb的边上,或者该点是Tb的一个顶点,则该边和三角形有一个交点,两个三角形相交,该***标记对中的每个三角形并将交点添加到相交线上。
当延伸相交线时,该***捕捉未标记的比邻并执行边与三角形相交计算。如果计算得到一个交点,该***将该点附加到相交线的末端。延伸相交线的步骤继续,直到所有三角形都遍历完或相交线闭合,其中,相交线闭合时,线的起点与线的终点相同。
生成相交线的步骤通常重复多次,直到搜索完所有三角形,一次裁剪操作生成零、一条或多条相交线。
拆分三角形
为了拆分一条相交线通过的一个三角形,本***生成子相交线,每条子相交线是相交线的一段,其中该段的每个交点都在这个三角形中。
给定一条通过三角形的相交线,生成子相交线,***从标记位置开始,依次检查每个交点是否在这个三角形内;如果一个点在三角形内,则将该点添加到子相交线上,检查相交线上后续的交点直到线的结尾或直到一个点超出该三角形,并标记位置用于生成另一条子相交线。
一条相交线可能有一条或多条子相交线落入一个三角形中,而几何运算可能有多条相交线穿过同一三角形。
当本***在从相交线生成第一条子相交线时,标记位置是相交线的起点。
为了拆分一个三角形,该***根据三角形的法线将三角形及其所有子相交线映射到一个二维平面上,并使用改进的Watson方法,包括以下步骤:构建一个轮廓点序列连接所有子相交线,在适用的情况下连接三角形的顶点,添加四个点,形成一个更大的框,包围点序列;使用一条对角线将框分成两个三角形,并将三角形添加到三角形集中;将子相交线的每个点***到三角形集合中,包括以下步骤:分割每个三角形,其外接圆包含该点或最后两个点形成的线段通过该三角形,将其从三角形集合中删除并将其添加到删除三角形集,删除三角形集形成一个多边形并清除删除三角形集,使用多边形生成三角形并将三角形添加到三角形集中。
拆分三角形后,本***删除被拆分的三角形。
划分成部分
一条相交线将一个部分或一个几何形体分成两个部分,多条相交线将一个几何物体分成多个部分。该方法按照以下步骤用相交线对一个几何物体进行划分,其中几何物体包含一组操作三角形:
1.将几何物体的操作三角形集中每个点的标识号设置为零;
2.按升序设置相交线各点的标识号;
3.如果一个三角形的一个点的标识号不为零,则将其标记为边界三角形;
4.确定每个三角形是在相交线的左侧还是右侧,并分配一个标识号用于标记左或右;
5.计算每个部分的几何属性,即体积、或面积、或面片量或可见性;
6.将每个部分的几何属性与保留类型比较,并将该部分中的每个三角形设置为保留或丢弃。
保留类型和可见面片
设置保留类型属性允许该***生成更多的产品模型,其中该属性有两个或多个字符串,或者整数、字符或其他数据类型值指示哪些部分将被保留用于创建模型。图9示出的四个示例保留了不同的部分。
在定义哪些部分要保留时,保留类型属性记录一组值,每个值指定一个几何属性,即一组面封闭的体积,或面呈现的面积,或面片的数量,或一个部分的标识号,或一个部分的可见性。
可见性可以用作参数决定是否保留一个几何形体的被封闭部分用于构建几何模型。在图5中可见部分保留用于手柄建模。
为了检查三角形Ta在空间上是否可见,即从外部看不被掩盖,该方法具有以下过程。
1.取Ta的一个内部点o,其坐标值为a*P0+b*P1+(1-a-b)*P2。这里a>0、b>0和a+b<1。简单地,这个***设置a=b=1/3来获得三角形的中心。
2.建立一条线l:p=o+t*N,从o开始沿三角形Ta法线N。
3.搜索物体B以获得最近的三角形和最短距离,(Dmin,Tt)。对于物体B的每个三角形Tb,计算线与平面交点。如果线与三角形Tb定义的平面有一个有效的交点ip落在三角形Tb中,然后计算ip到o的距离。更新(Dmin,Tb),如果当前距离值小于Dmin,则设置Tt为Tb。
4.如果没有交点或者向量点积大于0,DOT(N,Nt)>0,那么Ta是可见的。这里Nt是三角形Tt的内法线。
重新组合面片
在决定保留一个部分后,该部分中的每个三角形都会获得一个保留标记。当属性分离为真时,重组步骤将物体A的所有有标记的三角形复制到一个新的几何物体中,将物体B的所有有标记的三角形复制到另一个新的几何物体中,该***生成分开的几何物体。
如果没有参数要求该***生成分开的几何物体,则重组步骤将对象A和B所有有标记的三角形复制到一个新的几何物体中。
如图9所示,每个模型可以是单个物体或包含两个裁剪的几何物体。在图10中,一个模型包含两个物体,其中任何一个都可以变换。
映射到渲染面片
为了显示在上述步骤中生成的新几何物体,它形成产品模型,本***将每个新几何物体的操作面片映射到一组渲染面片,它包含两个步骤:将每个操作三角形映射到一个绘制三角形,并将每个新生成物体的操作点映射到一组三维坐标。
该***可以使用新的几何物体来执行另一个几何操作。
布尔操作
本***采用五种布尔运算:组合、交集、排除、差和分法。一个组合、相交、排除和差运算通常会生成一个几何物体,而分法操作会创建更多物体。在图5中,一个分法生成两个物体:盖和体,它们是实体。
一个布尔操作包括六个步骤:将几何物体A和B的渲染面片分别映射到一组操作三角形,在物体A和B之间建立相交线,分割相交线通过的每个三角形,判断每个三角形是否可见,重新组合三角形以形成新的几何物体,并将操作片面映射到渲染面片。前三步和最后一步与几何裁剪相同。
与几何裁剪不同,布尔操作不需要额外的参数来决定要保留哪些面片。该***通过闭合检测检查每个三角形是否可见,其中的一个过程在可见面片部分中有描述。
每种布尔运算都有不同的重组步骤来形成新的几何物体,其中A或B的可见面片被保留或丢弃,或A或B的不可见面片被保留或丢弃,A和B的面片被合并,和一个物体面片的法线在合并之前被反转。
设计历史
在这个***中,设计历史包含一个几何操作序列和操作结果。记录设计历史是一个功能,用于构建需要多次操作和多个几何物体的复杂几何模型,可以在不执行多次撤消重做操作的情况下修改一个操作参数、替换一个物体或操作,从而提高***性能。
构造混合几何
构造混合几何类将布尔操作和几何裁剪与一个线性列表联系起来,每个几何操作都包含一个基本几何物体,一个扩展几何物体或一个曲面片。
Figure GDA0003801690280000111
构造混合几何类包含两个属性,序列和结果。序列属性描述一个操作列表,包含零个、一个或多个操作几何节点。结果属性具有零个、一个或多个操作几何节点,每个节点都包含一个几何物体,该物体在该***进行几何操作时生成。
一个CHG对象记录建立一个几何模型的所有几何操作,当操作列表至少有两个几何对象并且最后一个操作几何节点具有有效的操作属性时,本***进行几何操作。
创建一个操作几何
创建一个参与几何产品建模的操作几何体对象具有以下过程:
1.内存缓冲区中创建作一个基本几何对象,或一个扩展几何对象或曲面片,指定大小、尺寸和位置或控制点、结点、阶数和权重;
2.创建一个操作几何对象,它包含内存缓冲区中的几何对象;
3.设置操作几何的操作属性,它包含几何操作类型和面片属性。
运算类型为并、或、差、排除、分或裁剪。裁剪属性用两个参数详细说明:保留类型和分离。
记录一个操作几何节点
当第一个操作几何添加到一个构造混合几何对象时,根据操作几何节点中定义的面片属性,节点的几何体分解为一组渲染面片并添加到结果列表中。
当一个后续的操作几何附加到构造混合几何对象时,该***使用几何裁剪和布尔操作部分中描述的步骤进行几何操作:将包含在最后操作几何节点中的几何对象的渲染面片映射到一组操作三角形,记为几何对象B,其中每个三角形都有比邻;记存储在结果列表中的每组面片为几何对象A,创建几何对象B和A的相交线;拆分相交线通过的每个三角形;决定一个面片对于布尔运算是否可见,或者决定一个面片是否要为一个几何裁剪保留;重新组合面片以形成新的几何物体;并映射到渲染面片形成新的几何物体并更新结果列表中的几何物体。
当结果列表有多个几何形体时,上一段中的第二步到最后一步重复更多次,每个几何形体都被后续的操作几何节点操作。图11是用于进行一次几何运算的该***的主要流程图。图12是当一个操作几何被附加到操作序列的末尾时用于进行几何操作的该***的主流程图。
修改操作顺序
该方法提供修改操作序列列表的命令:将一个操作几何***列表,将一个操作几何附加到列表,从列表中删除一个操作几何,修改一个操作几何的属性,包括几何属性和操作属性。
序列表修改后,本***适时更新操作结果。在某些情况下,需要重新生成结果。
适时更新操作结果
当一个操作几何节点被添加到一个CHG对象并且该***执行一次几何操作时,该方法提供这些步骤更新操作结果,该***分开执行这些步骤中的一个或多个:
1.在结果列表中添加一个操作几何,其中操作几何包含一个几何形体,其操作属性为空值或被忽略;
2.从包含在结果列表中的操作几何节点中的几何中删除面片;
3.在结果列表中的操作几何节点中为几何对象添加面片;
4.从结果列表中删除一个操作几何节点。

Claims (16)

1.一种执行几何裁剪的方法,该方法用于计算机辅助设计***构建三维几何模型,使用渲染面片,它们是几何面片来渲染表示参与几何裁剪的几何物体A和B,在计算机***中实现并用计算机操作,包括:
将A和B的渲染面片分别映射到一组包含相邻三角形的操作三角形;
建立一条相交线,重复多次并形成多条相交线,首先搜索一对三角形(Ta,Tb)相交的交点,然后捕捉这对三角形的相邻三角形并进行边与三角形相交以将相交线延伸直到所有三角形遍历完或相交线闭合,其中Ta属于A,Tb属于B;
使用修改的Watson方法将一条相交线通过的每个三角形拆分,相交线段形成一个或多个子相交线,其中每个三角形被拆分为多个更小的三角形;
用相交线分别对A和B进行划分,其中一条相交线将一个几何物体划分为两部分,左侧和右侧;
设置每个几何物体的保留类型;
计算每个部分的几何属性,决定保留几何物体的哪些部分;
通过复制保留的三角形重新组合三角形构建一个或多个新的几何物体;
将新的几何物体映射到渲染面片形成三维产品模型。
2.一种执行几何裁剪的计算机***,该计算机***为产品设计构建三维几何模型,使用渲染面片,它们是几何面片来渲染表示参与几何裁剪的几何物体A和B,该***包括:一个计算机,有用于输入数据和命令的输入设备,显示用户界面和几何物体的显示设备,存储几何数据和指令的介质,以及执行这些步骤的处理器:
将A和B的渲染面片分别映射到一组包含相邻三角形的操作三角形;
建立一条相交线,重复多次并形成多条相交线,首先搜索一对三角形(Ta,Tb)相交的交点,然后捕捉这对三角形的相邻三角形并进行边与三角形相交以将相交线延伸直到所有三角形遍历完或相交线闭合,其中Ta属于A,Tb属于B;
使用修改的Watson方法将一条相交线通过的每个三角形拆分,相交线段形成一个或多个子相交线,其中每个三角形被拆分为多个更小的三角形;
用相交线分别对A和B进行划分,其中一条相交线将一个几何物体划分为两部分,左侧和右侧;
设置每个几何物体的保留类型;
计算每个部分的几何属性,决定保留几何物体的哪些部分;
通过复制保留的三角形重新组合三角形构建一个或多个新的几何物体;
将新的几何物体映射到渲染面片形成三维产品模型。
3.根据权利要求1所述的方法或权利要求2的***,其中将几何物体A或B的渲染面片映射到一组操作三角形包括以下步骤:将点从渲染面片复制到操作三角形组,将渲染面复制到操作三角形组,为每个操作三角形设置相邻的三角形。
4.根据权利要求1所述的方法或如权利要求2所述的***,其中寻找交点并延伸所述线包括边-三角形交点计算:检查三角形Ta的边是否与三角形Tb定义的平面在一点相交,然后进一步检查该点是否在Tb中。
5.根据权利要求1所述的方法或根据权利要求2所述的***,其中由相交线生成子相交线包括以下步骤:检查所述线的每个相交点是否在所述三角形中,然后将该点添加到所述子相交线,检查线的后续交点,直到线结尾或直到一点在三角形外。
6.根据权利要求1所述的方法或如权利要求2所述的***,其中修改Watson方法包括以下步骤:
建立一个轮廓点序列,连接所有子相交线,在适用的情况下将三角形的顶点连接起来;
添加四个点,形成一个更大的框,包围点序列;
使用对话线之一将框分成两个三角形,并将三角形添加到三角形集中;
将子相交线的每个点***到三角形集合中,包括以下步骤:分割每个三角形,其外接圆包含该点或最后两个点形成的线段通过,将其从三角形集中删除并将其添加到删除三角形集中,用删除三角形集形成多边形并清除删除三角形集,使用多边形生成三角形并将三角形添加到三角形集中。
7.根据权利要求1所述的方法或权利要求2所述的***,其中用相交线对几何物体进行划分包括以下步骤:将几何物体的每个点的标识号设置为零,将相交点的标识号按升序设置,识别边界三角形,确定每个三角形是在相交线的左侧还是右侧,并为三角形指定一个标识号用于标记一个部分。
8.根据权利要求1所述的方法或根据权利要求2所述的***,其中预留类型指示几何属性,并且计算每个部分的几何属性是计算体积、或计算面积、或计算面片的数量、或计算在该部分中三角形Ta的可见性,进一步包括:
从三角形的中心开始,沿着三角形的法线N构建一条线;
通过计算线与平面交点,搜索物体B寻找最近的三角形Tt,其内部法线记为Nt;
设置Ta可见,如果没有交点或者向量点积大于0,DOT(N,Nt)>0。
9.根据权利要求1所述的方法或根据权利要求2所述的***,其中,重新组合三角形将物体A和B的所有有标记的三角形根据所述分离参数复制到一个或多个新几何物体中。
10.根据权利要求1所述的方法或权利要求2的***,其中将新几何物体映射到渲染面片包括以下步骤:将每个操作三角形映射到一个渲染三角形,以及将每个新生成物体的点映射到一组三维坐标。
11.一种记录操作序列和操作结果的方法,用于计算机辅助设计***,操作结果形成一个三维几何模型,使用渲染面片,渲染面片是被渲染的几何面片以表示几何物体,在计算机***中实现并用计算机操作,该方法包括:
在计算机的内存介质中分配一个构造混合几何对象,它包含两个列表,操作序列和操作结果,其中序列列表顺序保存操作几何对象,结果列表存储几何对象,每个几何对象包含一组几何面片构成一个几何模型;
创建一个操作几何对象,它包含几何对象和操作属性,操作属性包括操作类型和表示渲染面片的面片属性,其中几何对象是一个基本几何对象、一个扩展对象或一个曲面片,并且操作类型是一个布尔运算类型或几何裁剪类型;
将操作几何对象附加到序列列表形成一个节点;
将操作几何对象的渲染面片映射到一组包含相邻三角形的操作三角形;
将结果列表中每个几何对象的渲染面片映射到一组包含相邻三角形的操作三角形;
适时更新对象的操作结果,其中结果模拟一个三维产品模型。
12.一种记录操作序列和操作结果的计算机***,该计算机***为计算机辅助设计建立三维几何模型,使用渲染面片,渲染面片是被渲染的几何面片以表示几何物体,该***包括:计算机,有用于输入数据和命令的输入设备,显示用户界面和几何对象的显示设备,存储几何数据和指令的介质,以及执行这些步骤的处理器:
在计算机的内存介质中分配一个构造混合几何对象,它包含两个列表,操作序列和操作结果,其中序列列表顺序保存操作几何对象,结果列表存储几何对象,每个几何对象包含一组几何面片构成一个几何模型;
创建一个操作几何对象,它包含几何对象和操作属性,操作属性包括操作类型和表示渲染面片的面片属性,其中几何对象是一个基本几何对象、一个扩展对象或一个曲面片,并且操作类型是一个布尔运算类型或几何裁剪类型;
将操作几何对象附加到序列列表形成一个节点;
将操作几何对象的渲染面片映射到一组包含相邻三角形的操作三角形;
将结果列表中每个几何对象的渲染面片映射到一组包含相邻三角形的操作三角形;
适时更新对象的操作结果,其中结果模拟一个三维产品模型。
13.根据权利要求11所述的方法或根据权利要求12所述的***,其中创建一个操作几何包括以下步骤:在存储器缓冲区中创建一个几何对象,定义这个几何对象的面片属性,以及选择操作类型。
14.根据权利要求11所述的方法或权利要求12所述的***,其中将操作几何对象添加到所述对象包括以下步骤:将所述操作几何对象附加到序列列表的末尾,以及清除所述缓冲器。
15.根据权利要求11所述的方法或权利要求12的***,其中将渲染面映片射到一组操作三角形包括以下步骤:将渲染面片的点复制到操作三角形的集合,将渲染面片映射到操作三角形,为每个操作三角形设置相邻三角形。
16.根据权利要求11所述的方法或权利要求12所述的***,其中适时更新对象的操作结果包括:将表示几何对象的一组渲染面片添加到结果列表中,从结果列表中的节点删除一组三角形,将一组三角形添加到结果列表中的一个节点,删除结果列表中的一个节点。
CN202080082032.4A 2019-11-26 2020-09-08 使用几何面片进行混合建模的方法和*** Pending CN115087983A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/695,305 US11238649B2 (en) 2019-11-26 2019-11-26 Method and system for hybrid modeling using geometric facets
US16/695,305 2019-11-26
PCT/CA2020/051207 WO2021102553A1 (en) 2019-11-26 2020-09-08 Method and system for hybrid modeling using geometric facets

Publications (1)

Publication Number Publication Date
CN115087983A true CN115087983A (zh) 2022-09-20

Family

ID=75975016

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080082032.4A Pending CN115087983A (zh) 2019-11-26 2020-09-08 使用几何面片进行混合建模的方法和***

Country Status (4)

Country Link
US (1) US11238649B2 (zh)
CN (1) CN115087983A (zh)
CA (1) CA3158523C (zh)
WO (1) WO2021102553A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115100357A (zh) * 2022-07-08 2022-09-23 中国航空发动机研究院 几何特征描述的数据文件生成方法及几何特征格式转换方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7538764B2 (en) * 2001-01-05 2009-05-26 Interuniversitair Micro-Elektronica Centrum (Imec) System and method to obtain surface structures of multi-dimensional objects, and to represent those surface structures for animation, transmission and display
US7365745B2 (en) * 2005-09-15 2008-04-29 St. Jude Medical, Atrial Fibrillation Division, Inc. Method of rendering a surface from a solid graphical image
BE1018615A4 (fr) * 2007-11-27 2011-05-03 Ideal Scope Pty Ltd Procede et systeme d'amelioration de la modelisation optique de pierres precieuses.
JP5916758B2 (ja) * 2011-01-14 2016-05-11 ダッソー システムズ ソリッドワークス コーポレイション Gpu上でのcadモデルの直接的なレンダリング
US8954295B1 (en) * 2011-08-10 2015-02-10 Trimble Navigation Limited Determining an outer shell of a composite three-dimensional model
WO2017142953A1 (en) * 2016-02-16 2017-08-24 Board Of Regents, University Of Texas System Mechanisms for constructing spline surfaces to provide inter-surface continuity
US10109105B2 (en) * 2016-07-12 2018-10-23 Nature Simulation Systems Inc. Method for immediate boolean operations using geometric facets
US10120961B2 (en) * 2016-07-12 2018-11-06 Nature Simulation Systems Inc. Method for immediate boolean operations using geometric facets
US10580196B1 (en) * 2018-08-10 2020-03-03 Nvidia Corporation Method for continued bounding volume hierarchy traversal on intersection without shader intervention
US10885698B2 (en) * 2018-08-10 2021-01-05 Nvidia Corporation Method for programmable timeouts of tree traversal mechanisms in hardware
EP3675059B1 (en) * 2018-12-29 2022-09-14 Dassault Systèmes Extracting a feature tree from a mesh

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115100357A (zh) * 2022-07-08 2022-09-23 中国航空发动机研究院 几何特征描述的数据文件生成方法及几何特征格式转换方法
CN115100357B (zh) * 2022-07-08 2024-03-12 中国航空发动机研究院 几何特征描述的数据文件生成方法及格式转换方法

Also Published As

Publication number Publication date
US11238649B2 (en) 2022-02-01
US20210158612A1 (en) 2021-05-27
CA3158523C (en) 2023-06-20
CA3158523A1 (en) 2021-06-03
WO2021102553A1 (en) 2021-06-03

Similar Documents

Publication Publication Date Title
EP1710720B1 (en) Method of computer-aided design of a modeled object having several faces
Yerry et al. Automatic three‐dimensional mesh generation by the modified‐octree technique
US20080246766A1 (en) Numerical analysis mesh generating method and apparatus
JP4381743B2 (ja) 境界表現データからボリュームデータを生成する方法及びそのプログラム
Mirante et al. The radial sweep algorithm for constructing triangulated irregular networks
Jeřábková et al. Volumetric modeling and interactive cutting of deformable bodies
Cavalcanti et al. Non-manifold modelling: an approach based on spatial subdivision
JP2008251044A (ja) コンピュータにおけるグラフィック表現生成方法
Lo Automatic mesh generation over intersecting surfaces
US10120961B2 (en) Method for immediate boolean operations using geometric facets
Penninga et al. A tetrahedronized irregular network based DBMS approach for 3D topographic data modeling
Rebecca et al. TIN meets CAD—extending the TIN concept in GIS
CA2966299C (en) Method for immediate boolean operations using geometric facets
Guo et al. Tetrahedral meshing via maximal Poisson-disk sampling
Pai et al. New aspects of the CISAMR algorithm for meshing domain geometries with sharp edges and corners
CN115087983A (zh) 使用几何面片进行混合建模的方法和***
JP3928016B2 (ja) 最大角度法を用いた三角形メッシュ生成方法及びプログラム
Fayolle et al. Optimized surface discretization of functionally defined multi-material objects
JP3178808B2 (ja) オブジェクト再構成方法及びオブジェクト近似方法及び空間描画方法
Gold Data structures for dynamic and multidimensional GIS
JPS63178372A (ja) 多面体形状作成装置
KR100576128B1 (ko) 등가면 도시 시스템 및 방법
Bottasso et al. Data structures and mesh modification tools for unstructured multigrid adaptive techniques
Fürnstahl Consistent mesh partitioning using tetrahedral meshes
Yang et al. Solid modeling in GEMS 4.0

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