美文网首页
Dynamo-CodeBlock手册-基础篇

Dynamo-CodeBlock手册-基础篇

作者: DavidShawn | 来源:发表于2020-12-23 08:28 被阅读0次

在Dynamo中,CodeBlock是一个重要且常用的功能。本文根据官方帮助文档做了一个总结,希望对你有用。
在画布的任意空白区域双击鼠标左键,就能调出这个节点。

CodeBlock功能块
我们可以在其中输入任何符合 DesignScript语法的代码,从简单的单一值,到复杂的函数调用,都可以在CodeBlock上实现。

数字,字符,公式

最基础的用法,就是使用CodeBlock直接输入数字,字符和公式,这种输入值的方式,更加有效率。


image.png

调用内置函数

我们可以在CodeBlock中直接调用内置函数。
比如,在空间中创建一个点,我们可以使用Point.ByCoordinates这样的节点,该节点可以通过输入x,y两个值来确定要创建点的位置。

Point.ByCoordinates
除了拖拽节点,我们还可以直接在CodeBlock中输入这样的代码:
Point.ByCoordinates(10,10);
image.png
如果我们不给具体的值,也能用x,y来代替。
image.png
这个CodeBlock实际上就等同于Point.ByCoordinates节点了。显然,通过直接输入代码,我们能使工作更加有效率。

原则上,CodeBlock可以调用所有的内置节点,可以将这些功能节点分成三类:创建类,动作类,查询类

  • 创建
    除了刚才说到的创建点,再比如通过两点创建一条直线,Line.ByStartPointEndPoint

    Line.ByStartPointEndPoint
    通过输入某些初始值,创建生成某个几何体。
  • 动作
    动作类的节点,可以使某个几何体产生一定的变化。比如Point.Add节点,输入一个点,结合一个向量方向,就可以使得整个点平移。

    image.png
    在使用CodeBlock时要注意,这个功能包含两个输入端,我们不能使用具体的Point,因为这样会被认为是内置的Point,这时需要制定一个替代值,pt.Add(vec);
    image.png
  • 查询
    需要读取某个物体的属性时,可以用.跟属性值。
    比如我们用CodeBlock定义了一个点Point.ByCoordinates(10,10,0);,现在想得到这个点的X值,可以这样取值pt.X;。用节点组合的模式就是这样:

    image.png
  • 节点至代码
    其实,我们还可以将多行代码放在同一个CodeBlock中,比如上面这个例子,可以这样:

    image.png

这样的代码风格就很像是普通的编程语言了,掌握了这样的写法,我们的代码效率才能大大提高。
Dynamo还给我们提供了另外的简便方式,就是节点至代码。

image.png
同时选中多个代码块,在空白处右键,选择节点至代码
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的必经之路。
感谢您阅读本文,希望对你有所帮助。

相关文章

网友评论

      本文标题:Dynamo-CodeBlock手册-基础篇

      本文链接:https://www.haomeiwen.com/subject/eesknktx.html