znlgis 博客

GIS开发与技术分享 — GDAL · GeoServer · PostGIS · QGIS · OpenLayers · Cesium · FreeCAD · NPOI

第03章:界面、工作台与基础操作

1. FreeCAD 界面构成

FreeCAD 的主界面通常由以下区域组成:

  • 菜单栏:文件、编辑、视图、工具、宏、窗口、帮助以及当前工作台专属菜单。
  • 工具栏:显示当前工作台的命令按钮,可以在视图中自定义显示。
  • 工作台选择器:切换 PartDesign、Part、Sketcher、Draft、TechDraw、FEM 等环境。
  • 3D 视图:显示模型、草图、坐标轴、网格和选择高亮。
  • 组合视图:包含模型树和任务面板,是管理对象与执行命令的核心区域。
  • 属性编辑器:分为 Data 和 View 两类属性,前者影响几何和参数,后者影响显示。
  • Python 控制台与报告视图:显示命令、输出、警告、错误和可复制的脚本操作。

  • 拓扑命名指示器(1.1.0+):TNP(拓扑命名问题)是参数化建模中的历史性痛点——当上游特征的面/边编号因编辑而改变时,下游特征的引用可能断裂,导致模型重建失败。1.1.0 引入了拓扑命名缓解算法,并在模型树中通过带色圆点标记每个元素的稳定性:
    • 绿色圆点:拓扑引用稳定,模型重建后保持不变。
    • 黄色圆点:引用部分稳定,建议用户核实。
    • 红色圆点:引用可能因模型修改而断裂,需要手动修复关联。 该指示器让用户在编辑早期特征前就能预判影响范围,是告别”不敢改早期特征”时代的关键里程碑。
  • 三点光照系统(1.1.0+):3D 视图的默认光照从单一方向光源升级为三点光照系统——主光源提供主要照明和方向感、补光减轻暗部阴影、背光沿轮廓投射以增强物体与背景的分离度。三点光照无需用户干预即可显著提升模型的立体感和细节可读性,对复杂装配体和有机曲面效果尤为明显。用户可在”编辑→首选项→显示→3D 视图”中调整各光源的强度和颜色。

  • 统一 Caliper 测量工具(1.1.0+):此前 FreeCAD 的测量功能分散在多个工作台中——Part 工作台有线性/角度测量,Draft 工作台有尺寸标注,Manipulator 工作台有专用测量工具。1.1.0 引入统一的 Caliper(卡尺)测量命令,整合所有几何测量(距离、角度、半径/直径、面积、中心距)为单一工具入口。测量结果以标注形式直接显示在 3D 视图中,支持多组并存,标注数值可直接选中复制用于表达式输入。

理解界面时要记住:FreeCAD 的大多数按钮最终都会创建或修改文档对象,对象的属性又可以被脚本访问。

2. 工作台的概念

工作台是命令集合和界面布局,不是独立文件格式。一个文档中可以同时存在 PartDesign Body、Draft 线、TechDraw 页面、Spreadsheet 表格和 FEM 分析对象。切换工作台不会切换文件,只是切换可用命令。

常用工作台:

  • Sketcher:绘制约束草图。
  • PartDesign:基于 Body 的特征建模。
  • Part:几何体、布尔、曲线曲面和拓扑操作。
  • Draft:二维绘图、捕捉、阵列、标注。
  • TechDraw:工程图视图、剖视、尺寸和图框。
  • Assembly:装配零部件和约束位置关系。
  • BIM:建筑信息模型与 IFC 工作流。
  • CAM:刀具路径与后处理。
  • FEM:有限元前处理、求解与后处理。
  • Mesh:网格导入、修复和转换。

从 FreeCAD 1.1.0 起,Assembly 装配体工作台已成为内置核心工作台,无需额外安装。它支持自底向上和自顶向下的装配方式,提供刚体约束、机构运动仿真和爆炸视图等功能。

3. 文档、对象与模型树

FreeCAD 文档是对象容器。每个对象都有名称、标签、属性和可能的视图表示。模型树显示对象依赖和层次,例如:

  • PartDesign 中 Body 包含 Origin、Sketch、Pad、Pocket 等特征。
  • TechDraw 页面包含模板、视图、尺寸。
  • Assembly 中装配对象引用或包含多个零部件。
  • Spreadsheet 可被多个对象表达式引用。

对象的 Name 是内部唯一标识,通常不建议随意改变;Label 是用户可读名称,可以中文命名。脚本和表达式更稳定地引用内部名称,但团队协作时应给 Label 设置清晰含义。

4. 视图导航

