t_cross中文名( 八 )


点场构建 Iso Surface
场的强度值可直接作为Iso surface运算器V输入端的体数据,用以提取空间中磁场的等势面 。该案例为通过点磁场构建Iso Surface的最终效果 。
本案例的主要逻辑构建思路为首先在一个Box范围内,创建一定数量的三维等分点,并通过点磁场作用于三维等分点,由Iso Surface运算器提取出磁场范围内的等势面 。为了避免改变参数过程中产生与主体结构不相连的网格,可通过网格面积来筛选出主体结构 。以下为该案例的具体做法:
(1)用Center Box运算器创建一个边界范围,其X、Y、Z三个输入端分别赋予80、50、35 。
(2)为了保证程序界面的简洁性,将Center Box运算器的输出数据赋予Box运算器,并将两个运算器同时命名为“边界Box” 。后面的操作过程中可将这两个运算器的连线隐藏掉 。
(3)通过Evaluate Box运算器创建三维等分点,由于Iso Surface运算器是采用Marching Cubes算法,为了保证每个方向上等分点与细分Box的数目保持一致,需要将单个方向细分Box的数量减去1作为等分点的数量 。
(4)用Number Slider运算器创建一个40的数值,并将其赋予Number运算器,将两个运算器同时命名为“网格精度”,后面的操作过程中可将这两个运算器的连线隐藏掉 。
(5)通过Subtraction运算器将网格精度的数值减去1,并将结果赋予Range运算器的N输入端 。
(6)为了保证X、Y、Z三个方向生成相同数目的点,需要将Range运算器的输出数据通过Cross Reference运算器进行交叉对应,可通过放大运算器单击“+”来增加输入端的数量 。
(7)将Cross Reference运算器的三个输出端数据分别赋予Evaluate Box运算器的U、V、W三个输入端 。
(8)依据Populate 3D运算器在边界Box范围内创建90个随机点,其S输入端随机种子的数值可设定为3 。
(9)用Gene Pool运算器创建四个数值,分别为1.80、-2.50、2.00、-1.80 。由于该运算器的默认数值个数为10,且区间范围是0-100,可通过双击该运算器改变其数据的个数与区间范围 。
(10)用Repeat Data运算器对上一步中创建的四个数据进行复制,复制后数据的总数与随机点的数量保持一致 。
(11)通过Point Charge运算器创建点磁场,以随机点作为磁场的中心点,复制后的数据作为磁场的强度值 。
(12)用Merge Fields运算器将全部的点磁场进行合并 。
(13)通过Evaluate Field运算器测量每个三维等分点位置所对应的磁场强度 。
(14)将边界Box赋予Iso Surface运算器的Box输入端;将三维等分点所处位置的磁场强度值赋予其v输入端;将网格精度值赋予其Xres、Yres、Zres三个输入端 。
用Average运算器测量磁场强度的平均值为0.028662,因此IsoValue输入端的数值大小应与该值相差不大,该案例赋予的数值为0.012001,;将True布尔值赋予其Merge输入端,使生成的网格更圆滑 。
(15)在调整IsoValue输入端变量的过程中,会出现部分网格未与主体相连的情况,为了使得到的结果只有一个整体的网格形体,可通过Disjoint Mesh运算器将不连接的网格进行分割 。
(16)用Mesh Area运算器测量分割后全部网格的面积 。
(17)通过Sort List运算器将网格按照面积大小进行重新排序 。
(18)由于整体网格形体的面积是最大的,但是Sort List运算器是按照由小到大的顺序进行排序 。为了方便选择,可通过Reverse List运算器将列表进行反转,这样面积最大的网格形体就位于列表中的第一个位置 。
(19)用List Item运算器提取列表中索引值为0的网格作为最终结果 。
(20)如果对最终的网格形体有一定的厚度要求,可将其Bake到Rhino空间,用偏移网格命令对其加厚处理 。

推荐阅读