131 lines
15 KiB
HTML
131 lines
15 KiB
HTML
<html><head><title>Part Module/cn</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link type='text/css' href='wiki.css' rel='stylesheet'></head><body><h1>Part Module/cn</h1></div>
|
||
|
||
<div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><div class="mw-parser-output"><p>FreeCAD 中的 CAD 功能以 <a rel="nofollow" class="external text" href="http://en.wikipedia.org/wiki/Open_CASCADE">OpenCasCade</a> 为核心。零件模块允许 FreeCAD 使用 OpenCasCade 的对象和函数。OpenCasCade 是一个专业级的 CAD 核心,它具有先进的三维几何操作和对象。零件对象不同于 <a href="Mesh_Module.html" class="mw-redirect" title="Mesh Module">Mesh Module</a> 对象,它比网格对象复杂的多,因此允许更加先进的操作,如相干布尔运算操作、修改历史和有关参数的操作。
|
||
</p><p><a href="https://www.freecadweb.org/wiki/index.php?title=File:Part_example.jpg" class="image"><img alt="Part example.jpg" src="Part_example.jpg" width="634" height="406" /></a>
|
||
</p><p>FreeCAD中零件形状的例子
|
||
</p>
|
||
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
|
||
<ul>
|
||
<li class="toclevel-1 tocsection-1"><a href="#.E5.B7.A5.E5.85.B7"><span class="tocnumber">1</span> <span class="toctext">工具</span></a></li>
|
||
<li class="toclevel-1"><a href="#.E5.9F.BA.E6.9C.AC.E5.AF.B9.E8.B1.A1"><span class="tocnumber">2</span> <span class="toctext">基本对象</span></a></li>
|
||
<li class="toclevel-1"><a href="#.E4.BF.AE.E6.94.B9.E5.AF.B9.E8.B1.A1"><span class="tocnumber">3</span> <span class="toctext">修改对象</span></a></li>
|
||
<li class="toclevel-1 tocsection-2"><a href="#.E5.B8.83.E5.B0.94.E8.BF.90.E7.AE.97"><span class="tocnumber">4</span> <span class="toctext">布尔运算</span></a></li>
|
||
<li class="toclevel-1 tocsection-3"><a href="#.E6.A6.82.E5.BF.B5.E8.A7.A3.E9.87.8A"><span class="tocnumber">5</span> <span class="toctext">概念解释</span></a></li>
|
||
<li class="toclevel-1 tocsection-4"><a href="#.E8.84.9A.E6.9C.AC"><span class="tocnumber">6</span> <span class="toctext">脚本</span></a></li>
|
||
<li class="toclevel-1 tocsection-5"><a href="#.E4.BE.8B.E5.AD.90"><span class="tocnumber">7</span> <span class="toctext">例子</span></a></li>
|
||
</ul>
|
||
</div>
|
||
|
||
<h3><span class="mw-headline" id=".E5.B7.A5.E5.85.B7">工具</span></h3>
|
||
<p>当你加载零件模块之后,将会出现“零件”菜单,零件模块工具就被放置在这个菜单中。
|
||
</p>
|
||
<h3><span class="mw-headline" id=".E5.9F.BA.E6.9C.AC.E5.AF.B9.E8.B1.A1">基本对象</span></h3>
|
||
<p>下面是用于创建基本对象的工具。
|
||
</p>
|
||
<ul><li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Part_Box.png" class="image"><img alt="Part Box.png" src="32px-Part_Box.png" width="32" height="32" srcset="/wiki/images/thumb/a/a5/Part_Box.png/48px-Part_Box.png 1.5x, /wiki/images/a/a5/Part_Box.png 2x" /></a> <a href="Part_Box.html" title="Part Box">箱体</a>:通过设定尺寸绘制一个箱体</li>
|
||
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Part_Cone.png" class="image"><img alt="Part Cone.png" src="32px-Part_Cone.png" width="32" height="32" srcset="/wiki/images/thumb/1/13/Part_Cone.png/48px-Part_Cone.png 1.5x, /wiki/images/1/13/Part_Cone.png 2x" /></a> <a href="Part_Cone.html" title="Part Cone">圆锥体</a>:通过设定尺寸绘制一个圆锥体</li>
|
||
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Part_Cylinder.png" class="image"><img alt="Part Cylinder.png" src="32px-Part_Cylinder.png" width="32" height="32" srcset="/wiki/images/thumb/d/d4/Part_Cylinder.png/48px-Part_Cylinder.png 1.5x, /wiki/images/d/d4/Part_Cylinder.png 2x" /></a> <a href="Part_Cylinder.html" title="Part Cylinder">圆柱体</a>:设定尺寸绘制一个圆柱体</li>
|
||
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Part_Sphere.png" class="image"><img alt="Part Sphere.png" src="32px-Part_Sphere.png" width="32" height="32" srcset="/wiki/images/thumb/4/4b/Part_Sphere.png/48px-Part_Sphere.png 1.5x, /wiki/images/4/4b/Part_Sphere.png 2x" /></a> <a href="Part_Sphere.html" title="Part Sphere">球体</a>:设定尺寸绘制一个球体</li>
|
||
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Part_Torus.png" class="image"><img alt="Part Torus.png" src="32px-Part_Torus.png" width="32" height="32" srcset="/wiki/images/thumb/8/8b/Part_Torus.png/48px-Part_Torus.png 1.5x, /wiki/images/8/8b/Part_Torus.png 2x" /></a> <a href="Part_Torus.html" title="Part Torus">圆环体</a>:设定尺寸绘制一个圆环体</li></ul>
|
||
<h3><span class="mw-headline" id=".E4.BF.AE.E6.94.B9.E5.AF.B9.E8.B1.A1">修改对象</span></h3>
|
||
<p>下面是一些可修改既有对象的工具。它们需要你选中欲处理的对象。
|
||
</p>
|
||
<ul><li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Part_Booleans.png" class="image"><img alt="Part Booleans.png" src="32px-Part_Booleans.png" width="32" height="32" srcset="/wiki/images/thumb/8/89/Part_Booleans.png/48px-Part_Booleans.png 1.5x, /wiki/images/8/89/Part_Booleans.png 2x" /></a> <a href="Part_Booleans.html" title="Part Booleans">布尔运算</a>:对选中的对象进行布尔运算(并、交、差)</li>
|
||
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Part_Union.png" class="image"><img alt="Part Union.png" src="32px-Part_Union.png" width="32" height="32" srcset="/wiki/images/thumb/4/45/Part_Union.png/48px-Part_Union.png 1.5x, /wiki/images/4/45/Part_Union.png 2x" /></a> <a href="Part_Union.html" title="Part Union">融合</a>:对两个对象求并运算,合二为一</li>
|
||
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Part_Common.png" class="image"><img alt="Part Common.png" src="32px-Part_Common.png" width="32" height="32" srcset="/wiki/images/thumb/9/9a/Part_Common.png/48px-Part_Common.png 1.5x, /wiki/images/9/9a/Part_Common.png 2x" /></a> <a href="Part_Common.html" title="Part Common">求交</a>:提取两个对象的相交区域</li>
|
||
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Part_Cut.png" class="image"><img alt="Part Cut.png" src="32px-Part_Cut.png" width="32" height="32" srcset="/wiki/images/thumb/4/4a/Part_Cut.png/48px-Part_Cut.png 1.5x, /wiki/images/4/4a/Part_Cut.png 2x" /></a> <a href="Part_Cut.html" title="Part Cut">剪切</a>:从一个对象中去除另外一个对象与之相交的区域</li>
|
||
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Part_Extrude.png" class="image"><img alt="Part Extrude.png" src="32px-Part_Extrude.png" width="32" height="32" srcset="/wiki/images/thumb/d/df/Part_Extrude.png/48px-Part_Extrude.png 1.5x, /wiki/images/d/df/Part_Extrude.png 2x" /></a> <a href="Part_Extrude.html" title="Part Extrude">拉伸</a>:将一个对象的平面区域拉伸为实体</li>
|
||
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Part_Fillet.png" class="image"><img alt="Part Fillet.png" src="32px-Part_Fillet.png" width="32" height="32" srcset="/wiki/images/thumb/4/4a/Part_Fillet.png/48px-Part_Fillet.png 1.5x, /wiki/images/4/4a/Part_Fillet.png 2x" /></a> <a href="Part_Fillet.html" title="Part Fillet">倒圆角</a>:在对象的边界倒圆角</li>
|
||
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Part_Revolve.png" class="image"><img alt="Part Revolve.png" src="32px-Part_Revolve.png" width="32" height="32" srcset="/wiki/images/thumb/1/12/Part_Revolve.png/48px-Part_Revolve.png 1.5x, /wiki/images/1/12/Part_Revolve.png 2x" /></a> <a href="Part_Revolve.html" title="Part Revolve">旋转体</a>:将一个对象围绕一个轴向旋转成一个新的对象</li>
|
||
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Part_Section.png" class="image"><img alt="Part Section.png" src="32px-Part_Section.png" width="32" height="32" srcset="/wiki/images/thumb/a/ab/Part_Section.png/48px-Part_Section.png 1.5x, /wiki/images/a/ab/Part_Section.png 2x" /></a> <a href="Part_Section.html" title="Part Section">截面</a>:用一个截平面与一个对象求交,生成截面</li>
|
||
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Part_Chamfer.png" class="image"><img alt="Part Chamfer.png" src="32px-Part_Chamfer.png" width="32" height="32" srcset="/wiki/images/thumb/8/87/Part_Chamfer.png/48px-Part_Chamfer.png 1.5x, /wiki/images/8/87/Part_Chamfer.png 2x" /></a> <a href="Part_Chamfer.html" title="Part Chamfer">倒斜角</a>:在对象的边界倒斜角</li>
|
||
<li> <a href="https://www.freecadweb.org/wiki/index.php?title=File:Part_Mirror.png" class="image"><img alt="Part Mirror.png" src="32px-Part_Mirror.png" width="32" height="32" srcset="/wiki/images/thumb/9/93/Part_Mirror.png/48px-Part_Mirror.png 1.5x, /wiki/images/9/93/Part_Mirror.png 2x" /></a> <a href="Part_Mirror.html" title="Part Mirror">镜像</a>:对被选中的对象沿给定的轴向进行镜像复制</li></ul>
|
||
<p><br />
|
||
</p>
|
||
<h3><span class="mw-headline" id=".E5.B8.83.E5.B0.94.E8.BF.90.E7.AE.97">布尔运算</span></h3>
|
||
<div class="floatleft"><a href="https://www.freecadweb.org/wiki/index.php?title=File:Part_BooleanOperations.png" class="image" title="An example of union (Fuse), intersection (Common) and difference (Cut)"><img alt="An example of union (Fuse), intersection (Common) and difference (Cut)" src="500px-Part_BooleanOperations.png" width="500" height="384" srcset="/wiki/images/thumb/d/df/Part_BooleanOperations.png/750px-Part_BooleanOperations.png 1.5x, /wiki/images/thumb/d/df/Part_BooleanOperations.png/1000px-Part_BooleanOperations.png 2x" /></a></div>
|
||
<div style="clear:both"></div>
|
||
<p><br />
|
||
联合(融合)、求交(公共)和拆分(剪切)的例子
|
||
</p>
|
||
<h3><span class="mw-headline" id=".E6.A6.82.E5.BF.B5.E8.A7.A3.E9.87.8A">概念解释</span></h3>
|
||
<p>在 OpenCasCade 术语中,我们将几何基元与(拓扑)形状区分开来。一个几何基元可以是一个点、一条直线、一个圆、一个平面等,或者像B样条曲线或曲面等一些更复杂的类型。一个形状可以是一个顶点、一条边、一条线、一个平面、一个实体或一个由其他形状组成的几何体。几何基元不可以直接显示在三维场景中,而是要被用作建筑几何学的形状。比如,一条边可以由一条线和一个圆的一部分来构成。
|
||
</p><p>我们可以认为,几何基元是“无形的”构造单元,而形状才是建立在几何基元之上的真正的空间几何。
|
||
</p><p>想得到一个关于它们的完整列表,可以参见 <a rel="nofollow" class="external text" href="http://www.opencascade.org/org/doc/">OCC documentation</a> 并查找 Geom_Geometry 和 TopoDS_Shape。你也可以阅读更多关于几何对象与形状之间差异的资料。注意,不幸的是 OCC 文档不可在线使用(你必须下载存档),而且大多都是针对程序员而不是终端用户。但是值得庆幸的是你可以在这里找到足够的信息来开始你的使用之旅。
|
||
</p><p>实际上,几何类型主要分为两类:曲线和面。利用曲线(线、圆、……)你可以直接创建一条边,利用面(平面、圆柱面、……)你可以直接创建一个表面。例如,几何基元线是无限的,也就是说,当它的形状必须是由初始点和终点来限制的时候,它就被定义为一个基向量和一个方向向量。一个立方体——一个实体可以由六个有限的面来创建。
|
||
</p><p>由一条边和一个面也可以追溯到它的几何基元副本。
|
||
</p><p>因此,由形状可以构建非常复杂的零件,或者反过来从一个复杂的形状中抽象出所有的子形状。
|
||
</p>
|
||
<h3><span class="mw-headline" id=".E8.84.9A.E6.9C.AC">脚本</span></h3>
|
||
<p>零件模块使用的主要数据结构是 OpenCascade 中的 <a rel="nofollow" class="external text" href="http://en.wikipedia.org/wiki/Boundary_representation">BRep</a> 数据结构。
|
||
</p><p>关于零件模块的所有内容和对象类型现在都可以使用 python 脚本。其中包括几何基元,如线和圆(或弧),以及所有的拓扑形状,像顶点、边、线、面、实体和复合体。对其中的每一个对象,存在一些通用的创建方法,另外对于其中某些特殊的对象,尤其是拓扑形状,还存在像布尔运算/联合/拆分/交叉等先进的操作。若想了解更多有关零件模块的内容,可以参见 <a href="FreeCAD_Scripting_Basics.html" title="FreeCAD Scripting Basics">FreeCAD Scripting Basics</a> 页面。
|
||
</p>
|
||
<h3><span class="mw-headline" id=".E4.BE.8B.E5.AD.90">例子</span></h3>
|
||
<p>创建一个线元素,切换到 Python 控制台并键入:
|
||
</p>
|
||
<pre>import Part,PartGui
|
||
doc=App.newDocument()
|
||
l=Part.Line()
|
||
l.StartPoint=(0.0,0.0,0.0)
|
||
l.EndPoint=(1.0,1.0,1.0)
|
||
doc.addObject("Part::Feature","Line").Shape=l.toShape()
|
||
doc.recompute()
|
||
</pre>
|
||
<p>让我们一步步的来分析以上的 python 实例:
|
||
</p>
|
||
<pre>import Part,PartGui
|
||
doc=App.newDocument()
|
||
</pre>
|
||
<p>加载零件模块并创建一个新的文档
|
||
</p>
|
||
<pre>l=Part.Line()
|
||
l.StartPoint=(0.0,0.0,0.0)
|
||
l.EndPoint=(1.0,1.0,1.0)
|
||
</pre>
|
||
<p>线实际上是一条线段,因此既有初始点又有终点。
|
||
</p>
|
||
<pre>doc.addObject("Part::Feature","Line").Shape=l.toShape()
|
||
</pre>
|
||
<p>这样向文档中添加了一个零件对象类型,并将线段的形状表征指定为被添加对象的‘形状’特征。我们是用一个几何基元(the Part.line)由它来创建一个拓扑形状(the toShape() method),理解这一点非常重要。只有形状能够被添加到文档当中。在 FreeCAD 中,几何基元被当作形状的“建筑结构”来使用。
|
||
</p>
|
||
<pre>doc.recompute()
|
||
</pre>
|
||
<p>更新文档。这也准备了新零件对象的可视化表征。
|
||
</p><p>注意,可以通过在构建器中指定初始点和终止点来创建一条线,例如,Part.Line(point1,point2)或者我们可以先创建一条默认的线,之后再设置它的特性,正如我们这里所做的那样。
|
||
</p><p>可以用类似的方法来创建一个圆:
|
||
</p>
|
||
<pre>import Part
|
||
doc = App.activeDocument()
|
||
c = Part.Circle()
|
||
c.Radius=10.0
|
||
f = doc.addObject("Part::Feature", "Circle")
|
||
f.Shape = c.toShape()
|
||
doc.recompute()
|
||
</pre>
|
||
<p>再次注意,我们由它用圆(几何基元)来构成一个形状。我们当然也可以之后再进入构建器,这样做:
|
||
</p>
|
||
<pre>s = f.Shape
|
||
e = s.Edges[0]
|
||
c = e.Curve
|
||
</pre>
|
||
<p>Here we take the shape of our object f, then we take its list of edges, in this case there will be only one because we made the whole shape out of a single circle, so we take only the first item of the Edges list, and we takes its curve. Every Edge has a Curve, which is the geometry primitive it is based on.
|
||
</p><p>如果想了解更多,清前往 <a href="Topological_data_scripting.html" title="Topological data scripting">Topological data scripting</a> 页面。
|
||
</p>
|
||
|
||
<p><br />
|
||
</p>
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</div><div class="printfooter">
|
||
Online version: "<a dir="ltr" href="https://www.freecadweb.org/wiki/index.php?title=Part_Module/cn&oldid=212125">http://www.freecadweb.org/wiki/index.php?title=Part_Module/cn&oldid=212125</a>"</div>
|
||
<div id="catlinks" class="catlinks" data-mw="interface"></div><div class="visualClear"></div>
|
||
</div>
|
||
</div>
|
||
<div id="mw-navigation">
|
||
<h2>Navigation menu</h2>
|
||
|
||
</body></html> |