基本导航包括旋转、平移、缩放、框选、适合窗口和标准视图。建议熟练掌握:

  • 正视、俯视、左视、轴测视图。
  • 选择面、边、点时的高亮反馈。
  • 使用空格隐藏/显示对象。
  • 透明显示或切换线框以查看内部结构。
  • 通过“视图 / 可见性”隔离复杂模型。

很多建模错误来自选错面、草图建在错误平面、使用了临时拓扑边作为引用。操作前应确认视角和选择对象。

5. 属性编辑器

属性分为两类:

  • Data 属性:影响对象计算,例如长度、半径、角度、Placement、约束、表达式。
  • View 属性:影响显示,例如颜色、透明度、线宽、显示模式。

属性编辑器是学习 FreeCAD 的重要入口。点击一个对象,观察它有哪些属性;执行一次命令后,再观察新增对象和属性变化。这样能建立“按钮命令”和“数据模型”之间的联系。

6. 任务面板

很多命令不会立即完成,而是打开任务面板,例如创建草图、编辑 Pad、设置 TechDraw 视图、定义 FEM 约束。任务面板通常有“确定/取消/应用”按钮。未关闭任务面板时,其他命令可能被锁定。

建议习惯:完成一个任务后确认关闭;如果命令异常,先检查任务面板是否仍在编辑状态。

7. 报告视图与 Python 控制台

报告视图显示警告和错误。模型失败时不要只看 3D 视图,应打开报告视图查看:

  • 约束求解失败。
  • 布尔运算失败。
  • 拓扑命名引用丢失。
  • 导入文件格式错误。
  • Python 宏异常堆栈。

Python 控制台会记录很多 GUI 操作对应的 API 调用。学习自动化时,可以先手动执行命令,再观察控制台输出,逐步整理为宏。

8. 基础文件操作

常见操作:

  • 新建文档:一个项目可包含多个文档,但初学者建议每次只打开必要文档。
  • 保存 FCStd:保留参数化历史。
  • 导入:把外部格式作为对象导入当前文档。
  • 打开:直接打开 FreeCAD 或支持格式文件。
  • 导出:选择对象后导出 STEP、STL、DXF、SVG、PDF 等。

导出前务必确认选择对象。FreeCAD 常按当前选择导出,未选择或选错对象会导致结果为空或多出辅助几何。

9. 1.1.x 界面改进

FreeCAD 1.1.0 在界面上进行了大量改进,以下为对日常操作影响最大的几项。

9.1 统一 Caliper 测量工具

旧版本中,测量距离、角度、弧长、面积等需在不同工作台中寻找对应命令,且测量结果为一次性显示,无法保存。1.1.0 引入的 Caliper(卡尺)工具整合了所有测量功能:

  • 统一入口:在全局工具栏或”工具”菜单中通过一个图标访问所有测量模式。
  • 模式切换:距离、角度、半径/直径、面积、中心距等可在任务面板中切换,无需退出重选命令。
  • 持久标注:测量结果以标注形式保留在 3D 视图中,可多组并存,方便对比。
  • 数值复制:标注中显示的值可直接选中复制,用于表达式或参数输入。

9.2 拖拽器交互改进

Transform(变换)拖拽器和 Manipulator 工具的交互得到显著优化:

  • 轴锁定:拖拽过程中可按 Tab 键锁定当前轴向,避免误移。
  • 增量捕捉:支持设置平移和旋转的步进值,实现精确手动定位。
  • 捕捉反馈:拖拽器箭头和弧线在鼠标悬停时加粗高亮,靠近捕捉点时自动吸附。
  • 数值输入:拖拽过程中可在任务面板中直接键入精确数值,兼顾直观操作与精确控制。

9.3 选择与高亮改进

1.1.0 对 3D 视图中的选择反馈进行了重新设计:

  • 预选高亮:鼠标悬停在面、边、顶点上时,高亮颜色更鲜艳且边缘更清晰,减少误选。
  • 选中反馈:被选中元素的轮廓线加粗且颜色可自定义(编辑→首选项→显示→颜色),在多对象操作时易于区分。
  • 穿透选择:在密集区域点击时,系统弹出候选列表供精确选择遮挡面后的几何元素。

9.4 状态栏增强

状态栏从简单的坐标显示升级为上下文感知的信息栏:

  • 动态工具提示:鼠标悬停于工具栏按钮时,状态栏显示该命令的详细说明和当前可用快捷键。
  • 测量实时反馈:使用 Caliper 工具时,状态栏同步显示当前测量值,视线无需在 3D 视图与任务面板间频繁切换。
  • 求解器状态:草图编辑时,状态栏显示约束求解器的实时状态(完全约束/欠约束/过约束)及自由度数量。
  • 进度指示:涉及计算量大的操作(如 FEM 网格划分、CAM 刀具路径生成)时,状态栏显示进度条,避免误以为程序卡死。