首页/技术分享

DynamoPrimer解析之Obsolete-Nodes_Sine-Surface

发布于:2019-12-30 15:30:04
4453人 分享

1、首先通过节点Rectangle.ByWidthLength创建一个矩形,这个节点的第一个输入端plane需要一个平面作为矩形的定位平面,矩形的中心将位于所输入平面的中心。图中输入的平面是X轴与Y轴组成的平面。输入端width与length分别为矩形的宽度与长度,图中将它们都定义为100个单位。最后用节点Surface.ByPatch将矩形封闭形成曲面。

01_生成曲面.png

2、通过节点Surface.PointAtParameter获取曲面上的点。输入端surface输入一个曲面。输入端u和输入端v分别输入曲面上两个方向的坐标,该坐标值位于区间[0, 1]中。图中所输入的两个坐标都为0和1之间均分为50份的各个数值。最后将节点Surface.PointAtParameter的连缀方式改为叉积就获得图中的点阵。

02_获取曲面上的点.png

3、建立一个CodeBlock。

3.1 第一行是创建一个列表,该列表的数值与数学中正弦函数有关。Math.Sin(x*360*cycles)中变量x是0至1之间均分为50份后的列表。变量cycles表示周期,乘以360之后就能控制函数的频率。变量amp表示幅度,数值越大,所获得的结果就越大。

3.2 第二行使用了列表处理中的函数Transpose,可以将输入的列表进行转置。

3.3 最后的变量eggShellList是前两个小步中数据的和,用于下一步中各个点移动的距离。

03_建立函数.png

4、节点Geometry.Translate能够将输入的对象进行移动复制。在上一步中,一个数据经过正弦函数计算之后,会有50个数据合在一个子列表中。一共有50个数据,因此生成50x50=2500个新数据。刚好我们生成的点就是2500个,每个点对应一个移动的距离。节点Geometry.Translate的输入端geometry输入需要移动的几何图形。输入端direction输入移动的方向,图中为世界坐标系Z轴的正方向。输入端distance输入移动的距离。

04_移动各个点.png

5、节点NurbsSurface.ByPoints能够依据输入的点生成曲面,但是在输入点之前先通过一个代码块控制所输入的点。sineStrips表示所有点组合成的列表,随后的一对中括号表示提取列表中指定的索引项。索引项从0开始直到某个数值,这个数值是由列表的项数减去1之后乘以一个系数,该系数位于区间[0, 1]之间,相当于控制了该曲面所覆盖的点的范围。

05_控制生成的范围.gif

转载请注明来源本文地址:https://www.tuituisoft/blog/3744.html

上一篇:

Revit中老虎窗的绘制要点

下一篇:

DynamoPrimer解析之ARCH-Selecting-BaseFile