6、曲面的点已经通过上一步中的移动复制确定了位置,于是通过节点NurbsSurface.ByPoints创建一个曲面,输入端points需要输入组成曲面的各个点图元,输入端uDegree和输入端vDegree分别表示U方向和V方向的阶数,默认是3。
7、节点AdaptiveComponent.ByPoints能够自动放置自适应构件。在此之前,需要确定两个变量。
7.1 第一个变量是输入端familyType,即自适应构件的族类型,该变量可以直接通过节点Family Types确定。
7.2 第二个变量是输入端points,即自适应构件的定位点。定位点比较复杂,需要借助节点包LunchBox中的节点LunchBox Quad Grid by Face,该节点需要三个输入端,第一个输入端surface就是曲面,输入端U和输入端V分别表示U方向和V方向四边形的数量。
7.3 最终的输出端有三个,第一个是Panel Pts,即四边形的四个点。第二个是Panel Polys,即四边形的四条边。第三个是Panel Faces,即四边形的面。我们需要的是四边形的点作为定位点。
8、放置完自适应构件以后,每个构件与太阳光之间都有一个夹角。
8.1 节点Plane.ByBestFitThroughPoints能够通过输入的点创建一个最接近输入点的平面,节点Plane.Normal能够获取平面的法向量,即得到了每个构件所在平面的法向量。
8.2 节点SunSettings.Current能够获取当前文档中的日光设置,节点SunSettings.SunDirection能够获取日光设置中日光的方向。最后用节点Vector.Dot计算两种向量之间的点积。
9、将Aperture Ratio的数值赋予每个自适应构件。
9.1 在上一步中获取到向量之间的点积之后,先通过节点Math.Abs得到这些数据的绝对值。
9.2 通过节点Math.RemapRange重新定义数据的范围并且保留数据的分布率。输入端newMin和输入端newMax分别定义的是新范围的最小值与最大值。输入端numbers输入需要调整的数据。
9.3 最后通过节点Element.SetParameterByName将参数值赋予到参数Aperture Ratio中。输入端element输入之前放置的自适应构件。输入端parameterName表示参数的名称,即Aperture Ratio。输入端value输入参数的具体数值,即向量点积的绝对值。
评论0