Chapter 5 特征建模(PartDesign和Sketcher工作台)

前面了解了怎样用传统方法做 2D 和 3D 的设计。在本章,我们谈混合驱动的技术,看看它怎样通过叠加一个个的特征,构造出复杂的形状。原始形状称为“基础特征/Base Feature”,在此基础上,通过多次增加和削除材料,得到最终想要的模型。每个后续特征都建立在前面特征的基础上,但是并不会破坏它,所以任何时候都可以回滚到前面一步。最后的特征称为“tip”,它作为这个零件的整体形象出现在 3D 窗口中。

本书的后续章节都使用特征建模技术。

所谓 Body 是由特征组成的链:从 Base Feature 开始,经过一系列中间步骤,到 tip 特征为止,完成设计。

5.1 特征建模适用的场景

  • 创建复杂零件的全参数化模型;
  • 创建基于凸台、扫掠和放样的特征,以及增加材料的其他几何体;
  • 创建基于去除材料类操作的特征;
  • 创建基于阵列和镜像的特征;
  • 给一个面施加斜角;
  • 建立一组有配合关系的零件。

5.2 Part Design 与 Sketcher

跟之前提到的建模技术不同,FreeCAD 里基于特征建模的方法依赖于两个工作台:Part Design 和 Sketcher。

Part Design 总管创建体和特征的过程。

有些特征依赖于 2D 元素,这里参数驱动的 2D 对象称为 sketch。 Sketch 后续可以用来给 body 增加材料或削除材料。Sketcher 工作台就提供绘制这种图形的工具。

Part Design 和 Sketcher 工作台紧密配合着工作。从 Part Design 工作台,创建和编辑 sketch,FreeCAD 会自动切换到 Sketcher 工作台。当关掉 sketch ,它就自动切换回 Part Design 工作台了。

5.3 Part Design 工作台的用户图形界面

Part Design 有两个工具条:帮手工具/Helper tools 和建模工具/Modeling tools。

通过 Helper tools 可以创建 body ,可以给工作台用到的各个对象之间建立重要的联系。

Helper tools

图 5.1: Helper tools

通过 Modeling tools 可以创建特征,给 body 增加材料,削除材料,复制特征。

Modeling tools

图 5.2: Modeling tools

很多建模工具需要用到 sketch。Sketch 是在 Sketcher 工作台里创建的 2D 图。这些 sketch 会定义凸台的形状或 body 上凹坑的形状。单个或多个 sketch 也可用来引导诸如旋转、扫掠和放样之类的操作,来增加材料或去除材料。

当 body 有多个同样特征,省力的办法是只做一次特征模型,然后用阵列功能复制成其它。如果这些特征沿着一条直线,可以用线性的阵列;如果这些特征围绕着一个点,可以用圆形的阵列。类似地,如果特征是对称的,那就用镜像特征来做。

有很多直接针对实体的边沿或表面的特征不需要 sketch 。圆角和倒角就是最常用的此类特征。

在本书第二部分中,我们会仔细操练这些工具如何使用。

5.4 Sketcher 工作台的用户图形界面

Sketcher 工作台里绘制的 2D 图有些特殊,它用 Constraint 来控制各种几何元素。

Sketcher 有很多工具条,我们这里重点看两个:Geometry 与 Constraint 工具。

Geometry 工具跟 Draft 工作台里的工具很像。画圆、直线、弧线和椭圆,等等。也有几个工具,用来快速创建规则多边形、长方形等。

Geometry 工具

图 5.3: Geometry 工具

在 Sketcher 工作台里画几何元素,控制方式更符合直觉——给它们添加 Constraint。Constraint 就是限制几何元素的一些规则。例如, sketch 中的一条线段,如果没有约束,就可以随意修改尺寸和位置。如果给它添加一个长度尺寸约束,让它精确等于 10mm 长,这条线段就不能被拉长了,虽然你还是可以移动整条线段或它的一个端点。

一个个地加上约束,Solver 就自动地把受到约束的几何元素固定下来,同时调整那些没有约束的元素来适应它们,满足所有要求。

Constraint 工具条(图 5.4)里的工具可以给选定的对象施加各种各样的约束。

Constraint 工具

图 5.4: Constraint 工具

编辑 sketch 就激活了一个任务。任务面板上显示着 solver 的信息,告诉你还有多少自由度。这个数字表示未被完全约束的几何元素可以有多少种变化方式。

当自由度为零,sketch 就是完全约束的,几何图形会变成绿色。虽然没有严格要求,但是你最好努力让所有的 sketch 都受到完全约束。

5.5 Body

我们前面讲到过 body,但是没有多谈。它是 Part Design 工作台的核心概念,值得进一步讨论一下。

