- 1 综述
- 2 软件
- 2.1 认识界面和鼠标、快捷键操作
- 2.2基本设置,保证最佳的显示效果
- 3 入门资料
- 3.1 书籍
- 3.2 参数化建模视频
- 3.3 装配并动画
- 3.4 工程图
- 4 特别的关注点
- 4.1 草图(重点)
- 4.2 创建关联的边(重点)
- 4.3 切换辅助线(重点)
- 4.4 创建基准面(重点)
- 4.5 获得参考线与工作平面(基准面)的交点
- 4.6 查看体剖面、体内
- 4.7 分割体
- 4.8 展开图
- 4.9 体的合并
- 4.10 如何选择被遮住的点、线、面
- 5 终极目标——参数化模型服务(验收)注意事项(重要)
- 6 参数化零件装配后尺寸驱动技术路线
- 7 问题
- 8 注意事项
- 8.1 最佳做法
- 8.2 关于 body 的实践经验
- 8.3 关于 sketcher 的实践经验
- 9 参数表达式(重要)Expressions
- 10 blender
- 11 草图验证、零件检查几何形状
- 12 其他
- 12.1 渲染
- 12.2 创建局部坐标系
- 12.3 所有工作台
- 12.4 材料表
- 12.5 钢筋图
1 综述
目前全参数化三维建模的方式基本相同,Catia、SolidWorks、blender里的精确建模插件CAD Sketcher、FreeCAD,用二维草图约束(几何约束和尺寸约束)+参数化 形成参数化尺寸驱动的三维模型,FreeCAD将输入参数的表格纳入了软件内。这种方式不需要代码就能生产出参数化模型。
总的思路是:因为电脑上作图始终是在一个二维平面上工作,所以先要确定这个“工作平面”,最基本的工作平面是系统默认的xy平面、xz平面、yz平面。FC可以直接在已有三维模型上选中任意一个面,点击 草图 工具条,那么草图工作就是在刚选中的面上了(可以再对草图进行x y z方向的 偏移和旋转),如果没有合适的面,可以基于已有的元素(基础坐标面、体的表面、关键点、线……)创建基准面,再修改这个基准面(旋转和偏移),点这个基准面,进入草图。草图里可以参考(关联)三维模型的边线(创建关联的边),也可以绘制辅助线来定位。
关键词:引用(import)、参考(reference)、绑定(binder)、链接(linked)、附着(attach)等由于翻译问题,其实一般都是指将上一个几何体的面(或点、线、面、体)作为当前草绘的工作平面(绑定binder,或参考点、辅助线参考线……),这样,上一个几何体变化后,当前这个草绘的工作平面也会跟随变化。同理,用于上一个几何体的线一般用linked这个单词,面用binder,体用import……并非一定的,只是一个理解。
基于上一个模型的某个面直接进入草绘,这个方法是相对关联定位
,虽然方便,但是如果所基于的面在后面会被分割,则会导致这个面的(系统内)命名改变,从而在模型发生变化时,会造成参考面丢失的拓扑命名问题
。这种情况下,可以基于坐标原点创建定位线,然后基于线上的端点、中点等来建立基准面,这种就是绝对的定位
了。
2 软件
我已经下载放在网盘,这里下载快。里面还有几个宏和工作台提供下载。目前官方系列最新版是1.0rc2
,link系列版本20241006,本文用于土木工程建模均以link系列版为推荐工具,注意,不同系列建立的模型彼此之间不兼容,同一系列的不同版本建立的模型可以兼容。
最新体验版下载看这里
它来自这里:
https://github.com/realthunder/FreeCAD
https://github.com/realthunder/FreeCAD/releases
解压到D盘,免安装,运行里面的RunFreeCAD.bat,它将自动打开freecad。
其他工作平台(插件)直接去git里选择一个插件,点进去,点code里的download zip下载,解压到Mod文件夹下即可。
官方系列版本不支持创建独立的体,体必须是彼此相连的;link系列版阵列比较丰富和便捷,支持表格的configuration table的下拉菜单的dbind()。两者不兼容,建模要注意。
软件打开后可以升级一下工作平台。详见3.1节。
2.1 认识界面和鼠标、快捷键操作
- 工作台选择器;
- 主视图区域,主要用于呈现3D或2D的内容;
- 导航风格,对主视图区域中3D内容的操作方式(选取、平移、缩放、旋转等);——我习惯用CAD模式。
- 树视图,显示文档中对象的层次结构和构造历史;也就是步骤,并非是针对一个实体对象,请注意
- 属性编辑器,允许查看和修改所选对象的属性;
Mouse navigation(导航风格)
导航风格指对主视图区域中3D内容的操作方式(选取、平移、缩放、旋转等)。FreeCAD中提供了多套操作方式,比如Blender、CAD、Maya等软件风格的操作方式,推荐使用——CAD风格的。
鼠标中间滚轮按下是移动,滚轮+右键是翻转。
空格键是显示和关闭:上文4 树视图(步骤)所产生的结果的显示和隐藏。
操作 | 图示 | 说明 |
---|---|---|
选择 | 在对象上点击即可选择,按住 Ctrl 可多选 | |
平移画布 | 按住鼠标中键并拖动 | |
缩放 | 使用鼠标滚轮进行画布缩放 | |
旋转视图 | 先按住中键,再按住左键或者右键进行拖动 |
【SHIFT + 方向左/右键】可以让模型翻转 90 度;
按住【CTRL】键之后,就可以通过鼠标选择多个目标;
【V + O】进入正交投影模式、【V + P】进入透视模式;
【CTRL + 减号】缩小模型,【CTRL + SHIFT + 加号】放大模型;
按下数字键【1】查看前面、【2】查看顶部、【3】查看右侧、【4】查看背部、【5】查看底部、【6】查看左侧;
s是草图中对称约束……D是草图中约束标注
m键是草图中绘制多段线的时候,切换为圆弧(重要!)
2.2基本设置,保证最佳的显示效果
菜单:编辑——首选项
界面中文设置:常规——语言——更改语言——简体中文
报告浏览器(report view)窗口乱码解决方法:首选项——python——编辑器——显示项目——文本——字体族
Edit——Perferences——General——Editor——Display items——Text——Family,选择“Arial”就可以啦。
精度设置:常规——小数位数——小数位数,改为3位,角度的话,3位还不够
背景色(默认即可):显示——颜色——背景颜色——勾选 渐变颜色——颜色设置 html
#33365
显示效果:显示——三维视图——抗锯齿——改为反锯齿 8x;
零件设计(part design)——shape appearance——line width——改为0
显示的圆弧不够圆滑,设置:Edit → Preferences → Part design → Shape view / Tessellation. Default maximum deviation is set to 0.5000%, you can try 0.1000%. Beware, this will make creation of some shapes like spheres and torii longer.
设置为0.1%
就足够了。让体具有质感:鼠标点 body——右键——外观——材料选 金。
设置缓存:常规——缓存——缓存大小——选择2G以上……
3 入门资料
青鱼老师的用户学习指南
【官方教程操作步骤】https://wiki.freecad.org/Tutorials/zh-cn
里面有渲染、有限元、配筋等操作步骤。
http://uinio.com/Design/FreeCAD/
3.1 书籍
https://bookdown.org/johnqu1982/FFI/
sketcher.pdf文档链接,讲草图的,这是最基本的,注意下载查阅
3.2 参数化建模视频
https://www.bilibili.com/video/av63736983
https://www.bilibili.com/video/BV1ja411M7gH 这是我第一次发现freecad的地方,所以纪念一下。
3.3 装配并动画
A2plus和Assembly4区别:
- 前者简单易学,后者稍微复杂。前者直接用线、面约束,后者基于零件的局部坐标系(LCS)。
- 前者通过零件间的几何约束来装配,后者先建立运动骨架然后在骨架上绑定零件。前者自下而上,后者自顶而下。
【FreeCAD A2plus gripper assembly demo】 https://www.bilibili.com/video/BV15v4y1h7Cy/?share_source=copy_web
【FreeCAD Assembly4 教程 2】https://blog.libcore.org/?p=360
【Freecad assembly 4 装配教程】 https://www.bilibili.com/video/BV11F411K7gj
【Freecad assembly 4 装配控制台教程】https://www.bilibili.com/video/BV1kt4y1577r
3.1节有介绍A4的组装阵列方法。
用A2plus组装
https://www.bilibili.com/video/av78425587
https://www.bilibili.com/video/BV1Yy4y1B77r
总结:目前看来应该用A4工作台,有阵列、镜像、碰撞检查等功能。见第3节。
3.4 工程图
【FreeCAD Drawing平台,2D图纸,工程图运用技法】https://www.bilibili.com/read/cv6171099
https://www.bilibili.com/video/BV1e44y1U7Ns
https://wiki.freecad.org/Basic_TechDraw_Tutorial
在techdraw工作平台,用工具条上的 导出dxf工具条,不能用 文件——导出dxf
1)工程图确定方向的技巧
引自“3.2 从参数化建模到工程图 引注1 ”
8 进入模型标签页,调整为 一个正确的 主要视图,怎样知道要在三维中保持哪个视图呢?比如下面这个钢管带行车道,需要行车道位于钢管下方,则这个三维视图里,对应的front的时候,行车道在下方。 那么就点击右上角front这个视图,保证三维视图处于完全front下。到了page里,这个状态的视图就是一个主要的视图,然后page里根据这个主要的视图,再进行左视图、顶视图、轴测图等显示。
我们的图纸尺度都很大,动辄上千毫米,所以自定义比例里要调整后面的数字在50/100这样的大数字才合适。
尺寸标注后,双击尺寸,进行尺寸字符大小的修改
4 特别的关注点
★★★提醒:建模时,每一 ~ 三步都要3组数据切换一下试试,其中一组数据比画的尺寸大,一组数据比画的尺寸小。确保没有问题再往下建。虽然麻烦一点,但比较保险,一次过。先把数据表的configuration table切换做好,方便切换。如果出现问题,可以修改参考线(面)为坐标线、坐标原点距离、基准面等代替定位。复杂的草图可能也要拆成多组草图,防止拓扑计算失败。
草图和约束——创建关联的边——辅助线——创建基准面(暂且称它为工作平面)——获得参考线与工作平面的交点
我认为对于熟练使用autoCAD的人首先了解了FC的套路后,重点草图约束、然后是3块:创建关联的边、辅助线和创建基准面。用edge浏览器里的bing搜索“freecad 约束”即可获得较多资料,了解以上3个部分,建模的思路才会有(类似用图形逻辑代替编码)。看文档比看视频效率高,可以查找,可以迅速定位到自己关心的部位。
4.1 草图(重点)
https://zhuanlan.zhihu.com/p/477480348
https://zhuanlan.zhihu.com/p/470040662
https://wiki.freecad.org/Sketcher_Workbench/zh-cn
上面的wiki里有sketcher.pdf文档链接,注意下载查阅。
4.2 创建关联的边(重点)
注意下拉按钮里第一个图标和第二个图标区别,我暂且称这个为从三维模型上借一条线
第一个按钮是参考的边线作为辅助线,不能直接当做实线使用,可以用于定位
下拉里第二个图标参考的边是实线,可以直接用于凸台等操作(不是辅助线)。注意二者参考得到的线颜色的区别。
这个图标的右边那个图标是从另一个草图复制元素,顾名思义,只能从草图中复制元素。
4.3 切换辅助线(重点)
点击按钮后,所绘制的线是辅助线(绘图按钮由红色变成蓝色)。如果先选中线,再点击这个按钮,可以改变线的属性为辅助线或几何体。
4.4 创建基准面(重点)
——我们每次进入草图前必须先确定一个“工作平面”,工作平面来源有这么几个:
一是软件系统基准面,比如xy平面,yz平面,xz平面;
二是某个模型的某个面;跨body工作平面,可以基于上一个body里的某个模型的某个面来作为当前body下的工作平面,默认link版软件会自动导入上个body的全拷贝到当前body中,这种方式不好(在模型解析的时候会得到一个重复的几何体……);应该先点击上一个body的某个面,然后点击create a shape binder
(蓝色的,不是绿色的那个)按钮创建一个跨body引用(参考、绑定),然后再在此面基础上进入草图。
下图左侧是官方版,右侧是link版,处理的方式有所不同。
三是新建一个基准面,那么新建基准面的方式又有几种,比如基于线的端点和线本身,基于某个模型的某个面,
新建的基准面可以进行角度变换和位移。可以给基准面加一个局部坐标,方便查看。
FreeCAD实战案例T02零件建模了解基准平面————非常重要
【9:20】https://www.bilibili.com/video/BV1wK411o7yw
【6:40】https://www.bilibili.com/video/BV1uv4y1d7sC
步骤:先选择线的一端创建基准点,再选择另外一端,得到线的中点。选中刚创建的基准点,创建基准面,再点一个面,相切。然后可以旋转这基准面了……前面创建这个 基准点的目的 是为了这个基准面旋转有中心。
提示:如果基准平面太大,盖住了模型,导致无法利用三维模型创建关联的边,可以在草图中旋转到工作面下方,点击选中。也可进入草图后,回到 模型 标签页,将这个基准面关闭(选中按空格键),或将基准平面尺寸修改得非常小(点击基准面,在属性里修改,必须先将Resize model 设置为manual,然后才可以修改基准平面尺寸)。
如何避免创建基准面?答案是,我们在某个坐标面(如xy面、yz面、xz面)或物体某个表面创建草图,创建完成后回到模型,对草图属性中的attachment offset的位置进行偏移和旋转,这样就避免创建基准面也达到目的了。
4.5 获得参考线与工作平面(基准面)的交点
这个功能很好用,请多多使用。
它是获得参考线与当前工作平面的交点。
4.6 查看体剖面、体内
如何选择被遮挡的对象:link版,点击模型后会变成透明,就可以选内部的任意对象了(重要)
方法1,复杂剖面见下文4.8,https://www.bilibili.com/video/BV1Vu4y1B7JW
方法2,用透明+关闭(选中,按空格键)一些部件;通过不同的part和不同的body来绘制不同部分,实现分body关闭显示。
方法3,可以切换到BIM工作台里进行剖切展示。https://zsj.itdos.net/docs/freecad/freecad-012
方法4,修剪平面。操作:菜单——视图——修剪平面——勾选x平面剖切
4.7 分割体
VO清鱼:拆分工具组合工具
【10:35】https://www.bilibili.com/video/BV1oE411g7bq
在part工作台里,先 沿剖切轮廓创建多段线图元——拉伸成一个面,再 同时选中body和这个面,点 slice apart,将体分割成2块——可空格独立显示你需要的
https://www.bilibili.com/video/av67164105
4.8 展开图
用于以平面图的方式展开网格对象,注意需要有开放口的零件才能被创建(来自清鱼的学习指南2.0)
网格工作台mesh workbench——Unwrap Face
4.9 体的合并
https://github.com/realthunder/FreeCAD_assembly3/wiki/Topological-Naming-Algorithm
在part工作台下,选中多个体,点击合并fusion,然后修改fusion的数据——refine里选择true。
refine里选择true
4.10 如何选择被遮住的点、线、面
- 点击对象会变透明,然后就可以选择到线和点了,但选不到面
- 鼠标右键有Pick geometry
根据需要选择面
5 终极目标——参数化模型服务(验收)注意事项(重要)
我们模型的验收标准:【freecad参数化模型验收标准之一】【FreeCAD参数化模型验收标准之二●装配体】
我们设计的参数化模型最终是要上传服务器,让服务器解析参数表(或程序),提供参数化服务接口,用户通过调用接口修改参数达到修改模型目的,再下载模型。所以一些基本的规定是必须的,否则无法解析模型,特别是参数表一定要符合格式要求。
- 文件名命名规则:要反映建模的软件,有官方版,有link版,有ondsel版,软件不用带版本号。要带版本号,要反映专业,见23节。
- part和body搭配:先建立单体(零件),再用A4工作台组装。例如水闸,先分别建立边孔和中间孔单体模型,然后到组装模型里对多个中间孔采用阵列的方式……
单体模型里:
- 一是要用part下多个body来区分材质(颜色)和参数表;
- 二是要在part下插入参数表,方便装配体文件中统一操作表格;
- 三是要在参数表中使用configuration table功能(竖表),建立3组以上参数,一组比画的大,一组比画的小,每画1~3步做一下切换看看是否有错,通过下拉菜单进行参数切换。见2.1.1节
- 一定要习惯用
<<Spreadsheet>>.B5
这种带尖括号的参数链接,意思是label,就是可以对表格重命名,而不带尖括号的Spreadsheet001.B5
,是软件内部命名,是没法修改的。
表格不要像excel表格那样做全选操作,比如全选后做居中,那么会卡死,文件也会非常大。如果不慎做了这样的操作,就删除旧表,新建一个表,把数据拷过来。 - 模型过程(步骤)不用专门命名,表格不用专门命名,单元格不用专门命名别名,只对body进行重命名即可,节约时间。
- 单体模型如果是为了装配体用的,则需要在part下,-用assembly4工作台建立一些局部坐标系,方便装配。在part下建立局部坐标系可以吗???待验证。
组装模型: - 一是要用A4工作台,可进行阵列……;
- 二是将零件中的参数表格放在part下,带入装配体文件中来,方便统一修改参数表,也方便服务器解析;
- 三是要用configuration table(竖表)功能在表格中设置下拉菜单进行多组参数的切换。见2.1节和3.2节
插入variable link会导致A4装配体内的约束失败,所以不要用这种方式——点击solve and update assembly就可以将局部坐标对上了。
- 参数表格配置要符合解析要求,多组参数用configuration table(竖表)功能映射到第
E列
,最后一列和最后一行结束标志要用*
号,见2节2.1.1节的configuration table(适用多组参数),为了方便多组参数切换,需要使用configuration table功能,为了使用configuration table,参数表要用竖排方式,自定义参数放到最后一列。20241003版link它支持竖排表格。 - 制作工程图,切剖面并标注尺寸名称和符号。
- 准备好一段文字说明:介绍模型,模型应用情况,注意事项,比如参数之间的限制情况,例如钢管内径不能超过外径……
- 完整的一个参数化模型产品拥有以上基本特性。
- 可以上传一段程序(python或FC宏文件)作为参数化文件,服务端当做参数化模型来处理,参数用txt文件一同上传,参数的格式也要固定。——探索中。
6 参数化零件装配后尺寸驱动技术路线
- 首先是创建表格(下文表格指freecad中的表格),草图创建几何,添加定位约束和尺寸约束,尺寸约束里选择表格中的数值链接(一定要习惯用
<<Spreadsheet>>.B5
这种带尖括号的)。使用configuration table功能,拟定多组参数,方便切换。例如第一组参数是工程A的,第二组参数是工程B的,第三组参数是自定义的…… - 新建part,然后在part下新建不同的body,在body里进行建模,彼此body里的几何体可以作为定位互相参考。不同body可以拥有独立的颜色(材质),同一个body里不支持多种颜色。不同的body还可以分别关闭显示,方便操作和展示,同一个body不方便显示局部。
- 对几何进行拉伸等三维操作,并进行尺寸约束,并将尺寸关联到参数表中,注意设置好configuration table后,对应到首行。
请参考2.1节高级参数化★★ - 完成零件参数化建模。
- 进入A4装配工作台
- 导入前面创建的零件,对多个零件进行装配约束,带入零件的参数表;同时,建立自己的装配参数表,例如阵列数量和间距……。见3.2节
- 在装配图中,一方面可以修改零件的参数表,一方面可以修改装配参数表,比如定位尺寸参数,阵列的数量,角度等参数。
- 制作工程图——有了工程图,模型验收要加分!初步考虑利用工程图,再在工程图上标注尺寸、定位等名称和符号,方便用户对照这些名称修改对应的参数。
参数化的技巧: 先走通模型和约束,最后再来将尺寸改为参数化链接;
为了避免丢失参考面参考线,需要每一步都进行3组至5组的参数切换,参数要设计好大一点和小一点的参数。最开始尺寸尽量接近实际尺寸,如果相差太大,比如开始随意绘制的时候尺寸是10mm,实际尺寸是50m,在后面的修改尺寸参数链接的时候,会不方便。- 常见错误,比如引用的参考面丢失——重新选择attachment,也可能草图中的参考关联的线没有了,重新定义——这种要小心了,下次可能还会出现,解决办法是尽量用坐标点和坐标轴来定位,不要用可能发生变化的面和线来参考;出现多余的线条,导致面不闭合——删除一些线;过渡约束——删除多度的约束部分。鼠标移到出问题的步骤上,有提示,根据提示有时候可以自动修复,有时候可以检查,有时候点进去进行修改。见1.1节。要确保每一步不要出错,否则会严重影响速度,如果速度很慢,很大概率是逻辑上出错了或建模方式比较偏。
- 可将窗口平铺,以便方便查看表格中的命名。一遍看表格一遍填写参数化链接,如下图。
7 问题
- 对于装配体,需要到每个零件中去修改参数,挺麻烦,能否在一个地方修改呢?——见3.2节
或者不用装配,只使用一个模型。 - 如何生成材料表(工程量表)
用bing搜索freecad BOM - 如何设置颜色或材料——鼠标右键点击body或pad等步骤——外观,为了配置不同的颜色,要用不同的body分开来建模。
同一个体内,更改一部分表面的颜色:鼠标右键点击pad等任一步骤——颜色,按住ctrl键,鼠标点选一些面,设置颜色
但是做一个操作后,这个单独设置的颜色会消失。所以要用不同的body来区分颜色。 - 大的step文件打不开,1.64G,试用VariCAD Viewer中
- 图框问题:工程图导出dxf到cad中套图框
在techdraw工作平台,用工具条上的 导出dxf工具条,不能用 文件——导出dxf - 体上刻字——一定要选择一个对应的字体文件才行https://www.cnblogs.com/DragonStart/p/12302149.html
- 楼梯和旋转楼梯
arch工作平台里,本文5.1有介绍,5.8节有旋转楼梯代码 - part和body的区别是什么
https://forum.freecad.org/viewtopic.php?t=16730
感觉part是高于body的,上一级的分组。一个part里可以有多个body。一个工程里可以直接有多个body,也可以有多个part,每个part下面再多个body。
那么,为什么要分多个body呢?我觉得主要用于关闭和显示不同部位,方便查看;以及不同body设置不同的颜色(材质),方便区分,比如一二三期砼要用不同body来建立。
同一个body里,操作是顺序下来,自动布尔运行的。如果不同body,不会自动布尔运行。需要同时选中,再做布尔运算。
但是有个问题,下一个body如果要关联上一个body中的某个基准面,link版采用了很笨的办法,自动将上一个body整个导入进来,虽然大小影响不大,只是引入了链接,但是有时候会出现重复显示。而目前官方最新版,则只是将基准面关联过来(创建关联副本),合理很多。
而一些功能只有part才支持的。 - 如何查看实体剖面?
见上文4.7
在link版软件中,沿剖切轮廓线画一个大的草图,做减料的凹坑即可。官方版不支持超出三维模型范围的凹坑。
效果:
做法:
其他方法比如:
设置透明+关闭相应的部件;用bim工作台里的切剖面方法。视图——修剪平面比较难操作,只能在0坐标附近,而且只能是固定的X Y Z三个方向。 - 如何实现局部详图?基准面遮挡影响关联边问题?
- 如何选择被遮挡的对象
link版,点击模型后会变成透明,就可以选内部的任意对象了 - 卡顿
12.倒角失败:倒角不能大于等于边长,不能完全倒角,解决办法,倒角长度=边长-0.001
FreeCAD常见问题及有效解决方法:https://www.bilibili.com/video/BV1eZ4y1N7hc
FreeCAD建模百练系列:参照(关联)的用法(草图工作台)https://www.bilibili.com/video/BV1Da4y1s7TQ下载加速网站(备用)
https://doget.nocsdn.com/#/参数化建模文字
https://zhuanlan.zhihu.com/p/591028708
将例子里的尺寸约束关联草图中的表格单元格数字,即可形成参数化模型。### 5.2 用assembly2.0组装
https://www.bilibili.com/video/BV11b411w755快速入门:
FreeCAD 0.1.8 入门学习笔记(00)下载,选语言
https://www.cnblogs.com/DragonStart/category/1645738.html
FreeCAD 0.1.8 入门学习笔记(01)创建工程,并绘制第一个part
FreeCAD 0.1.8 入门学习笔记(02)基于已有的Part,进行加减部件
FreeCAD 0.1.8 入门学习笔记(03)在Part上添加文本
8 注意事项
- 每个草图只拉伸一次,下次拉伸需要另外建立草图。——官方版本有个设置,可以多个封闭草图一起拉伸。
- 一个草图中相同的图元比如圆,尽量不要重复去绘制,在拉伸成实体后再做镜像和阵列……
- 一次草图里只做一个封闭的草绘。link版支持多个封闭区域做拉伸或凹坑。
- 其他原则,见下文wiki和书籍,比如约束的优先级,从几何约束到尺寸约束到定位约束……
需要知道两件重要的事情:
重新计算并不总是自动的。繁重的操作可能会修改文档的大部分内容,因此需要一些时间,不会自动执行。这里的做法是,对象(以及依赖于它的所有对象)将被打上标记,准备重新计算(树视图中的对象会出现一个小的蓝色图标)。然后,您必须按下重新计算按钮(或 Edit -> Refresh )以重新计算所有标记的对象。
依赖关系树必须始终单方向流动,禁止循环。(参见 DAG 。)A 对象依赖于 B 对象,B 依赖于 C 对象。但是不能是 A 依赖于 B,B 又依赖于 A。这会是循环依赖。但是,您可以拥有许多依赖于同一对象的对象,例如,对象 B 和 C 都依赖于 A。
菜单 Tools -> Dependency graph 显示了类似上图中的依赖关系图。检查问题时它可能会很有用。
并非所有 FreeCAD 中的对象都是参数化的。通常,从其他文件导入的几何体不包含任何参数,它是简单的非参数化的对象。但是,这些通常可以用作新创建的参数化对象的基础或起点,当然,这取决于参数化对象的需要和导入的几何体的质量。
但是,所有对象,无论是否参数化,都有一些基本的参数。例如 Name,在文档中是唯一的,无法编辑;例如 Label,是用户定义名称,可以编辑;例如 placement,描述了对象在3D空间中的位置。
最后,有一点值得提醒:很容易在 python 中编程自定义参数化对象。
8.1 最佳做法
https://wiki.freecad.org/Sketcher_Workbench/zh-cn
每个CAD用户随着时间的推移发展自己的工作方式,但跟随一些有用的一般原则。
- 一系列简单的草图比单个复杂的草图更容易管理。例如,可以为基础3D特征(衬垫或旋转)创建第一个草图,而第二个可以包含孔或切口(凹坑)。一些细节可以省略,稍后将作为3D功能实现。如果太多,你可以选择避免草图中的圆角,并将其添加为3D功能。——这段话的意思是草图里先画一个板,先不要画开孔,等拉伸板后,再做一次开孔的草图和减料凹坑?
- 始终创建一个封闭的配置文件,或者你的草图不会产生实体,而是一组开放的面。如果你不希望将某些对象包含在实体创建中,请使用“构造模式”工具将其转换为构造元素。————这句是翻译的,不好理解,我理解就是始终创造一个封闭的面域。
- 使用自动约束特性来限制你必须手动添加的约束数量。————意思是自动约束经常会导致过约束,需要删除一些,再手动约束至全约束,是这个意思吧
- 作为一般规则,首先应用几何约束,然后应用尺寸约束,并最后锁定草图。但请记住:规则被破坏。如果你在操作草图时遇到问题,在完成配置文件之前先限制几个对象可能很有用。
- 如果可能,将草图中心定位到具有锁定约束的原点(0,0)。如果你的草图不对称,请将其中一个点定位到原点,或者为锁定距离选择好的圆角参数。在v0.12中,外部约束(将草图约束到现有3D几何像边缘或其他草图)未实现。这意味着要将以下草图定位到你的第一个草图中,你需要手动设置相对于你的第一个草图的距离。一个基于原点的(25,75)的锁定约束比(23.47,73.02)更容易记住。
- 如果你有可能在距离约束和水平或垂直距离约束之间进行选择,则选择后者。水平和垂直比距离约束在计算上更节约资源。
- 一般来说,最好使用的约束(顺序)是:水平和垂直约束;水平和垂直长度约束;点对点相切(重点约束?)。如果可能,限制使用这些:一般长度约束;边缘到边缘相切;固定点到线约束;对称约束(对称约束不好吗?)
https://bookdown.org/johnqu1982/FFI/features.html
8.2 关于 body 的实践经验
- 保证 body 越简单越好。记住,它是单一连续实体。————这里强调连续性,所以我们土建项目会存在不连续的,不符合它默认规则,所以在官方软件中,不支持这种不连续的实体存在,需要另外新建body。我们用link分支那个软件允许不连续的实体。
- 应该到最后才做圆角和倒角。
- 如果特征具有对称性,考虑只建模它的一半,然后做镜像。
- 对同样的特征,用线性阵列或圆形阵列复制它,避免重复做同样的事情。————特征指的是二维草图约束,约束草图叫特征建模方式。意思是,不要在草图中绘制相同的图形,要在三维模型里阵列,而不是在二维草图里阵列。
- 用多个简单的小动作搭建出复杂的实体,而不要用复杂的动作来减少步骤。————简单的动作指的是什么动作?比如板上开孔,不要一次性将板和孔都画好,要先画好板,拉伸后再画孔的草图,再做开孔(减料的凹坑操作)。
8.3 关于 sketcher 的实践经验
- 让 sketch 保持简单。太多的约束会带来糟糕的表现。你要把一个复杂的 sketch 拆分成一系列简单的特性。
- 努力做到完全约束 sketch。——参数化里,这个是必须做到全约束的。
- 总是给外周特征绘制封闭的轮廓。否则,你的 sketch 无法拉伸出实体的凸台。————这个意思是只有封闭面域才能凸台操作,并且不能有多余的线存在,否则无法进行三维操作。当然,这里讲的都是part design的草图,在其他工作台中,线可以拉伸为面。
- 从计算角度讲,不是所有的约束都性能相等,有些约束占用更多的处理器资源。如果你可以在长度约束和水平/竖直距离约束之间做选择,后者更好。————这个讲约束所花费的资源,也就是优先级问题。有多种办法的时候,要选择资源最少的方式。水平和垂直约束是优先考虑使用的。
- 采用构造元素。添加几何元素总比添加约束容易。只作构造用的几何元素在添加时,就可以借助 Construction Mode 工具改变其存在状态。构造元素并不包含在最终的实体中。————这个讲利用辅助线的意思,利用辅助线达到减少约束的目的。
- 一般来讲,先添加几何约束,然后是尺寸约束,最后再定位 sketch。————几何约束指相等、垂直……;尺寸约束指水平长度、垂直长度、点到线的距离等标注约束;定位约束指点固定在线上、对称
- 如果可以的话,用定位约束把 sketch 的中心放在坐标原点。如果你的 sketch 不具有对称性,把它的一个角点固定在原点。或者选择具有圆整尺寸值的点来做定位(意思是一些距离尺寸到原点最好是整数值)。
- 最好用这些约束:水平、竖直、点与点相接。尽量少用用这些约束:长度、边与边相切、点固定在线上、对称。
- 可以在 sketch 里做圆角,但是这会增加复杂性。如果圆角并不少,那就不要这么做,稍后再把它们加在 body 上。————这个讲尽量在体里面做倒角,有时候做不了倒角,就用减料来做可能更好!!
9 参数表达式(重要)Expressions
在参数化过程中,输入的参数链接,所支持的公式(表达式)有加减乘除指数,三角函数,对数,指数,幂,绝对值,取整,最大最小值min、max,甚至条件表达式等
注意:FC中atan()等返回的是角度
,不是弧度
,excel的ATAN()返回的是弧度
。同样,sin()、cos()等,里面直接用角度
,不是弧度
。
excel里的PI()
在freecad里是pi
,见下表
https://wiki.freecad.org/Expressions
单位 | 描述 |
---|---|
e | Euler’s number |
pi | Pi |
+ | Addition |
- | Subtraction |
* | Multiplication |
/ | Floating point Division |
% | Remainder |
^ | Exponentiation |
acos(x) | Arc cosine -1 <= x <= 1 |
asin(x) | Arc sine -1 <= x <= 1 |
atan(x) | Arc tangent, return value in the range -90° < value < 90° all |
atan2(y; x) | Arc tangent of y/x accounting for quadrant, return value in the range -180° < value <= 180° all, the invalid input x = y = 0 returns 0 |
cos(x) | Cosine all——直接用角度,不是弧度,下同 |
cosh(x) | Hyperbolic cosine all |
sin(x) | Sine all |
sinh(x) | Hyperbolic sine all |
tan(x) | Tangent all, except x = n*90 with n = odd integer |
tanh(x) | Hyperbolic tangent all |
hypot(x; y) | Pythagorean addition (hypotenuse), e.g. hypot(4; 3) = 5 x and y >= 0 |
cath(x; y) | Given hypotenuse, and one side, returns other side of triangle, e.g. cath(5; 3) = 4 x >= y >= 0 |
exp(x) | Exponential function all |
log(x) | Natural logarithm x > 0 |
log10(x) | Common logarithm x > 0 |
pow(x; y) | Exponentiation all |
sqrt(x) | Square root x >= 0 |
cbrt(x) | introduced in version 0.21 Cubic root all |
abs(x) | Absolute value all |
ceil(x) | Ceiling function, smallest integer value greater than or equal to x all |
floor(x) | Floor function, largest integer value less than or equal to x all |
mod(x; y) | Remainder after dividing x by y, sign of result is that of the dividend. all, except y = 0 |
round(x) | Rounding to the nearest integer all |
trunc(x) | Truncation to the nearest integer in the direction of zero all |
average(a; b; c; …) | Average value of the arguments, same as sum(a; b; c; …) / count(a; b; c; …) all |
count(a; b; c; …) | Count of the arguments, typically used for cell ranges all |
max(a; b; c; …) | Maximum value of the arguments all |
min(a; b; c; …) | Minimum value of the arguments all |
stddev(a; b; c; …) | Standard deviation of the values of the arguments all |
sum(a; b; c; …) | Sum of the values of the arguments, typically used for cell ranges all |
== | equal to |
!= | not equal to |
> | greater than |
< | less than |
>= | greater than or equal to |
<= | less than or equal to |
10 blender
适合做渲染
请看bilibili上最好的教学视频:https://www.bilibili.com/video/BV14u41147YH
blend教学只需要看第3篇:材质 部分即可,因为新手对于blender这种bsdf的节点法材质处理方式很陌生,看一眼就会了。
blender里有尺寸约束建模方式(插件)但不大适合做土木工程
https://www.bilibili.com/video/BV1DA4y1Z7g9
11 草图验证、零件检查几何形状
https://wiki.freecad.org/Sketcher_ValidateSketch
https://wiki.freecad.org/Part_CheckGeometry
12 其他
12.1 渲染
最好的方式还是在FC里建模,导入blender里渲染,请看bilibili上最好的教学视频:https://www.bilibili.com/video/BV14u41147YH
blend教学只需要看第3篇:材质 部分即可,因为新手对于blender这种bsdf的节点法材质处理方式很陌生,看一眼就会了。
不推荐在FC中做深入渲染
【使用FreeCAD对模型渲染输出】 https://www.bilibili.com/video/BV1o54y1i7sj
【在FreeCAD中进行渲染】https://blog.csdn.net/Naisu_kun/article/details/123824048
12.2 创建局部坐标系
https://www.bilibili.com/video/BV1hy4y1x7N3
主要是为装配用的。
3D设计软件FreeCAD入门5 一个稍微复杂点的模型:新建一个基准面(datum plane)——工作平面 技巧(part design工作台)https://view.inews.qq.com/k/20220311A00U3X00
12.3 所有工作台
一目了然https://wiki.freecad.org/Manual:All_workbenches_at_a_glance/zh-cn
12.4 材料表
FreeCAD BOM(Bill Of Material)
A2A3A4中都带有这个功能https://wiki.freecad.org/Arch_Rebar_BOM
12.5 钢筋图
https://wiki.freecad.org/Reinforcement_Workbench
最后编辑:秦晓川 更新时间:2024-11-18 16:46
秦晓川2023-05-28 01:53:11
1#