freeCAD手册(7)

使用电子表格

FreeCAD 还有一个有趣的工作台可以探索:电子表格工作台。这个工作台允许直接在FreeCAD 中创建电子表格,如用 Excel 或 LibreOffice 制作的电子表格。这些电子表格可以用从模型中提取的数据填充,也可以在值之间执行一系列计算。电子表格可以导出为 CSV 文件,可以导入到任何其他电子表格应用程序中。

然而,在 FreeCAD 中,电子表格有一个额外的功能:它们的单元格可以接收一个名称,然后可以被表达式引擎支持的任何字段引用。这使电子表格成为强大的控制结构,其中插入特定单元格的值可以驱动模型的尺寸。只需要记住一件事,因为 FreeCAD 禁止对象之间的循环依赖,所以同一个电子表格不能用于设置对象的属性,同时从同一对象检索属性值。这将使电子表格和对象相互依赖。

在下面的例子中,我们将创建几个对象,在电子表格中检索它们的一些属性,然后使用电子表格直接驱动其他对象的属性。

读取属性

·首先切换到零件工作台,并创建几个对象:一个方框、一个圆柱和一个球体。

·编辑他们的位置属性(或使用“草稿移动”工具),将他们稍微分开,这样我们就能更好地观察我们所做事情的效果

freeCAD手册(7)_第1张图片

现在,提取这些对象的一些信息。切换到电子表格工作台

·  按下目新建电子表格按钮

·  在树状图中双击新的电子表格对象。电子表格编辑器打开

freeCAD手册(7)_第2张图片

FreeCAD的电子表格编辑器虽然不如我们上面列出的更完整的电子表格应用程序那么完整和强大,但它具有大多数常用的基本工具和功能,例如可以更改单元格的外观(大小、颜色、对齐方式)、合并和拆分单元格、使用公式(如=2+2)或引用其他单元格(如=B1)。

在FreeCAD中,这些常见行为中增加了一个非常有趣的行为:不仅可以引用其他单元格,还可以引用文档中的其他对象,并从它们的属性中检索值。例如,让我们从上面创建的3个对象中检索几个属性。属性是我们在属性编辑器窗口的“数据”选项卡下选择对象时看到的属性。

  1. 我们先在单元格 A1、A2 和 A3 中输入一些文本,以便我们记住
  2. 稍后是什么,例如立方体长度、圆柱体半径和球体半径。要输入文本,只需在电子表格上方的“内容”字段中写入,或双击单元格。
  3. 现在让我们检索立方体的实际长度。在单元格B1中,键入=Cube。长您会注意到,spread sheet有一个自动补全机制,它实际上与我们在上一章中使用的表达式编辑器相同。
  4. 对单元格B2(=圆柱体.半径)和B3(=球体.半径)执行相同的操作。

freeCAD手册(7)_第3张图片

  1. 虽然这些结果是用它们的单位表示的,但这些值可以被当作任何数字来处理,例如,试着在单元格C1中输入:=B1*2。
  2. 我们现在可以在属性编辑器中更改其中一个值,更改将立即反映在电子表格中。例如,让我们将立方体的长度更改为20mm

freeCAD手册(7)_第4张图片

电子表格工作台页面将更详细地描述您可以在电子表格中使用的所有可能操作和功能。

写属性

电子表格工作台在FreeCAD中的另一个非常有趣的应用是,它可以做与我们迄今为止所做的事情相反的事情:除了读取3D对象的属性值外,我们还可以为这些对象赋值。但是,请记住FreeCAD的基本规则之一:禁止循环依赖。因此,我们不能使用同一个电子表格来读取和写入3D对象的值。这将使对象依赖于电子表格,而电子表格又依赖于对象。相反,我们将创建另一个电子表格。

  1. 我们现在可以关闭电子表格选项卡(在3D视图下)。这不是强制性的,打开多个电子表格窗口也没有问题。
  2. 再次按下目新建电子表格按钮
  3. 将新电子表格的名称更改为更有意义的名称,例如“输入”(通过右键单击新电子表格对象并选择“重命名”来实现)。
  4. 双击“输入电子表格”打开电子表格编辑器。
  5. 在单元格A1中,我们输入描述性文本,例如:“立方体尺寸”
  6. 在单元格B1中,写入=5mm(使用=符号确保该值被解释为单位值,而不是文本)。
  7. 现在,为了能够在电子表格之外使用该值,我们需要为B1单元格提供一个名称或别名。右键单击单元格,单击“属性”,然后选择“别名”选项卡。给它一个名称,例如cubedims