Body 是单一连续实体对象。这里有一个简单的判断准则:如果真实世界中的零件需要用到胶水、螺栓或者钉子,它就不是单一 body 。Body 应该是单一的、材料唯一的实体,比如说一块铸造金属,一个 3D 打印件,或者整个木片。如果你的作品需要装配,比如用多片木头拼起来的橱柜,那么就该把它做成多个 body。

FreeCAD 允许在一个文件中含有多个 body,但是同时只能有一个 body 处于激活状态。在项目树上,处于激活状态的 body 的背景是蓝色的(图 5.5),它接收添加进来的新特征。

要激活一个 body,在项目树节点上点击右键,然后选择 Toggle active body。

激活 body

图 5.5: 激活 body

5.6 简单示例(建模)

让我们做一个简单的盒子,通过它看看这种建模方法怎么用。先别担心尺寸和准确性。在特征建模r的加持下,最好(也更快)的做法是先大致画出来。我们稍后就会告诉你怎么让你的作品既准确又容易修改。

  1. 新建一个文件,切换到 Part Design 工作台。创建一个实体,创建一个 sketch。 创建新实体按钮 会创建一个实体,同时激活它。你可以按你所愿在一个项目中创建多个实体。如果你还没有创建过实体,那么 创建 sketch 按钮 就先帮你创建一个,然后激活它。无论通过哪种方式,你都会进入任务对话框,来选择 sketch 所在平面。你可以在清单选,也可以在 3D 窗口中选(图 5.6)。
创建实体并在 XY 平面上绘制草图

图 5.6: 创建实体并在 XY 平面上绘制草图

  1. 用长方形工具 画封闭的四条边。大致围着原点画就行了,暂时不用担心精确性。
画长方形

图 5.7: 画长方形

  1. 关闭 sketch,用凸台工具 把 sketch 拉伸成一个实体,我们这里的凸台 50mm 厚。
把 2D 草图拉伸成一个凸台

图 5.8: 把 2D 草图拉伸成一个凸台

  1. 现在我们需要削除盒子中间的材料。选中实体的顶面,创建另一个 sketch。
选择实体的顶面,创建另一个 sketch

图 5.9: 选择实体的顶面,创建另一个 sketch

创建 sketch 之前选中某个面,sketch 就“帖”在那个面上。
  1. 重复上面的过程,画一个长方形,代表要挖的凹坑形状。这次也不要担心精确性,只要保证轮廓落在面的内部就行。做好了就关掉 sketch。
画一个长方形然后关闭 sketch

图 5.10: 画一个长方形然后关闭 sketch

  1. 用凹坑工具 挖除材料,到 40mm 深。
凹坑挖到 40mm

图 5.11: 凹坑挖到 40mm

你可以继续这个增加材料和削除材料的过程。对象一直都是参数化的,所以你可以再次打开我们创建外轮廓的 sketch ,修改长方形的大小。当你关掉 sketch,模型会自动更新,反映出你的改动效果。

5.6.1 简单示例(添加约束)

  1. 展开我们刚刚创建的 body,找到定义了外形的那个 sketch;
  2. 双击 sketch,重新打开它;
  3. 选择顶部的那条边,给它一个水平方向的距离约束
  4. 输入一个尺寸值,点击“OK”;
  5. 重复上面的过程,给侧边一个竖直方向的距离约束
  6. 为了把长方形的中心对正原点,还需要一个约束,不过要小心。选择左上角的点,接着选择右下角的点,最后选择坐标原点,然后施加一个对称约束 。注意选中这些点的顺序很重要。

现在 sketch 应该是完全约束的了。窗口中的几何元素会变成可爱的绿色,解算器也会反映出这个消息。

完全约束的草图

图 5.12: 完全约束的草图

关闭 sketch,注意实体会自动更新,反映出这些约束的效果。

注意水平距离约束 与长度约束 不同,除非后者对应的线段还带有水平约束。

5.7 使作品的一部分依赖另一部分

几何元素能怎样改变,约束给它规定了限制。另一种看待约束的视角把它看作是几何元素之间的关系。比如说规定一个线段 5in 长,也可以说它的两个端点必须间距 5in。

很多约束能直接施加,但是有时我们想做复杂的约束,或者需要依赖这个 sketch 之外的东西。

比如:

  • 我们需要零件的一个特征与另一个特征离开某个特定距离;
  • 我们想要螺栓头或其它圆形特征的中心在 sketch 上某个指定的点;
  • 我们从材料上切除多个零件,这材料的厚度可能要改,但是我们并不想重新设计;
  • 我们想让两个 body 以某种方式配合在一起。

Sketcher 和 Part Design 有几个工具,让我们可以建立这样复杂的关系。

5.7.1 构造线

构造线可以是直线、圆或者圆弧。把构造线加入到 sketch 中,是为了附加更多的引用关系,最终的零件并不直接依赖它们。

设想一个等边三角形。我们可以画出三角形的三条边,然后给它们加上长度相等的约束。Solver 会告诉我们还有几个自由度,涉及三角形的大小、位置和朝向。如果想固定这个等边三角形的中心,就遇到麻烦了:没有这个中心啊。还有,虽然可以设定三角形边的长度,但是要设定中心到顶点的距离就办不到了。

