在Dynamo中,CodeBlock
是一个重要且常用的功能。本文根据官方帮助文档做了一个总结,希望对你有用。
在画布的任意空白区域双击鼠标左键,就能调出这个节点。
我们可以在其中输入任何符合 DesignScript语法的代码,从简单的单一值,到复杂的函数调用,都可以在CodeBlock上实现。
数字,字符,公式
最基础的用法,就是使用CodeBlock直接输入数字,字符和公式,这种输入值的方式,更加有效率。
image.png
调用内置函数
我们可以在CodeBlock中直接调用内置函数。
比如,在空间中创建一个点,我们可以使用Point.ByCoordinates
这样的节点,该节点可以通过输入x,y
两个值来确定要创建点的位置。
除了拖拽节点,我们还可以直接在
CodeBlock
中输入这样的代码:
Point.ByCoordinates(10,10);
image.png
如果我们不给具体的值,也能用x,y来代替。
image.png
这个
CodeBlock
实际上就等同于Point.ByCoordinates
节点了。显然,通过直接输入代码,我们能使工作更加有效率。
原则上,CodeBlock
可以调用所有的内置节点,可以将这些功能节点分成三类:创建类,动作类,查询类。
-
创建
Line.ByStartPointEndPoint
除了刚才说到的创建点,再比如通过两点创建一条直线,Line.ByStartPointEndPoint
通过输入某些初始值,创建生成某个几何体。 -
动作
image.png
动作类的节点,可以使某个几何体产生一定的变化。比如Point.Add
节点,输入一个点,结合一个向量方向,就可以使得整个点平移。
在使用CodeBlock
时要注意,这个功能包含两个输入端,我们不能使用具体的Point,因为这样会被认为是内置的Point,这时需要制定一个替代值,pt.Add(vec);
image.png -
查询
image.png
需要读取某个物体的属性时,可以用.
跟属性值。
比如我们用CodeBlock
定义了一个点Point.ByCoordinates(10,10,0);
,现在想得到这个点的X值,可以这样取值pt.X;
。用节点组合的模式就是这样:
-
节点至代码
image.png
其实,我们还可以将多行代码放在同一个CodeBlock
中,比如上面这个例子,可以这样:
这样的代码风格就很像是普通的编程语言了,掌握了这样的写法,我们的代码效率才能大大提高。
Dynamo还给我们提供了另外的简便方式,就是节点至代码。
同时选中多个代码块,在空白处右键,选择
节点至代码
。image.png
我们就自动得到了几行代码,比较一下之前自己写的代码:
# 自己写的代码
pt=Point.ByCoordinates(10,10,0);
pt.X;
# 自动创建的代码
point1 = Point.ByCoordinates(10, 10, 0);
pt = point1;
t1 = pt.X;
其实是差不多的,只是自动创建的代码会稍显啰嗦,但是功能一样。
这样,我们就可以把繁杂的多个节点,整合成一个代码块,方便在其他地方复用。
快捷列表
我们可以使用CodeBlock
快捷创建数组列表。
-
起始值..终点值起始值..终点值
-
起始值..终点值..步进值起始值..终点值..步进值
-
起始值..终点值..#数量起始值..终点值..#数量
-
起始值..#数量..步进值起始值..#数量..步进值
-
起始值..#数量..(第一组的步进值..第n组的步进值)起始值..#数量..(第一组的步进值..第n组的步进值)
-
起始值..终点值..(第一组的步进值..第n组的步进值)起始值..终点值..(第一组的步进值..第n组的步进值)
-
(第一组的起始值..第n组的起始值)..终点值..步进值(第一组的起始值..第n组的起始值)..终点值..步进值
-
(第一组的起始值..第n组的起始值)..终点值..(第一组的步进值..第n组的步进值)(第一组的起始值..第n组的起始值)..终点值..(第一组的步进值..第n组的步进值)
起始值为一组数,步进值也为一组数,数量不一致时,默认以短的为准。
-
起始值..(第一组终点值..第n组终点值)..每组的数量起始值..(第一组终点值..第n组终点值)..#每组的数量
-
起始值..(第一组终点值..第n组终点值)..每组的步进值起始值..(第一组终点值..第n组终点值)..每组的步进值
-
(第一组的起始值..第n组的起始值)..#每组的数量..(第一组终点值..第n组终点值)(第一组的起始值..第n组的起始值)..#每组的数量..(第一组终点值..第n组终点值)
数量不一致时,默认以短的为准。
-
(第一组的起始值..第n组的起始值)..终点值..(第一组终点值..第n组终点值)(第一组的起始值..第n组的起始值)..终点值..(第一组终点值..第n组终点值)
数量不一致时,默认以短的为准。
自定义函数
最后,我们介绍一下自定义函数。
我们可以使用CodeBlock
自定义一个函数,然后调用这个函数。
结语
CodeBlock
是一个重要且常用的功能,他能够提供输入数值,能够方便的创建数组,能够输入复杂函数。熟练的掌握CodeBlock
是精进Dynamo的必经之路。
感谢您阅读本文,希望对你有所帮助。
网友评论