ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

FreeCAD教程(一)

FreeCAD教程(一) 第1章 CAD 与几何建模概论本章摘要本章从 CAD/CAM/CAE 三端协同讲起梳理建模范式七代演进对比主流几何内核Parasolid / ACIS / CGM / OCCT辨析精确几何B-Rep与离散几何网格的本质差异最后为 FreeCAD 在开源 CAD 生态中定位。读完你将理解为什么 STL 无法无损还原为实体、布尔运算为何偶发失败以及 FreeCAD 适合做什么、不适合做什么。 学习目标1. 说清 CAD、CAM、CAE 三者各自解决什么问题以及数据在它们之间如何流动。按时间顺序复述建模范式的七次演进并说出每一代解决了上一代什么痛点。了解主流商用几何内核Parasolid / ACIS / CGM与开源内核 OCCT 的来源与能力差距。区分“精确几何B-Rep”与“离散几何网格”理解为什么 STL 不能无损逆向为实体。在开源 CAD 生态中给 FreeCAD 定位知道什么活该交给 OpenSCAD / Blender / SolveSpace。1.1 CAD/CAM/CAE 的边界与协同概念讲解三个词经常被混为一谈其实它们是产品开发链条上三个先后相接的环节缩写全称回答的问题输出物CADComputer-AidedDesign这个东西长什么样、尺寸多少三维模型、工程图、BOMCAEComputer-AidedEngineering这个东西扛不扛得住应力云图、变形量、模态、温度场CAMComputer-AidedManufacturing这个东西怎么做出来刀具路径、G 代码、加工工时数据链条通常是单向的CAD 模型 → 网格划分 → CAE 求解 → 反馈改 CAD → CAM 编程 → 机床。CAE 和 CAM 都是 CAD 模型的“下游消费者”这就是为什么上游模型的质量有没有微小面、缝隙、非流形结构会直接决定下游能不能跑通——一个 0.001 mm 的缝隙在 CAD 里看不出来到 CAM 生成刀路时就会报“轮廓不封闭”。。FreeCAD 的特殊之处一套软件通吃三端。CAD 端Part、PartDesign、Sketcher、Draft、Assembly、Surface、BIMCAE 端FEM结构静力、模态、热、流体底层调用 CalculiX / Elmer网格用 Gmsh 或 NetgenCAM 端CAM原 Path生成刀路与 G 代码支持后处理器出图端TechDraw原 Drawing 已废弃这在商业软件里往往要买三套授权在 FreeCAD 里是同一个.FCStd文档内的不同对象。三端共用同一份几何数据改了 CAD 模型FEM 分析和 CAM 刀路都可以重算——这是 FreeCAD 最被低估的价值。配图说明功能示意图绘制一条横向数据流水线从左到右五个方框——“草图/Sketcher → 三维模型/Part·PartDesign → 分支①FEM 有限元分析 → 分支②CAM 刀路 → 分支③TechDraw 工程图”。三个分支用不同颜色并在分支处标注“共享同一 Shape 数据”。底部加一条虚线回箭头从 FEM 指回 CAD标注“分析结果反馈迭代”。**动手前先确保 FreeCAD 1.1 已正确安装。官方下载渠道是https://www.freecad.org/downloads.php各平台也可用包管理器安装Windows从官网下载安装包或winget install FreeCAD.FreeCAD。macOS官网提供.dmg也可用 Homebrewbrew install --cask freecad。LinuxDebian/Ubuntu 用sudo apt install freecadFedora 用sudo dnf install freecadArch 系用sudo pacman -S freecad。安装后首次启动重点检查两处工作台列表点开右上角工作台切换下拉框应能看到BIM与CAM而不是旧名字 Arch 与 Path。若只看到 Arch/Path说明装成了旧版本请升级到 1.1。Python 控制台菜单视图 → 面板 → Python 控制台确认底部出现可交互的 Python 提示符后续脚本示例都要用到它。后续章节会用到若干第三方插件如拓扑命名修复、渲染、逆向工程辅助等统一通过工具 → Addon Manager安装打开后搜索插件名点安装重启 FreeCAD 即可生效。建议现在就装好避免后面章节演示时中断。。操作步骤在一个文档里体验三端协同启动 FreeCAD 1.1菜单文件 → 新建CtrlN。工作台下拉框切到Part菜单Part → 基本体 → 立方体得到默认 10×10×10 mm 的 Box。在模型树选中 Box把工作台切到FEM点分析容器Analysis container——你会看到 FEM 直接引用了刚才那个 Box不需要导出导入。再把工作台切到CAM点作业Job在弹出的模型选择框里同样能看到那个 Box。最后切到TechDraw插入默认页面→ 选中 Box →插入视图得到工程图视图。一个模型四个工作台零次导出。参数说明本节涉及参数位置默认值说明Length / Width / HeightBox 属性面板10 mm立方体三向尺寸可填表达式单位制编辑 → 首选项 → 常规 → 单位标准mm/kg/s/degree影响全局输入解析建议全程 mm文档保存格式.FCStd—本质是 zip 包内含 BRep 文件与 XML 参数1.2 建模范式演进概念讲解CAD 六十年的历史本质是“计算机能表达多少设计意图”的不断上升。每一代都因为上一代的某个具体痛点而诞生。二维绘图1960sSketchpad / 早期 AutoCAD计算机只是“电子图板”画的是线段和圆弧的集合。痛点三视图之间没有关联改了主视图俯视图不会自动跟着变全靠人工同步极易出错。错。线框建模1970s进入三维但只存顶点和棱边。解决能从任意角度看形。痛点没有“面”的信息一个线框可以有多种解释著名的“线框二义性”无法算体积、无法消隐、无法判断内外。曲面建模1970s–80s汽车/航空驱动增加了曲面片Coons 片、Bezier、B-Spline。解决能表达车身、机翼这类自由形。痛点曲面之间是散的一堆面不一定围成封闭空间仍然不是“实体”无法直接计算质量、无法可靠布尔。实体建模1980sCSG 与 B-Rep 之争明确区分“里”和“外”物体是有体积、有质量的。解决可以算重量、做布尔、做干涉检查。痛点早期实体建模是“哑几何dumb solid”——改一个孔的直径得删了重做设计意图没被记录。参数化特征建模1987 Pro/ENGINEER 起引入“特征凸台、孔、圆角”“约束草图”“历史树”。解决改个参数整棵树重算设计意图被固化成可重放的历史。痛点历史树是双刃剑——引用了某个面的圆角一旦上游改动导致那个面的编号变了圆角就“飞了”这就是第 3 章要讲的拓扑命名问题另外拿到别人的 STEP 文件时没有历史树什么也改不了。直接建模2000sSpaceClaim / Synchronous Technology直接推拉面、拖动边不依赖历史。解决无历史的导入模型也能改概念阶段快。痛点改完之后没有参数记录无法“把孔径从 8 改回 6”可重复性差。生成式/优化设计2010s 至今给定载荷、约束、材料和目标最轻/最刚算法生成拓扑优化结果。解决突破人的想象力边界。痛点输出多为网格需要重构成可制造的 B-Rep且强依赖仿真设定的正确性。FreeCAD 处在哪里FreeCAD 1.1 的主战场是第 5 代参数化特征建模PartDesignSketcher同时提供第 4 代的直接实体运算Part的布尔/圆角第 3 代的曲面工具Surface第 2 代的线框Draft第 7 代则通过 FEM 的拓扑优化插件部分覆盖。它是少见的每一代都能玩一点的软件。配图说明功能示意图一张七段的横向时间轴标注年代与代表软件每段下方用一句话写解决了什么/留下什么痛点。用醒目色块标出第 5 段参数化特征建模并画一根引出线指向 FreeCAD 图标注明FreeCAD 主战场。1.3 几何内核概念讲解几何内核geometric modeling kernel是 CAD 软件的“发动机”负责曲线曲面的数学表达、求交、布尔运算、圆角倒角、容差管理。它决定了软件能力的上限而界面只是“车壳”。内核出身用它的软件特点Parasolid剑桥 / 现属 SiemensNX、Solid Edge、SolidWorks部分、Onshape、Fusion 360部分业界公认布尔与圆角最稳健容差策略保守商业授权昂贵ACISSpatialDassault 旗下AutoCAD、Inventor早期、BricsCAD老牌接口开放度高.sat格式来源于它CGMDassault SystèmesCATIA、SolidWorks现代版本面向复杂曲面与大装配A 级曲面能力强OCCTOpen CASCADE Technology源自 Matra Datavision 的 Euclid 项目1999 年开源FreeCAD、KiCad3D、Salome、CadQuery、BRL-CAD部分唯一成熟的开源 B-Rep 内核功能覆盖全但布尔与圆角在极端情况下鲁棒性弱于 Parasolid能力差异的来源不在于开源写得差而在于三点投入规模Parasolid 有数百人年的持续鲁棒性调优尤其是针对病态输入的容错分支。容差策略OCCT 采用每个拓扑实体各自带容差的局部容差模型第 3 章详述灵活但也更容易积累不一致Parasolid 采用更严格的统一容差。测试语料商业内核有海量真实工业模型作为回归测试集。这对你意味着什么在 FreeCAD 里做布尔失败时往往不是你操作错了而是撞上了 OCCT 的鲁棒性边界。实用对策把两个形体做出明显的过切/重叠不要让面刚好共面、刚好相切失败率会显著下降。这是 FreeCAD 用户必须养成的肌肉记忆。实际案例故意制造一个易失败的布尔Part → 基本体 → 立方体Length20、Width20、Height20。再建一个立方体Length10、Width10、Height20Placement 的 Position 设为 (5, 5, 0)。此时第二个盒子的顶面和底面恰好与第一个盒子共面。全选两者Part → 布尔运算 → 切割Cut。多数情况下能成功但结果面上可能出现多余的分割边。改良做法把第二个盒子的 Height 改成30Position 的 Z 改成−5让它上下都穿出去 5 mm再做切割。对结果执行Part → 精炼形状Refine shape多余边被合并。结论共面/相切是布尔运算的高危区用穿透 5–10 mm的余量来规避。1.4 精确几何 vs 离散几何概念讲解这是初学者最容易踩的坑必须一次讲透。**精确几何B-Rep圆柱面就存“轴线 半径 参数范围”这几个数这几个数不管你放大多少倍它永远是完美的圆。可以精确求交、精确算体积、精确标注尺寸。FreeCAD 的Part、PartDesign、Sketcher、Surface、BIM全部产出精确几何。离散几何三角网格圆柱面被切成几百个三角面片来近似。放大看就是多边形。FreeCAD 的Mesh、Points工作台以及 STL/OBJ/3MF 文件都是离散几何。维度B-Rep 精确几何三角网格存储数学方程 拓扑关系顶点表 三角形索引表精度解析精确由弦高偏差决定的近似文件格式STEP / IGES / BREP / FCStdSTL / OBJ / PLY / 3MF能否精确倒圆角能不能只能细分近似布尔运算稳健性依赖内核快但易产生非流形典型用途设计、制造、装配3D 打印、渲染、扫描、仿真网格互转代价B-Rep → 网格易有损这叫离散化/镶嵌tessellation。FreeCAD 中导出 STL 时可设置精度。信息损失发生在这里圆柱的我是圆柱这条元信息被永久丢弃只剩一圈平面片。网格 → B-Rep难且不可能真正还原这叫逆向工程。为什么 STL 不能变回实体关键在于信息已经被销毁了。STL 里只有一堆三角形它不知道这 240 个三角形原本属于一个圆柱面还是真的是 240 个平面原来的半径是 20.000 还是 19.998哪条边原本是圆角的切线边界。FreeCAD 确实有Part → 从网格创建形状Shape from mesh但它做的只是把每个三角形转成一个平面 Face再缝合成 She结果是一个有几百上千个微小平面的“伪实体”实体文件体积暴涨操作卡顿无法倒圆角每条边都是折线无法标注“直径 40”因为根本没有圆没有圆布尔运算极易失败。要真正把扫描数据变回可编辑实体需要的是重新建模re-modeling测量网格的关键尺寸然后在 Sketcher 里重画。FreeCAD 的ReverseEngineering工作台提供了部分辅助如拟合平面、圆柱、球面到点云但仍需大量人工判断。配图说明功能示意图左左侧画一个光滑圆柱标注“B-Rep轴线半径高度3 个数”3 个数旁边放放大镜显示放大后右侧画同样的圆柱但由 36 段平面构成标注“网格72 顶点 140 三角形” 三角形放大镜显示明显的折角。中间画双向箭头向右箭头标绿色容易有损“向左箭头标红色不可逆信息已销毁”。操作步骤亲手验证一次信息损失Part → 基本体 → 圆柱体Radius20、Height50。选中它属性面板里能看到 Radius20.00。菜单文件 → 导出格式选STL Mesh (*.stl)保存为cyl.stl。导出前在编辑 → 首选项 → 导入导出 → 网格格式里可看到镶嵌参数见下表。文件 → 导入刚才的cyl.stl得到一个 Mesh 对象。切到Mesh工作台网格 → 分析 → 评估与修复网格可看到面片数。选中该 Mesh切到Part工作台Part → 从网格创建形状容差用默认 0.1。再Part → 转换为实体。现在选中结果看属性——没有 Radius 参数了点选一个侧面状态栏显示的是 “Plane”平面而不是 “Cylinder”。试着对它执行Part → 圆角你会发现要选几十条边且结果多半失败。参数说明镶嵌与逆向参数位置默认值取值范围影响表面偏差 / Surface deviation首选项 → 导入导出 → 网格格式0.10 mm0.001–1 mm弦高误差。越小三角面越多、文件越大、越接近真实曲面角度偏差 / Angular deviation同上30°5°–60°相邻面法向最大夹角。曲率大处细分依据Sewing tolerance从网格创建形状命令对话框0.10 mm0缝合相邻三角面的容差太小会缝不上留下 Shell 破洞经验值FDM 3D 打印导出 STL表面偏差取0.05 mm、角度偏差20°足够光固化打印取0.01 mm。不要盲目设 0.001文件会大到无法处理。1.5 FreeCAD 在开源 CAD 生态的坐标**概念讲开源三维软件不是一个赛道硬比“谁更强”没有意义。没有意义。看这张定位表软件核心范式几何类型最适合不适合FreeCAD参数化特征 GUI PythonB-RepOCCT机械零件、装配体、工程图、BIM、CAM 全流程有机建模、影视动画、超大装配OpenSCAD纯代码 CSGCSG → 网格程序化生成、参数化家族件、可版本控制的设计圆角/拔模/工程图/交互BRL-CADCSG 为主CSG 射线追踪弹道/辐射分析、军用仿真历史极悠久现代交互式产品设计SolveSpace参数化 强约束求解B-Rep自研 NURBS小型机构、连杆运动分析、极轻量复杂零件、大模型、生态扩展FreeCAD 的核心竞争力在于三点全流程闭环设计→分析→加工→出图在一个文档里完成其他几个都做不到。B-Rep 精确几何这是能出图纸、能进机床的前提Blender 与 OpenSCAD 都不具备。Python 全暴露FreeCAD 的每一个命令都可以被 Python 调用可以写脚本批量生成零件也可以写自己的工作台。这一点甚至优于多数商业软件。FreeCAD 的短板要坦诚承认大装配性能、复杂曲面A 级曲面质量、布尔鲁棒性、以及历史上臭名昭著的拓扑命名问题1.0 已引入 ElementMap 方案大幅缓解见第 3.6 配图说明界面截图FreeCAD 1.1 主界面全景截图用编号标注框标出六个区域——①工作台切换下拉框展开状态能看到 Part、PartDesign、Sketcher、BIM、CAM、TechDraw、FEM 等真实名称②模型树/组合视图 ③属性面板 ④3D 视图区 ⑤Python 控制台 ⑥状态栏。特别在下拉框中用红框圈出 BIM 与 CAM旁注“不再是 Arch / Path”。Path。❓ 常见问题解答Q1网上教程说用 Arch 工作台建墙、用 Path 工作台编程、用 Drawing 出图我的 1.1 里找不到怎么办A这些都是旧名字。Arch 已完整合并进BIM工作台墙、楼板、结构构件等命令都在 BIM 里Path 已更名为CAM命令逻辑基本不变Drawing 已彻底废弃用TechDraw替代TechDraw 功能远超 Drawing。另外 Raytracing 和 Image 工作台已从主线移除渲染需求请通过 Addon Manager 安装第三方渲染插件。Q2我应该学 FreeCAD 还是 OpenSCA如果你的零件需要圆角、拔模、工程图、装配、加工**学 FreeCAD。如果你要做的是“给定 N 个参数自动生成一族形状”、且形状以方块和圆柱的布尔为主、且希望用 Git 管理OpenSCAD 更快。FreeCAD 里还有OpenSCAD 工作台可以导入.scad两者不是二选一。不是二选一。**Q3我从网上下载了 STL 模型能在 FreeCAD 里改尺A不能“改尺寸”只能“改网格”。STL 里没有尺寸参数见 1.4。可行的路径有两条① 在 Mesh 工作台做整体缩放、切割等网格级操作② 用 Measure 工具量出关键尺寸在 Sketcher 里重新建模。绝大多数情况下第二条路更快。二条路更快。Q4为什么我的布尔运算总是失败或者结果很奇怪A优先检查三点① 两个形体是否有恰好共面/相切的地方改成穿透 5–10 mm② 参与运算的形体是否本身有效第 3 章的 Check Geometry③ 是否有极小尺寸特征小于 0.01 mm 的边。这是 OCCT 内核鲁棒性的现实边界不是你的错。Q5FreeCAD 能做 CAE 仿真结果可信吗AFEM 工作台底层调用的 CalculiX 和 Elmer 都是成熟的开源求解器算法本身可信。风险在于用户的边界条件设定和网格质量——这在任何仿真软件里都一样。用于教学、趋势判断、方案对比很合适用于安全关键件认证需要与实验或商业软件交叉验证。 本章小结时服务三端。建模范式七代演进二维图 → 线框 → 曲面 → 实体 →参数化特征→ 直接建模 → 生成式。FreeCAD 主战场是第五代。几何内核是 CAD 的发动机。FreeCAD 用开源的OCCT功能覆盖全面但在共面/相切等病态输入下的鲁棒性弱于 Parasolid需要用建模习精确几何B-Rep存方程离散几何网格存三角形。B-Rep→网格容易且有损网格→B-Rep 本质上不可还原因为“我是圆柱”这条信息已被销毁。信息已被销毁。生态定位FreeCAD 胜在全流程 精确几何 Python 全开放OpenSCAD 胜在程序化Blender 胜在造型渲染SolveSpace 胜在轻量约束求解。术语纪律BIM非 Arch、CAM非 Path、TechDraw非 Draw### ✏️ 练习题哪个及理由。把上题中 0.5 mm 精度的 ST用「从网格创建形状 → 转换为实体」变回 Part 对象Part 对象然后尝试对它执行 Part → 圆角。记录失败信息并用一句话解释为什么会失败。打开一个新文档在同一文档中依次创建一个 Part 立方体、一个 FEM 分析容器、一个 CAM 作业、一个 TechDraw 页面。截图模型树说明这四者是如何共享同一份几何数据的。### 参考答案与提示参考答案与提示第 1 题0.5 mm 表面偏差导出的 STL 面片数明显更少、文件更小圆柱侧面呈明显多边形折角0.02 mm 的面片数多出数倍、文件更大外观更接近光滑圆柱。FDM 打印建议选0.5 mmFDM 层高通常在 0.2 mm 量级0.5 mm 的弦高误差已被层纹掩盖肉眼几乎不可辨且文件小、切片快。若追求更高表面质量可降到 0.2 mm但没必要用 0.02 mm——那会让文件大到切片卡顿收益却微乎其微。第 2 题导入 0.5 mm 精度用「从网格创建形状 → 转换为实体」得到的对象实体得到的对象执行 Part → 圆角时通常需要手动框选几十条折线边且结果多半失败或生成畸形面。根本原因在于**网格面片是平面三角形原始圆柱的「我是圆柱、半径 20」这条解析曲率信息这条解析曲率信息在导出 STL 转换回来的只是由几百个平面 Face 拼成的「伪实体」拼成的伪实体每条边都是折线而非圆弧。圆角命令需要基于解析曲率如圆柱面、圆弧边面对一堆平面折线边时既无法识别「该圆哪条边」别该圆哪条边也无法生成光滑过渡面于是失败。t第 3 题在模型树中Part 立方体是几何源头FEM 分析容器、CAM 作业、TechDraw 页面都直接引用同一个 Box 对象而不是各自复制一份数据。修改 Box 的尺寸后FEM 网格、CAM 刀路、TechDraw 视图这正是 FreeCAD「一套软件通吃三端」的体现通吃三端的体现。截图时重点展示模型树中四个节点都挂在同一个文档下且 FEM/CAM/TechDraw 的引用对象指向同一个 Part 立方体说明这四者是如何共享同一份几何数据的。具体来说在模型树中FEM 分析容器、CAM 作业、TechDraw 页面均引用同一个 Part 立方体对象而不是各自持有独立副本。修改 Box 的尺寸后三端自动更新无需重新导入导出FEM 网格会按新尺寸重新划分CAM 刀路会沿新轮廓重新生成TechDraw 视图也会同步刷新为新尺寸的投影。这正是 FreeCAD一套软件通吃三端的核心价值——同一份几何数据三端共享改动一处处处联动。 参考资料与延伸阅读官方文档与社区FreeCAD 官方文档https://wiki.freecad.org/ —— 遇到工作台命令、参数含义、脚本 API 疑问时先查这里覆盖面最全。FreeCAD 官方论坛https://forum.freecad.org/ —— 当文档查不到、或遇到具体报错与工作流问题时在这里搜索或提问社区响应快。几何内核文档Open CASCADE Technology 官方文档https://dev.opencascade.org/doc/overview/html/ —— 想深入理解 OCCT 的容差模型、布尔与圆角算法原理时查阅遇到布尔失败重点看其中的容差Tolerance与拓扑Topology章节。延伸阅读商业内核白皮书Parasolid 官方白皮书Siemens 官网「Parasolid」产品页可下载《Parasolid Overview》白皮书 —— 想了解业界公认最稳健的布尔/圆角内核如何设计容差与鲁棒性策略时阅读可与 OCCT 对照。ACIS 官方白皮书SpatialDassault官网「ACIS」产品页可下载《ACIS 3D Modeling Kernel》白皮书 —— 想了解老牌内核的架构、.sat格式与开放接口时阅读适合做内核选型对比。一句话选读指南遇到布尔失败查 OCCT 文档的容差章节想对比商业内核的鲁棒性设计读 Parasolid 白皮书想了解内核开放接口与格式读 ACIS 白皮书日常操作问题优先查 FreeCAD 官方文档与论坛。。
返回列表