在 Tinkercad 中运用算法进行设计





简介





2019 年计算机科学教育周的举办时间为 12 月 9 日至 15 日,但 “编程一小时” 活动全年均可开展。
- 推荐年级:6-8 年级
- 教授技能:
- 编写包含 “控制点变量” 与 “计数控制循环” 的计算机程序;
- 修复现有程序中的问题,以创建新作品;
- 通过代码注释描述程序开发过程中的决策;
- 分析影响人们日常活动与职业选择的计算机技术相关权衡。
- 课程概述:编程能否提升人类的想象力?在本节课中,学生将探讨人类与计算机协作创造艺术、建筑、产品等事物的方式与原因,还将通过 Tinkercad 代码块(Codeblocks)分析、创建并改编有趣的算法组件(包括控制点变量与计数控制循环)。课程结束时,学生将通过代码生成一个雪花的 3D 模型。
- 学生将在本节课中完成:
- 讨论并辩论人机交互相关议题;
- 识别、定义并解决雪花设计中的计算问题,实现个性化设计;
- 探索使用控制结构设置参数,快速高效地完成更多设计迭代;
- 通过代码与计算机辅助设计(CAD)清晰表达想法;
- 创作有趣的代码生成式雪花设计,并通过 3D 打印、制作 GIF 动图或渲染图像的方式分享。
- 预计教学时长:60 分钟
- 所需材料:
- 计算机、互联网、Tinkercad(一款免费、易用的网页版 3D CAD 设计工具);
- 可选(但推荐):3D 打印机、本节课所用代码块(Codeblocks)的彩色打印件或图像文件夹、教师笔记(见第 8 步)、演示幻灯片。
建立 “人机协作创造” 的背景认知






试想一下:如果你的学生要设计一件新事物,无需从已有认知或脑海中的想法出发,而是可以告诉计算机自己想做什么,再与计算机协作完成创作 —— 这会提升他们的创造力,还是会阻碍他们的想象力?
…… 想到这一点,你是否会感到些许困惑?
别担心(至少在教授本节课时不用!)。我们为你准备了一份实用的参考手册,帮助你和学生探索自动化议题(以及它如何以新方式影响世界),还包含 “用算法创作艺术” 的相关信息,其中重点介绍了算法艺术家内特里斯・加斯金斯(Nettrice Gaskins) 的作品(其作品与形象已纳入本步骤及演示幻灯片)。
这份参考手册还包含一项有趣的辩论活动,可引导你和学生共同梳理这些信息。
“编程一小时” 前可探索的其他内容
“编程一小时” 的核心初衷是 **“揭开计算机科学的神秘面纱”**—— 证明任何人都能学会基础知识,并扩大计算机科学领域的参与度。
在开启本节课时,你可以分享一份演示幻灯片,其中包含 “自动化(automation)”“算法(algorithm)”“变量(variable)”“控制结构(control structure)”“参数(parameter)”“计数控制循环(count-controlled loop)” 等关键术语的定义与对应图像。
学生可通过融入控制结构,编写更具趣味性的计算机程序(同时加深对 “算法如何用于创造事物” 的理解);还可通过添加 “计数控制循环” 等组件,让算法更强大、更有趣。
本节课中用于制作雪花的代码块脚本,将引导学生体验这类 “迭代式设计流程”。最棒的是,课程结束时,他们将获得一件能体现学习成果的酷炫作品!
部分教育工作者会通过以下方式开启 “编程一小时”:
- 播放一段简短的励志视频;
- 在编程活动前的课程中,提前讲解编程相关背景知识;
- 部分学校或教师团队会将 “编程一小时” 组织为全天(甚至全周)的跨学科活动。
本节课的演示幻灯片也可用于科学、数学、人文或艺术课程的语境讨论。
此外,本节课符合美国计算机科学教师协会(CSTA)K-12 计算机科学标准与国际教育技术协会(ISTE)学生标准。
准备好开始 CAD 编程了吗?
如果你是 Tinkercad 代码块(Codeblocks)的新手,可查看这份快速入门指南(Quick Start Guide),了解开展代码块教学所需的全部知识。此外,这些代码块入门活动(Codeblocks Starter Activities) 是学生在开始雪花设计前熟悉工具的绝佳选择。
下一步将进入本节课的编程环节。如果在开始使用 Tinkercad 代码块前需要更多支持,可跳至第 7 步查看更多提示与资源。
提示 1:别想太复杂!即使你和学生在第一个小时里只完成了下一步内容,只要大家玩得开心、学到了新知识,就足够了 —— 未来还有无数小时可以一起编程、一起做 CAD 设计!
通过设计个性化雪花玩转 “变量”





