完善主體資料,免費贈送VIP會員!
* 主體類型
* 企業(yè)名稱
* 信用代碼
* 所在行業(yè)
* 企業(yè)規(guī)模
* 所在職位
* 姓名
* 所在行業(yè)
* 學歷
* 工作性質
請先選擇行業(yè)
您還可以選擇以下福利:
行業(yè)福利,領完即止!

下載app免費領取會員

NULL

ad.jpg

DynamoPrimer解析之Obsolete-Nodes_Sine-Surface

發(fā)布于:2019-12-30 15:30:04
首頁/技術分享/Dynamo
收藏
4783

來福

更多

1、首先通過節(jié)點Rectangle.ByWidthLength創(chuàng)建一個矩形,這個節(jié)點的第一個輸入端plane需要一個平面作為矩形的定位平面,矩形的中心將位于所輸入平面的中心。圖中輸入的平面是X軸與Y軸組成的平面。輸入端width與length分別為矩形的寬度與長度,圖中將它們都定義為100個單位。最后用節(jié)點Surface.ByPatch將矩形封閉形成曲面。

01_生成曲面.png

2、通過節(jié)點Surface.PointAtParameter獲取曲面上的點。輸入端surface輸入一個曲面。輸入端u和輸入端v分別輸入曲面上兩個方向的坐標,該坐標值位于區(qū)間[0, 1]中。圖中所輸入的兩個坐標都為0和1之間均分為50份的各個數值。最后將節(jié)點Surface.PointAtParameter的連綴方式改為叉積就獲得圖中的點陣。

02_獲取曲面上的點.png

3、建立一個CodeBlock。

3.1 第一行是創(chuàng)建一個列表,該列表的數值與數學中正弦函數有關。Math.Sin(x*360*cycles)中變量x是0至1之間均分為50份后的列表。變量cycles表示周期,乘以360之后就能控制函數的頻率。變量amp表示幅度,數值越大,所獲得的結果就越大。

3.2 第二行使用了列表處理中的函數Transpose,可以將輸入的列表進行轉置。

3.3 最后的變量eggShellList是前兩個小步中數據的和,用于下一步中各個點移動的距離。

03_建立函數.png

4、節(jié)點Geometry.Translate能夠將輸入的對象進行移動復制。在上一步中,一個數據經過正弦函數計算之后,會有50個數據合在一個子列表中。一共有50個數據,因此生成50x50=2500個新數據。剛好我們生成的點就是2500個,每個點對應一個移動的距離。節(jié)點Geometry.Translate的輸入端geometry輸入需要移動的幾何圖形。輸入端direction輸入移動的方向,圖中為世界坐標系Z軸的正方向。輸入端distance輸入移動的距離。

04_移動各個點.png

5、節(jié)點NurbsSurface.ByPoints能夠依據輸入的點生成曲面,但是在輸入點之前先通過一個代碼塊控制所輸入的點。sineStrips表示所有點組合成的列表,隨后的一對中括號表示提取列表中指定的索引項。索引項從0開始直到某個數值,這個數值是由列表的項數減去1之后乘以一個系數,該系數位于區(qū)間[0, 1]之間,相當于控制了該曲面所覆蓋的點的范圍。

05_控制生成的范圍.gif

本文版權歸腿腿教學網及原創(chuàng)作者所有,未經授權,謝絕轉載。

未標題-1.jpg

上一篇:Revit中老虎窗的繪制要點

下一篇:DynamoPrimer解析之ARCH-Selecting-BaseFile