freeCAD手册(7)_第5张图片

  1. 按“确定”,然后关闭电子表格选项卡
  2. 选择立方体对象
  3. 在属性编辑器中,单击长度字段右侧的小“表达式”图标。这将打开表达式编辑器,您可以在其中写入Spreadsheet001.cubedims。对高度和宽度重复此操作

freeCAD手册(7)_第6张图片

您可能想知道为什么我们必须在上面的表达式中使用“Spreadsheet001”而不是“Input”。这是因为在FreeCAD文档中,每个对象都有一个内部名称,该名称在文档中是唯一的,还有一个标签,该标签出现在树状视图中。如果您在首选项设置中取消选中相应的选项,FreeCAD将允许您为多个对象提供相同的标签。这就是为什么所有必须绝对确定对象的操作将使用内部名称而不是标签,因为标签可以指定多个对象。了解对象内部名称的最简单方法是保持选择面板(菜单编辑->面板)打开,它将始终指示所选对象的内部名称。

freeCAD手册(7)_第7张图片

通过在电子表格中使用单元格别名,我们能够使用电子表格在FreeCAD文档中存储“主值”。例如,这可用于具有特定尺寸的模型的电子表格中存储这些尺寸。然后,很容易生成具有不同尺寸的另一个模型,只需打开文件并在电子表格中更改几个尺寸即可。

最后,请注意草图中的约束也可以接收电子表格单元格的值

freeCAD手册(7)_第8张图片

您还可以为草图中的尺寸约束(水平、垂直或距离)提供别名(然后您也可以在草图外部使用该值)

freeCAD手册(7)_第9张图片

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手册(7)_第10张图片

准备 FreeCAD

模拟本身是由另一款软件完成的,FreeCAD使用该软件来获得结果。由于有几种有趣的开源有限元模拟应用程序可用,因此FEM Workbench可以同时使用多个。然而,目前只有CalculiX得到了完全实现。还需要另一款名为NetGen的软件,它负责生成细分网格。FreeCAD文档中提供了安装这两个组件的详细说明。

准备几何图形

我们将从我们在BIM建模章节中建模的房子开始。但是,必须进行一些更改以使模型适合有限元计算。这基本上涉及丢弃我们不希望在计算中包含的对象,例如门和窗,并将所有剩余的对象连接成一个。

  1. 加载我们之前建模的房屋模型
  2. 删除或隐藏页面对象、剖面和尺寸,这样我们只保留模型
  3. 隐藏窗户、门和地板块
  4. 同时隐藏屋顶的金属梁。由于它们与房子的其他部分截然不同,我们将通过不包括它来简化我们的计算。相反,我们将
  5. 请考虑将屋顶板直接放置在墙的顶部。
  6. 现在将屋顶板向下移动,使其位于墙的顶部:编辑矩形对象
  7. 我们将其用作屋顶板的基础,并更改其“放置”->“位置”->“X”值从3.18米到3.00米

我们的模型现在很干净

freeCAD手册(7)_第11张图片

·目前,FEM Workbench 只能计算单个对象的变形。

因此,我们需要将两个对象(墙和板)连接起来。切换到零件工作台,选择两个对象,然后按“融合”。现在我们获得了一个融合的对象

freeCAD手册(7)_第12张图片

 创建分析

  1. 我们现在准备开始进行有限元分析。让我们切换到FEM Workbench · 选择融合对象
  2. 按下“新建分析”按钮
  3. 将创建新的分析并打开设置面板。在这里,您可以定义用于生成有限元网格的网格参数。要编辑的主要设置是最大尺寸,它定义了网格中每个部分的最大尺寸(单位为毫米)。目前,我们可以保留默认值1000。

freeCAD手册(7)_第13张图片

按下“确定”键并经过几秒钟的计算后,我们的有限元网格现在已准备就绪

freeCAD手册(7)_第14张图片

我们现在可以定义应用于网格的材料。这很重要,因为根据材料强度,我们的对象对施加在其上的力会有不同的反应。选择分析对象,然后按“新材料”按钮。

任务面板将打开,以便我们选择材料。在“材料”下拉列表中,选择“混凝土通用材料”,然后按“确定”。

freeCAD手册(7)_第15张图片

  1. 现在我们已经准备好施加力。让我们从指定哪些面固定在地面上并因此不能移动开始。按下“固定约束”按钮。
  2. 点击我们建筑物的底面,然后按“确定”。现在底面被标记为不可移动

