Site Tools


关于 Rhino 中的实体

似乎总是有很多关于实体与表面的讨论,从用户的角度来看,有很大的误解。正如John Brock所说:“你需要注意,不要被Rhino中可以炸开实体的事实所迷惑”。

我对这个问题的看法如下(希望不要说的太长)。

Rhino的曲面对象类型

Rhino创建的混合模型可以包括曲面、多重曲面和实体。

  • 曲面是单独的、零厚度的片状体,是2D或3D的。
  • 多重曲面是许多面体组合在一起,形成二维或三维的零厚度片体。
  • 实体是单一的表面或多重曲面形成一个封闭体(仅限三维)。

因为曲面有一个法线方向(决定正面与背面的方向),Rhino在形成实体的时候会理解为一个体积,因为所有的面都会自动调整(如果需要的话)朝外。

[Rhino认为,当所有相关面的边缘没有任何缝隙或孔洞地连接起来时,体积就是一个实体。这意味着对象中没有任何边没有与另一条边连接(而且只有一条边)。没有未连接的边(用Rhino的话说就是 “裸漏边缘”)告诉Rhino这个物体是一个封闭的体(读作 “实体”),Rhino会将所有表面法线翻转到外面。哪怕是发现一条裸露的边或洞,Rhino会认为该体是开放的,而不是实体的。-Mitch]。

Rhino与常见实体建模软件的区别

不像SOLIDWORKS这样的实体建模软件主要是以实体为工作对象,Rhino使用更灵活的混合方式。但是,如果你从任何一个常规实体软件导出一个实体(比如一个立方体)到STL、VRML等,结果都是一样的。壳的边界表示,零厚度的皮层内没有材料。实体,为了得到一个更好的词,是由边界和表面方向定义的。这就是说,根据定义,里面的一切都必须是固体。

这一点可以通过使用 “从平面曲线到表面 “命令来说明。

  • 画一个正方形,这代表的是Rhino立方体的零厚度切面。
  • 使用Surface from Planar Curves指令,以正方形为边界插入一个曲面。这就是软件所理解的立方体的切面,是一个实体。
  • 删除这个曲面,在第一个曲面内再画一个正方形。这代表一个空心立方体(有墙的部分)。
  • 使用 “从平面曲线生成曲面 “命令,以两个方块为边界插入一个曲面。这就是软件所理解的带壁面的立方体的切面,是一个实体。
  • 需要注意的是,软件能理解多个边界,并能解决实体中的 “肉 “的问题。或者说,在这个例子中,它的一个切面。

建模的真相

许多人对这样一个事实感到不安,即如果他们修剪一个实体(如建筑物的墙),就会暴露出实体边界表示(BRep)的内部。这更多的是与切割墙体的技术有关,而不是与 “它是否真的是实体 “的问题有关。如果你使用布尔操作来切割实体,使用曲面或实体作为切割工具,你永远不会看到BRep的内部,所以一切都被保密。

在用户层面,这就是SOLIDWORKS和Solid Edge这样的实体软件一直在做的事情。他们必须将几何体作为实体来解决。是的,他们包括一些基本的曲面工具,但与Rhino相比,什么都不是。

Rhino的混合方法给用户带来的力量和灵活性几乎在每个方面都是不容置疑的。

总结

有一些软件包需要从真正意义上理解实体这个材料。这些包括流动分析包和应用,如Sensables - Clay Tools for Rhino。这些软件包(请原谅我糟糕的非技术性描述)经常使用体素。我能给出的最好的描述是把它们想象成一团微小的立方体砖块堆积在一起来定义体积。或者有点像豆袋椅(记得70年代)。它是一个充满了定义体积的小珠子的皮肤,但没有皮肤。当你需要让材料流动或需要交互式雕刻时,实体的这种定义很有用。

OK,到此为止。如果你发现任何错误,请随时纠正我, 谢谢。

[Mark H. 05-12-05]

zh/rhino/soliddiscussion.txt · Last modified: 2023/05/16 (external edit)