4、几何建模基础:创建光学元件(透镜、反射镜、光阑、探测器)的方法,导入CAD模型,布尔运算与坐标变换

杂散光分析的精度,首先取决于几何模型的保真度。TracePro 作为以蒙特卡洛光线追迹为核心的工具,其几何建模并非追求机械设计级别的细节,而是服务于“光线与表面相互作用”的物理模拟。本章将系统讲解在 TracePro 中创建透镜、反射镜、光阑、探测器等基本光学元件的核心方法,深入解析 CAD 模型导入的工程要点、布尔运算的实体编辑逻辑,以及坐标变换在系统装配中的关键作用。理解这些基础操作,是后续进行表面属性赋予、光源设定和追迹分析的前提。

TracePro 几何建模核心链路 基本体素 · 透镜:凸/凹/非球面 · 反射镜:平面/球面/抛物面 · 光阑:圆形/矩形孔径 · 探测器:矩形/圆形接收面 CAD 模型导入 · 格式:STEP / IGES / SAT · 单位统一(mm / inch) · 面片简化与修复 · 实体/表面转换策略 布尔运算 · 并集(Unite) · 差集(Subtract) · 交集(Intersect) · 分割(Split) 坐标变换 · 平移(X/Y/Z) · 旋转(Rx/Ry/Rz) · 镜像(Mirror) · 阵列(Array) 光学系统装配与杂散光分析准备 表面属性 → 光源定义 → 光线追迹 → 杂散光路径识别 关键原则: 1. 几何精度与追迹效率的平衡——避免微小特征导致光线分裂过多 2. 所有实体必须赋予光学属性后才能参与追迹;3. 坐标变换是系统装配的核心手段

上图展示了 TracePro 几何建模的完整链路:从基本体素创建或 CAD 模型导入开始,经过布尔运算进行实体编辑,最终通过坐标变换完成系统装配。四个环节环环相扣,构成了杂散光分析几何准备的全部内容。下面我们将逐一深入剖析每个环节的具体操作与工程经验。

4.1 基本光学元件的创建方法

TracePro 提供了丰富的实体创建工具,位于菜单栏 Insert → Primitive Geometry 下。对于光学设计者而言,最常用的元件包括透镜、反射镜、光阑和探测器。每种元件都有其特定的创建逻辑和参数设置要点。

4.1.1 透镜的创建

透镜是折射光学系统的核心元件。在 TracePro 中,创建透镜有两种主要途径:使用内置的 Lens Element 工具,或通过旋转轮廓线生成。对于标准球面透镜,推荐使用 Insert → Lens Element 向导,该工具支持单透镜、双胶合透镜以及非球面透镜的定义。

操作流程:

  1. 选择 Insert → Lens Element,弹出透镜参数对话框。
  2. 输入透镜的 孔径(Diameter)、边缘厚度(Edge Thickness)、曲率半径(Radius) 或 焦距(Focal Length)。
  3. 对于非球面,勾选 Aspheric 选项,输入圆锥系数(Conic Constant)和高阶非球面系数。
  4. 设置透镜材料(如 BK7、SF11 等),或选择表面类型为反射面。
  5. 点击 OK 生成实体,默认以 Z 轴为光轴方向。

对于复杂透镜(如柱面镜、自由曲面),则需要通过 Create → Sweep 或 Create → Revolve 功能,基于轮廓曲线生成实体。这种方法虽然操作稍复杂,但提供了最大的设计自由度。

4.1.2 反射镜的创建

反射镜在杂散光分析中扮演着重要角色,尤其是离轴抛物面镜(Off-Axis Parabolic Mirror, OAP)和平面反射镜。TracePro 中创建反射镜的推荐方法是:

  • 平面反射镜:直接使用 Insert → Primitive Geometry → Rectangular Plate 或 Circular Plate,设置适当的厚度(通常 3-5mm 即可),后续赋予高反射率表面属性。
  • 球面/非球面反射镜:使用 Lens Element 工具,但将表面类型设置为 Mirror,并输入相应的曲率半径和圆锥系数。
  • 离轴抛物面镜:需要先创建完整的抛物面实体,然后通过布尔运算(差集)切割出离轴部分,或者使用 Create → Off-Axis Parabolic Mirror 专用工具(如果版本支持)。

重要提醒:反射镜的背面(非反射面)在杂散光分析中同样重要。如果反射镜基底材料对光线有透射性,必须将背面也赋予正确的光学属性(如吸收或散射),否则会产生虚假的透射光线路径。

4.1.3 光阑与探测器的创建

