Manual:Parametric objects/zh-cn: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
Line 18: Line 18:
在下面的示例中,一个实体的立方体对象(Pad)基于一个矩形的二维形状(Sketch),并具有一个挤出距离。通过这两个属性,它通过将基础形状按照给定的距离进行挤出,产生一个实体形状。然后,您可以将此对象用作进一步操作的基础,例如在其一个面上绘制一个新的二维形状(Sketch001),然后进行减去操作(Pocket),直到得到最终的对象。
在下面的示例中,一个实体的立方体对象(Pad)基于一个矩形的二维形状(Sketch),并具有一个挤出距离。通过这两个属性,它通过将基础形状按照给定的距离进行挤出,产生一个实体形状。然后,您可以将此对象用作进一步操作的基础,例如在其一个面上绘制一个新的二维形状(Sketch001),然后进行减去操作(Pocket),直到得到最终的对象。


所有的中间操作(2D形状、挤出、减去等)仍然存在,并且您随时可以更改它们的任何参数。整个链条将在需要时重新构建(重新计算)。
所有的中间操作(2D 形状、挤出、减去等)仍然存在,并且您随时可以更改它们的任何参数。整个链条将在需要时重新构建(重新计算)。


[[Image:Parametric_objects.jpg]]
[[Image:Parametric_objects.jpg]]

Revision as of 06:19, 30 May 2023

Other languages:

FreeCAD 被设计用于参数化建模。这意味着你创建的几何形状不是自由地塑造的,而是通过规则和参数生成的。例如,一个圆柱体可以由半径和高度构建而成。通过这两个参数,程序可以获得足够的信息来构建圆柱体。

在 FreeCAD 中,参数化对象实际上是一个小程序的组成部分,当其中一个参数发生变化时,它们会运行。对象可以具有各种不同类型的参数:数字(整数,如 1、2、3 或浮点数,如 3.1416)、现实世界的尺寸(1 mm、2.4 m、4.5 ft)、(x、y、z)坐标、文本字符串("hello!")甚至是另一个对象。

这种最后一种类型的参数允许快速构建复杂的操作链,每个新对象都基于前一个对象,并为其添加新的功能。

在下面的示例中,一个实体的立方体对象(Pad)基于一个矩形的二维形状(Sketch),并具有一个挤出距离。通过这两个属性,它通过将基础形状按照给定的距离进行挤出,产生一个实体形状。然后,您可以将此对象用作进一步操作的基础,例如在其一个面上绘制一个新的二维形状(Sketch001),然后进行减去操作(Pocket),直到得到最终的对象。

所有的中间操作(2D 形状、挤出、减去等)仍然存在,并且您随时可以更改它们的任何参数。整个链条将在需要时重新构建(重新计算)。

需要知道两件重要的事情:

  1. 重新计算并不总是自动的。繁重的操作可能会修改文档的大部分内容,因此需要一些时间,不会自动执行。这里的做法是,对象(以及依赖于它的所有对象)将被打上标记,准备重新计算(树视图中的对象会出现一个小的蓝色图标)。然后,您必须按下重新计算按钮(或 Edit -> Refresh )以重新计算所有标记的对象。
  2. 依赖关系树必须始终单方向流动,禁止循环。(参见 DAG 。)A 对象依赖于 B 对象,B 依赖于 C 对象。但是不能是 A 依赖于 B,B 又依赖于 A。这会是循环依赖。但是,您可以拥有许多依赖于同一对象的对象,例如,对象 B 和 C 都依赖于 A。菜单 Tools -> Dependency graph 显示了类似上图中的依赖关系图。检查问题时它可能会很有用。

并非所有 FreeCAD 中的对象都是参数化的。通常,从其他文件导入的几何体不包含任何参数,它是简单的非参数化的对象。但是,这些通常可以用作新创建的参数化对象的基础或起点,当然,这取决于参数化对象的需要和导入的几何体的质量。

但是,所有对象,无论是否参数化,都有一些基本的参数。例如 Name,在文档中是唯一的,无法编辑;例如 Label,是用户定义名称,可以编辑;例如 placement,描述了对象在3D空间中的位置。

最后,有一点值得提醒:很容易在 python 中编程自定义参数化对象。

延伸阅读