FreeCAD傻瓜式教程之约束设定、构建实体、开孔、调整颜色、透明度、参考距离、任意修改尺寸、保持开孔居中、外部图形、基准平面等

本内容基于官方教程中的绘制简单的零件中的体会,在初次绘制的时候,总是无法完成,几经尝试才发现其关键点所在,以此文记录,用以被查资料,同时也希望能够帮到纯白新手快速熟悉该软件的绘图方法。

一、. 打开软件,选择Part Design工作台,然后选择任务,新建实体,新建草图。 

该过程可参考我的另一篇文章: FreeCAD的傻瓜式初级使用教程_lggirls的博客-CSDN博客

二、.通过线段绘制工具,画出基本的图形

工具绘图 

2.1 先选中工具,移动鼠标到原点附近,出现如下图所示的重合约束提示,则表示所要点下的点和原点重合。单击鼠标左键,确定线段的开始端点。

2.2 继续沿x轴向右侧移动鼠标,在快到达第10个方格时,放下。

若画出的横线和x轴完全平行,则会出现一个小短横,表示平行约束

若没有,则可先点击选中该线段,然后点击约束性工具栏中的图标,即可

 2.3 将鼠标移动到原点,出现重合约束符号,单击,向上延Z轴移动鼠标,超过第2格后单击,确定线段的末端,第二条线则已经画出。

同样的,第二条线要保障和X轴平行,也是和x轴垂直,如同2.2中的操作,对 第二条线进行垂直性约束。

2.4 选中线段绘图工具,将鼠标移动到第2条线段的末端点,出现重合性约束提示符,点下,再向右上方移动鼠标,点下第3条线段的末端点。

2.5 依此操作,画出第4条和斜向上的线相连,但和x轴平行约束的短横线线段

2.6 画出和第1条x轴上的横线线段相连的,垂直于x轴的第5条线段。

三、 进行角度,长度,高度的约束条件设定

a.先约束了斜线和底线的角度为30°;

b.约束了底线的长度为100mm;

c.约束了高处的横线的左端点和原点间的垂直距离为50mm;

d.通过同样的点约束了斜线的水平距离为50mm(此时自由度应该缩减为2);

e.然后用弧线绘图工具,先在图形内点一下,确定圆心,再用重合约束,将最后的两个端点,用弧线连接起来;

f.再通过点击选中弧线,约束其半径为20mm,

g. 对弧线和最上方的横线,最左侧的短竖线进行相切性约束。先选中弧线,然后选中上方的横线,点击相切性约束;如此处理弧线和垂直的尾端线的相切性,此时高处的横线和最后的短垂线的长度将随之变化。

注意:此时自由度应当显示为0 !!!

 3.1  斜线线段的角度性的约束

角度是两条线之间的关系,所以其要点是,选择两条线,然后点击约束条件图标。

在该步骤中,点击了第1条x轴上的横线,第3条斜向上的斜线,然后点角度约束工具,在出现的对话框中,填写你想要的角度。 这里是30°,点击ok

你会发现,在图的外面,也就是第3条线的延长线和第1条线相交会的位置附近,出现了一个带有30°标注提示的弧线,也就是该角度约束的提示线。

可以单击该标注文字,鼠标左键拖动该提示线到图形内部。

 3.2 横线线段的长度约束

点击第1条x轴上的横线,再点击“水平距离约束”工具,在出现的对话框中填写100mm,点击OK

这时你会发现,线段的末端和第10格的交叉点完全重合,同时出现了水平距离提示线,也是选中,将标注线拖动到合适的地方,

注意: 这一步的操作中,第5条竖线会随第1条线的边长的变化而移动到第10格, 如果出现两条线相脱离,则说明了之前画第5条线的时候,端点没有达成重合约束,需要删掉该线,重新约束后再画。

 3.3 确定两点之间的水平和垂直距离。

点击原点,使之被选中,再点击第3条线的末端点,同时也是第4条水平线段的起点,使之选中。

注意!! 要在两点同时选中的时候,再进行水平距离约束和垂直距离约束,这样才能成功。

这一步是设定了两个约束值均为50mm。

 进行必要的提示线整理

四、绘制弧线

4.1先单击“创建弧”工具图标,

 

 将中心定位在大约 x = 80 y = 30 处;然后单击在第2条线的右端点上,定义圆弧的第一个起点;然后再单击将弧的末端点上,定义为第5条线的上端点(确保在单击之前出现重合性约束的提示图标)。

 

 2.单击圆弧,然后选中半径约束工具,设定半径为20mm

 先选中要约束,可约束的对象,然后选约束工具进行约束值的填写。点击ok

点击弧线和要与之相切的横线,进行相切约束

