欢迎来到《SU动态组件公开课》。
为了让大家更好地学习此课程,我们为大家提供了每节课对应的练习文件,就是我们在视频里演示的模型文件。希望大家边看边练,有所收获!
如果在学习过程中,你有任何问题,可以加入我们学习交流群,我们会每天检查群里的消息,及时给大家答疑。→【SU动态组件学习群】
回答3个问题:什么是动态组件?为什么要学习?我适合学习吗?并介绍课程安排。
学习互动工具、组件选项、组件属性。
只想学习使用的同学,这节课完全够用。
学习Onclick行为函数控制旋转;
了解组件轴对旋转的影响。
学习Onclick行为函数控制位移变量X、Y、Z。
以会动的折叠门为例,学习在Onclick中写多个Animate函数制作复合动画。
核心知识点:动画Animate可以加N个状态,
N个状态,就是N段动画。
Onclick和Set切换状态;Hidden控制显隐;
if判断状态。
Onclick和Set切换状态;Material控制材质;
if判断状态。
参数化模型制作:用数学公式建立子组件与父组件的联系,掌握唯一、重命名等规范。
用行为函数Copies实现自动阵列,
深刻理解copy与Copies的区别。
通过组件嵌套实现多方向阵列,
每一层嵌套负责一个方向的Copies。
动态组件的信息系统,用HTML标签给文字做标记;附HTML标签表。
旋转阵列与高度阵列;
学习重设组件轴简化公式编写。
用切割插件切割——设置动态组件公式——组合。
动态组件的灵魂就是函数;附数学、SketchUp、文字、三角、逻辑、互动函数表。
制作中,敬请期待
课程概述:
1、回答3个问题:①什么是动态组件?②为什么要学习动态组件?③我适合学习制作动态组件
2、介绍课程安排
📎 0225-SU动态组件公开课-第0课-先导课(存档).skp (42.4 MB)
点击下载附件-登录石墨文档→下载SKP文档→打开SU使用
点击下载练习文件介绍课程安排,了解《SU动态组件公开课》从第0课到第15课的整体学习路径。
课程概述:
本节课学习动态组件的使用:互动工具、组件选项、组件属性。
如果你只是想学习动态组件如何使用,那么这节课的内容已经完全够用了。如果你想学习如何制作动态组件,请跟着我们,完成第2课到第15课的学习。
📎 0227-公开课-第1课-使用动态组件.skp (46.8 MB)
点击下载附件-登录石墨文档→下载SKP文档→打开SU使用
点击下载练习文件了解3种互动方式,并了解如何知道组件是否有互动功能。
组件选项的作用有3:
组件属性就是用来做动态组件的地方。如果你只是想学习动态组件如何使用,那么这节课的内容已经完全够用了。如果你想学习如何制作动态组件,请跟着我们,完成第2课到第15课的学习。
课程概述:
1、学习Onclick行为函数控制旋转;
2、了解组件轴对旋转的影响。
📎 0226-公开课-第2课-旋转动画制作.skp (42.8 MB)
点击下载附件-登录石墨文档→下载SKP文档→打开SU使用
点击下载练习文件学习Onclick行为函数控制旋转。
了解组件轴对旋转的影响。
课程概述:
1、学习Onclick行为函数控制位移变量X、Y、Z;
这节课比较简单,大家再巩固一下onclick,下节课就要上一小点难度了哈~
📎 0228-公开课-第3课-位移动画.skp (44.8 MB)
点击下载附件-登录石墨文档→下载SKP文档→打开SU使用
点击下载练习文件学习Onclick行为函数控制位移变量X、Y、Z。
这节课比较简单,大家再巩固一下onclick,下节课就要上一小点难度了哈~
课程概述:
这节课就开始上难度了,难度主要是梳理折叠门折叠前和折叠后的位置关系,就是第二扇门的起始点和折叠后的终点的关系。
📎 0306-公开课-第4课-会动的折叠门(复合动画).skp (1.1 MB)
点击下载附件-登录石墨文档→下载SKP文档→打开SU使用
点击下载练习文件这节课就开始上难度了,难度主要是梳理折叠门折叠前和折叠后的位置关系,就是第二扇门的起始点和折叠后的终点的关系。
课程概述:
这件课比较简单,核心知识点是,知道动画Animate可以加N个状态。N个状态,就是N段动画。
📎 0306-公开课-第5课-会动的蝴蝶门(多段动画).skp (1.00 MB)
点击下载附件-登录石墨文档→下载SKP文档→打开SU使用
点击下载练习文件这件课比较简单,核心知识点是,知道动画Animate可以加N个状态。N个状态,就是N段动画。
课程概述:
这节课教你实现通过互动工具,实现组合模型布局变化。一共有3个知识点。
📎 0306-公开课-第6课-会变布局的椅子模型(物体切换动画).skp (18.1 MB)
点击下载附件-登录石墨文档→下载SKP文档→打开SU使用
点击下载练习文件这节课教你实现通过互动工具,实现组合模型布局变化。
课程概述:
这节课教你实现通过互动工具,实现模型的材质变化。一共有3个知识点。
📎 0310-公开课-第7课-可以选材质的SU模型(材质切换动画).skp (18.7 MB)
点击下载附件-登录石墨文档→下载SKP文档→打开SU使用
点击下载练习文件这节课教你实现通过互动工具,实现模型的材质变化。
课程概述:
这节课开始接触动态组件另外一个核心,参数化模型的制作。这节课时间很长,知识点也很多。
我知道这节课很难,但好消息是,你能独立完成的话,恭喜你!动态组件算是入门了!
📎 0311-公开课-第8课-缩放不变形的窗户(缩放不变形).skp (1.2 MB)
点击下载附件-登录石墨文档→下载SKP文档→打开SU使用
点击下载练习文件课程概述:
这节课算是动态组件的一个灵魂之一。我们可以通过行为函数Copies,实现自动阵列,这节课不难,但有几个知识点需要注意。
📎 0311-公开课-第9课-可以自动阵列的衣柜(一维阵列).skp (1.0 MB)
点击下载附件-登录石墨文档→下载SKP文档→打开SU使用
点击下载练习文件课程概述:
这节课涉及到组件的嵌套,逻辑上一定要捋清楚!因为在动态组件的属性中,每一个组件只能有一个Copies来复制。
我们想要3个方向的复制,那么就应该有3个嵌套层。就像视频中演示的那样,第一层,即最里面的那一层的Copies,负责X方向阵列。然后第二层,外面一层,负责Z方向阵列,然后第三层,负责Y方向的阵列。这里一定要做到思路清晰,在录制视频的时候,我就弄错了,还好我有强大的Debug能力。如果你们视频没有看明白,欢迎给我留言或私信哈~
📎 0311-公开课-第10课-会影分身的玻璃砖(二维阵列、三维阵列).skp (23.0 MB)
点击下载附件-登录石墨文档→下载SKP文档→打开SU使用
点击下载练习文件课程概述:
这节课主要学习动态组件的信息系统。虽然看起来像编程,但是其实一点都不难。
就拿"加粗"来说吧,我们平时用word文档加粗文字的时候,是不是要先选择需要加粗的文字,然后点击"加粗按钮"。在SU动态组件中,并没有现成的"加粗按钮",只有我们给文字做个标记<b>表示需要加粗的起始位置,然后用加"反斜杠"的标记</b>来表示需要结束的位置。就这么简单。
下面《HTML表》不用记忆,需要用到的时候过来查,或者直接百度、DeepSeek都可以哈~
📎 0311-公开课-第11课-让模型信息丰富起来(HTML标签).skp (19.6 MB)
点击下载附件-登录石墨文档→下载SKP文档→打开SU使用
点击下载练习文件| 开始标签 | 标签内容 | 结束标签 |
|---|---|---|
<a href="xxx.com"> | 这是一个链接 | </a> |
<font color="xx"> | 颜色名字和十六进制文本颜色 | </font> |
<font size="x"> | 字体大小 | </font> |
<b> | 粗体 | </b> |
<i> | 斜体 | </i> |
<u> | 下划线 | </u> |
<li> | 列表 | </li> |
<p> | 这是一个段落 | </p> |
<br> | 换行 | </br> |
| 开始标签 | 标签内容 | 结束标签 |
|---|---|---|
<strong> | 加粗文本,和斜体<b>类似。 | </strong> |
<em> | 强调文本和,和斜体<i>类似。 | </em> |
<ol> | 缩进段落的效果 | </ol> |
<ul> | 缩进段落的效果,和<ol>类似。 | </ul> |
课程概述:
这节课关于动态组件的知识点其实不难,一个旋转阵列,一个高度阵列。主要的难点是重设组件轴。
有些时候,我们为了简化动态组件的制作工作,会重新设置组件轴。在这节课中,为了方便旋转楼梯中间立柱设置位置,我们就将立柱的轴调整到了中心位置,方便我们写公式。详细看视频哈~
📎 0311-公开课-第12课-旋转楼梯(旋转阵列).skp (19.8 MB)
点击下载附件-登录石墨文档→下载SKP文档→打开SU使用
点击下载练习文件这节课关于动态组件的知识点其实不难,一个旋转阵列,一个高度阵列。
主要的难点是重设组件轴。有些时候,我们为了简化动态组件的制作工作,会重新设置组件轴。在这节课中,为了方便旋转楼梯中间立柱设置位置,我们就将立柱的轴调整到了中心位置,方便我们写公式。
课程概述:
这节课有点尴尬,案例录制失败了。但是思路就是那个思路:用切割插件切割——设置动态组件公式——组合。虽然教程不完整,但好歹窗框是做完了的~~
吐槽一句,真的,网上的模型质量真的一言难尽~~~
📎 0311-公开课-第13课-普通模型转动态组件的思路.skp (22.0 MB)
点击下载附件-登录石墨文档→下载SKP文档→打开SU使用
点击下载练习文件课程概述:
动态组件的灵魂就是函数。除了我们在之前课程里展示的函数,其实官方还有很多有意思的函数哦~
📎 0312-公开课-第14课-函数通讲.skp (20.2 MB)
点击下载附件-登录石墨文档→下载SKP文档→打开SU使用
点击下载练习文件官方链接:https://help.sketchup.com/en/sketchup/dynamic-components-math-function-examples
| 函数名 | 描述 | SU官方案例 |
|---|---|---|
ABS(number) | ABS 函数返回 number 的绝对值。 | 3D Warehouse |
CEILING(number, significance) | CEILING 函数将数字舍入为最接近的整数或有效倍数。significance 参数是其 10 的倍数是要向上舍入的值(.01、.1、1、10 等)的值。 | 3D Warehouse |
DEGREES(number) | DEGREES 函数将数字(以弧度为单位)转换为度数。 | 3D Warehouse |
EVEN(number) | EVEN 函数将数字向上舍入到最接近的偶数。 | 3D Warehouse |
EXP(number) | EXP 函数返回 e 的 6 次幂。 | 3D Warehouse |
FLOOR(number, significance) | FLOOR 函数将数字向下舍入到最接近的有效倍数。 | 3D Warehouse |
INT(number) | INT 函数将数字向下舍入到最接近的整数。 | 3D Warehouse |
ISEVEN(number) | 如果数字是偶数,则 ISEVEN 函数返回 TRUE,如果数字为奇数,则返回 FALSE。如果数字不是整数,则函数仅计算数字的整数部分。 | 3D Warehouse |
ISODD(number) | 如果数字是奇数,则 ISODD 函数返回 TRUE,如果数字为偶数,则返回 FALSE。如果 value 不是数字,则函数仅计算数字的整数部分。 | 3D Warehouse |
LN(number) | THE LN 函数根据数字的常数 e 返回自然对数。 | 3D Warehouse |
LOG10(number) | LOG10 函数返回数字的以 10 为底的对数。 | 3D Warehouse |
ODD(number) | ODD 函数将数字向上舍入到最接近的奇数。 | 3D Warehouse |
PI() | PI 函数将 PI 的值返回到小数点后 14 位。 | — |
RADIANS(number) | RADIANS 函数将数字(以度为单位)转换为弧度。 | 3D Warehouse |
RAND() | RAND 函数返回一个介于 0 和 1 之间的随机数。 | 3D Warehouse |
RANDBETWEEN(bottom, top) | RANDBETWEEN 函数返回 bottom 和 top 数字之间的整数。 | 3D Warehouse |
ROUND(number, count) | ROUND 函数根据有效的数学标准将数字四舍五入到一定的小数位数。count 参数是可选的,表示对数字进行四舍五入的位数。如果 count 参数为负,则仅对整数部分进行舍入。 | 3D Warehouse |
SIGN(number) | SIGN 函数返回数字的符号。该函数对于正数返回结果 1,对于负数返回结果 -1,对于零返回结果 0。 | 3D Warehouse |
SQRT(number) | SQRT 函数返回数字的正平方根。该数字必须为正数。 | — |
官方链接:https://help.sketchup.com/en/sketchup/dynamic-components-sketchup-function-examples
主要控制场景、统计组件内部未成组的边线和面的数量、模型中太阳角度与高度信息。
| 函数名 | 描述 | SU官方案例 |
|---|---|---|
CHOOSE(index,value1,value2, ...valueN) | CHOOSE 函数从参数列表中返回一个值,位于索引值的位置。此功能允许您创建一个下拉列表,用于一次驱动多个属性更改。将 CHOOSE 和 OPTIONINDEX 一起使用作为一种机制,根据用户在"组件选项"对话框中的选择分配不同的值。 | 3D Warehouse |
CURRENT("attributeName") | CURRENT 函数接受属性的字符串名称,并返回 SketchUp 用户刚刚应用的 size 或 position 属性。此功能允许您对 Scale Tool 或 Move Tool 作进行验证。 | 3D Warehouse |
EDGES() | EDGES 函数返回调用此函数的组件或组内的"未分组"边缘的数量。 | 3D Warehouse |
FACEAREA("materialName") | FACEAREA 方法返回使用 materialName 绘制的每个"未分组"面的面积(以平方英寸为单位)。如果未提供 materialName,则 FACEAREA 方法将返回所有未分组面的总面积。 | 3D Warehouse |
FACES() | FACES 函数返回调用此函数的组件或组内的"未分组"面的数量。 | 3D Warehouse |
LARGEST(value1,value2,...valueN) | LARGEST 函数返回列表中最大的值。 | 3D Warehouse |
LAT() | LAT 函数返回当前 SketchUp 模型的纬度。 | 3D Warehouse |
LNG() | LNG 函数返回当前 SketchUp 模型的经度。 | — |
NEAREST(originalValue, value1, value2, ...valueN) | NEAREST 函数将 originalValue 与目标值列表进行比较,并返回最接近 originalValue 的目标值。 | 3D Warehouse |
OPTIONINDEX("attributeName") | OPTIONINDEX 函数在给定属性字符串名称的情况下,从其选项列表中返回当前选定的索引。例如,如果属性可以是 "red"、"blue" 或 "green",并且 blue 是当前值,则此函数返回 2。如果未找到匹配项,则返回 0。 | 3D Warehouse |
OPTIONLABEL("attributeName") | OPTIONLABEL 函数在给定属性的字符串名称的情况下,从其选项列表中返回当前选定的标签。例如,如果属性可以是 "Red=red"、"Blue=blue" 或 "Green=green",并且 blue 是当前值,则此函数将返回 "Blue"。如果未找到匹配项,则会引发错误。 | 3D Warehouse |
SMALLEST(value1,value2,...valueN) | SMALLEST 函数返回列表中的最小值。 | 3D Warehouse |
SUNANGLE() | SUNANGLE 函数返回太阳与当前模型的北向之间的角度(以度为单位)。 | 3D Warehouse |
SUNELEVATION() | SUNELEVATION 函数从当前模型的阴影设置中返回太阳的高程(以度为单位)。高程定义为指向太阳的向量与地平面之间的角度。 | 3D Warehouse |
官方链接:Dynamic Components Text Function Examples | SketchUp Help
主要用于处理文字。
| 函数名 | 描述 | SU官方案例 |
|---|---|---|
CHAR(number) | CHAR 函数根据当前码表将数字转换为字符。number 参数可以是介于 1 和 255 之间的两位数或三位整数(表示字符的代码值)。 | 3D Warehouse |
CODE(text) | CODE 函数返回文本字符串中第一个字符的数字代码。text 参数是要找到第一个字符的代码的文本。 | 3D Warehouse |
CONCATENATE(text1, text2, ...textN) | CONCATENATE 函数将多个文本字符串合并为一个字符串。文本 1、文本 2、...textN 参数是组合成一个字符串的文本字符串。 | 3D Warehouse |
DOLLAR(value, decimals) | DOLLAR 函数将数字转换为货币格式的金额,四舍五入到指定的小数位。value 参数是要转换为货币的数字。decimals(可选)参数是小数位数。如果未指定小数值,则所有货币格式的数字都将以两位小数显示。货币格式在系统设置中设置。 | 3D Warehouse |
EXACT(text1, text2) | EXACT 函数比较两个文本字符串,如果它们相同,则返回 TRUE。此函数区分大小写。 | 3D Warehouse |
FIND(findText, text, position) | FIND 函数在另一个字符串中查找文本字符串。findText 参数是要查找的文本。text 参数是要搜索的文本字符串。position(optional)参数是文本中搜索开始的位置。搜索区分大小写。 | 3D Warehouse |
LEFT(text, number) | LEFT 函数返回文本字符串中的第一个字符(或多个字符)。number(可选)参数是要返回的字符数。如果未定义数字,则返回一个字符。 | — |
LEN(text) | LEN 函数返回文本字符串的长度(包括空格)。text 参数是返回其长度的字符串。 | — |
LOWER(text) | LOWER 函数将文本字符串中的所有大写字母转换为小写字母。 | 3D Warehouse |
MID(text, start, number) | MID 函数返回文本字符串的文本段。start 参数包含要提取的文本中第一个字符的位置。number 参数是要返回的字符数。 | 3D Warehouse |
PROPER(text) | PROPER 函数将所提供文本字符串的所有单词中的第一个字母大写。 | 3D Warehouse |
REPLACE(text, position, length, new) | REPLACE 函数将文本字符串的一部分替换为不同的文本字符串。position 函数是替换开始的位置。length 参数是要替换的字符数。新参数是替换文本。函数的结果始终显示为文本。要用已替换为文本的数字执行进一步计算,请使用 VALUE 函数将其转换回数字。 | 3D Warehouse |
REPT(text, number) | REPT 函数重复文本字符串。number 是重复次数。结果最多可以为 255 个字符。 | 3D Warehouse |
RIGHT(text, number) | RIGHT 函数返回文本字符串中的最后一个字符或字符。number(可选)参数是要返回的字符数。 | 3D Warehouse |
SUBSTITUTE(text, searchText, newText, occurrence) | SUBSTITUTE 函数将新文本替换为字符串中的旧文本。searchText 参数是要替换的段。newText 参数是替换文本。occurrence(optional)参数指示要替换的 searchText 的出现次数。如果缺少匹配项,则搜索文本将全部替换。 | 3D Warehouse |
TRIM(text) | TRIM 函数删除文本字符串前面的空格(或将单元格内容向左对齐)。 | 3D Warehouse |
UPPER(text) | UPPER 函数将文本字符串转换为大写。text 参数包含要转换为大写的小写字母。 | 3D Warehouse |
VALUE(text) | VALUE 函数将文本字符串转换为数字。text 参数是要转换为数字的文本。 | 3D Warehouse |
官方链接:https://help.sketchup.com/en/sketchup/dynamic-components-trig-function-examples
| 函数名 | 描述 | SU官方案例 |
|---|---|---|
ACOS(number) | ACOS 函数返回数字的反余弦值(以度为单位)。 | 3D Warehouse |
ACOSH(number) | ACOSH 函数返回以度为单位的数字的反双曲余弦值。 | 3D Warehouse |
ASIN(number) | ASIN 函数返回数字的反正弦值(以度为单位)。 | 3D Warehouse |
ASINH(number) | ASINH 函数返回数字的反双曲正弦值(以度为单位)。 | 3D Warehouse |
ATAN(number) | ATAN 函数返回数字的反正切值(以度为单位)。 | 3D Warehouse |
ATANH(number) | ATANH 函数返回数字的反双曲正切值(以度为单位)。 | 3D Warehouse |
COS(number) | COS 函数返回数字的余弦值(以度为单位)。 | 3D Warehouse |
COSH(number) | COSH 函数返回数字的双曲余弦值(以度为单位)。 | 3D Warehouse |
SIN(number) | SIN 函数返回以弧度为单位的数字的正弦值。 | 3D Warehouse |
SINH(number) | SINH 函数返回以弧度为单位的数字的双曲正弦值。 | 3D Warehouse |
TAN(number) | TAN 函数返回以弧度为单位的数字的正切值。 | 3D Warehouse |
TANH(number) | TANH 函数返回数字的双曲正切值(以弧度为单位)。 | 3D Warehouse |
官方链接:https://help.sketchup.com/en/sketchup/dynamic-components-logical-function-examples
| 函数名 | 描述 | SU官方案例 |
|---|---|---|
AND(logicalValue1, logicalValue2, ...logicalValueN) | 如果所有参数均为 TRUE,则 AND 函数返回 TRUE。如果任何元素为 FALSE,则此函数返回 FALSE 值。logicalValue 参数是要检查的条件。 | 3D Warehouse |
FALSE() | False 函数将逻辑值设置为 FALSE。FALSE 函数不需要任何参数。 | 3D Warehouse |
IF(test, thenValue, elseValue) | IF 函数标识逻辑测试。test 参数是可以是 TRUE 或 FALSE 的任何值或表达式。thenValue(可选)是逻辑测试为 TRUE 时返回的值。elseValue(可选)是逻辑测试为 FALSE 时返回的值。 | 3D Warehouse |
NOT(logicalValue) | NOT 函数反转 logicalValue。logicalValue 参数是要反转的任何值。 | 3D Warehouse |
OR(logicalValue1, logicalValue2, ...logicalValueN) | 如果至少有一个参数为 TRUE,则 OR 函数返回 TRUE。如果所有参数的逻辑值均为 FALSE,则此函数返回 FALSE。 | — |
TRUE() | TRUE 函数将逻辑值转换为 TRUE。TRUE() 函数不需要任何参数。 | 3D Warehouse |
官方链接:https://help.sketchup.com/en/sketchup/dynamic-components-onclick-function-examples
| 函数名 | 描述 | SU官方案例 |
|---|---|---|
ALERT("message") | ALERT 函数在警报框中显示消息的值。 | 3D Warehouse |
ANIMATE(attribute, state1, state2, ... stateN) | ANIMATE 函数启动一个动画,该动画将每半秒将属性的值更改为参数列表中的下一个值。例如,如果 ONCLICK 属性包含 ANIMATE("X",0,100),并且用户单击该组件,则组件将对介于 0 和 100 之间的 "X" 属性的值进行动画处理。随后的单击会将动画从 100 动画回 0。如果传递了两个以上的 animate 状态,则该值将按顺序在它们之间切换。此函数使用默认缓动进行动画处理。Ease 是动画的速度(范围为 0 到 100,0 表示最快)。缓动由两个数字表示,第一个数字(easein)标识动画开始时的速度,第二个数字(easeout)标识动画结束时的速度。默认缓动为 0,100(动画开始得很快,但在结束时会变慢)。 | 3D Warehouse |
ANIMATESLOW(attribute, state1, state2, ... stateN) | ANIMATESLOW 函数的作用与 animate 相同,但速度较慢(1 秒)。 | 3D Warehouse |
ANIMATEFAST(attribute, state1, state2, ... stateN) | ANIMATEFAST 函数执行与 animate 相同的操作,但速度更快(四分之一秒)。 | 3D Warehouse |
ANIMATECUSTOM("attribute", time, easein, easeout, state1, ...stateN) | ANIMATECUSTOM 函数执行与 animate 相同的操作,但在任意时间内使用缓动。有关缓动的信息,请参阅 ANIMATE 函数。 | 3D Warehouse |
GOTOSCENE("sceneName", time, easein, easeout) | GOTOSCENE 函数移动到由名称或数字标识的场景。有关缓动的信息,请参阅 ANIMATE 函数。 | 3D Warehouse |
REDRAW() | REDRAW 函数将重绘包含此函数的组件。 | 3D Warehouse |
SET("attribute", state1, state2, ...stateN) | SET 函数将给定属性设置为列表中的下一个状态。 | 3D Warehouse |