当学生能将自己的想法融入项目时,学习会更有趣。本步骤中的代码块脚本将帮助学生创建 “可添加文本” 的雪花设计,且文本可轻松修改以实现个性化 —— 但有一个小问题:如果添加的单词超过 5 个字母,设计就需要调整才能保证清晰可读(同时确保能作为单个部件 3D 打印)。
这是一个极具吸引力的设计挑战,能快速让学生投入问题解决,同时通过 “玩转变量与算法其他组件”,接触 “控制结构” 与 “参数” 的核心概念。
学生登录 Tinkercad 后,可向下滚动并点击 “创建你的第一个代码块设计(Create your first Codeblocks design)”,进入代码块工作区。
在代码块编辑器中,学生可复制下方脚本制作雪花(本节课提及的所有代码块脚本,均已整理为可打印 PDF,附在课程末尾,同时也存放在一个共享图像文件夹中)。
在修改设计以添加不同文本的过程中,学生应能发现:调整顶部的 “控制点变量”,即可轻松修改设计 —— 这是一个绝佳案例,说明 “从清晰的目标与参数出发,能让设计更灵活、更易迭代”。
提供引导与结构支持
建议让学生两人一组探索代码块(尤其是首次接触时),这样他们可以互相检查错误,并讨论每个代码块的作用 —— 这也能减少你在自学过程中需要解答的问题!
给教师的提示:
- 学生在从图像中复制脚本时,可能会遇到一个难点:向脚本中添加某个 “形状(Shapes)” 后,会出现 “添加(Add)” 字样,同时显示 “修改颜色” 或 “将形状设为镂空(Hole)” 的设置选项。
- 若要打印脚本,建议使用彩色墨水;若没有彩色墨水,可将代码块脚本的图像文件夹链接分享给学生,让小组中的一名学生在一台笔记本电脑上打开脚本图像,另一名学生用另一台电脑编程。如果无法实现 “一人一台电脑”,也可调整窗口大小,让 Tinkercad 与图像文件同时显示。
- 请不要将本文档作为获取代码块脚本的主要来源!务必使用图像文件夹或课程末尾的可打印 PDF—— 这会让编程过程简单得多!
- 鼓励学生为每个新创建的 “对象(Object)” 命名,也为预设为 “item” 的 “变量(Variables)” 命名。这不仅是 CAD 设计中重要的整理习惯,还能让 “向代码块中插入数据(Data)” 变得更简单。
评估与分享
鼓励学生修改、改编代码块 —— 告诉他们 “即使程序出问题也不用慌!总能修复的”。他们的设计会保存在 Tinkercad 账户中,方便后续继续调整。
你可以在教室里巡回走动,通过提问进行形成性评估。最重要的是让学生有机会 “探索、想象、设计并分享自己的思路”。
根据学生的年龄、对块式编程的熟悉程度以及参与度,你可以延长探索时间,将后续步骤留到下一节课。
为检查学生在课程结束时的理解程度,可让他们在代码块中添加 “注释”:解释 “现有设计中各代码块的作用” 以及 “自己修改程序时的决策”。
了解 “代码生成式设计” 的组成部分







什么是雪花?
人们提到 “雪花(snowflake)” 时,通常指 “雪晶(snow crystal)”。雪花既可以是从天空落下的蓬松雪粒,也可以是单个冰晶 —— 冰晶中的水分子会排列成精确的六边形阵列。本节课代码块脚本的灵感,正是来自这种具有六重对称性的璀璨冰晶。
不过,在上一步调整参数时,学生可能会将雪花的 “射线数量” 从 6 条改为其他数字,从而改变了雪花的自然结构 —— 别担心!大自然会 “原谅” 这种创意改编的。
在制作下一个雪花设计时,你可以鼓励学生继续这种 “创意改造”,因为算法的 “控制点” 也清晰地列在第一个脚本中。
使用代码注释
学生按照提供的代码块脚本制作第二个雪花时,应使用 “播放(Play)” 按钮旁的 “分步(Step)” 按钮,分析每个独立代码块的作用;同时,通过添加 “注释代码块” 记录自己的思路(如下方示例)。
“注释块(Comment block)” 可在代码块面板的 “标记(Markup)” 部分找到。
以下是第二个雪花算法中两个关键组件的代码注释:“控制点(control points)” 与 “计数控制循环(count-controlled loop)”。
需要更清晰的视图?这些图像也包含在课程末尾的教师笔记(teacher notes) 文档中。课程末尾的 “学生讲义” 与 “图像文件夹” 中,还能找到第二个雪花的完整代码块脚本。
- 为控制点创建变量:
- (示例注释:这一步正在为设计中的重要控制点创建变量,可通过调整这些变量修改设计。
- 创建变量 “射线数量(ray number)”> 6(控制设计中的射线总数);
- 创建变量 “长度(length)”> 35(控制射线的长度);
- 创建变量 “厚度(thickness)”> 3(控制设计中对象的厚度);
- 创建变量 “距离(distance)”> 10(控制射线上构成图案的节点间距)。)
- 用计数控制循环制作图案
灵活调整要求
根据你观察到的学生反馈(比如 “要求他们为每一步设计写代码注释” 的愉悦度),你可以放宽 “逐块注释” 的要求,只让他们在脚本末尾添加至少一条注释,以体现自己的思考 —— 提示:“编程一小时” 的核心是乐趣!
改编雪花设计或创建原创设计