如果一切正确,则求解器部分应当显示完全约束的提示: “Fully constrained” ,同时,绘图区的全部线段将显示绿色,表示所有的线都被有效约束,且形成了闭合连接。

注意: 如果草图没有变为绿色,则说明存在至少一个点是不重合的(2 个点处于叠加状态,但没有实际重合)。这时就需要先点击红和约束工具, 然后将没有形成重合约束的点点起来形成约束。用同样的方法对所有的连接点都点一遍试试。

如果还是没有变成绿色,请验证除了倾斜线外所有的线是否都具有水平约束”或垂直约束,并在必要的时候进行添加。

五、使用凸台和凹坑功能

5.1 单击左上角“任务”选项卡中的“关闭”。我们会自动退出草绘器工作台,零件设计工作台将再次激活。组合视图切换回“模型”选项卡。如果将 “实体” 展开,你将在“Origin”下方看到一个新的 Sketch 元素,并嵌套在 Body 下。

 到了这一步,我们应当保存一下,将文档命名成我们容易记住的名称。此外,最好形成经常保存文档的习惯,比如在完成草图或要素之后 Ctrl + s。

5.2单击标准视图中的”等轴测“视图按钮,然后单击标准视图中的”适合所有“ 视图按钮,这将会在绘图区显示一个居中的 3D 等轴测 视图。

5.3 先单击选中下方的草图,也就是 Sketch,选中目标;再单击零件工具中的“凸台”工具按钮,输入 30 mm 的长度。单击“ok”,则会沿着Y轴拉伸成一个3D实体零件(之前我们所画的图形,只能算是一个面)。 

 

5.4 到此,在“混合浏览器的 模型”树中,将显示一个“Pad”对象(我们称之为特征),而不是“草图”。事实上,它可以被称作草图,因为它是基于草图(Sketch)形成的;  单击Pad前面的箭头或加号将其展开,将显示下面的草图(Sketch),该草图自动隐藏(其标签灰显)。

可以在绘图区看到一个我们所创建的形状形所成实体。

5.5 生成一个孔

5.5.1先单击零件的顶部(方形)侧,再单击“创建实体”按钮旁边的“创建草图”按钮,来创建一个新的草图。

  FreeCAD会创建一个附加到我们之前所选择的零件的面上的新草图。此时我们选择生成的绘图区,是一个平行于绝对平面XY的平面,但高度则根据工件的高度向上进行了偏移,也就是xy平面在Z轴方向了升高了50mm的这样一个水平面,和零件的上表面重合。

可以通过切换视角的按钮来进行试图变换

 最终显示成下图的样子。

 点击“查看草图”按钮,则可以随时切换为当前草图的视图,即 XY平面,以便于像之前再xz轴平面上那样来进行绘图

请注意,这个新草图的原点(Origin)就是实体的原点。 

 5.5.2点击圆形绘图工具,在零件的顶部绘制一个圆,点击圆的边线,进行半径约束,将其设定为5mm

 5.5.3双击新建的草图,展开“混合浏览器中的任务视图,对圆的圆心位置进行约束。 这里的水平距离设置为-65mm,垂直距离设置为15.

 5.5.4 关闭草图;

在“模型树”中,一个新的 Sketch001 草图对象出现在“Pad”下方。单击选中 Sketch001 ,之后再单击选择“凹坑”工具。

 凹坑,之前的版本称之为口袋,是一个被称为“减法”的功能,它可以从我们的零件中删除材料;在这里,因为我们所画的草图是一个圆,则该功能形成的凹坑将会以圆柱体的形式出现。

在凹槽参数中的类型中,选择“通过所有”以完全剪切零件。按“OK”完成。

在模型树中,标记为 Pocket 的新元素出现在 实体 的底部,并被命名为了 Sketch001。

六、更改颜色和透明度

可以通过更改零件的颜色,来区分零件间的差别。作品的透明度也可以修改,这对于将其内部结构进行可视化很有用处。 

选择要进行色彩和透明度设置的”实体“,在左侧的属性中找到 Shape Color(形状颜色),Transparency(透明度),对其进行更改,使得上一步切出的孔能够显示出来。

还可以修改 Line Color和Line Width,以更改线条粗细和零件轮廓的颜色。

 现在,零件内部可以看到该孔。这对于查看模型的隐藏面或内部面通常很有用。

注意: 可以使用开孔工具,对零件进行开孔操作。步骤第5.5相同

七、手动移动零件

7.1 转到“视图”菜单,然后选择"切换坐标轴显示(Toggle axis cross)"。这些是绝对坐标轴。您应该在 3D 视图中看到 3 个轴 X、Y、Z 为红色、绿色和蓝色。这个坐标将帮助我们在空间中定位自己。这个坐标是固定且不可变的,它要么是视图围绕它旋转,要么是对象在这个空间中进行旋转。

 7.2 选中实体,在其左侧的下方选择数据视图,点击属性这一列中的Placement,

