美文网首页
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