您的当前位置:首页正文

【Dynamo学习笔记】基础入门

2024-11-19 来源:个人技术集锦

前言

最近在备课、带本科生的毕业设计,要用到Dynamo。自己花点时间复习一下,顺便记个笔记。

1 Dynamo的界面

从Revit2018之后就自带Dynamo了,从“管理”选项卡中可以进入。

2 节点的操作

Dynamo的节点可以分为创建节点、操作节点和查询节点,关于Dynamo的节点的简介可以看文章《》。当我们想使用某个节点时,只需要点击节点库的某一项,该节点就会出现在工作空间上。不同节点之间的连线就可以表示数据流。

3 几何形体的创建与编辑

下面我们就是通过具体的例子,来看一下每个节点应该怎么用。

参考资料:
《》
《》

3.1 几何形体的创建

3.1.1 直线

根据起点和终点创建直线——Line.ByStartPointEndPoint

3.1.2 圆形

根据中心店和半径创建圆形——Circle.ByCenterPointRadius

  • Number Slider:滑块节点。设置滑块叠加空间,按一定的数值进行叠加。我们可以设置这个滑块的取值范围以及步长。

3.1.3 多边形

创建多边形——Polygon.ByPoints

  • List Create:列表叠加。将多个列表叠加,形成新的多维列表,每个子列表的数据不变。

创建圆内接多边形——Polygon.RegularPolygon

3.1.4 长方体

当我们创建节点时,可以从后往前创建。例如我们想要创建一个长方体,可以先找到长方体这个节点,然后看这个节点需要什么输入。如果我们不确定这个输入是什么类型的数据,可以将鼠标放在输入接口上,就会提示上一个节点应该是什么节点。例如下图就表明,这里的“Origin”就需要一个“Point”,也就是坐标点作为输入。

通过中心店、长、宽、高创建长方体——Cuboid.ByLengths

3.1.5 球体

根据中心店和半径创建球体——Sphere.ByCenterPointRadius

3.2 几何形体的编辑

3.2.1 坐标点的平移复制

通过向量指明复制方向——Point.Add

3.2.2 几何形体的平移复制


节点Geomwrey.Translate可以实现几何形体的平移复制,可以通过设置x、y、z三个方向的平移距离来实现(上图),也可以通过设置平移的方向来实现(下图)。

除了上面两种方式,还可以通过方向+长度的方式来实现平移复制:

这里,我们用到了一个新的节点——Code Block。Code Block是一个允许直接编写DesignScript 代码的节点,我们先称它为“代码块”,在代码块里面可以直接输入数字、字符串、列表、函数命令等。 具体可以看文章《》和《》

3.2.3 几何形体的镜像复制

——Geometry.Mirror

3.2.4 几何形体的旋转复制

——Geometry.Rotate
下图的例子表示,半径为1的圆,绕其旋转的基点坐标点(2,2,0)旋转,旋转轴为(0,0,1)的向量,旋转角度为“0,30,…,360”的角度数列表。

下图的例子表示,圆形以旋转基准面XZ平面,以角度数列表“0,30,…,360”为旋转角度进行旋转。

3.2.5 几何形体的缩放

——Geometry.Scale
等比例缩放:

不等比例缩放:

3.2.6 获取几何形体间的距离

——Geometry.DistanceTo

  • Watch:查看节点。可以查看变量的值。

3.2.7 几何形体的拆分

——Geometry.Split
需要注意的是,两个几何体能进行拆分的前提是有交集。

3.2.8 几何形体的差集、交集与并集

差集——Solid.Difference

并集——Solid.Union


交集——Geometry.Intersect

4 曲线的创建与编辑

4.1 曲线的创建

4.1.1 多段线曲线

——PolyCurve.ByPoints

4.1.2 样条曲线

——NurbsCurve.ByPoints

4.1.3 螺旋线

使用Code Block创建螺旋线:

使用节点Helix.ByAxis生成空间螺旋线:

4.2 曲线的编辑

4.2.1 获取曲线上的坐标点