单击三个小点,即省略号(如果未出现,请单击“放置”字段的“值”部分);这将在“任务”面板中打开一个新对话框。使用箭头可以改变零件的位置和角度。实际上是在空间中移动的物体的位置(因此其原点),3D 视图的方向不会改变。

 

另一种方法:在组合视图中,选择“实体 ”并单击鼠标右键,然后选择转换。

这将会显示如下视图: 

 按住并沿轴或球体拖动圆锥体,以向各个方向移动主体。可以实验一下。然后将角度和坐标重置为 0。

八、在草图中建立和显示参照尺寸

以上我们所建立的尺寸,都是相对于原点(Origin)的,但在实际的绘图操作中,零件间结构间的相对尺寸数据也很有用处。这种尺寸可以仅用于参考,也可以稍后使用它们来设置其他尺寸。

在左侧的“模型”树结构显示中,展开“实体”部分 1,然后展开“Pad”以显示第一个草图(Sketch)。双击它(或右键单击并在上下文菜单中选择编辑草图),然后单击“切换驱动/参考约束"图标。

 从现在开始,就可以在草图上创建参考尺寸了;参考尺寸是以蓝色显示的,且对它们所标注的草图的形状是没有影响的(即不会构成约束控制),它们的数值也是自动计算的。

参考约束的建立工具:

 九、进行一个或多个维度的编辑

在建模的过程中,我们可以随时改变模型的尺寸。这非常简单:例如对于零件的厚度,只需要双击Pad,就会在左侧的组合浏览器中出现对话框,然后输入一个新值,例如40mm;或者在选中Pad后,在混合浏览器显示的属性设置的部分,选择数据,也可以更改此值。

 

 可以采用如下方法来验证一下:

对作品的总长度执行相同的操作:双击 Sketch,然后双击 100 mm 尺寸约束,将其更改为 110 mm,然后进行验证。

 我们可以看到,零件的顶部的尺寸和面积被放大了,造成了之前所开的孔不再在顶面的中间居中的位置。,这是因为该孔是被限制在草图的原点位置了。这不一定符合我们通常想要的结果,因为最常见的情况是,我们希望无论如何改变零件的尺寸,顶面所开的这个孔,都应该保持在中心。

下面将进行这样的操作

 十、设置开孔位置保持居中

10.1 第1种方法--外部几何图形法。

10.1.1 再次编辑Pocket的草图,并删除其中对圆心的水平和垂直距离的约束。

然后单击外部几何图形工具图标。接下来将在草图中创建两条线,并且这两条线都是比照着我们前面生成的零件3D模型(Pad)画的,也就是通过点击零件的上方的矩形边框得来。这种划线方法和之前我们从原点开始划线的方式是不同的。
英文直译:从该形状(或特征)外部提取,该形状并且先前已定义:Pad 的形状(或特征)。

10.1.2 具体画法:

再点击选中工具后,单击零件顶部的垂直边缘。例如,边缘带有坡度的一边。则一条新的洋红色线将出现在边缘上方。对圆弧形边上的另一条边也重复上述步骤。我们现在就可以使用这些线(尤其是它们的端点)使圆居中,不过我们必须再添加两条构造线-0.21中翻译为辅助线:例如对角线,才能完全确定圆心位置。 下面将说明如何添加构造线。

 10.1.3 添加构造线\辅助线

单击构造模式的图标,我们切换到构造模式:在该模式下的划线线条是蓝色的,并将在草图编辑模式之外丢弃。这两条构造线就可以固定圆心。

 以绘制第一条线的相同方式创建对角线(注意:这里的第一条线是指整个绘图过程中的那条100mm的底线,就是选中划线工具,然后鼠标移动到两条洋红色线的端点,点变成黄色时表明重合,则点下鼠标,如此连接另一个端点),并确保所有点都重合。

 10.1.4  设定圆心和两条辅助线之间的约束关系

分别点击圆心点和两条蓝色的辅助线,将3者都选中,然后再点击“点约束至对象”这一约束工具;则圆心会自动约束到两条辅助线的交点上,这样就起到了随着零件尺寸变化,圆心始终位于中间的目的。

 将圆心约束至两条线的交点后。自由度必须是0,也就是完全受到约束。 另外注意:除了圆的半径之外,不再需要创建尺寸约束!!!

 10.1.5 注意切换回正常绘图模式

退出草图模式,看一下效果。再修改一下几何体的尺寸,将会看到,开孔的圆心,始终在上面的矩形正中。

