3. 几何体创建与编辑:基本几何体、布尔运算与属性设置

做杂散光分析,说白了就是跟光线较劲。而光线要跟你的系统较劲,首先得有个「舞台」——也就是几何体。FRED 里的几何体,就是光线的战场。你建模建得准,分析结果才靠谱。我见过不少新手,一上来就急着跑仿真,结果几何体画得歪七扭八,最后查了半天,发现是圆柱半径输错了。嗯,咱们先把基础打牢。

3.1 基本几何体:从零搭积木

FRED 提供了几种最常用的基本几何体。我个人习惯把它们分成两类:一类是「封闭体」,比如球、立方体;另一类是「曲面片」,比如平面、圆柱面。封闭体用来模拟透镜、棱镜、机械结构;曲面片则用来定义反射镜、分光镜或者探测器表面。

创建几何体的入口在菜单栏的 Create → Geometry → Primitive。你会看到下面这些选项:

几何体 默认参数 典型用途
球体 (Sphere) 半径、中心坐标 透镜表面、积分球、光源模型
立方体 (Box) 长、宽、高、中心坐标 机械挡板、探测器外壳、棱镜
圆柱体 (Cylinder) 半径、高度、轴向 镜筒、光阑、透镜毛坯
圆锥体 (Cone) 底部半径、顶部半径、高度 遮光罩、锥形光路、非球面基底
平面 (Plane) 宽度、高度、法线方向 反射镜、分光镜、虚拟探测器

创建时,FRED 会弹出一个属性对话框。这里有个小技巧:先别急着点 OK。我一般会先在对话框里把名字改掉,比如把默认的 "Sphere1" 改成 "Main_Lens"。不然等场景里堆了十几个几何体,你根本分不清谁是谁。

我的习惯:命名规则用「功能_序号」的格式,比如 "Baffle_01"、"Detector_Surface"。这样在后期追光线路径时,一眼就能看出哪个元件在捣乱。

3.2 布尔运算:把积木拼起来

基本几何体太「规矩」了。实际的光机结构哪有那么方方正正?比如一个带通光孔的挡板,或者一个被切掉一角的棱镜。这时候就需要布尔运算了。

FRED 的布尔运算在 Create → Geometry → Boolean 里,支持三种操作:

  • Union(并集):把两个几何体粘在一起。我做过一个双透镜胶合件,就是用两个球体的并集来模拟的。
  • Difference(差集):从一个几何体里挖掉另一个。最常见的用法——在挡板上挖个圆孔。
  • Intersection(交集):只保留两个几何体重叠的部分。这个用得少,但在某些非球面建模里很管用。

操作步骤很简单:选中两个几何体(按住 Ctrl 多选),然后点对应的布尔命令。FRED 会生成一个新的几何体,原来的两个会被保留(默认隐藏)。

我曾经踩过的坑:布尔运算之后,新几何体的表面属性会丢失。它默认继承第一个被选中的几何体的属性。所以做完布尔运算,一定要手动检查一下表面光学属性。我有一次忘了检查,结果差集挖出来的孔边缘还是反射属性,光线直接穿模了。

另外,布尔运算对几何体的拓扑结构有要求。如果两个几何体只是「点接触」或者「线接触」,FRED 可能会报错。尽量让它们有体积上的重叠,运算才稳定。

3.3 几何体属性:材料与表面

几何体建好了,它只是个「形状」。要让光线跟它发生交互,你得告诉 FRED 两件事:它是什么材料做的?表面长什么样?

选中一个几何体,右键 → Properties,你会看到两个核心选项卡:

3.3.1 材料属性 (Material)

材料决定了光线在几何体内部怎么走。比如玻璃的折射率、吸收系数。FRED 的材料库在 Tools → Material Catalog 里,常用的光学玻璃(BK7、SF11、Fused Silica)都有。

设置材料时,注意这几点:

  • 折射率模型:FRED 默认用 Sellmeier 公式。如果你用的是特殊材料,可以手动输入系数。
  • 吸收系数:对于几毫米厚的透镜,吸收可以忽略。但对于几十厘米长的棱镜或者光纤,吸收必须算进去。
  • 散射体:如果你模拟的是毛玻璃或者漫射体,可以在材料里加体散射属性。
关键概念:材料属性只对「透射」光线有效。如果光线在表面发生了反射,它根本不会进入材料内部。所以反射镜不需要设材料,只需要设表面属性。

3.3.2 表面属性 (Surface Property)

表面属性决定了光线在几何体表面的行为。这是杂散光分析里最关键的设置之一。FRED 的表面属性库在 Tools → Surface Catalog。

常用的表面类型:

表面类型 典型参数 应用场景
Perfect Mirror 反射率 100% 理想反射镜,用于初步验证
AR Coating 波长、入射角、反射率曲线 透镜增透膜,减少鬼像
Lambertian 反射率/透射率 漫反射表面,如内壁涂黑
BSDF 数据 导入实测 .bsdf 文件 真实表面散射特性,最准确

设置表面属性时,我建议你养成一个习惯:把「吸收」表面单独建一个目录。比如所有机械内壁都用 "Black_Paint_Absorb",所有透镜表面都用 "AR_Coating_Visible"。这样后期修改参数时,改一个目录,所有关联的表面自动更新。

3.4 知识结构图:几何体创建与编辑的核心逻辑

下面这张图梳理了本章的核心脉络。你可以把它当作一个操作检查清单:

几何体创建与编辑核心流程 基本几何体 布尔运算 属性设置 目录管理 球 / 立方体 / 圆柱 圆锥 / 平面 命名规范:功能_序号 并集 / 差集 / 交集 注意拓扑重叠 检查表面属性继承 材料 + 表面属性 折射率 / 吸收 / BSDF 反射 / 透射 / 散射 目录分类 按功能分组 批量修改 可仿真的光学模型 核心原则:先形状,后属性,再管理。每一步都直接影响杂散光分析的准确性。 命名规范 + 目录分类 = 后期调试效率提升 50% 以上。

3.5 实战建议:从建模到仿真的第一步

说了这么多,我总结几条实战中容易忽略的点:

  • 先画草图,再建模:我习惯在纸上画个简图,标好尺寸和相对位置。FRED 里没有「撤销」一百步的功能,画错了重来挺麻烦的。
  • 善用坐标变换:几何体创建时默认在原点。用 Edit → Move/Rotate 可以精确调整位置。我一般用「相对坐标」输入偏移量,比鼠标拖拽准得多。
  • 属性检查清单:每次新建一个几何体,问自己三个问题——材料设了吗?表面属性设了吗?命名规范吗?
一个小技巧:在 FRED 的 Tree View 里,按住 Shift 可以多选几何体,然后批量修改属性。比如把所有机械挡板一次性改成 "Black_Paint" 表面,省时省力。

几何体是杂散光分析的基石。你花在建模上的每一分钟,都会在后续的追迹和分析里加倍回报给你。别急,慢慢来。