【Dynamo】AnyCAD使用Dynamo繪製三維模型(二)——生成序列和範圍的幾種方式

VinciYan發表於2024-08-05

說明:

  • Dynamo為開源專案,開源地址:https://github.com/DynamoDS/Dynamo.git
  • 本文章使用版本:v3.0.3

範圍

使用Range節點

start和end分別表示範圍的邊界,step表示步長。如下為[1,10]範圍內步長為2結果

使用Code Block節點

在Code Block填寫如下形式的程式碼

beginning..end..step-size;
1..10..2;


在範圍內均勻生成指定個數的列表

使用形如如下程式碼,指示兩者之間均勻分佈多個值

beginning..end..#ofSteps;
1..16..#4;


使用Python指令碼節點

可以編寫python指令碼程式碼來生成我們需要的列表,雙擊“Python Script”節點,開始編寫程式碼。節點的“IN[index]”代表輸入引數,OUT表示輸出結果

其中Python Script的指令碼如下:

import sys

start = IN[0]
end = IN[1]
step = IN[2]

result = list(range(start, end, step))

OUT = result

序列

使用Sequence節點

start表示序列的起點,step表示步長,amount表示生成序列的長度(數量)

使用Code Block節點

使用形如如下的程式碼來生成,“#”來指明我們希望列表中包含多少個值

beginning..#ofSteps..step-size
1..#5..2;


使用Python指令碼節點

同理

應用舉例

如下使用python指令碼生成所需的列表,指令碼如下:

import sys

dataEnteringNode = IN

start = IN[0]
end = IN[1]
step = IN[2]

a = list(range(start, end, step))

b = list(range(start + 1, end + 1, step))

res = [a, b]

OUT = res

使用list[0]和list[1]分別獲取a和b的值,這裡還使用內建函式“List.Count”統計列表的長度,列表的值用於確定三維模型的座標位置和長度

最終在AnyCAD中顯示生成的三維模型如下

參考

  • https://primer2.dynamobim.org/v/zh-cn/8_coding_in_dynamo/8-1_code-blocks-and-design-script/3-shorthand
  • Releases · DynamoDS/Dynamo (github.com)

相關文章