10.1.6  避免绘制辅助线的方法

 通常可以避免创建辅助线。我们可以再次编辑草图,删除辅助线,先点击外部几何图形线(也就是洋红色线)的两个相对顶点,然后再点圆心,然后点击“对称约束“工具来达到目的。如果顺序不同,可能回将圆心移动到零件外,可以自己是一下。

 使用后的样子:

可以看到,对于圆孔中心的位置,我们得到了完全相同的结果。事实上,由于草图工作台(Sketch)中可用的约束工具的效果,有许多可能的方法来达到同一个目的。此示例也表明,选择最简单的方法通常更好,这样可以限制创建的对象数量,以及可能导致的错误。

10.2 第2种方法--基准平面法

这是自 0.17 版以来可能出现的另一种更快的方法:即,使用基准平面及其连接。

10.2.1首先删除凹坑功能以及圆孔的草图。

单击选中顶面,再并单击“创建基准点”这一零件制作工具:在活动主体中创建基准点。接着选择的附着模式必须是“质心”。点击“ok”

 由于面部是矩形的,因此其质心对应于其对角线的中心。    可以验证,并创建一个基准点试试看是否如此。

 10.2.2 继续绘制

再次选取顶面,按住 CTRL 键的同时,选取刚刚在“树形显示表”中创建的点(DatumPoint),松开 CTRL 并单击“创建基准面”工具。

 这将会使用之前生成的点的原点创建参考平面。单击“ok”。

 10.2.3 按照在平面上画圆的方法进行操作

现在很容易将圆圈居中!也就是:

a.cong “模型树”或 3D 视图中选择新创建的平面(DatumPlane);b.然后单击“创建草图“工具,将会出现一个以原点(平面的原点)创建的草图;c.只需在此原点上约束一个5 mm 半径的圆,最后后进行验证(草图必须为绿色)。

如前所述,我们可以继续使用“凹坑”或者”孔“ 这两个工具获得通孔,且该孔的圆心将始终居中。

10.2.4 隐藏基准平面

参考第六节,可以调整基准平面的透明度,设置为100,但还是会有矩形框出现

十一、零件库

FreeCAD/FreeCAD-library

这个零件库在github上发布和维护,可以作为插件直接从freecad中进行安装,不过体积超大,需要较好的网络和时间。建议按需拉取。

Module developer’s guide to FreeCAD source code by Qingfeng Xia http://www.iesensor.com • 2015-09-18 version 0.1 for FreeCAD version 0.16-dev • 2016-09-18 version 0.2 for FreeCAD version 0.17-dev License of this book This ebook is licensed the same as FreeCAD document license CC-BY 3.0 http://creativecommons.org/licenses/by/3.0/Contents 1 FreeCAD overview and architecture 7 1.1 Introduction to FreeCAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2 Key features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3 Software architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3.1 Key software libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3.2 Mixed python and c++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.3.3 GPL code will not be included into installer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.4 How 3D model are renderred . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.4.1 Selection of 3D visualization libarary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.4.2 Discussion of 3D rendering library selection on FreeCAD Forum . . . . . . . . . . . . . . . . . . . . . 8 1.5 Roadmap of FreeCAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5.1 Keep updated with main components: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5.2 C++11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5.3 Pyside 2 project for Qt 5.x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2 Organisation of FreeCAD source code 11 2.1 Build system for FreeCAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.1.1 Analysis of src/cMake/SMesh.cMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 List of files and folders in FreeCAD source folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3 List of modules in FreeCAD Mod folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.4 Learning path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.5 Learning OpenInventor/Coin3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.5.1 OpenInventor in FreeCAD’s ViewProvider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.5.2 Important classes in OpenInventor/Coin3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.5.3 Window System integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.5.4 Pivy: Coin3D ’s Python wrapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3 Base, App and Main module 19 3.1 List of header files in Base folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.1.1 Frequently included headers files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.1.2 Correct way of using Sequencer in try-catch block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.1.3 String enconding utf8 and conversion into wchar_t QString . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2 Type, BaseClass, PyObjectBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2.1 Type system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2.2 src/Base/BaseClass.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2.3 src/Base/PyObjectBase.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.2.4 src/Base/Persistence.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.2.5 GeoFeature: Base class of all geometric document objects . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.3 Unit scheme for physial quantity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.3.1 src/Base/Unit.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.3.2 src/Base/Quantity.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.4 List of header files in App folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.5 Property framewrok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.5.1 Naming of property and PropertyEditor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.5.2 src/App/PropertyStandard.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.5.3 PropertyEnumeration, see src/App/Enumeration.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.5.4 Geometry related property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.5.5 File related property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值