3D扫描与打印

小组作业

请前往小组作业页面


个人作业

学习成果:

你是否:

一周流程

本周任务:测试打印机 → 设计物体 → 打印物体 → 扫描物体 → 打印扫描得到的物体(可选)


使用的工具


使用的软件


生成/使用的文件


  1. 打印机准备

    Delta 3D打印机 几年前我设计和制造的打印机。


    1. 为了开始测试,我先把打印机准备好:清理喷嘴,再在平台上涂一层新胶。

      胶棒 平台上用的胶 0.4 mm 通针 用来清理喷嘴的 0.4 mm 通针

    2. 我在两台打印机上测试了挤出,看起来不错。

      PLA 正在被挤出 PLA 正在被挤出 PLA 正在被挤出 PLA 正在被挤出


  2. 我们打印机的极限
    1. 我开始这周的任务,先在网站上找一个测试图案 Thingiverse 。只要在站内搜索里输入关键词 test 3d print ,就会出现很多用来测试打印机的模型。

      Thingiverse 搜索结果 搜索截图取自 Thingiverse

    2. 我选了其中一个设计,它能测试打印机的各种能力。

      3D打印机测试模型页面 测试图案页面的截图,来自 Thingiverse

      在 3D打印机测试模型的页面上,我下载了设计,并记下它测试的参数,比如:

      • 螺母:M4 螺母应该刚好配合
      • 波浪:圆滑的打印
      • 星形:尖锐的棱角
      • 名字:复杂形状
      • 孔:3、4、5 mm
      • 最小间距:0.1、0.2、0.3、0.4、0.5、0.6、0.7 mm
      • Z 高度:0.1、0.2、0.3、0.4、0.5、0.6、0.7、0.8、0.9、1.0、1.1 mm
      • 壁厚:0.1、0.2、0.3、0.4、0.5、0.6、0.7 mm
      • 桥接打印:2、4、8、16 mm
      • 球体:圆滑打印,4.8 mm 高
      • 混合球体:7 mm 高
      • 金字塔:7 mm 高
      • 悬垂(overhang):25、30、35、40、45、50、55、60、65、70°
      • 翘曲(warp):会不会弯?
      • 3D 打印字体:为 3D 打印优化
      • 表面:平整度
      • 尺寸:100 x 100 mm x 23.83(宽 10 mm)
      • 尖刺:最小层时间,从底部起 21 mm 高(含底板)
      • 墙上的孔:直径 4 mm,检查是否打印正常
      • 筏板测试:筏板(raft)应该刚好在模型下面
      • 回抽行程:检查长距离移动时的回抽设置

      下面是 3D 打印测试模型:

      看来你用的是不支持 canvas 的旧浏览器 :-( 由 STL 文件渲染的 3D 模型

      作者还提供了一张参考图,方便对照检查打印结果。

      测试模型信息图 信息图来自 phpBB 论坛


    3. 在 Repetier Host 里,我载入 STL 文件,分别为每台打印机切片,并在 G-code 的名字前面写上打印机的标识。

      Mini 的 Repetier Host G-code 在 Repetier Host 里为 Mini 生成 G-code

      Delta 的 Repetier Host G-code 在 Repetier Host 里为 Delta 生成 G-code

      Slic3r 设置
    4. 3D打印机远不是即插即用的设备。要调的东西很多,其中一部分看起来像魔法。我会挑出 Slic3r 软件设置里最需要注意的几点,它是配合 Repetier 一起工作的。
      1. 还在 Repetier 里,在 “Slicer” 标签页中,软件会给我们几个预设的配置选项。第一个就是切片软件本身。在下拉菜单里,可以选 Slic3r、Cura,或者没人用的更老的软件……
      2. 在 Print settings 里,是针对要打印的这个模型的特征。我现在的选择是 “coarsewithsupport”;后面我会讲我是怎么选出这些预设里的设置的。
      3. 然后是 “Printer Settings”。通常,和某台具体打印机(机器)相关的设置放在这里。在我的预设里,有实验室里的几台不同打印机:一台是笛卡尔式打印机 “Mini_2.5_retraction”,另一台(没显示出来)是 delta 打印机。
      4. 这里,在 “Filament Settings” 里,是你可能有的各种耗材,每一种都有不同的设置,比如颜色、温度或粗细。
      5. 在这一项里,我们会更深入地看设置,并把前面显示的那些预设配置起来。

      Repetier Host 里的 Slicer 标签页

      这个 Slic3r 就是切片软件本身,深埋在 Repetier 里面。它的地盘不是给胆小的人准备的:在这里走错一步,或者该说设错一项,都可能让你的打印结果一塌糊涂。

      1. 就像 Slic3r 第一列显示的,我们有这些类别:Print settings、Filament 和 Printer。
      2. 然后,第二列是下拉菜单,用来选择用户想自定义的每一个预设。
      3. 第三列,我们看到一个齿轮形状的图标,这是典型的配置图标。我们点它一下,打开每个类别,看看里面是怎么运作的。

      Slic3r 预设

      现在我们在 Print Settings 标签页。

      1. 我们一个子类一个子类地看,从 Layers and Perimeters 开始。
      2. 在这个区域,我们能看到层高(Layer height)。这是个重要的设置,不应该超过喷嘴直径。如果你赶时间又不在乎外观,就往高了调。我选了 0.3 mm,做出粗糙的手感。层会看得很明显,斜面看起来像楼梯。如果你需要细致的结果,就往低了调。能低到什么程度几乎没有极限,但时间有限,所以我建议不要低于 0.1 mm。数字越小意味着层数越多,表面会光滑得像桃子皮。
      3. 每次调整之后,点一下这个奇怪的蓝色方块,它让我想起过去的年代,在信息过剩和回音室之前,在我们周围这个真正无边无际的 TB 宇宙之前。它叫软盘。相信我,如果你不点,你会后悔的,因为什么都不会保存,但别怕,Slic3r 不会让你这么干而不警告你的。

      Slic3r 的 Layers and perimeters

      现在,Print settings 的这个子类是填充(infill)。在这里可以省下很多时间和钱。有人说过两者是一样的;说实话,我宁愿拥有前者而不是后者。我的填充是 20%。我不是小气鬼;我觉得 20% 就够了。毕竟,这台打印机吐出来的那些短命零件,很少值得用掉这么多玉米。啊,我提过我用的是 PLA,一种玉米的衍生物吗?当然没有;那要留到耗材那部分讲……所以,眼下你信我,20% 对几乎所有打印都够了。如果你要拖一辆卡车,那就疯一把,用 100%。反过来,如果你想做一个精致的花瓶,0% 会让你得到一个空心的打印件。

      Slic3r 的填充

      在 Print settings 的这个子节里,是著名的 Skirt 和 Brim。聪明的 fabber 会用 Brim,而不是那些可笑又浪费的筏板,那是懒得花时间调平和校准打印机的人做出来的。用一圈宽的 brim,你就能保证打印件不会从热床上脱落。brim 基本上就是一圈挨着一圈的线,贴在打印件上;它非常适合尖尖的模型底部,或者只是对付那些想从热床上翘起来、造成 “翘曲”(warping)的角。skirt 是用来擦鼻子的,我是说喷嘴,对,打印机的喷嘴,耗材挤出来的那个部件。这个设置会在要打印的模型周围挤一圈线,在耗材混用的情况下特别有用,所以换颜色或换耗材类型时,一定要先在空中挤一下,或者在打印前加个 skirt。

      Slic3r 的 Skirt 和 brim

      支撑材料(Support material)这个子类,我留给那些不愿挑战自己机器的人,留给那些不在乎校准和调平的人。

      支撑材料是你在有悬垂时用的东西。在负斜角太陡的地方,支撑会在模型下面搭起来,免得在你鼻子底下,我是说喷嘴底下,自由成形出一个真正的鸟窝。

      筏板(Raft)……我多恨筏板!我连提都不想提筏板。我会想,宇宙里有多少爆米花因为用筏板而被抹掉了!好吧,就像名字说的,没人想待在筏板上,也没人想用它。它是给紧急情况准备的,也只该留给紧急情况。它造成的材料浪费,远远补不上没调平的损失;它是给懒人用的,但最后反而更费事,因为打印件的底面永远不会像直接印在玻璃上的那面那么光滑。支撑也有同样的问题。你可以试试带支撑打印,然后接下来的几个小时都花在给打印件做后处理上,超级好玩。

      Slic3r 的支撑材料

      耗材设置这一类不用花太多时间,因为它很直接。如果你的耗材供应商在乎你,就会把打印温度写在盒子或料盘侧面的标签上。直径一直是,对我来说也一直是,1.75 mm。更细的直径比 3 mm 那个另一种标准粗细更容易推。毕竟,我们是在把耗材推过直径 0.4 mm 的喷嘴;那很细,所以选一台用细耗材的打印机更好!

      Slic3r 的耗材设置

      在打印机设置这里,是喷嘴尺寸。我用 0.4 mm。接下来,这些测试里我最喜欢的设置,嗯,几乎也是我唯一动过的设置,就是 “回抽”(retraction)。

      作为我自己打印机的设计者、工程师和技师,我几乎什么都试过了。

      回抽,对,回抽,取决于很多因素。回抽太多,耗材可能会堵在喷嘴里面,保证你有很多乐趣去修、去拆一个耗材在里面上层凝固的喷嘴。对像我这样的极客来说,修这个总是很好玩,才不是!回抽太少,你所有的塔周围都会挂满蜘蛛网。所以,这是一个需要一遍又一遍测试的设置,直到你像对待很多其他设置一样,靠反复试错把它掌握到接近完美,如果 FDM 里真有完美这回事的话。

      Slic3r 打印机设置,回抽

    5. 接下来,我把存在 SD 卡上的 G-code 拿出来,放进 3D打印机,开始打印。

      点 这里 看切片、生成带 G-code 的待打印文件的过程。

      Mini 开始测试打印的视频

    6. 打印不算差,但拉丝(蜘蛛网)很多。于是我把回抽增加了 0.5 mm,然后又加了 1 mm;两台打印机的改善都很明显。

      回抽 1.5 和 2.5 mm 的打印件 回抽 1.5 mm(左)和 2.5 mm(右)的打印件照片

    7. 结果
      参数 结果  
          Mini Delta
      1 螺母:M4 螺母应该刚好配合 是 否
      2 波浪:圆滑的打印 是 是
      3 星形:尖锐的棱角 是 是
      4 名字:复杂形状 是 是
      5 孔:3、4、5 mm 2.9、3.9、4.9 3、4、5 mm 椭圆
      6 最小间距:0.1、0.2、0.3、0.4、0.5、0.6、0.7 mm 0.1 mm 不好 0.1、0.2、0.3 不好,比例错了:6.5 mm 而不是 7 mm
      7 Z 高度:0.1、0.2、0.3、0.4、0.5、0.6、0.7、0.8、0.9、1.0、1.1 mm 0.1 mm 打出来是 0.2,1.1 打出来是 1 是
      8 壁厚:0.1、0.2、0.3、0.4、0.5、0.6、0.7 mm 0.1、0.2 没打出来;后面的壁打出来是 0.5,最后一个是 1 mm 是
      9 桥接打印:2、4、8、16 mm 打出来是 2.85、3.9、7.9、15.8 是
      10 球体:圆滑打印,4.8 mm 高 5.1 是
      11 混合球体:7 mm 高 7.15 是
      12 金字塔:7 mm 高 6.95 是
      13 悬垂(overhang):25、30、35、40、45、50、55、60、65、70° 是 是
      14 翘曲(warp):会不会弯? 没有 是,翘了
      15 3D 打印字体:为 3D 打印优化 是 是
      16 表面:平整度 有点粗糙 是
      17 尺寸:100 x 100 mm x 23.83(宽 10 mm) 99.45 x 99.8 x 23.2(宽 10.2) 是
      18 尖刺:最小层时间,从底部起 21 mm 高(含底板) 15 mm 是
      19 墙上的孔:直径 4 mm,检查是否打印正常 是 是
      20 筏板测试:筏板应该刚好在模型下面 没测试 是
      21 回抽行程:检查长距离移动时的回抽设置 几乎没有拉丝 是
        结论 对一台 FDM 打印机来说,我觉得结果很好。尺寸上的差异大概是 PLA 收缩造成的。

  3. 设计并打印一个物体
    1. 我决定做我的最终项目需要的一个零件:一个理线器,把它们互相接起来,就能像链条一样工作。

      这个设计用减材技术要么太难,要么根本做不出来,因为它的形状和细节,2 轴数控机床(CNC)甚至 3 轴机床都够不到。

    2. 这个设计是参数化的,所以需要时我可以轻松改动尺寸。

      参数化设计拼图 在 SolidWorks 里做参数化设计,从开始到生成 G-code

      做好的理线器模型 模型完成了

    3. 设计的步骤

      带参数的方形草图 这里,我选了一个基准面,然后画了一个正方形,并加上参数,这样以后就能轻松改动。

      选择拉伸 这里,我已经退出了草图,选择了特征类型,这次是拉伸。接着,我选了拉伸的尺寸。

      拉伸出来的零件 拉伸出来的零件!

      在面上画草图 接着,我选了要放置特征的那个面,直接在它的平面上开始画草图。

      切除的草图 上一次拉伸之后,我画了要切掉的部分。

      切除特征 然后完成这个特征,选择全部切除。

      创建基准面 我建了几个基准面,给后面的操作使用。

      正在创建基准面 正在创建基准面

      镜像特征 基准面建好之后,我就能镜像这个特征了。

      镜像操作 镜像操作

      圆角 圆角让表面更好看,也让 3D 打印更顺滑。这个特征在数控机床上很难做。

      圆角完成 圆角完成了。

      参数示例 参数的示例。

      做好的零件 零件做好了,可以生成 STL 了

      “另存为”对话框 ……要生成 STL,点“文件”、“另存为”……

      选择 STL 格式 把格式类型选成 STL。

      选择保存位置 保存到你想放的位置。

      STL 统计信息 确认,然后看统计信息。

      参数表 这是这个零件的参数表。

    4. SolidWorks 模型做完后,我把文件导出成 STL。

      看来你用的是不支持 canvas 的旧浏览器 :-( 我的理线器 3D 模型的渲染图。

      在 Repetier Host 里载入 STL

      切片并打印
      1. 添加 STL 文件。
      2. 需要的话,改一下比例。
      3. 需要的话,转一下方向。
      4. 点 Slicer 进入设置,开始切片。

      Repetier Host 里的 Slicer 设置

      1. 在 Configuration 里,你可以设定切片操作的具体参数。附上的是 配置包,是我们打印机用的。
      2. 预设载入之后,在这里选择打印设置。
      3. 这里,你可以选择机器型号。
      4. 这里是耗材设置。
      5. 最后,点 “Slice with Slic3r”。

      把 G-code 保存到 SD 卡

      1. 点保存到 SD 卡,把 G-code 存到你要插进 3D打印机的存储介质里。
      2. 在可视化里,你可以一层一层地看,在真正打印之前就明白你的设置会怎样影响打印结果。

      逐层预览

      1. 切片软件里的设置显示,填充是直线型、20%,层高是 0.2 mm。
      2. 再一次,点显示层高并拖动最后一层,就能一步一步看到各层。

      打印机 LCD

      1. 插入 SD 卡后,看 LCD,左上角会显示喷嘴温度。
      2. 然后,按下旋转编码器,显示菜单选项。

      Print from media 菜单

      1. 滚动到 “Print from media”,按下编码器的旋钮。

      选择要打印的文件

      1. 滚动到想要的文件,按下旋钮,打印就开始了。

      打印机正在打印链条理线器 打印机快要把链条理线器打完了。

      打印机打印理线器的视频,以及理线器拼成链条的样子。

  4. 3D 扫描
    1. 这部分作业,我用了 Autodesk ReMake。它靠的是 摄影测量。

      Autodesk ReMake

    2. 运气不错,我在海滩上,看到一个会很有意思的模型:有人把一块大石头叠平衡了。

      海滩上叠平衡的石头 在葡萄牙 Lagos 附近的 “Figueira 海滩” 上叠平衡的石头。

    3. 下一步是从各个角度拍 90 多张照片,最好背景里没有会动的东西,比如人或云。

      从各个角度拍的石头照片 为建模拍下的 90 多张图片中的一部分。

    4. 接着,我把文件上传到 ReMake。重要的是只选好的图片,并且避开背景里会动的物体。上传完成后,按 create model。生成模型可能要等一会儿。

      把图片上传到 ReMake ReMake 上传图片的截图

    5. 上传之后,在生成流程里选一个选项。我选了 standard,因为它是免费的。

      ReMake 的生成选项 ReMake 里选项的截图

    6. 屏幕下方,ReMake 显示正在生成和排队中的模型。上方显示已经完成的模型。

      ReMake 的模型队列 Autodesk ReMake 的截图

    7. 模型准备好后,你可以点它,进入 ReMake 的编辑模式。

      生成好的模型,暴露出开放面的问题。还不能打印。

    8. 我把编辑的步骤拼成了下面的拼图。简单说,我选中不要的部分,删掉,再把留下的洞补上。最后,我生成了一个应该可以打印的 STL 文件。

      在 ReMake 里编辑扫描结果 Autodesk ReMake 里编辑步骤的截图拼图


      结果:

      看来你用的是不支持 canvas 的旧浏览器 :-( 我在 ReMake 里用摄影测量扫描得到的 3D 模型的渲染图

    9. 石头模型的准备
      1. 我点了 load,把 STL 文件载入 Repetier。STL 文件在 这里。
      2. 接着,在文件夹里找到那个文件,点 OK。
      3. 如果需要,可以旋转、缩放模型等等,直到它能放进打印区域。我的情况是不用,因为模型正好放得下。

      在 Repetier Host 里载入的石头模型

    10. 在 “Slicer” 标签页
      1. 我先选切片软件。我选了 “Slic3r”(用 3 代替字母 “E”,对,这个名字挺让人困惑的)。
      2. 接着,我选了预先配置好的 “coarse with support”。
      3. 然后是按之前的测试最好的选项:Mini 2.5 retraction。
      4. 在 Extruder 上,这台打印机只有一个预配置,所以没得选。
      5. 高级配置在 “configuration” 选项里,但我的情况用不上,因为已经测试过的预配置应该就能正常工作。
      6. 最后,点 “Slice with Slic3r” 开始切片。

      石头模型的 Slicer 标签页设置

    11. 现在模型可以打印了。点 “Print” 按钮就行。上面的箭头指向打印的统计信息;打印这个扫描的模型要 1 小时 41 分钟,我选择不打。下面的箭头里,可以看到为这次打印准备好的支撑材料。

      石头模型的打印预览和统计信息

    12. 生成的 G-code:

      生成的 G-code 可以用上面的链接下载,但我把它开头的一段摘在这里,展示它的几项统计:

      ; generated by Slic3r 1.3.1-dev on 2020-05-31 at 20:04:21
      ; external perimeters extrusion width = 0.44mm (3.38mm^3/s)
      ; perimeters extrusion width = 0.48mm (7.54mm^3/s)
      ; infill extrusion width = 0.48mm (10.05mm^3/s)
      ; solid infill extrusion width = 0.48mm (2.51mm^3/s)
      ; top infill extrusion width = 0.48mm (1.88mm^3/s)
      ; support material extrusion width = 0.44mm (6.76mm^3/s)
      

← (2月26日) 电子生产 · 所有周 · 电子设计 (3月11日) →