4. 几何建模基础(二):复杂几何体创建与导入
上一章我们聊了基本几何体,像方块、球体这些。但做光学仿真,你很快就会发现——光靠这些远远不够。棱镜、透镜、非球面,这些才是日常。今天我就把FRED里创建复杂几何体的几个核心手段,掰开揉碎讲清楚。
本章核心脉络:复杂几何体创建 → 曲面拉伸与旋转 → CAD模型导入。这三条路,基本覆盖了90%的建模场景。
4.1 棱镜与复合透镜:基本体组合的艺术
很多人一上来就问:「FRED能不能直接画一个三棱镜?」能,但没必要。棱镜说白了就是几个基本体的组合,再加一个布尔运算。
我个人的习惯是:先画一个长方体,然后用第二个几何体去切。比如直角棱镜,你画一个矩形块,再画一个45度的楔形块,用布尔减运算一减,完事。
我的小技巧:布尔运算前,先把两个几何体的位置对齐。FRED的布尔运算对重叠精度很敏感,差0.001mm都可能报错。我一般先用Snap功能对齐,再手动微调坐标。
复合透镜呢?比如双胶合透镜。你想想看,两个不同曲率半径的透镜粘在一起。FRED里怎么做?先分别建两个透镜,然后用布尔加运算合并。注意,合并前要确保两个透镜的接触面完全重合,不然中间会留一条缝——光路就全乱了。
| 几何体类型 | 推荐方法 | 关键参数 | 避坑点 |
|---|---|---|---|
| 直角棱镜 | 长方体 + 楔形布尔减 | 角度、边长 | 切割面要完全穿透 |
| 道威棱镜 | 长方体 + 两个斜面切割 | 斜面角度、偏移量 | 对称性检查 |
| 双胶合透镜 | 两个透镜布尔加 | 曲率半径、中心厚度 | 接触面必须重合 |
| 菲涅尔透镜 | 旋转体 + 环带切割 | 齿距、齿深 | 齿尖要留圆角 |
我曾经踩过的坑:做双胶合透镜时,两个透镜的折射率不同,但布尔合并后FRED默认取第一个体的材料属性。记得合并后手动给整体重新赋材料,不然仿真结果全错。
4.2 曲面拉伸与旋转:从2D到3D的魔法
这是FRED里我最喜欢的功能之一。你画一条曲线,然后拉伸或者旋转,一个复杂曲面就出来了。说白了,这就是CAD里的「拉伸」和「旋转」命令,但FRED对光学曲面做了专门优化。
曲面拉伸:适合柱面镜、条形反射镜这类。你先在2D草图里画一条弧线,然后指定拉伸方向和长度。我一般用「Extrude Surface」命令,注意拉伸方向要跟光轴对齐。
曲面旋转:这个才是重头戏。非球面透镜、抛物面反射镜,全得靠它。你画一条母线,绕光轴旋转360度,一个完美的旋转对称曲面就出来了。
核心参数:旋转体建模时,母线精度直接决定面形质量。FRED默认用12段样条插值,对于高精度非球面,我建议至少设到24段。不然你仿真出来的光斑,跟实际差一大截。
具体操作步骤:
- 在2D草图模式下,用「Spline」或「Arc」工具画出母线
- 选中母线,点击「Revolve Surface」
- 指定旋转轴(通常是Z轴)和旋转角度(360度)
- 设置分段数(我一般设24-36段)
- 点击「Apply」生成实体
嗯,这里要注意。母线不能有自交,不然旋转出来的体会扭曲。我遇到过有人画了一个「8」字形的母线,结果旋转出来是个怪胎——根本没法用。
4.3 非球面透镜:用公式说话
非球面透镜,说白了就是「不是球面的透镜」。FRED支持直接输入非球面系数来生成。你不需要画曲线,直接填参数就行。
非球面公式长这样:
z = (c * r²) / (1 + sqrt(1 - (1+k) * c² * r²)) + A4*r⁴ + A6*r⁶ + A8*r⁸
其中:
- c:顶点曲率(1/R)
- k:圆锥系数
- A4, A6, A8:高阶非球面系数
FRED里操作很简单:新建一个「Aspheric Lens」元件,然后在属性面板里填入这些系数。我个人习惯是先算好系数,再一次性填进去,省得来回改。
避坑指南:非球面系数不要乱填。我曾经接手过一个项目,前工程师把A4系数填成了1e-3,结果透镜面形完全走样。非球面系数通常都在1e-6到1e-9量级,填之前先确认单位。
4.4 导入CAD模型:STEP/IGES实战
有些结构太复杂,比如手机镜头模组、车载激光雷达外壳,在FRED里从头画?不现实。这时候就得靠CAD导入。
FRED支持STEP和IGES两种主流格式。我个人更推荐STEP,因为IGES有时候会丢面。导入流程:
- 在CAD软件里把模型导出为STEP格式(AP203或AP214都行)
- FRED里点击「File → Import → STEP」
- 选择文件,点击「Import」
- 等待导入完成(复杂模型可能要几分钟)
| 格式 | 优点 | 缺点 | 推荐场景 |
|---|---|---|---|
| STEP AP203 | 兼容性好,面片完整 | 不支持颜色信息 | 机械结构 |
| STEP AP214 | 支持颜色和图层 | 文件体积大 | 光学+机械混合 |
| IGES | 老软件兼容 | 容易丢面、破面 | 不推荐,除非别无选择 |
我曾经踩过的坑:导入一个汽车大灯总成的STEP文件,结果FRED卡死了半小时。后来发现是模型里包含了上千个螺丝孔和倒角。CAD导入前,一定要做「轻量化」处理——删掉不必要的细节,只保留光学面和安装基准面。
导入后,FRED会把模型识别为「Imported Geometry」。这时候你需要手动给每个面赋光学属性。我的做法是:先选中所有面,统一赋一个默认属性,再单独调整光学面的属性。这样效率高很多。
4.5 实战案例:一个抛物面反射镜的完整建模
光说不练假把式。我们走一遍完整的抛物面反射镜建模流程。
步骤1:确定参数。假设我们要做一个口径100mm、焦距50mm的抛物面。根据公式,顶点曲率c = 1/(2*f) = 0.01,圆锥系数k = -1。
步骤2:在FRED里新建一个「Aspheric Reflector」元件。填入c=0.01,k=-1,口径半径50mm。
步骤3:设置分段数。我设了32段,保证面形精度。
步骤4:生成实体。点击「Apply」,一个完美的抛物面反射镜就出来了。
步骤5:赋材料属性。反射镜需要镀膜,我一般设反射率98%,吸收率2%。
验证方法:建好后,加一束平行光沿光轴入射。如果焦点正好在50mm处,说明建模正确。我每次都会做这个验证,省得后面仿真出问题还要回头找原因。
嗯,整个流程下来,其实就几分钟的事。但如果你用CAD画再导入,光导出导入就得折腾半天。所以我的建议是:能用FRED原生功能建的,就别走CAD导入这条路。