——Curve.PointAtParameter。可以将曲线看作是长度为1,使用[0,1]之间的任意数值作为参数,且由该参数定义的连续的坐标点的集合。那么可以通过参数param得到曲线上的坐标点。

也可以通过输入弧长,来获取从曲线起点处开始,至给定弧长处的坐标点——Curve.PointAtSegmentLength

4.2.2 曲线的翻转

——Curve.Reverse
因为曲线是有方向性的,曲线的翻转就是改变其起点和终点。
翻转前,获取到的坐标点靠右侧:

翻转后,获取到的坐标点靠左侧:

4.2.3 曲线的延伸

延伸起点——Curve.ExtendStart

延伸终点——Curve.ExtendEnd

4.2.4 曲线的打断

初始的样条曲线。样条控制点的列表为arr=[Point.ByCoordinates(-20,-20,0),Point.ByCoordinates(-10,20,0),Point.ByCoordinates(0,-20,0),Point.ByCoordinates(20,20,0)];。需要注意的是,在2022版本的Dynamo中,Code block中的列表用中括号[]表示。

选取从参数为0.2处的坐标点到曲线终点之间的一段曲线——Curve.TrimByStartParameter

选取从起点开始到参数为0.90处的坐标点之间的一段曲线——Curve.TrimByEndParameter

选取从曲线参数为0.2至参数为0.9的坐标点之间的一段曲线——Curve.TrimByParameter

删除从曲线参数为0.2至参数为0.9的坐标点之间的一段曲线——Curve.TrimInteriorByParameter

4.2.5 曲线的切线和法线

切线——Curve.TangentAtParameter。这里的0..1..0.5表示取[0,1]之间的值的列表,步长为0.5。

法线——Curve.NormalAtParameter

4.2.6 曲线的偏移

——Curve.Offset

4.2.7 曲线的投影

——Curve.Project

5 曲面的创建与编辑

5.1 曲面的创建

曲面可以看作是由包含两个参数u和v的函数所定义的连续的坐标点的几何。在Dynamo中,二维曲面和三维曲面都称作Surface。曲面的创建方式有很多种。
由曲线向某个方向拉伸生成曲面——Curve.Extrude

可以通过填充生成曲面——Surface.ByPatch。该方法仅适用于闭合曲线。

通过对多条曲线,进行按顺序的放样,生成曲面——Surface.ByLoft

上面的例子都是在生成PolySurface,NurbsSurface的创建通常是通过给定一系列坐标点生成——NurbsSurface.ByPoints

5.2 曲面的编辑

5.2.1 曲面上的点及法向量

获取曲面上的坐标点——Surface.PointAtParameter

获取一系列曲面上的向量——Surface.NormalAtParameter

5.2.2 曲面的参数线曲线

曲面上uv值对应的曲线,称为参数线曲线。可以通过Surface.GetIsoLine来获取。

5.2.3 曲面的偏移

通过输入偏移距离实现,偏移方向为曲面法向量方向——Surface.Offset

6 列表的创建与编辑

6.1 列表的创建

使用Range创建

使用Sequence创建

使用Code Block创建

使用Code Block创建由多种方式:

创建方式事理
起始值…最终值10…15 = [10, 11, 12, 13, 14, 15]
起始值…最终值…#列表项数10…20…#3 = [10, 15, 20]
起始值…#列表项数…间距10…#5…3 = [10, 13, 16, 19, 22]

6.2 列表的编辑

参考资料:

将列表中的项按给定的数量向左/右移动——List.ShiftIndicies


列表的翻转及列表按照逆序重新排序——List.Reverse

列表的转置,常用于多级列表——List.Transpose

获取指定的列表索引项——List.GetItemAtIndexL
ist.

去除列表中某个索引的值——List.RemoveItemAtIndex


替换列表中某个索引的值——List.ReplaceItemAtIndex

将多个子列表合并为一个大列表——List.Create

将多个子列表合并为单个列表——List.Join

将列表分割为指定长度的一组连续子列表——List.Chop

计算列表中的项数——List.Count

列表编组——List.GroupByKey

6.3 列表数据的导入和导出

列表数据的导入

列表数据的导出

显示全文