面与面相交得到 三维建模面与面相交操作
两个面相交。在三维软件中,两个平面相撞在一起。产生了一条线,这根线叫做交线。
面和面相交的核心操作逻辑就是布尔运算和曲面求交算法的应用。软件后台运行的是数值计算。前台会显示出一条亮线或者是某个被选择过的边。用户会得到结果但是不会看到整个过程。
两个平面相交。最干净的情况。两个无穷大的数学平面对应。法向量不平行。必然会交出一条无穷长的直线。在三维建模软件中所看到的面并不是无穷无尽的。经过裁剪后的曲面片,带有边框。两个矩形面相交。交线可能是单一条直线。落在两个相交的面上所形成的区域。超过边界就什么都没有了,软件只画出这一段来。
曲面和曲面相交。事情变得越来越复杂了,有两个自由曲面。例如汽车覆盖件的内板和外板。交线为空间曲线,方程阶数较高,求解依靠迭代逼近。容差设置为0.001毫米。计算出的线条,在容差范围之内与两个表面相接。超过容差就认为是失败了。出现错误或者给出一条断线。
面面相交的操作,在参数化的建模环境中表现为“相交曲线”的命令。选择两个面。生成一个三维曲线,该曲线可以用作修剪工具。也可以用来分隔空间、创建新特征等。在SolidWorks中被称为“交叉曲线”。在Rhino中被称为“交集”。在Catia中被称为“相交”。名字不一样,但是底层逻辑是一样的。两个输入、一个输出。输出就是交线。
面和实体面相交。情况常见。用一个草图拉伸出的一个面来切割一个实体表面。软件首先计算出各个面和实体之间的每一个面的交线。拼接在一起就形成了一个封闭的环形结构,这个环形结构所包围的空间就是我们所说的那个区域。该处为分界线。布尔运算中的减法用的就是这个边界把实体分成了两部分。留下一部分删掉一部分。
倒角的操作也会涉及到面面相交的问题。倒圆角的本质就是构造出和相邻两个面相切的一个滚动球曲面。球面和两边的平面求交点,得到两个接触点。两条线来确定倒角面的范围。滚动球半径不变,交线光滑连续。半径发生变化就是变半径倒角。算法更加复杂了,求交次数翻了一番。
面面相交的精度直接影响到之后的建模工作是否能够顺利进行。公差设置过大。两条交叉的线条之间要留有缝隙,缝合命令出错。实体不能形成。公差设置得太小了。计算的时间变得非常长。复杂的模型出现了问题。在工程建设中一般设置为零点零一毫米至零点零零五毫米之间。汽车模具行业的压力达到了0.002毫米。航空钣金件可以放宽到0.1mm。根据需要。
修剪面就是两个平面相交之后的一种直接运用。一个面被另外一个面切割开来。保留一边,删除另一边。底层的操作就是求交线。交线将原来的面参数域分成两个部分。软件会决定保留哪一块。剩下的那一块又产生了新的边界,并且表示出来。边界表示用的是B-rep的数据结构。拓扑信息会随着更新而变化。但是面并没有改变,数学定义也没有发生变化,只是边界发生了变化。
曲面展开之后会相交。情况比较特殊,原始面边界向外移动。延伸面和目标面相交。延伸面并没有一个完整的数学定义。用外插法,但是外插很容易出问题。曲率突变的位置向两边延伸可能会产生变形。扭曲之后的面和目标面相交的地方不准。之后抽壳加厚出现了问题。有经验的工程师一般不会去做这样的事情。宁可重新构造面孔。
复杂的模型进行布尔运算的时候,大部分问题都出在了面面相交的地方计算不准上。两个自由曲面相交的曲线无法计算出来。或者算出碎段。软件提示为“非流形边界”,“相交曲线不完整”。用户自己去提取交线。补充一些内容之后再进行切割。很费劲。高质量曲面建模要使每个面片都尽可能简单。控制点分布均匀、曲率连续,这样求交就比较稳定了。
两个面相交所形成的线条也可以反向推动新的面出现。扫掠命令,交线做为路径,截面沿着路径行走,生成管状面,交线当作引导线,放样生成过渡面。交线的连续性决定了生成面的连续性。G0连续的交线只能产生G0连续的面。想要获得G2连续的面。交线上也必须是G2连续的。
在测量功能中也会用到面面相交。软件测试的是两个面之间的最小距离。首先求出一条面到另一条面的法向投影线。该条线的本质就是虚拟交线。投影线的长度就等于距离值。两个面是平行的,并且没有交点。投射光线可以随意放置,但是它们必须保持相等长度。两个面不平行。最小距离是在一个特殊的点上发生的。软件迭代找到那个点。
在实际工作当中,各种各样的操作频繁发生,并且其中一些操作出现的频率非常高。几乎每一个零部件的建模都离不开它。切槽。打孔、做加强筋、修外形、合模线设计、分型面创建等等,都是面和面之间的争斗,最后的结果就是交线。交线就是以后几何构造的骨架。
三维建模软件的历史上求交算法的发展路径非常清楚。早期是用离散三角面片来近似求交。速度慢、精度低。之后又形成了用NURBS来实现准确求交的方法。计算量翻倍但是结果依然可靠。之后就是混合的方法。首先使用包围盒来快速剔除不相交的面片。还要对有可能相交的区域进行准确计算。工作效率大大提高。
网格面和网格面相交。另一套逻辑。网格就是离散三角形片组。求交的问题就变成了两个三角形两两求交。数量多了就用空间来分隔加快速度。八叉树、BVH树等把三角形分成若干个部分,并且只对有可能发生碰撞的部分进行计算。游戏引擎、3D打印切片软件都使用了这种技术。医学影像重建也是用到的。把CT扫描的数据转换为网格面的形式。多个器官网格面求交。得到接触区域。
一个常见的误区就是把视觉上穿插的现象误认为是面面相交的操作。把两个物体放在一起。看起来是交叉的,并且没有执行相交命令。软件并不认为它们有关联。各自为政。渲染没有问题。导出STL文件进行打印就会出现各种各样的问题。打印机会把重叠的部分当作一个实体来处理。打出来黏连。需要在建模环境中进行布尔并集或者相交曲线来修剪掉重叠的部分。
两部分相交形成开放边的情况。交线不能构成一个封闭的圈。在进行软件修剪的时候会提示出“不能确定要保留的区域”的情况。要补上一段曲线来封闭伤口。或者是扩展其中一面使它完整的穿过另外一面。延伸命令其实也是两个面相切之后的延续操作。相切延长求交比较稳定。曲率延伸可能会出现自交现象。自交在模型中是不允许出现的。
装配体环境下各个部分之间的相互联系。两个零件各自对齐之后进行干涉检测。软件里面运行的是两个零件的所有表面求交计算。有交点就表示存在干涉现象。没有交点就表示不存在间隙。间隙值可以做更多的研究。均匀间隙、不均匀间隙、最大最小位置、报告出来。模具的设计要通过这个来检验合模的状态。
需要注意的是面面相交命令的参数选项。有的软件有“延伸相交”的选项。勾选之后会自动将短面拉伸为可以完全穿入目标面的状态。去掉人工延长的过程。有的给出的是“创建关联交线”。交线会随着原始面的变化而更新。参数化设计要打开这个。不打开的话面修改后交线不变。后面的特征都乱了。
高阶技巧就是用面面相交来产生复杂的过渡曲面。构造出两个空间曲线。把拉伸变成两个辅助面。两个辅助面相交就形成了一个空间交线。该条线被严格地控制在两根原始曲线之内。再用这条交线作为脊线来做出曲面过渡。曲面的质量很高,边界的贴合也很好。汽车A面建模时用到的方法之一是这样。也称为“骨架线法”,或者是“交线驱动法”。
两个圆柱面相交。相贯线是机械制图的基础内容之一。在三维软件中点击两次就可以得到结果。相贯线在钣金展开中是有用的。沿相贯线剖切圆管,展开放大到平板状,用激光切割机进行下料,在现场进行焊接。没有这条交线就无法工作了。
面面相交,在逆向工程中所起的作用。扫描点云生成网格面,多个网格面拼接起来,重叠的部分要进行修剪处理。找到各个网格面之间的交界处作为边界线,并把边界线提取出来。然后把这些提取出来的边界线重新组合成一条光滑的曲线。曲线重构NURBS面。从点云到实体完整的链条中。面面相交就是中间桥梁。
了解各种关系交织在一起的本质可以用来判断所用建模方法是否正确。两个面相交比较困难。说明曲面本身就很复杂。换个角度看问题。把大块分成小块。逐个求交点。然后把这些点拼在一起。简单的相交永远要比复杂的可靠。该原则对于曲面建模也是不变的。
软件出现错误信息“相交曲线不唯一”。两个面部分重叠,并且不止有一条交线,程序也不知道选择哪一条作为起点来手动指定起始点。也可以把其中一面切成两部分来求解。解决掉问题。
两两相交形成的线在草图中也可以被投影出来。反过来草图线也可以拉成长面来和实体长面求交。上通下达、二维和三维之间来回转换,交点就是转换的枢纽。
在一些特殊的场合中,并不需要有准确的交线。只要视觉效果。在渲染软件中两个面重叠在一起。看到的是有线,实际上并没有。模型轻量化传输的时候会保持穿插的状态。节省数据量。如果需要进行加工的话就必须要做布尔运算。把穿插变为确定的几何。
面面相交的操作并不神秘。点击命令、选择面、确认、线条出现,在后面有密集的数学知识,线性代数、微分几何、数值分析等等,一块儿来吧,用户不需要懂数学,只需要学会操作逻辑就可以了。知道自己在什么样的情况之下会失败。提前避开。
公差设置页面中“相交公差”的选项。默认值为0.0254米。英制单位换算成一毫英寸。大小由模型尺寸来决定。大的模型使用较大的公差,小的零件使用较小的公差。手表上的零件零点零零一毫米。建筑模型只要一毫米就可以了。
两个面几乎是相切的。交线无法计算出来,数值很不稳定,稍微改变一下角度,交线就会马上变得很清楚。在建模的时候要防止零度角相交。保持五度以上的夹角,求交比较稳定。
面面相交就是三维建模的基本动作。达到拉伸、旋转的一个层次。掌握该动作的边界条件。可以节省大量的返工时间。曲面建模并不是一种玄学。是有一定的规律可以遵循的工程建设实践。交线就是一种规律。
两个平面相交就会产生一条直线。线和面相交就会产生一个点。点、线、面不断循环,可以构造出各种复杂的形状。三维建模软件将上述点、线、面的关系转化为可以编辑和参数化为数字模型。底层的欧拉操作保证了拓扑合法性的要求。互相接触但是不会破坏拓扑结构。只增加一条边,这条边连接着两个面的数据结构是相同的。
长时间建模的话,对于交线的敏感程度就会变高。一看就知道什么地方会出现问题。这是通过不断的实践得到的经验,并不是有捷径可走。多多建造、多多犯错、多多改正。慢慢地就学会了怎样摆放面条使求交变得容易。怎样才能避开软件算法上的漏洞呢?所有的三维建模高手都会走这条路。
声明:五行查询网所有文章资源内容,除特别标注[原创]标识外,均为通过公开渠道采集的网络资源。侵权处理:如发现本站内容侵犯原著者合法权益,请通过以下方式提交书面通知:邮箱:yangming912@qq.com,要求:需提供权利人身份证明及侵权内容具体链接,处理时限:本站将在收到合规通知后72小时内处理。