freeCAD手册(7)_第16张图片

我们现在将在顶面上添加一个载荷,例如,它可以代表分布在屋顶上的巨大重量。为此,我们将使用压力约束。按下“压力约束”按钮。

·  单击屋顶的顶面,将压力设置为10MPa(压力以平方毫米为单位),然后单击“确定”按钮。现在我们施加了力

freeCAD手册(7)_第17张图片

•  我们现在准备开始计算。在树状图中选择 CalculiX 对象,然后按“开始计算”按钮。

· 在打开的任务面板中,首先单击“Write .inp file”按钮为 CalculiX 创建输入文件,然后单击“Run CalculiX”按钮。片刻之后,计算将完成。

freeCAD手册(7)_第18张图片

•  现在我们可以查看结果。关闭任务面板,可以看到一个新的结果对象已添加到我们的分析中。

·双击结果对象

·设置要在网格上看到的结果类型,例如“绝对位移”,勾选“位移”下的显示复选框,然后移动旁边的滑块。随着施加更多的力,您将能够看到变形增加

freeCAD手册(7)_第19张图片

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 可执行文件的位置。

freeCAD手册(7)_第20张图片在这个偏好设置屏幕中,我们还可以设置我们想要生成的图像大小。

使用PovRay渲染

我们将使用我们在传统建模章节中建模的桌子,使用PovRay和Luxrender生成渲染图。

·首先加载我们之前建模的FCStd文件或本章底部的链接。

·按下“新建Povray项目”按钮旁边的小向下箭头,然后选择“光能传递法线”模板

警告消息可能会显示,提示当前三维视图不在

透视模式和渲染因此会有所不同。通过选择“否”,选择菜单“视图”->“透视视图”,并再次选择“光能传递法线”模板来纠正此问题。

·创建新项目后,您还可以尝试其他模板,只需编辑其模板属性即可。

·  现在已创建了一个新项目

freeCAD手册(7)_第21张图片

  1. 新项目采用了我们按下按钮时三维视图的角度。我们可以通过按下重置相机按钮随时更改视图,并更新存储在 povray 项目中的视图位置。
  2. 光线追踪工作台的工作方式与绘图工作台相同:一旦创建了项目文件夹,我们必须将对象的视图添加到其中。我们现在可以通过选择组成表格的所有对象,然后按“插入部分”按钮来实现。

freeCAD手册(7)_第22张图片

  1. 这些视图已经从其原始部分中获取了颜色和透明度值,但如果你愿意,可以在每个单独视图的属性中更改这些值。
  2. 我们现在准备制作我们的第一个 povray 渲染。按下“渲染”按钮。
  3. 系统会要求您为将由  保存的 .png 图像提供文件名和路径povray。
  4. 然后,povray将打开并计算图像。
  5. 完成此操作后,只需单击图像即可关闭 povray 窗口。生成的图像将加载到FreeCAD 中

freeCAD手册(7)_第23张图片

使用 LuxRender 进行渲染

  1. 使用Luxrender进行渲染的方式几乎相同。我们可以让文件保持打开状态,并在同一文件中创建一个新的Luxrender项目,或者重新加载它以从头开始。
  2. 按下“新建Luxrender项目”按钮旁边的小向下箭头,选择LuxOutdoor模板。
  3. 选择表格的所有组件。如果您的计算机中仍然有 povray 项目,
  4. 在选择文件时,请务必选择lux项目本身,这样在接下来的步骤中创建的视图就不会误入错误的项目。
  5. 按下“插入零件”按钮。
  6. 选择luxrender项目,然后按“渲染”按钮。
  7. Luxrender的工作方式与Povray不同。当你开始渲染时,luxrender应用程序将打开并立即开始渲染

freeCAD手册(7)_第24张图片

  1. 如果你让那个窗口一直开着,Luxrender会继续计算和渲染,逐步优化图像。由你决定什么时候图像达到了你需要的足够质量,并停止渲染。
  2. 在左侧面板上,还有许多控件可供使用。所有这些控件都会动态地改变正在渲染的图像的外观,而不会停止渲染。
  3. 当你觉得质量足够好时,只需按“渲染”->“停止”,然后按“文件”->“导出到图像”->“调色低动态范围”,将渲染图像保存为png文件。

通过为 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

你可能感兴趣的:(freeCAD,手册,python)