Chapter 6 阿基米德的螺线

阿基米德是西西里人,公元前287年到212年之间,他住在港口城市 Syracuse。大家广泛承认他是古代最伟大的数学家和发明家。阿基米德的数学成就领先于现代微积分学超过1500年,他也是把数学应用于物理现象的一位先驱。

阿基米德螺线

图 6.1: 阿基米德螺线

众多归功于阿基米德的发明之中,螺线也许是应用最广的。阿基米德螺线的构成,就是中空的管子内部的螺旋形螺纹。阿基米德也许并不是这个主意的原创者,因为有证据表明他至少了解过其基本概念,然后改进了设计,把它与其他发明结合起来,也推导出了螺线背后的数学原理。

这个例子中,我们会对螺线建模,然后把它的关键参数链接到数据表/Spreadsheet ,让它们容易用数学公式来调整。

6.1 技巧

  • 用 Part 工作台画螺旋线;
  • 用 Part 工作台里创建的对象创建一个机体;
  • 画一个 sketch,用作扫掠特性的基础截面;
  • 把属性链接到数据表/Spreadsheet 。

6.2 螺纹建模

我们要用扫掠技术,把一个垂直的轮廓扫掠过一段路径,来创建这个螺线。做法很容易明白:

首先用螺旋线做出螺纹的路径。

接着画一个螺线的截面轮廓。然后把它沿着那段路径扫掠,这就创建了螺纹。

得到的螺纹是实体,它可以加到一个圆柱上,也可从一个圆柱上切除,这要看想要的是什么类型的螺纹。

表 6.1: 本例中用到的尺寸参数
尺寸意义
螺距 7.5mm
高度 50mm
半径 15mm
角度 0.0
坐标系 右手
螺纹建模如果不必要就不要做,它会增加 CAD 内核的负担,会降低模型的渲染速度,也会急剧增加文件大小。只有在绝对必要时才做螺纹建模。
FreeCAD 的维基页面里有一个很棒的例子,用到了不同的螺纹建模技术。
  1. 首先,切换到 Part 工作台。点击创建基本几何体按钮 。在任务面板的下拉列表中选择螺旋线 。每次点击“创建”按钮,都会向模型树里添加一条螺旋线。
为螺纹创建螺旋线

图 6.2: 为螺纹创建螺旋线

  1. 切换回 Part Design 工作台,在项目树里选中螺旋线,然后创建一个实体

  2. 在 XZ 平面上建 sketch ,绘制螺纹截面轮廓。这里做一个等边三角形就够了。我也用到了链接到外部几何体 ,引用了螺旋线底部的一段。这样就能让三角形的中心与螺旋线的端点重合。加上一个竖直约束,一个长度约束, sketch 的约束就完整了。关闭 sketch。

绘制螺纹截面轮廓

图 6.3: 绘制螺纹截面轮廓

  1. 用 Part Design 工作台的扫掠工具 创建螺纹。在任务面板中点击“添加边/Add Edge”按钮,然后从螺旋线上选择边。你应该看到了在螺旋线上创建出来的螺纹。重复这个过程,添加每条边。
重点注意一下,任务面板里“方位模式/Orientation Mode”最好设成“Frenet”,避免实体扭曲。
用草图扫掠,把螺旋线的各部分逐一加入廓线列表中

图 6.4: 用草图扫掠,把螺旋线的各部分逐一加入廓线列表中

还有一些工作没完成。给螺线中间加上圆柱,把螺线头尾的部分处理平滑。作为练习,这些细节工作留给读者完成。

6.3 把模型链接到数据表/Spreadsheet

螺纹仍然是完全参数化的,能按需调整。然而,细心的读者可能已经发现了,螺距值(7.5mm)我们输入了两次:一次是螺旋线的参数,一次是 sketch 里正三角形竖直边的长度。如果我们有朝一日需要调整螺距,就不得不改两个地方。

方便的做法是做一个数据表/Spreadsheet,存放重要的参数,然后在任何需要的时候调用它们。

  1. 切换到数据表/Spreadsheet 工作台,创建一个数据表/Spreadsheet 。这就在文档结构树中加入了一个数据表/Spreadsheet 对象,但还需要打开它才能编辑内容。双击结构树中的数据表/Spreadsheet 按钮,它会打开一个新的标签页。

  2. 找个单元格,输入值 7.5,它就可以用来驱动模型属性值。为自己方便,给它添加标签信息。既然已经在做这个了,不妨也把高度和半径也加入数据表,方便今后修改。

输入标签和值

图 6.5: 输入标签和值

  1. 我们需要调整单元格的某些属性,让它容易被 FreeCAD 调用。选中有螺距值的单元格,点击右键,或者在工具栏上点击“别名/alias”按钮

    我们引用单元格内容时,可以用别名作为快捷方式,所以请给它取一个有描述意义的名字。

别名应该能反映出单元格的内容

图 6.6: 别名应该能反映出单元格的内容

如果你的模型采用米制单位,在“显示单位”这一页应该设置成“mm”。设置好之后,输入此单元格的值就会带着恰当的单位。

设置好单元格会在数值后显示单位

图 6.7: 设置好单元格会在数值后显示单位

  1. 关闭对话框。你愿意的话,把高度和半径的单元格也同样设置一遍。
黄色的底色表示该单元格有别名,注意这里单位也显示出来了

图 6.8: 黄色的底色表示该单元格有别名,注意这里单位也显示出来了

  1. 切换回模型页面,在项目树上选中螺旋线,在数据标签页找到它的螺距属性。点击蓝色的表达式图标,或者输入“=”键,调出表达式编辑器。
到了把螺距属性与电子表格链接起来的时候了

图 6.9: 到了把螺距属性与电子表格链接起来的时候了

  1. 输入相应数据单元格的完整名字。它包含数据表/Spreadsheet 的名字还有单元格的别名,中间用英文句点分隔。
    Spreadsheet.pitch
通过表达式编辑器输入引用关系。当你退出表达式编辑器后,引用的值就会反映在属性里面。

图 6.10: 通过表达式编辑器输入引用关系。当你退出表达式编辑器后,引用的值就会反映在属性里面。

表达式编辑器关闭之后,属性输入栏右上角的图标就变成了深蓝色的阴文,表示属性里有表达式,这里是引用了数据表/Spreadsheet。

  1. 螺纹轮廓也是这个过程。打开 sketch,找到竖直距离约束,改为同样的表达式。

    两个属性都由同一个电子数据表的单元格驱动了。

要完成模型,做到本章开头的图的样子,需要用零件工作台加一个圆柱。圆柱的直径也可以链接到数据表/Spreadsheet 里。