光阑(Aperture Stop)用于限制光束口径,在杂散光分析中常作为挡光元件。创建光阑时,推荐使用 Rectangular Plate 或 Circular Plate,并在中心挖出通光孔。具体做法是:先创建外轮廓板,再创建一个小尺寸的圆柱或矩形体,通过 布尔差集 减去中心部分,形成带孔光阑。

探测器(Detector)的创建相对简单,通常使用 Rectangular Plate 或 Circular Plate,厚度设为 0.5-1mm 即可。关键在于后续需要将探测器表面属性设置为 Perfect Absorber 或自定义吸收率,并添加 Surface Source / Detector Property 以记录辐照度分布。

元件类型 推荐创建工具 关键参数 后续处理
球面透镜 Lens Element 向导 曲率半径、厚度、材料 赋予折射率属性
非球面透镜 Lens Element + 非球面系数 圆锥系数、高阶项 检查面型精度
平面反射镜 Rectangular/Circular Plate 外形尺寸、厚度 表面设为 Mirror
离轴抛物面镜 创建抛物面 + 布尔切割 焦距、离轴量、口径 确认反射面法向
光阑 Plate + 布尔差集 外径、内孔尺寸 内孔边缘设为吸收
探测器 Plate 感光面尺寸 添加 Detector Property

4.2 导入 CAD 模型:格式、单位与修复

在实际工程项目中,光学系统往往由机械设计团队使用 SolidWorks、Creo 或 CATIA 等工具完成三维建模。TracePro 支持导入多种 CAD 格式,其中 STEP (.stp) 和 IGES (.igs) 是最常用的中性格式,SAT (.sat) 格式也较为常见。

4.2.1 导入流程与格式选择

执行 File → Import → CAD,选择相应格式文件。在导入对话框中,需要特别注意以下设置:

  • 单位(Units):必须与 CAD 模型创建时的单位一致。TracePro 默认使用毫米(mm),如果模型以英寸为单位,需在导入时选择 Inch 进行转换,否则模型尺寸将放大 25.4 倍。
  • 导入类型(Import Type):可选择 Solid(实体)或 Surface(表面)。对于杂散光分析,推荐导入实体,因为实体可以自动计算法线方向,且便于后续布尔运算。
  • 曲面精度(Tolerance):设置合适的弦高误差。过小的公差会导致面片数量激增,降低追迹效率;过大的公差则会造成几何失真。一般建议设置为模型最小特征尺寸的 1/100 至 1/1000。

4.2.2 模型修复与简化

CAD 模型导入后,经常会出现以下问题:法线方向不一致、微小缝隙、重叠面、多余特征(如螺纹孔、倒角、安装凸台等)。这些问题如果不处理,将直接影响光线追迹的准确性。

修复策略:

  1. 使用 Tools → Check Geometry 检查模型完整性,查看是否存在自由边、坏面或法线翻转。
  2. 对于法线翻转的面,使用 Edit → Surface → Flip Normal 手动修正。
  3. 对于微小缝隙,使用 Tools → Heal Geometry 尝试自动修复。
  4. 对于多余特征,使用 布尔差集 或 Edit → Delete Face 去除。例如,镜筒上的螺纹孔在杂散光分析中通常可以忽略,直接删除以简化模型。

需要特别强调的是,简化模型是杂散光分析的重要步骤。一个包含数万个面的精密机械模型,直接用于光线追迹会导致计算量巨大且难以收敛。建议在 CAD 软件中预先创建“光学分析专用版本”,去除倒角、圆角、螺纹、刻字等非光学特征,仅保留对光线传播有影响的表面。

4.3 布尔运算:实体编辑的核心工具

布尔运算允许我们通过组合、切割或相交基本实体来创建复杂形状。在 TracePro 中,布尔运算位于 Edit → Boolean 菜单下,包括 Unite(并集)、Subtract(差集)、Intersect(交集) 和 Split(分割) 四种操作。

4.3.1 布尔运算的典型应用场景

运算类型 操作说明 典型应用
Unite(并集) 将两个或多个实体合并为一个整体 将透镜与镜框合并;将多个支撑结构合并
Subtract(差集) 从一个实体中减去另一个实体 在光阑板上挖孔;切割离轴抛物面镜
Intersect(交集) 保留两个实体的公共部分 创建特殊形状的孔径;提取透镜的有效口径
Split(分割) 用一个面或实体将目标实体分割为多个部分 将光学元件分割为不同区域,分别赋予属性

4.3.2 布尔运算操作流程与注意事项

执行布尔运算时,需要先选中目标实体(Target),再选择工具实体(Tool)。操作顺序非常重要:先选被减实体,再选减去实体。例如,要在光阑板上挖孔,应先选中光阑板作为 Target,再选中圆柱体作为 Tool,执行 Subtract。