在图 5.13 里,用了正三边形 工具。它自动加入了一个圆作为构造线,三角形的三个顶点与圆相接。这种方法与上面讲到的方法其实是等效的,但是它给出了一个中心点,还有一个半径参数,可以用来控制等边三角形的大小和位置。

实际上,通过几何切换工具 ,Sketcher 工作台中的任何元素都可以在几何元素模式与构造线模式之间切换。

练习多用构造线吧!把它用得出神入化,你的 sketch 就能保持简单,后续添加的约束数量也会更少。

蓝色的圆是构造线

图 5.13: 蓝色的圆是构造线

5.7.2 链接到外部几何体的边

body 的边线能用于约束,但是需要先做一步操作。点击 Edge linked to External Geometry 按钮 ,指针移动到 body 的边上面悬停,如果指针变样子了,说明这个允许链接。选中的边会渲染为玫红色,在给 sketch 添加约束时可以引用。

玫红色的边链接到在基础机体上,它可以用于约束

图 5.14: 玫红色的边链接到在基础机体上,它可以用于约束

5.7.3 body 基准

body 基准(X、Y、Z 轴和 XY、XZ、YZ 平面)能被引用。平面用于镜像特征,轴用于旋转特征。XYZ 基准原点用来确立本地坐标系,也用来“固定”特征位置。

5.7.4 基准点、线、面

如果 body 的基准轴和平面不够用,你可以自己加入额外的点、线、面,明确把它们作为参考框架之用。这些基准在 body 的坐标系中自有其方位,可以用作 sketch 和特征的参考基础。

用这些基准工具,加入点、线、面,作为约束的参考

图 5.15: 用这些基准工具,加入点、线、面,作为约束的参考

5.7.5 Shape binder

Shape binder 能实现跨 body 引用,让某个 body 的几何元素为另一个 body 所用。做一次 shape binder 可以从原始形状上引用多个面和边。这些边和线就好像是本地的一样,可以被新的 body 或 sketch 引用。

5.7.6 简单示例(链接到外部的边)

也许我们想让上面例子中的盒子壁厚 12mm。在项目树里找到定义凹坑的 sketch ,打开它。

  1. 点击 Edge Linked to External Geometry 按钮
  2. 在盒子外轮廓的边上悬停指针,它改变了样子,选中这条边添加进来,这条边会变成玫红色;
  3. 给长方形的角点和这条的一个端点之间设置正交尺寸(图 5.16);
  4. 关闭 sketch,body 会自动更新,反映出改动的效果。
与外部几何体建立约束

图 5.16: 与外部几何体建立约束

5.8 特征建模的实践经验

特征建模需要实践。只要最终得到想要的模型,做法上没有什么对的和错的。然而,肯定有比较好的和相对不好的做法。糟糕的做法带来脆弱的模型,难以修改的模型,甚至可能导致 FreeCAD 崩溃。

下面是给你的一些实践经验。

5.8.1 关于 body 的实践经验

  • 保证 body 越简单越好。记住,它是单一连续实体。
  • 应该到最后才做圆角和倒角。
  • 如果特征具有对称性,考虑只建模它的一半,然后做镜像(参考第 8 章)。
  • 对同样的特征,用线性阵列或圆形阵列复制它,避免重复做同样的事情。
  • 用多个简单的小动作搭建出复杂的实体,而不要用复杂的动作来减少步骤。

5.8.2 关于 sketcher 的实践经验

  • 让 sketch 保持简单。太多的约束会带来糟糕的表现。你总是能把一个复杂的 sketch 拆分成一系列简单的特性。
  • 努力做到完全约束 sketch。
  • 总是给外周特征绘制封闭的轮廓。否则,你的 sketch 无法拉伸出实体的凸台。
  • 从计算角度讲,不是所有的约束都性能相等,有些约束占用更多的处理器资源。如果你可以在长度约束和水平/竖直距离约束之间做选择,后者更好。
  • 采用构造元素。添加几何元素总比添加约束容易。只作构造用的几何元素在添加时,就可以借助 Construction Mode 工具改变其存在状态。构造元素并不包含在最终的实体中。
  • 一般来讲,先添加几何约束,然后是尺寸约束,最后再定位 sketch。
  • 如果可以的话,用定位约束把把 sketch 的中心放在坐标原点。如果你的 sketch 不具有对称性,把它的一个角点固定在原点。或者选择具有圆整尺寸值的点来做定位。
  • 最好用这些约束:水平、竖直、点与点相接。尽量少用用这些约束:长度、边与边相切、点固定在线上、对称。
  • 可以在 sketch 里做圆角,但是这会增加复杂性。如果圆角并不少,那就不要这么做,稍后再把它们加在 body 上。