Manual:Traditional modeling, the CSG way/zh-cn: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
 
(43 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages/>
<languages/>

{{Docnav
{{Docnav/zh-cn
|[[Manual:All workbenches at a glance|All workbenches at a glance]]
|[[Manual:All workbenches at a glance/zh-cn|所有工作台一览]]
|[[Manual:Traditional 2D drafting|Traditional 2D drafting]]
|[[Manual:Introduction|Manual start]]
|[[Manual:Traditional 2D drafting/zh-cn|传统2D绘图]]
|[[Manual:Introduction/zh-cn|手册起步]]
|IconC = Crystal Clear manual.png
|IconC=Crystal_Clear_manual.png
}}
}}


{{Manual:TOC}}
{{Manual:TOC}}


CSG 代表[https://en.wikipedia.org/wiki/Constructive_solid_geometry 构造实体几何],描述了使用实体 3D 几何的最基本方,即使用如并集、差集或交集之类的布尔运算,向实体对象添加和部分实体,达成创建复杂对象的目的
CSG 代表[https://en.wikipedia.org/wiki/Constructive_solid_geometry Constructive_solid_geometry_构造实体几何],描述了处理实体 3D 几何的最基本方,即通过使用布尔运算(如并集、差集或交集/从实体添加和一块来创建复杂对象。


本手册前面提,一方面,FreeCAD 可以处理多类型的几何体;另一方面,我们使用 FreeCAD 设计的 3D 对象,是真实世界的对象。因此,这里首选的、最有用的类型,毫无疑问,是实体,是 [https://en.wikipedia.org/wiki/Boundary_representation BREP] 几何,主要由[[Part_Module|Part 工作台]]处理。 [https://en.wikipedia.org/wiki/Polygon_mesh 多边形网格]仅由点和三角形构成,与此不同,BREP 对象的面由数学曲线定义,无论缩放比例如,都保证有绝对精度。
正如我们在本手册中早些时候看的那样,FreeCAD 可以处理多类型的几何图形但对于我们想要使用FreeCAD 设计的那种 3D 物体(即现实世界的物体),首选最有用的类型无疑是实体 [https://en.wikipedia.org/wiki/Boundary_representation BREP] 几何图形,主要由[[Part_Workbench|Part 工作台]]处理。[https://en.wikipedia.org/wiki/Polygon_mesh 多边形网格]不同,BREP 对象的面由数学曲线定义,这实现了在任尺度下的绝对精度。


[[Image:Mesh_vs_brep.jpg]]
[[Image:Mesh_vs_brep.jpg]]


两者之间的差异,类似于位图和矢量图像之间的差异。与位图图像一样,多边形网格的曲面一系列点。如果你贴近观察,或者将打印得非常大你会发现它不是曲面而是面。在矢量图像和 BREP 数据,曲线上任何点的位置存储在几何中,而是在运行中即时精确计算。
两者之间的区别类似于位图和矢量图像之间的区别。与位图图像一样,多边形网格的曲面一系列点。如果您仔细观察,或者将其放大打印,您将看到的不是曲面而是由许多平面组成的表面。在矢量图像和 BREP 数据,曲线上任何点的位置不存储在几何图形中,而是根据需要即时计算,具有准确的精度


在 FreeCAD 中,所有基于 BREP 的几何都由另一个开源软件 [https://en.wikipedia.org/wiki/Open_Cascade_Technology OpenCasCade] 处理。FreeCAD 与 OpenCasCade 内核之间的主要接口是 Part 工作台。大多数其他工作台在 Part 工作台的基础上构建其功能。
在 FreeCAD 中,所有基于 BREP 的几何都由另一个开源软件 [https://en.wikipedia.org/wiki/Open_Cascade_Technology OpenCasCade] 处理。FreeCAD 与 OpenCasCade 内核之间的主要接口是 Part 工作台。大多数其他工作台在 Part 工作台的基础上构建其功能。
在FreeCAD中,所有基于 BREP 的几何图形都由另一个开源软件[https://en.wikipedia.org/wiki/Open_Cascade_Technology OpenCasCade] 处理。FreeCAD 和 OpenCasCade 内核之间的主要接口是 Part 工作台。大多数其他工作台都在 Part 工作台的基础上构建其功能。


其他工作台通常提供更高级的工具来构建和操作几何,实际上都操纵的是 Part 对象,因此非常有必要了解这些对象内部工作机制并且能够使用 Part 工具。一些更智能的工具无法正确解决的问题,Part 工具因为更简单,经常可以帮你解决
虽然其他工作台通常提供更高级的工具来构建和操作几何图形但由于它们实际上都作零件对象,因此了解这些对象内部是如何工作,能够使用 Part 工具非常有用由于 Part 工具更简单,它们经常可以帮助您解决更智能的工具无法正确解决的问题。


为了说明 Part 工作台的工作原理,我们将仅使用 CSG 操作对模型建模(螺钉除外因为我们将使用一个插件,里面有尺寸,在下一章中介绍
为了说明 Part 工作台的工作原理,我们将仅使用 CSG 操作(除了螺钉,我们将使用其中一个插件,以及尺寸,我们将在下一章中看到来建模这张桌子:


[[Image:Exercise_table_complete.jpg]]
[[Image:Exercise_table_complete.jpg]]


让我们创建一个新文档(使用'''Ctrl+N'''或菜单文件 新建文档),以保存我们的桌子设计。文档最初在 Combo View 面板的 Model 选项卡中称为“无标题”,如果将文档保存使用'''Ctrl+Shift+S'''或菜单文件 另存为),将其保存为名为“ table.FCStd”的新 FreeCAD 文档,文档将被重命名为“table”,更清楚地标识了项目。
<div class="mw-translate-fuzzy">
让我们创建一个新文档( '''Ctrl + N''' 或菜单 '''File -> New Document''')来保存我们设计的桌子。文档最初在 Combo View 面板的 Model 选项卡中称为“unnamed”,但如果将文档( '''Ctrl+Shift+S''' 菜单 File -> Save As)保存为称作“table.fcstd” 的新 FreeCAD 文档,文档便重命名为“table”,更清楚地标识了项目。
</div>


现在我们切换到 Part 工作台,开始创建我们的第一个桌腿。
现在我们切换到 Part 工作台,开始创建我们的第一个桌腿。


* 点击[[Image:Part_Box.svg|16px]] '''立方体'''按钮
<div class="mw-translate-fuzzy">
* 选择立方体,然后设置以下属性(在“数据”选项卡中):
* 按下 [[Image:Part_Box.png|16px]] '''Cube''' 按钮
** 长度:80 毫米(8 厘米,或 0.8 米,FreeCAD 可以使用任何单位)
* 选择 Cube,然后设置以下属性(在 '''Data''' 选项卡中):
** 宽度:80 毫米
** 长度:80mm(8cm,或 0.8m,FreeCAD 可以使用任何单位)
** :80mm
** :75 厘米
* 通过按 '''Ctrl + C''' 然后 '''Ctrl + V''' 复制立方体(或菜单 编辑 复制和粘贴)(不会出现任何变化,因为第二个对象覆盖了第一个对象
** 高度:75cm
* 选择创建的名为 Cube001 的对象(左侧 Model 选项卡中单击 Cube001)
* 按 '''Ctrl+C''' 然后 '''Ctrl+V'''(或菜单 Edit -> Copy 然后 Paste)复制 Cube(没有任何变化,因为第二个对象第一个重合。
* 通过编辑其放置属性更改其位置:
* 选择创建的名为 Cube001 的对象(单击左侧 '''Model''' 选项卡中 Cube001)
** 位置 x:8 毫米
* 编辑其 Placement 属性更改其位置:
** 位置 x:8mm
** 位置 y:8 毫米
** 位置 y:8mm
</div>


你应该得到了两个高高的立方体,一个与另一个相距 8毫米。
你应该得到了两个高高的立方体,一个与另一个相距 8 毫米。


[[Image:Exercise_table_01.jpg]]
[[Image:Exercise_table_01.jpg]]


* 现在我们可以将一个几何体从另一个几何体中减去:选择'''保留''''''第一个''',然后按CTRL键,选择'''减去''''''另一个'''(顺序很重要),然后按下[[Image:Part_Cut.svg|16px]] '''剪切'''按钮
<div class="mw-translate-fuzzy">
现在我们可以从另一个中减去一个:选择'''第一个''',即'''保留'''的那个,然后CTRL 键,选择'''另一个''',即将被'''减去'''的那个(顺序很重要),然后按下 [[Image:Part_Cut.png|16px]] '''Cut''' 按钮
</div>


[[Image:Exercise_table_02.jpg]]
[[Image:Exercise_table_02.jpg]]
Line 56: Line 52:
注意创建的对象,称为“Cut”。“Cut”仍然包含我们用作运算子的两个立方体。实际上,文档中仍然存在两个“Cube",仅被隐藏并在树视图中的“Cut”对象的分组中,仍然可以通过展开“Cut”对象旁边的箭头来选择它们。如果需要,可以右键单击来将它们显示出来,或更改它们的属性。
注意创建的对象,称为“Cut”。“Cut”仍然包含我们用作运算子的两个立方体。实际上,文档中仍然存在两个“Cube",仅被隐藏并在树视图中的“Cut”对象的分组中,仍然可以通过展开“Cut”对象旁边的箭头来选择它们。如果需要,可以右键单击来将它们显示出来,或更改它们的属性。


您还可以通过“组合视图” [[Image:Part_Boolean.svg|16px]] [[Part Boolean|布尔运算]] 来使用剪切工具和其他布尔工具。这给出了更明确但更费力的方式来完成它。
You can use Cut -tool and other Boolean tools also through "Combo view" with [[Image:Part_Booleans.svg|16px]] [[Part Booleans|Booleans]]. It gives more explicit but longer way to do it.


* 我们复制基础立方体 6 次,创建另外三个脚。由于它仍然复制在剪贴板里,可以简单地粘贴(Ctrl + V)6次。
* 我们复制基础立方体 6 次,创建另外三个脚。由于它仍然复制在剪贴板里,可以简单地粘贴(Ctrl + V)6次。
Line 73: Line 69:
你可能一直在想,可以将完整的脚重复三次,而不必复制基础立方体六次。完全正确,在 FreeCAD 中,有很多方法可以实现相同的结果。这是一个宝贵的经验,值得记住。因为随着我们接触到更复杂的对象,某些操作可能无法提供正确的结果,经常需要尝试其他方法。
你可能一直在想,可以将完整的脚重复三次,而不必复制基础立方体六次。完全正确,在 FreeCAD 中,有很多方法可以实现相同的结果。这是一个宝贵的经验,值得记住。因为随着我们接触到更复杂的对象,某些操作可能无法提供正确的结果,经常需要尝试其他方法。


* 现在我们使用相同的 Cut 方法为螺钉制作孔。由于我们需要 8 个,每个需要两个,我们可以制作 8 个去的对象相反,让我们探索其他方法,制作 4 个管,这些管道将由两个脚重复使用。因此,让我们使用 [[Image:Part_Cylinder.svg|16px]] '''圆柱体''' 工具创建四个管可以再次只制作一个圆柱体,然后将其复制。给所有圆柱体一个半径为 6 毫米这次,我们需要旋转它们,这也是通过数据选项卡下的 '''放置''' 属性完成的 ''('''注意''' 在设置角度之前更改属性,否则旋转不会应用)'':
<div class="mw-translate-fuzzy">
** Cylinder:高度:130cm,角度:90°,轴:x:0,y:1,z:0,位置:x:-10mm,y:40mm,z:72cm
* 我们使用相同的 Cut 方法为螺钉孔。由于需要 8 个,每个脚两个,我们本来可以制作 8 个物体作然而让我们探索一下其他方法,制作4个管,这些管子被两个脚重复使用。所以让我们用 [[Image:Part_Cylinder.png|16px]] '''Cylinder''' 创建四个管这次同样的,你可以先造一个,然后复制。给所有圆柱体半径6mm。需要旋转它们,这也是通过 Data 选项卡下的'''Placement''' 属性完成的''( '''注意'''在设置 Angle ''之前'' 更改 Axis 属性,否则旋转不会生效)''
** Cylinder001:高度:130cm,角度:90°,轴:x:0,y:1,z:0,位置:x:-10mm,y:84cm,z:72cm
** Cylinder: height: 130cm, angle: 90°, axis: x:0,y:1,z:0, position: x:-10mm, y:40mm, z:72cm
** Cylinder002:高度:90cm,角度:90°,轴:x:-1,y:0,z:0,位置:x:40mm,y:-10mm,z:70cm
** Cylinder001: height: 130cm, angle: 90°, axis: x:0,y:1,z:0, position: x:-10mm, y:84cm, z:72cm
** Cylinder003:高度:90cm,角度:90°,轴:x:-1,y:0,z:0,位置:x:124cm,y:-10mm,z:70cm
** Cylinder002: height: 90cm, angle: 90°, axis: x:-1,y:0,z:0, position: x:40mm, y:-10mm, z:70cm
** Cylinder003: height: 90cm, angle: 90°, axis: x:-1,y:0,z:0, position: x:124cm, y:-10mm, z:70cm
</div>


[[Image:Exercise_table_04.jpg]]
[[Image:Exercise_table_04.jpg]]


注意到圆柱体比需要的长一。这是因为,所有基于实体的 3D 应用程序一样,FreeCAD 中的布尔运算有时对重合的情况过于敏感,可能会失败。通过做得长一些,可以让自己处于安全的
您会注意到圆柱体比需要的长一。这是因为,就像所有基于实体的3D应用程序一样,FreeCAD中的布尔运算有时对面面的情况过于敏感,可能会失败。通过这样做,我们可以保险


* 下面做差集。选择第一条腿,然后按住 CTRL 键,选择其中一根穿过它的管,按 '''Cut''' 按钮。孔做好了,管被隐藏。在树视图中展开穿好孔的脚,就会找到这根管
* 现在让我们进行减法。选择第一个桌脚,然后按住 CTRL 键,选择穿过它的一个,按 '''剪切''' 按钮。孔将被制作,管道将被隐藏。通过展开穿的脚,在树视图中找到
* 选择此隐藏管穿另一只脚,然后重复上面的操作,这次按住 Ctrl,在树视图中选择管,因为它在 3D 视图中隐藏了(也可以再次显示它,然后在 3D 视图中选择它)。对其它的脚重复这一操作,直到每个脚都有两个孔
* 选择另一个受到此隐藏管穿脚,然后重复操作,这次使用 Ctrl+ 在树视图中选择管,因为它在 3D 视图中隐藏了(也可以使其再次可见并在 3D 视图中选择它)。对其脚重复操作,直到每个脚都有两个孔


[[Image:Exercise_table_05.jpg]]
[[Image:Exercise_table_05.jpg]]


看,都是一长的操作。所有这些操作都保持着参数化,可以随时更改任操作的任何参数。在FreeCAD 中,常将这参数化的操作称为“建模历史”,因为它实际上包含你所执行操作的所有历史记录。
正如您所到的,每个桌已经变成了系列相当长的操作。所有这些操作都参数化可以随时更改任何早期操作的任何参数。在 FreeCAD 中,我们经常将这称为“建模历史”,因为它实际上记载执行的所有操作的历史记录。


FreeCAD 的另一个特点是 3D 对象的概念和 3D 操作的概念 倾向于个东西。剪切既是一操作,同时也是由此操作产生的 3D 对象。在 FreeCAD 中,这称为“特征”,而不是对象或操作。
FreeCAD 的另一个特点是,3D 对象的概念和 3D 操作的概念往往融为一。剪切既是一操作,也是由此操作产生的 3D 对象。在 FreeCAD 中,这称为“特征”(feature),而不是对象或操作。


* 下面做桌面,是一个简单的木块一个 '''Box''',长度:126cm,宽度:86cm,高度:8cm,位置:x:10mm,y:10mm,z:67cm。在 '''View''' 选项卡中,更改其 '''Shape Color''' 属性,改为漂亮的木质的颜色。
* 现在让我们制作桌面,它将是一个简单的木块,让我们使用另一个 '''Box''' 工具,长度:126cm,宽度:86cm,高度:8cm,位置:x:10mm,y:10mm,z:67cm。在 '''视图''' 选项卡中,您可以通过更改其 '''形状颜色''' 属性,使其具有漂亮的色木感:


[[Image:Exercise_table_06.jpg]]
[[Image:Exercise_table_06.jpg]]


请注意,虽然厚度为 8mm,但我们将放置在距离桌子 10mm 处,在它们之间出了 2mm 当然,这不是必的,不会发生在真的桌子上但在“组装”模型中这种操作是常见的,可以帮助那些看模型的人理解些是独立的部,需要后手动连接在一起。
请注意,尽管桌腿厚度为 8 毫米,但我们将放置在距离 10 毫米处,留 2 毫米的间隙。当然,这不是必的,在真的桌子上不会发生,但在这种“组装”模型中这是一种常见的做法可以帮助观察模型的人理解些是独立的部,需要后手动连接在一起。


现在我们的五件部品已经完成了,是时们更专有的,而不是“Cut015”这类的名称。右键单击树视图中的对象(或按 '''F2'''),可以将它们重命名,改为对自己后打开文件的其他人更有意义的内容。人们常说,于你建模它们的方式,简单地给你的对象赋予正确的名称要重要得多
现在我们的五个零完成了,是一个好取比“Cut015”恰当的名称。通过在树形视图中右键单击对象(或按下“F2”键),可以将它们重命名为对自己或后打开文件的其他人更有意义的名称。人们常说,为对象命名比建模的方式重要。


* 我们现在将安装一些螺丝。FreeCAD 社区的一位成员开发了一个非常有用的插件,“Fasteners”,您可以在[https://github.com/FreeCAD/FreeCAD-addons FreeCAD 插件]库中找到它能够使螺丝的插入变得非常容易。安装附加的工作台很容易,可以[[Std_AddonMgr|插件页面]]找到说明。
<div class="mw-translate-fuzzy">

* 下面安装几颗螺丝。有一个由 FreeCAD 社区成员开发非常有用的插件,[https://github.com/shaise/FreeCAD_FastenersWB 紧固件],你可以在[https://github.com/FreeCAD/FreeCAD-addons FreeCAD 插件]库中找到。使插入螺钉变得非常容易。其他工作台的安装很容易,在插件页面上说明。
* Fasteners 工作台安装完并重新启动 FreeCAD 后,它将显示在工作台列表中,可以切换进去要在一个孔中添加螺钉,首先选择这个孔的圆形边缘
* 安装完“Fasteners”工作台并重新启动 FreeCAD 后,它将出现在工作台列表中,我们可以切换到它将螺丝添加到我们的孔中是通过首先选择我们孔的圆形边缘来完成的:
</div>


[[Image:Exercise_table_07.jpg]]
[[Image:Exercise_table_07.jpg]]


然后我们可以按下紧固件工作台的一个螺按钮,例如 '''EN 1665 Hexagon bolt with flanges, heavy series'''。螺好,与孔对齐,自动选择直径以匹配这个孔的尺寸。有时螺钉是倒置,可以通过翻转其 '''invert''' 特性来正。也可以将其偏移设置为 2mm,遵循在桌面和桌腿之间使用的同样的规则
* 然后我们可以按下“Fasteners”工作台的一个螺按钮,例如'''EN 1665 Hexagon bolt with flanges, heavy series'''。螺丝将被置并我们的孔对齐,直径将自动选择以匹配我们孔的大小。有时螺丝会被倒置放置我们可以通过翻转其“invert”属性来进行更正。我们也可以将其偏移设置为2毫米,以遵循我们在桌面和之间使用的同规则


[[Image:Exercise_table_08.jpg]]
[[Image:Exercise_table_08.jpg]]
Line 117: Line 110:
'''Part对象的内部结构'''
'''Part对象的内部结构'''


上所述,FreeCAD 中不仅可以选择整个对象,还可以选择其中的一部分,例如螺孔的圆形边。现在是时候快速了解一下在 FreeCAD 内部如何构建 Part 对象了。生成 Part 几何体的每个工作台都基于以下内容:
我们之前看到的,FreeCAD 中不仅可以选择整个对象,还可以选择它们的一部分,例如我们的孔的圆形边。现在是一个快速了解 Part 对象如何在内部构建的好时机每个生成 Part 几何体的工作台都基于这些内容:


* '''顶点'''是构建所有其它对象用的点(通常是端点)。例如,一条线有两个顶点。
* '''顶点''': 这些是构建所有其他几何体的点(通常是端点)。例如,一条线有两个顶点。
* '''边'''是线性几何体,如线,圆椭圆或 [https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline NURBS] 曲线通常有两个顶点,但某些特殊情况只有一个(例如一个封闭)。
* '''边''': 边是线性几何体,如线段、线、椭圆或[https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline NURBS] 曲线。它们通常有两个顶点,但某些特殊情况只有一个(例如封闭圆)。
* '''线'''端点连接的一系列边可以包含任何类型的边,可以闭合,也可以不
* '''线''': 线圈由它们的端点连接的一系列边。它可以包含任何类型的边,并且可以是封的或非封
* '''面'''可以是平面,可以由一个闭合的线形成,作为面的边界,或者在面具有孔的情况下,由多个边来形成面。
* '''面''': 面可以是平面或曲并且可以由一个闭线形成,该线圈形成面的边界,或者由多个线圈形成,比如里有孔
* '''壳'''只是连接的一组面可以是开放的,也可以是封闭的。
* '''壳''': 壳只是由它们的连接的一组面。它可以是开放的封闭的。
* '''实体'''一个壳紧紧关或者说没有“泄漏”,就成实体。实体有内外的概念。许多工作台依赖于此,确保生成的对象可以在现实世界中建造出来
* '''实体''': 当壳紧密封闭,没有“泄漏”时,它就成实体。实体有内部和的概念。许多工作台依赖于此,确保它们生成的对象可以在现实世界中建。
* '''复合'''是其他形状的聚无论那些形状原始类型如何,最终形成了这个单一形状
* '''复合''': 复合体只是其他几何体的聚无论它们的类型如何,都聚合为一个单一的几何体


在 3D 视图中,可以选择单个'''vertices''', '''edges''' '''faces'''。选择其中一个即中了整个对象。
在 3D 视图中,可以选择单个'''顶点'''''''''或''''''。选择其中也会整个对象。


'''关于共享设计的说明'''
'''关于共享设计的说明'''


看到上面的桌子,你也许认为它的设计不好。桌面固定桌腿的方式可能太弱了。你也许想要添加加固件,或者只是有其他想法可以使其更好。这里,分享就有趣可以从下面的链接下载本练习中制作的文件,修改它,让它更好。然后,如果你共享改进的文件,其他人便可能会进一步改善它,或者在他们的项目中使用这个精心设计的桌子。的设计可能会给别人提供其他想法,也许有助于一点点地创造一个的世界……
看到上面的桌子,您可能会认为它的设计不好。桌面与脚的紧固可能太弱了。您可能想要添加加固件,或者有其他想法使其更好。这就是共享变得有趣的地方可以从下面的链接下载本练习中制作的文件,修改它使其更好。然后,如果您分这个改进的文件,其他人可能能够使变得更好,或者在他们的项目中使用精心设计的桌子。的设计可能会给其他人带来新的想法,也许这将有助于让世界变得更好......


'''下载'''
'''下载'''
Line 139: Line 132:
'''延伸阅读'''
'''延伸阅读'''


* [[Part_Module|Part 工作台]]
* [[Part_Workbench|Part 工作台]]
* [https://github.com/FreeCAD/FreeCAD-addons FreeCAD 插件库]
* [https://github.com/FreeCAD/FreeCAD-addons FreeCAD 插件库]
* [https://github.com/shaise/FreeCAD_FastenersWB Fasteners 工作台]
* [https://github.com/shaise/FreeCAD_FastenersWB Fasteners 工作台]


<div class="mw-translate-fuzzy">
[[Category:Tutorials]]
</div>


{{Docnav
[[Category:Tutorials]]
|[[Manual:All_workbenches_at_a_glance|所有工作台一览]]
|[[Manual:Traditional_2D_drafting|传统的 2D 绘图]]
|[[Manual:Introduction|手册开始]]
|IconC=Crystal_Clear_manual.png
}}

[[Category:Tutorials{{#translation:}}]]

Latest revision as of 20:10, 4 November 2023

Other languages:

CSG 代表Constructive_solid_geometry_构造实体几何,描述了处理实体 3D 几何的最基本方法,即通过使用布尔运算(如并集、差集或交集)向/从实体中添加和删除一块来创建复杂对象。

正如我们在本手册中早些时候看到的那样,FreeCAD 可以处理许多类型的几何图形,但对于我们想要使用FreeCAD 设计的那种 3D 物体(即现实世界的物体),首选和最有用的类型无疑是实体 BREP 几何图形,主要由Part 工作台处理。与多边形网格不同,BREP 对象的面由数学曲线定义,这实现了在任何尺度下的绝对精度。

这两者之间的区别类似于位图和矢量图像之间的区别。与位图图像一样,多边形网格的曲面被分成一系列点。如果您仔细观察,或者将其放大打印,您将看到的不是曲面而是由许多平面组成的表面。在矢量图像和 BREP 数据中,曲线上任何点的位置不是存储在几何图形中,而是根据需要即时计算,具有准确的精度。

在 FreeCAD 中,所有基于 BREP 的几何都由另一个开源软件 OpenCasCade 处理。FreeCAD 与 OpenCasCade 内核之间的主要接口是 Part 工作台。大多数其他工作台在 Part 工作台的基础上构建其功能。 在FreeCAD中,所有基于 BREP 的几何图形都由另一个开源软件OpenCasCade 处理。FreeCAD 和 OpenCasCade 内核之间的主要接口是 Part 工作台。大多数其他工作台都在 Part 工作台的基础上构建其功能。

虽然其他工作台通常提供更高级的工具来构建和操作几何图形,但由于它们实际上都是操作零件对象,因此了解这些对象在内部是如何工作的,能够使用 Part 工具非常有用。由于 Part 工具更简单,它们经常可以帮助您解决更智能的工具无法正确解决的问题。

为了说明 Part 工作台的工作原理,我们将仅使用 CSG 操作(除了螺钉,我们将使用其中一个插件,以及尺寸,我们将在下一章中看到)来建模这张桌子:

让我们创建一个新文档(使用Ctrl+N或菜单文件 → 新建文档),以保存我们的桌子设计。文档最初在 Combo View 面板的 Model 选项卡中称为“无标题”,但是如果您将文档保存(使用Ctrl+Shift+S或菜单文件 → 另存为),将其保存为名为“ table.FCStd”的新 FreeCAD 文档,该文档将被重命名为“table”,这更清楚地标识了项目。

现在我们切换到 Part 工作台,开始创建我们的第一个桌腿。

  • 点击 立方体按钮
  • 选择立方体,然后设置以下属性(在“数据”选项卡中):
    • 长度:80 毫米(或 8 厘米,或 0.8 米,FreeCAD 可以使用任何单位)
    • 宽度:80 毫米
    • 高度:75 厘米
  • 通过按 Ctrl + C 然后 Ctrl + V 复制立方体(或菜单 编辑 → 复制和粘贴)(不会出现任何变化,因为第二个对象覆盖了第一个对象)。
  • 选择新创建的名为 Cube001 的对象(在左侧的 Model 选项卡中单击 Cube001)
  • 通过编辑其放置属性更改其位置:
    • 位置 x:8 毫米
    • 位置 y:8 毫米

你应该得到了两个高高的立方体,一个与另一个相距 8 毫米。

  • 现在我们可以将一个几何体从另一个几何体中减去:选择要保留第一个体,然后按住CTRL键,选择要减去另一个体(顺序很重要),然后按下 剪切按钮:

注意创建的对象,称为“Cut”。“Cut”仍然包含我们用作运算子的两个立方体。实际上,文档中仍然存在两个“Cube",仅被隐藏并在树视图中的“Cut”对象的分组中,仍然可以通过展开“Cut”对象旁边的箭头来选择它们。如果需要,可以右键单击来将它们显示出来,或更改它们的属性。

您还可以通过“组合视图” 布尔运算 来使用剪切工具和其他布尔工具。这给出了更明确但更费力的方式来完成它。

  • 我们复制基础立方体 6 次,创建另外三个脚。由于它仍然复制在剪贴板里,可以简单地粘贴(Ctrl + V)6次。

然后改变它们的位置,数据如下:

    • Cube002:x:0,y:80cm
    • Cube003:x:8mm,y:79.2cm
    • Cube004:x:120cm,y:0
    • Cube005:x:119.2cm,y:8mm
    • Cube006:x:120cm,y:80cm
    • Cube007:x:119.2cm,y:79.2cm
  • 做另外三个切割,首先选择“host”立方体,然后选择要切除的立方体。我们有了四个 Cut 对象。

你可能一直在想,可以将完整的脚重复三次,而不必复制基础立方体六次。完全正确,在 FreeCAD 中,有很多方法可以实现相同的结果。这是一个宝贵的经验,值得记住。因为随着我们接触到更复杂的对象,某些操作可能无法提供正确的结果,经常需要尝试其他方法。

  • 现在我们将使用相同的 Cut 方法为螺钉制作孔。由于我们需要 8 个孔,每个桌脚需要两个,我们可以制作 8 个要减去的对象。相反,让我们探索其他方法,并制作 4 个管道,这些管道将由两个脚重复使用。因此,让我们使用 圆柱体 工具创建四个管道。您可以再次只制作一个圆柱体,然后将其复制。给所有圆柱体一个半径为 6 毫米。这次,我们需要旋转它们,这也是通过数据选项卡下的 放置 属性完成的 注意: 在设置角度之前更改轴属性,否则旋转将不会应用)
    • Cylinder:高度:130cm,角度:90°,轴:x:0,y:1,z:0,位置:x:-10mm,y:40mm,z:72cm
    • Cylinder001:高度:130cm,角度:90°,轴:x:0,y:1,z:0,位置:x:-10mm,y:84cm,z:72cm
    • Cylinder002:高度:90cm,角度:90°,轴:x:-1,y:0,z:0,位置:x:40mm,y:-10mm,z:70cm
    • Cylinder003:高度:90cm,角度:90°,轴:x:-1,y:0,z:0,位置:x:124cm,y:-10mm,z:70cm

您会注意到圆柱体比需要的稍长一点。这是因为,就像所有基于实体的3D应用程序一样,FreeCAD中的布尔运算有时对面对面的情况过于敏感,可能会失败。通过这样做,我们可以保险一些。

  • 现在让我们进行减法。选择第一个桌脚,然后按住 CTRL 键,选择穿过它的一个管道,按下 剪切 按钮。孔将被制作,管道将被隐藏。通过展开穿过的脚,在树视图中找到它。
  • 选择另一个受到此隐藏管道穿透的桌脚,然后重复此操作,这次使用 Ctrl+ 在树视图中选择管道,因为它在 3D 视图中被隐藏了(您也可以使其再次可见并在 3D 视图中选择它)。对其他脚重复此操作,直到每个脚都有两个孔:

正如您所看到的,每个桌脚已经变成了一系列相当长的操作。所有这些操作都是参数化的,您可以随时更改任何早期操作的任何参数。在 FreeCAD 中,我们经常将这个堆栈称为“建模历史”,因为它实际上记载了您执行的所有操作的历史记录。

FreeCAD 的另一个特点是,3D 对象的概念和 3D 操作的概念往往融为一体。剪切既是一种操作,也是由此操作产生的 3D 对象。在 FreeCAD 中,这被称为“特征”(feature),而不是对象或操作。

  • 现在让我们制作桌面,它将是一个简单的木块,让我们使用另一个 Box 工具,长度:126cm,宽度:86cm,高度:8cm,位置:x:10mm,y:10mm,z:67cm。在 视图 选项卡中,您可以通过更改其 形状颜色 属性,使其具有漂亮的棕色木材质感:

请注意,尽管桌腿厚度为 8 毫米,但我们将其放置在距离 10 毫米处,留下 2 毫米的间隙。当然,这并不是必要的,它在真实的桌子上不会发生,但在这种“组装”模型中,这是一种常见的做法,它可以帮助观察模型的人理解这些是独立的部件,需要稍后手动连接在一起。

现在我们的五个零件都完成了,是一个好时机给它们取比“Cut015”更恰当的名称。通过在树形视图中右键单击对象(或按下“F2”键),您可以将它们重命名为对您自己或稍后打开文件的其他人更有意义的名称。人们常说,为对象命名比建模的方式还重要。

  • 我们现在将安装一些螺丝。FreeCAD 社区的一位成员开发了一个非常有用的插件,名为“Fasteners”,您可以在FreeCAD 插件仓库中找到它。它能够使螺丝的插入变得非常容易。安装附加的工作台很容易,可以在插件页面上找到说明。
  • 安装完“Fasteners”工作台并重新启动 FreeCAD 后,它将出现在工作台列表中,我们可以切换到它。将螺丝添加到我们的孔中是通过首先选择我们孔的圆形边缘来完成的:

  • 然后,我们可以按下“Fasteners”工作台中的一个螺丝按钮,例如EN 1665 Hexagon bolt with flanges, heavy series。螺丝将被放置并与我们的孔对齐,直径将自动选择以匹配我们孔的大小。有时螺丝会被倒置放置,我们可以通过翻转其“invert”属性来进行更正。我们也可以将其偏移设置为2毫米,以遵循我们在桌面和脚之间使用的相同规则:

  • 对所有孔重复此操作,桌子就完成了。

Part对象的内部结构

正如我们之前看到的,FreeCAD 中不仅可以选择整个对象,还可以选择它们的一部分,例如我们的螺丝孔的圆形边界。现在是一个快速了解 Part 对象如何在内部构建的好时机。每个生成 Part 几何体的工作台都将基于这些内容:

  • 顶点: 这些是构建所有其他几何体的点(通常是端点)。例如,一条线有两个顶点。
  • : 边是线性几何体,例如线段、弧线、椭圆或NURBS 曲线。它们通常有两个顶点,但某些特殊情况只有一个(例如封闭圆)。
  • 线: 线圈是由它们的端点连接的一系列边。它可以包含任何类型的边,并且可以是封闭的或非封闭的。
  • : 面可以是平面或曲面,并且可以由一个封闭线圈形成,该线圈形成面的边界,或者由多个线圈形成,比如面里有孔。
  • : 壳只是由它们的边缘连接的一组面。它可以是开放的或封闭的。
  • 实体: 当壳紧密封闭,即没有“泄漏”时,它就成为实体。实体具有内部和外部的概念。许多工作台依赖于此,以确保它们生成的对象可以在现实世界中构建。
  • 复合体: 复合体只是其他几何体的聚合体,无论它们的类型如何,都聚合为一个单一的几何体。

在 3D 视图中,您可以选择单个的顶点。选择其中之一也会选择整个对象。

关于共享设计的说明

看到上面的桌子,您可能会认为它的设计不太好。桌面与脚的紧固可能太弱了。您可能想要添加加固件,或者您有其他想法使其更好。这就是共享变得有趣的地方。您可以从下面的链接下载本次练习中制作的文件,并修改它使其更好。然后,如果您分享这个改进的文件,其他人可能能够使它变得更好,或者在他们的项目中使用您精心设计的桌子。您的设计可能会给其他人带来新的想法,也许这将有助于让世界变得更好......

下载

延伸阅读