导图社区 Dynamo广州塔建模
II.广州塔实体框架建模:(1)生成两个控制面(2)顶部椭圆编辑(3)生成竖向框架(4)生成横向环形框架(5)生成斜杆框架(6)生成竖向实体构件……
编辑于2022-04-10 11:43:03Dynamo教学2022
1. 初识Dynamo
1.1. 为什么学
什么是BIM
什么是参数化
建模+编程=?
1.2. 学什么
英语
数学与函数
几何与空间
编程思维
计算机图形学
1.3. 怎样学
工作页
上机实践
创新尝试
网络学习新案例
1.4. 基本界面及操作
如何启动
界面介绍
主要节点了解
2. 基本图元绘制
3. 简单函数绘制
3.1. y=x一次函数
(1) 两点法
3.2. y=2x+1一次函数
(1) 两点法
(2) 四则运算法
(3) 高级列表法
3.3. y=x^2抛物线函数
(1) 基本法
(2) 进阶法
列表及幂函数
3.4. y=sin(x)正弦函数
(1) 初级sin函数
(2) 中级sin函数
X轴添加周期数字滑块
(3) 高级sin函数
Y轴添加振幅数字滑块
4. 复杂函数绘制
4.1. 心形曲线绘制
心形线函数:f(x)=,h(x)=
1||| 用Range构建一组节点
2||| 求绝对值
3||| 乘以系数0.6
4||| 用Code Block构建节点30-2
5||| 开根号
6||| 乘以系数0.8
7||| 获取f(x)的值
8||| 获取h(x)的值
9||| 生成一组点(x,f(x))
10||| 生成另一组点(x,h(x)),反转!
11||| 合并列表
12||| 拍平列表
13||| 生成样条曲线
4.2. 绘制x^2+y^2=R^2函数图像
(1) 笛卡尔坐标法
同4.1
(2) 极坐标法

1||| 用数字滑块Number Slider创建一组数字序列,表示R半径
2||| 用Code Block创建0-360的数字序列,表示X
0..360..10
3||| 用Code Block生成X值、Y值
R*Math.Sin(x)
R*Math.Cos(x)
4||| 创建系列点
Point.ByCoordinates
X
Y
5||| 生成样条曲线
NurbsCurve.ByControlPoints
(3) 绘制笛卡尔心形线

1||| 用数字滑块Number Slider创建一组数字序列,表示a
2||| 用Code Block创建0-360的数字序列,表示t
0..360..10
3||| 用Code Block生成X值、Y值
a*(2*Math.Cos(t)-Math.Cos(2*t))
a*(2*Math.Sin(t)-Math.Sin(2*t))
4||| 创建系列点
Point.ByCoordinates
X
Y
5||| 生成样条曲线
NurbsCurve.ByControlPoints
4.3. 绘制螺旋线
(1) 普通螺旋线方法1
1||| 用三个数字滑块分别控制半径r,圈数n,螺距h。
2||| 用CodeBlock创建0..360n的若干点
3||| 计算列表个数
4||| 生成Rcos(θ);Rsin(θ)
5||| 生成与第(3)步数量一致的Z坐标值
6||| 生成系列点
7||| 根据系列点生成样条曲线
NurbsCurve.ByControlPoints
(2) 普通螺旋线方法2
1||| axisPoint:起始圆心(通过y值控制半径)
2||| axisDirection:生长方向
3||| startPoint:起点
4||| Pitch:螺距
5||| angleTurns:旋转角度(360*n)
(3) 渐变螺旋线

1||| 用三个数字滑块分别控制半径r,圈数n,螺距h。
2||| 用CodeBlock创建0..360n的若干点
3||| 计算列表个数
4||| 生成Rcos(θ);Rsin(θ)
5||| 生成与第(3)步数量一致的Z坐标值
6||| 生成系列点
7||| 根据系列点生成样条曲线
NurbsCurve.ByControlPoints
4.4. 特殊螺旋线
柱面坐标螺旋线
1||| 用Code Block创建0-360*n的数字序列,表示角度
CodeBlock
0..360*n..10
2||| 计算列表个数
List.Count
3||| 生成与第(2)步数量一致的Z坐标值
CodeBlock
0..5..#a
4||| 生面柱面螺旋线
Point.ByCylindricalCoordinates
cs
angle
elevation
radius
2
5||| 根据系列点生成样条曲线
NurbsCurve.ByControlPoints
费马螺旋线

