FreeCAD 还有一个有趣的工作台可以探索:电子表格工作台。这个工作台允许直接在FreeCAD 中创建电子表格,如用 Excel 或 LibreOffice 制作的电子表格。这些电子表格可以用从模型中提取的数据填充,也可以在值之间执行一系列计算。电子表格可以导出为 CSV 文件,可以导入到任何其他电子表格应用程序中。
然而,在 FreeCAD 中,电子表格有一个额外的功能:它们的单元格可以接收一个名称,然后可以被表达式引擎支持的任何字段引用。这使电子表格成为强大的控制结构,其中插入特定单元格的值可以驱动模型的尺寸。只需要记住一件事,因为 FreeCAD 禁止对象之间的循环依赖,所以同一个电子表格不能用于设置对象的属性,同时从同一对象检索属性值。这将使电子表格和对象相互依赖。
在下面的例子中,我们将创建几个对象,在电子表格中检索它们的一些属性,然后使用电子表格直接驱动其他对象的属性。
·首先切换到零件工作台,并创建几个对象:一个方框、一个圆柱和一个球体。
·编辑他们的位置属性(或使用“草稿移动”工具),将他们稍微分开,这样我们就能更好地观察我们所做事情的效果
现在,提取这些对象的一些信息。切换到电子表格工作台
· 按下目新建电子表格按钮
· 在树状图中双击新的电子表格对象。电子表格编辑器打开
FreeCAD的电子表格编辑器虽然不如我们上面列出的更完整的电子表格应用程序那么完整和强大,但它具有大多数常用的基本工具和功能,例如可以更改单元格的外观(大小、颜色、对齐方式)、合并和拆分单元格、使用公式(如=2+2)或引用其他单元格(如=B1)。
在FreeCAD中,这些常见行为中增加了一个非常有趣的行为:不仅可以引用其他单元格,还可以引用文档中的其他对象,并从它们的属性中检索值。例如,让我们从上面创建的3个对象中检索几个属性。属性是我们在属性编辑器窗口的“数据”选项卡下选择对象时看到的属性。
电子表格工作台页面将更详细地描述您可以在电子表格中使用的所有可能操作和功能。
写属性
电子表格工作台在FreeCAD中的另一个非常有趣的应用是,它可以做与我们迄今为止所做的事情相反的事情:除了读取3D对象的属性值外,我们还可以为这些对象赋值。但是,请记住FreeCAD的基本规则之一:禁止循环依赖。因此,我们不能使用同一个电子表格来读取和写入3D对象的值。这将使对象依赖于电子表格,而电子表格又依赖于对象。相反,我们将创建另一个电子表格。
您可能想知道为什么我们必须在上面的表达式中使用“Spreadsheet001”而不是“Input”。这是因为在FreeCAD文档中,每个对象都有一个内部名称,该名称在文档中是唯一的,还有一个标签,该标签出现在树状视图中。如果您在首选项设置中取消选中相应的选项,FreeCAD将允许您为多个对象提供相同的标签。这就是为什么所有必须绝对确定对象的操作将使用内部名称而不是标签,因为标签可以指定多个对象。了解对象内部名称的最简单方法是保持选择面板(菜单编辑->面板)打开,它将始终指示所选对象的内部名称。
通过在电子表格中使用单元格别名,我们能够使用电子表格在FreeCAD文档中存储“主值”。例如,这可用于具有特定尺寸的模型的电子表格中存储这些尺寸。然后,很容易生成具有不同尺寸的另一个模型,只需打开文件并在电子表格中更改几个尺寸即可。
最后,请注意草图中的约束也可以接收电子表格单元格的值
您还可以为草图中的尺寸约束(水平、垂直或距离)提供别名(然后您也可以在草图外部使用该值)
Download
· The file produced in this exercise: https://github.com/yorikvanhavre/FreeCAD- manual/blob/master/files/spreadsheet.FCStd
Read more
· The Spreadsheet Workbench: http://www.freecadweb.org/wiki/index.php? title=Spreadsheet_Module
· The Expressions engine: http://www.freecadweb.org/wiki/index.php?title=Expressions
FEM代表有限元法。它是一个庞大的数学学科,但在FreeCAD中,我们可以将其概括为一种计算3D对象内部传播的方法,通过将其切成小块,并分析每个小块对其邻居的影响。这在工程和电磁学领域有几种用途,但我们在这里将更深入地研究一种已经在FreeCAD中得到充分发展的用途,即模拟物体在受到力和重量作用时的变形。
在FreeCAD中使用FEM Workbench进行这种模拟。它涉及不同的步骤:准备几何形状,设置其材料,执行网格划分(分成更小的部分,就像我们在准备3D打印对象一章中所做的那样),最后计算模拟。
模拟本身是由另一款软件完成的,FreeCAD使用该软件来获得结果。由于有几种有趣的开源有限元模拟应用程序可用,因此FEM Workbench可以同时使用多个。然而,目前只有CalculiX得到了完全实现。还需要另一款名为NetGen的软件,它负责生成细分网格。FreeCAD文档中提供了安装这两个组件的详细说明。
准备几何图形
我们将从我们在BIM建模章节中建模的房子开始。但是,必须进行一些更改以使模型适合有限元计算。这基本上涉及丢弃我们不希望在计算中包含的对象,例如门和窗,并将所有剩余的对象连接成一个。
我们的模型现在很干净
·目前,FEM Workbench 只能计算单个对象的变形。
因此,我们需要将两个对象(墙和板)连接起来。切换到零件工作台,选择两个对象,然后按“融合”。现在我们获得了一个融合的对象
按下“确定”键并经过几秒钟的计算后,我们的有限元网格现在已准备就绪
我们现在可以定义应用于网格的材料。这很重要,因为根据材料强度,我们的对象对施加在其上的力会有不同的反应。选择分析对象,然后按“新材料”按钮。
任务面板将打开,以便我们选择材料。在“材料”下拉列表中,选择“混凝土通用材料”,然后按“确定”。
我们现在将在顶面上添加一个载荷,例如,它可以代表分布在屋顶上的巨大重量。为此,我们将使用压力约束。按下“压力约束”按钮。
· 单击屋顶的顶面,将压力设置为10MPa(压力以平方毫米为单位),然后单击“确定”按钮。现在我们施加了力
• 我们现在准备开始计算。在树状图中选择 CalculiX 对象,然后按“开始计算”按钮。
· 在打开的任务面板中,首先单击“Write .inp file”按钮为 CalculiX 创建输入文件,然后单击“Run CalculiX”按钮。片刻之后,计算将完成。
• 现在我们可以查看结果。关闭任务面板,可以看到一个新的结果对象已添加到我们的分析中。
·双击结果对象
·设置要在网格上看到的结果类型,例如“绝对位移”,勾选“位移”下的显示复选框,然后移动旁边的滑块。随着施加更多的力,您将能够看到变形增加
FEM工作台显示的结果当然目前还不足以对结构尺寸和材料进行现实决策。然而,它们已经可以提供关于力如何通过结构的宝贵信息,以及哪些薄弱区域将承受更多的应力。
Downloads
· The file created during this exercise: https://github.com/yorikvanhavre/FreeCAD- manual/blob/master/files/fem.FCStd
Read more
· The FEM Workbench: http://www.freecadweb.org/wiki/index.php?title=Fem_Workbench · Installing required FEM components: http://www.freecadweb.org/wiki/index.php?
title=FEM_Install
· CalculiX: http://www.calculix.de/
· NetGen: https://sourceforge.net/projects/netgen-mesher/
在计算机术语中,渲染是一个用来描述从3D模型中生成精美图像的词。当然,我们可以说在FreeCAD 3D视图中看到的东西已经很好了。但是任何看过最近一部好莱坞电影的人都知道,用计算机生成的图像几乎可以与照片区分开来。
当然,制作这种照片级真实感图像需要大量的工作,并且需要一个3D应用程序来提供特定的工具,例如对材质和灯光的精确控制。 FreeCAD是一个更面向技术建模的应用程序,它不提供任何高级渲染工具。
幸运的是,开源世界提供了许多应用程序来制作逼真的图像。最著名的可能是Blender,它在电影和游戏行业中非常流行和广泛使用。3D模型可以非常轻松和忠实地从FreeCAD导出并导入到Blender中,在那里您可以添加逼真的材质和照明,并制作最终图像甚至动画。
一些其他开源渲染工具是用于在另一个应用程序中使用的,它们会负责进行复杂的计算以生成逼真的图像。通过其Raytracing Workbench,FreeCAD可以使用其中的两个渲染工具:POV-Ray和Luxrender。 POV-Ray是一个非常古老的项目,被认为是一个经典的射线追踪引擎,而Luxrender则是一个更新得多的引擎,被归类为无偏的渲染器。根据想要渲染的图像类型,两者都有其优缺点。最好的方法是查看两个引擎网站上的示例。
在FreeCAD中使用光线追踪工作台之前,需要在您的系统上安装这两个渲染应用程序之一。这通常非常简单,这两个应用程序都提供了许多平台的安装程序,或者通常包含在大多数Linux发行版的软件库中。
安装 POV-Ray 或 Luxrender 后,我们需要在 FreeCAD 首选项中设置它们的主可执行文件的路径。这通常仅在 Windows 和 Mac 上需要。在 Linux 上,FreeCAD 会从标准位置选择它。通过在系统中搜索名为 povray(在 Windows 上为 povray.exe)和 luxrender(在 Windows 上为 luxrender.exe)的文件,可以找到 povray 或 luxrender 可执行文件的位置。
在这个偏好设置屏幕中,我们还可以设置我们想要生成的图像大小。
我们将使用我们在传统建模章节中建模的桌子,使用PovRay和Luxrender生成渲染图。
·首先加载我们之前建模的FCStd文件或本章底部的链接。
·按下“新建Povray项目”按钮旁边的小向下箭头,然后选择“光能传递法线”模板
警告消息可能会显示,提示当前三维视图不在
透视模式和渲染因此会有所不同。通过选择“否”,选择菜单“视图”->“透视视图”,并再次选择“光能传递法线”模板来纠正此问题。
·创建新项目后,您还可以尝试其他模板,只需编辑其模板属性即可。
· 现在已创建了一个新项目
通过为 povray 或 luxrender 创建新模板,您可以极大地扩展 FreeCAD 的渲染可能性。这在 Raytracing Workbench 文档中有解释。
Downloads
· The table model: https://github.com/yorikvanhavre/FreeCAD-
manual/blob/master/files/table.FCStd
· The file produced during this exercise: https://github.com/yorikvanhavre/FreeCAD- manual/blob/master/files/render.FCStd
Read more
· The Raytracing Workbench: http://www.freecadweb.org/wiki/index.php? title=Raytracing_Module
· Blender: http://www.blender.org
· POV-Ray: http://www.povray.org
· Luxrender: http://www.luxrender.net