(引用:“这些雪花诞生的空气中,蕴含着多么充沛的创造天赋!即便真的有星星落下,落在我的外套上,我对它们的赞叹也不会比此刻更多。”—— 亨利・戴维・梭罗)
当学生理解了现有雪花设计的核心要素后,就到了 “改编(remix)” 环节!
让学生释放创造力,畅想可能的设计:进一步修改算法,或将两个设计的元素结合,创造出独一无二的作品。
如果学生需要视觉灵感,可以让他们查看一位现实中的 “雪花设计师” 的作品;也可以阅读算法艺术家内特里斯・加斯金斯(Nettrice Gaskin)给 “对创意编程感兴趣的学生” 的建议:“动手创作,大胆尝试。玩转代码就对了。(Just make stuff; do stuff. Mess with the code.)”
制作雪花 GIF 动图

学生是否对自己的雪花设计 “爱不释手”?只需再加点 “技术魔法”,就能让他们的设计 “活” 起来。
为快速获得成就感,学生可以为自己的 “代码 - CAD 创作” 录制 GIF 动图 —— 在 Tinkercad 代码块编辑器中,点击 “分享(Share)” 按钮,然后在下一步界面中选择 “保存 GIF(Save Gif)” 即可。注意:需先在编辑器中运行设计(提示:GIF 打包与下载需要几分钟时间,但绝对值得等待!)。
学生还可以在程序末尾添加 “消息块(message block)”,向你反馈 “编程一小时” 中的收获。
作为自豪的教师,你也可以请求学生允许你分享他们的作品 —— 践行 “揭开编程神秘面纱” 的理念。如果在社交平台发布,记得标记 @tinkercad,让我们一起为你们庆祝(这也是我们的第一个 “编程一小时” 活动!)!
让设计 “落地成真”

如果您和学生能使用 3D 打印机或其他制造设备,这些 “代码雪花” 可以变成装饰品、首饰等实物。
最简单的方法是:将代码生成的设计导出到 Tinkercad“零件库(Parts Collection)”。将设计设为 “零件(Part)” 后,学生可在原始 Tinkercad 3D 编辑器中进一步修改,例如添加 “圆环形状(Torus)”(用于给 3D 打印件装挂钩),或添加 “底座”(若学生想将设计做成雕塑,可增强稳定性)。
学生也可以将设计保留为 2D 形式,进行激光切割或制作成贴纸!如需了解 “如何从代码块设计生成 SVG 文件”,可阅读 Tinkercad 的这篇博客文章(blog post)。
如果学生年龄在 13 岁及以上,还可以通过 “一键点击” 的 **“发送到 Fusion 360 流程(Send to Fusion 360 workflow)”**,开启 “从 Tinkercad 到 Fusion 360” 的进阶路径!之后,学生可利用 Fusion 360 的渲染功能,为设计创建精美的展示图像,以全新方式呈现作品。
Tinkercad 代码块入门指南

如果这是你首次教授 “结合 CAD 与代码” 的项目,以下提示可帮助你起步:
- 访问Tinkercad 代码块页面(Tinkercad Codeblocks page);
- 阅读博客文章:《Tinkercad 代码块官方指南》(Official Guide to Tinkercad Codeblocks);
- 探索代码块中心(Codeblocks Hub);
- 核心提示:别想太复杂!
如需更多来自 Tinkercad 社区的技巧,可阅读以下关于 “如何使用代码块” 的优质文章:
- 《Tinkercad 代码块入门》(An Introduction to Tinkercad Codeblocks)
- 《用 Tinkercad 新代码块设计 3D 作品》(Code Your 3D Designs with Tinkercad's New Codeblocks)
此外,如需了解 “如何管理课堂制作活动”“如何评估 3D 设计项目” 等内容,可查看:《如何将 Tinkercad 带入课堂》(How to Bring Tinkercad into Your Classroom)。
庆祝成果!

(证书文字:恭喜!在 “编程一小时” 活动中,你通过结合计算机辅助设计(CAD)与代码,创造出了精彩作品。颁发方:欧特克(AUTODESK),日期:______)
为你和学生 “勇敢挑战雪花设计中的算法元素” 点赞!希望你们玩得开心!
如果您尚未教授本节课,只是在为 “让学生的‘编程一小时’更精彩” 储备资源 —— 那么你找对地方了!
本步骤末尾提供以下可打印 PDF 资源:
- 本节课所用代码块脚本的打印件;
- 教师笔记(teaching notes);
- 学生证书模板。
此外,本节课所有代码块脚本的图像文件夹链接:代码块图像(Codeblocks Images);
别忘了还有演示幻灯片(slideshow)。
庆祝结束后,欢迎 “日后再来探索”!你可以通过留言或分享学生作品的方式,告诉我们活动开展情况。