1||| 在0-360*n之间,以间距为5,创建数列,表示角度angle
CodeBlock
0..360*n..5
n用数字滑块,控制圈数
2||| 写半径r的函数表达式r=a*sqrt(angle)
CodeBlock
a*Math.Sqrt(angle)
a
数字滑块,随意
angle
3||| 生面柱面螺旋线
Point.ByCylindricalCoordinates
cs
angle
elevation
radius
4||| 生面镜像柱面螺旋线
Point.ByCylindricalCoordinates
5||| 将(3)和(4)用列表合并
List.Creat
6||| 根据系列点生成样条曲线
NurbsCurve.ByControlPoints
points
球面坐标螺旋线
1||| 在0-180之间,取1000个点,表示点的向量与Z轴的夹角
CodeBlock
0..180..#1000
2||| 用数字滑块,表示b
Number Slider
3||| 在0-360*b之间,取1000个点,表示XY平面夹角
CodeBlock
0..360*b..#1000
4||| 生面球面螺旋线
Point.BySphereCoordinates
cs
phi
theta
radius
5
5||| 根据系列点生成样条曲线
NurbsCurve.ByControlPoints
复习,测验
5. 几何造型案例
5.1. 广州塔

I. 广州塔概念建模
固定造型广州塔
1||| 创建底面椭圆
Ellipse.ByOriginRadius
长40
短30
2||| 创建腰部椭圆
Ellipse.ByOriginRadius
长15
短11
高280
3||| 创建顶部椭圆
Ellipse.ByOriginRadius
长27
短20
高450
转15
4||| 旋转顶部椭圆
Geometry.Rotate
5||| 生成三个椭圆列表
List.Creat
6||| 通过放样生成曲面
Surface.ByLoft
可调节造型广州塔
1||| 创建底面椭圆
Ellipse.ByOriginRadius
长40
短30
2||| 通过比例控制腰部及顶部椭圆大小
Geometry.Scale
3||| 通过平移控制腰部高度及顶面高度
Geometry.Translate
4||| 旋转顶部椭圆
Geometry.Rotate
5||| 生成三个椭圆列表
List.Creat
6||| 通过放样生成曲面
Surface.ByLoft
7||| 通过填充生成顶部平面
Surface.ByPatch
8||| 创建天线
II. 广州塔实体框架建模
(1) 生成两个控制面
1||| 创建底面椭圆
Ellipse.ByOriginRadius
长40
短30
2||| 创建顶部椭圆
Ellipse.ByOriginRadius
长27
短20
Geometry.Translate
高450
(2) 顶部椭圆编辑
1||| 平面内旋转135度
Geometry.Rotate
geometry
origin
Ellipse.CenterPoint
axis
Vector.ZAxis
degree
135
2||| 绕Y轴旋转13度
Geometry.Rotate
geometry
origin
Ellipse.CenterPoint
axis
Vector.YAxis
degree
13
(3) 生成竖向框架
等分24份
1||| 合并列表
List.Creat
item1
item2
2||| 生面两个椭圆曲线的等分点
Curve.PointAtParameter
curve
param
0..1..#n
24
3||| 因椭圆起点与终点重叠,删除列表第一项
List.DropItems
List
使用级别:L2
amount
1
4||| 分别提取两个椭圆的等分点
Code Block
L[0]
L[1]
5||| 连接两个椭圆同序号的点,生成竖向框架线
Line.ByStartPointEndPoint
StartPoint
EndPoint
(4) 生成横向环形框架
横向等分20份,即20层
1||| 将每条竖向直线等分20分
Curve.PointAtParameter
curve
param
0..1..#20
2||| 转置列表
List.Transpose
3||| 生成曲线
NurbsCurve.ByPoints
points
closecurve
Ture
子主题
(5) 生成斜杆框架

1||| 将20圈椭圆点列表依次右移给定数量
List.ShiftIndices
List
amount
0..n-1
List.Count
20个
2||| 转置列表
List.Transpose
3||| 生成斜向框架线
PolyCurve.ByPoints
(6) 生成竖向实体构件

1||| 生成杆件截面
Circle.ByCenterPointRadius
圆心
Curve.StartPoint
半径
1
2||| 扫掠生成实体
Curve.SweepAsSolid
Curve
Path
(7) 生成横向环形构件

1||| 调整扫掠截面的方向
Line.ByTangency
curve
param
默认0
Line.Direction
2||| 生成杆件截面
Circle.ByCenterPointRadiusNormal
圆心
Curve.StartPoint
半径
0.8
法线
3||| 扫掠生成实体
Curve.SweepAsSolid
Curve
Path
(8) 生成斜向构件

1||| 生成杆件截面
Circle.ByCenterPointRadius
圆心
Curve.StartPoint
半径
0.8
2||| 扫掠生成实体
Curve.SweepAsSolid
Curve
Path
(9) 导入Revit创建实体
1||| List.Creat
2||| ImportInstance.ByGeometries
5.2. 梦露大厦
5.3. 玫瑰花
6. 施工应用案例
7. 与Revit交互案例