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

From FreeCAD Documentation
(Created page with "但是,所有对象,无论是否参数化,都有一些基本的参数。例如 Name,在文档中是唯一的,无法编辑;例如 Label,是用户定义名称,...")
(Updating to match new version of source page)
 
(29 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<languages/>

{{Docnav
|[[Manual:The_FreeCAD_document|FreeCAD文档]]
|[[Manual:Import_and_export_to_other_filetypes|导入和导出其他文件类型]]
|[[Manual:Introduction|手册起始页]]
|IconC=Crystal_Clear_manual.png
}}

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


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


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


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


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


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


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


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

# 重新计算并总是自动进行的。对于那些可能修改文档大部分内容并且需要一些时间的重型操作,不会自动执行。相反,对象(以及所有依赖于它的对象)将被标记为需要重新计算(树视图中它们上面显示一个小蓝色图标)。然后,您需要点击重新计算按钮(或选择{{MenuCommand|Edit->Refresh}})重新计算所有标记的对象。

# 依赖关系树必须始终以相同的方向流动,禁止循环依赖。(参见[[Glossary#Directed_Acyclic_Graph|有向无环图]]和 [[DAG view|DAG 视图]])您可以有一个依赖于B对象的A对象,以及一个依赖于 C 对象的 B 对象,但不能有一个依赖于 B 对象的 A 对象,同时 B 对象又依赖于 A 对象。这将构成一个循环依赖。然而,您可以有许多对象依赖于同一对象,例如对象 B 和对象 C 都依赖于对象 A。菜单{{MenuCommand|Tools -> Dependency graph}}显示了类似上的依赖关系图。它可以帮助您问题。

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

无论是参数化的还是非参数化的对象,都会具有一些基本参数例如名称(Name),在文档中是唯一的无法编辑;标签(Label),是用户定义名称,可以进行编辑;以及放置(placement),用于记录对象在三维空间中的位置。


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


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


* [[Property_editor|属性编辑器]]
但是,所有对象,无论是参数化,都有一些基本参数例如 Name,在文档中是唯一的无法编辑;例如 Label,是用户定义名称,可以编辑;例如 [[placement]],描述了对象在3D空间中的位置。
* [[Scripted_objects|如何编写参数化对象]]
* [[Placement|在FreeCAD中定位对象]]
* [[Std_DependencyGraph|启用依赖图]]


Finally, it is worth noting that custom parametric objects are [[Scripted objects|easy to program in python]].


{{Docnav
'''Read more'''
|[[Manual:The_FreeCAD_document|FreeCAD 文档]]
|[[Manual:Import_and_export_to_other_filetypes|导入和导出其他文件类型]]
|[[Manual:Introduction|开始手册]]
|IconC=Crystal_Clear_manual.png
}}


[[Category:Poweruser Documentation{{#translation:}}]]
* [[Property_editor|The properties editor]]
[[Category:Tutorials{{#translation:}}]]
* [[Scripted_objects|How to program parametric objects]]
* [[Placement|Positioning objects in FreeCAD]]
* [[Std_DependencyGraph|Enabling the dependency graph]]

Latest revision as of 19:52, 4 November 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)来重新计算所有标记的对象。
  1. 依赖关系树必须始终以相同的方向流动,禁止循环依赖。(参见有向无环图DAG 视图)您可以有一个依赖于B对象的A对象,以及一个依赖于 C 对象的 B 对象,但不能有一个依赖于 B 对象的 A 对象,同时 B 对象又依赖于 A 对象。这将构成一个循环依赖。然而,您可以有许多对象依赖于同一个对象,例如对象 B 和对象 C 都依赖于对象 A。菜单Tools -> Dependency graph显示了类似上述图像的依赖关系图。它可以帮助您检测问题。

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

无论是参数化的还是非参数化的对象,都会具有一些基本参数,例如名称(Name),在文档中是唯一的且无法编辑;标签(Label),是用户定义的名称,可以进行编辑;以及放置(placement),用于记录对象在三维空间中的位置。

最后,值得注意的是,自定义的参数化对象在 Python 中编程是非常容易的。

延伸阅读