常见误区:

  • 布尔运算后,原始实体的表面属性会被重置为默认值。因此,建议先完成所有几何编辑,最后再统一赋予光学属性。
  • 如果两个实体只是表面接触(没有体积重叠),布尔运算可能失败。此时需要微调工具实体的位置,确保有微小的重叠量(如 0.01mm)。
  • 布尔运算后,建议使用 Tools → Check Geometry 再次检查模型完整性,确保没有产生退化面或自由边。

4.4 坐标变换:系统装配与位置调整

坐标变换是光学系统装配的核心手段。在 TracePro 中,每个实体都有独立的局部坐标系,通过调整局部坐标系相对于全局坐标系的位置和方向,可以实现元件的精确定位。

4.4.1 坐标变换的类型与操作

选中需要移动的实体,执行 Edit → Move / Copy,弹出变换对话框。支持以下变换类型:

  • 平移(Translate):输入 X、Y、Z 方向的偏移量。例如,将探测器沿 Z 轴移动 50mm,使其位于透镜焦点处。
  • 旋转(Rotate):绕 X、Y 或 Z 轴旋转指定角度。旋转中心默认为实体的局部坐标系原点,也可指定自定义旋转中心。
  • 镜像(Mirror):关于指定平面(如 XY 平面、YZ 平面或自定义平面)进行镜像复制。
  • 阵列(Array):创建线性阵列或环形阵列,适用于多通道光学系统或微透镜阵列。

4.4.2 坐标变换的工程实践

在实际装配中,建议遵循以下步骤:

  1. 确定全局坐标系:通常以系统光轴为 Z 轴,以第一个光学元件的顶点为原点。
  2. 逐个放置元件:根据光学设计给出的间隔距离,依次平移各元件到正确位置。
  3. 调整倾斜与偏心:对于有偏心或倾斜要求的元件(如离轴反射镜),使用旋转功能精确调整。
  4. 验证装配结果:使用 View → Cross Section 或 View → 3D 检查各元件的相对位置是否正确。

案例:离轴三反系统的几何装配

假设我们要装配一个离轴三反系统,主镜(M1)、次镜(M2)、三镜(M3)均为离轴抛物面镜,系统焦距 600mm,视场角 ±1°。具体操作如下:

  1. 创建 M1:使用 Lens Element 工具,设置焦距 600mm,口径 120mm,离轴量 80mm。生成后通过布尔差集切割出离轴部分。
  2. 将 M1 放置在原点,反射面朝向 +Z 方向。
  3. 创建 M2:焦距 200mm,口径 40mm,离轴量 30mm。通过坐标变换,将其平移到 Z=200mm 处,并绕 Y 轴旋转 15°(根据设计值)。
  4. 创建 M3:焦距 300mm,口径 60mm,离轴量 50mm。平移到 Z=350mm 处,绕 Y 轴旋转 -10°。
  5. 创建探测器:放置在 M3 焦点位置(Z=400mm 处),尺寸 20mm × 20mm。
  6. 使用 View → Ray Fan 或 Analysis → Ray Trace 进行初步验证,检查光线是否按预期路径传播。

通过这个案例可以看出,坐标变换的精度直接决定了系统装配的准确性。任何微小的角度误差,都会在光线追迹结果中放大,导致杂散光路径误判。

4.5 常见误区与总结复盘

在几何建模阶段,初学者常犯的错误主要集中在以下几个方面:

误区类型 具体表现 后果 正确做法
单位不一致 CAD 模型使用英寸,导入时未转换 模型尺寸错误,光线路径完全偏离 导入前确认单位,必要时手动缩放
模型过度复杂 保留所有机械细节(螺纹、倒角) 追迹速度极慢,内存占用高 创建简化版模型,仅保留光学相关面
法线方向错误 表面法线指向实体内部 光线穿透实体,产生虚假透射 使用 Check Geometry 检查并修正
布尔运算后属性丢失 先赋属性再做布尔运算 运算后属性被重置,需重新设置 先完成几何编辑,最后统一赋属性
坐标变换基准错误 旋转时未指定正确的旋转中心 元件位置偏移,系统失调 明确旋转中心,使用参考点定位

总结复盘:几何建模是杂散光分析的基础工程,其核心原则是“适度保真”——既要保留影响光线传播的关键光学特征,又要去除对追迹无意义的机械细节。在实际项目中,建议建立标准化的建模流程:首先从 CAD 团队获取简化模型,然后导入 TracePro 进行单位确认和几何检查,接着通过布尔运算完成必要的实体编辑,最后使用坐标变换进行系统装配。每一步都需要验证,确保几何模型准确反映真实光学系统。只有打好这个基础,后续的表面属性赋予、光源定义和光线追迹才能得出可信的杂散光分析结果。