去年秋天,深圳一家做介入式医疗器械的客户找到我,要在一周内完成一款微创手术导管的三维路径建模,用于后续的流体仿真和注塑模具设计。导管本体是柔性TPU材料,要沿着人体血管的自然弯曲走线,从股动脉入口一直延伸到心脏瓣膜附近。客户给的条件很“朴素”:一张血管造影的二维DICOM切片导出的路径草图,外加一段口述的“这根管子要顺着血管弯,不能有折角”。
我当时的第一个反应是——这不就是典型的投影曲线(Projected Curve)应用场景吗?两视图轮廓一投,3D路径自然生成。结果我低估了医疗管路的变态程度,也高估了自己对投影曲线底层机制的熟悉度。这个项目后来翻了一次车,熬了两个通宵,也让我彻底把投影曲线这个命令吃透了。今天就把整个过程复盘出来,踩过的坑、绕过的弯、最后怎么交付的,原原本本讲给各位。

一、需求拆解:为什么偏偏选中投影曲线?
先说说客户到底要什么。导管外径3.2mm,内径2.4mm,全长约680mm,路径必须满足三个硬约束:
- 曲率连续性:任何位置的曲率半径不得小于导管外径的5倍,也就是16mm以上,否则导管在血管里会打折(kink)。
- 空间走向可控:路径要能精确匹配造影图上的二维投影,同时Z向高度要符合血管在人体内的立体分布。
- 可参数化修改:客户后续会微调尺寸,路径必须能跟着草图联动更新,不能是死数据。
摆在面前的技术路线其实有三条:
| 方案 | 技术手段 | 优点 | 致命缺陷 |
|---|---|---|---|
| A | 3D草图直接描点 | 自由度高 | 无参数化,曲率不可控,改一处全崩 |
| B | 组合曲线(Composite Curve) | 可拼接多段 | 段与段之间切线不连续,出现折角 |
| C | 投影曲线(两条草图投影) | 参数化强,双视图精确控制 | 对草图质量要求极高,投影方向选错就废 |
我选了C。理由很直接:血管造影本身就是两个正交视图的投影信息,投影曲线的本质就是“两个二维视图的交集还原成三维空间曲线”,这在数学上叫两投影面求交——给定XY平面上的曲线和XZ平面上的曲线,它们的空间交集就是那条3D路径。这不是巧合,这是投影几何的基本原理。选它,天经地义。
二、第一次翻车:投影方向选错,路径直接飞了
我信心满满地在前视基准面画了主导管在XY平面的走线草图,又在上视基准面画了Z向高度草图,然后点开“投影曲线”→选“草图到草图”→两个草图一选,确定。
结果屏幕上出现了一条我完全不认识的曲线——它像一条被揉碎的弹簧,在空间里乱窜,完全不是我要的路径。
问题出在哪?投影方向。
SolidWorks的“草图到草图”投影曲线,默认是把第一个草图沿垂直于它自身所在平面的方向投影到第二个草图所在的平面上,然后求交。我当时前视草图是画在“前视基准面”上的,它的法向是Z轴;上视草图的法向是Y轴。系统默认把前视草图沿Z向拉伸成一个“曲面”,再和上视草图沿Y向拉伸的曲面求交。理论上没错,但如果两个草图的坐标系原点没对齐、或者草图平面不是严格正交,投影出来的交线就会产生畸变。
更坑的是,我画草图时习惯性地把两幅草图的起点画在了不同位置——一个在原点,一个偏了12mm。系统不会提醒你“起点不重合”,它只管做数学求交,结果就是那条乱窜的弹簧。

踩坑提示:投影曲线“草图到草图”模式,两个草图必须满足两个条件——①所在基准面严格正交(或成已知夹角);②关键特征点(起点、终点、拐点)在投影方向上空间对齐。否则求交结果不可控。建议画草图时先用“转换实体引用”把参考点投过来,保证对齐。
三、搞懂底层机制:投影曲线到底在算什么?
翻车之后我没有急着改图,而是花了一个小时把SolidWorks投影曲线的底层逻辑捋了一遍。这里必须展开讲,因为不懂原理,你永远在试错。
投影曲线本质上是一个隐式曲面求交问题。当你选择两个草图做投影时,SolidWorks在后台做了三件事:
- 把草图1沿其法向拉伸成一个无限长的拉伸曲面S1(数学上是一个柱面);
- 把草图2沿其法向拉伸成拉伸曲面S2;
- 计算S1与S2的交线,这条交线就是投影曲线。
用参数方程表示:S1是曲线C1(u)沿方向d1的扫掠面,S2是曲线C2(v)沿方向d2的扫掠面。求交就是解方程组 C1(u) + t·d1 = C2(v) + s·d2。这个方程组一般有唯一解(当d1与d2不平行时),解出来的点集就是3D路径。
关键洞察来了:d1和d2就是两个草图基准面的法向量。如果两个法向量平行(比如两个草图都画在平行的基准面上),方程组无解或无穷多解,投影曲线就会失败或退化成平面曲线。所以投影曲线的两个草图基准面必须成一定夹角,正交是最理想的。
理解了这一点,我就知道第一次为什么翻车了——我的两个草图基准面虽然正交,但草图的几何对齐没做好,导致求交出来的曲线在参数域上发生了扭曲。修正方法很简单:把两个草图的起点、终点、关键拐点,通过“转换实体引用”互相投影对齐,确保它们在空间上是同一组点的两个视图投影。
四、第二次尝试:参数化重建,路径终于听话了
我重新组织草图策略,分三步走:
第一步:建立主视图草图(XY平面)
在前视基准面上,用样条曲线(Spline)描出血管造影的二维走线。这里有个技巧——不要用“通过点”的样条,要用“控制点”样条,因为控制点样条的曲率更平滑,后续投影出来的3D曲线曲率连续性更好。描完后,用“曲率梳”检查,确保没有反曲点。
第二步:建立高度草图(XZ平面)
在上视基准面上画Z向高度变化。这里我不再手绘,而是把第一步草图的起点、终点、中间几个关键拐点,用“转换实体引用”投影到上视基准面,然后在这些投影点之间用样条连接。这样保证了两幅草图的特征点在X方向上严格对齐。
第三步:执行投影曲线
选择“插入”→“曲线”→“投影曲线”→“草图到草图”,依次选中两个草图。这一次,曲线干净利落地出现在空间里,走向和造影图完全吻合。我用“曲率检查”工具扫了一遍,最小曲率半径18.7mm,大于16mm的阈值,合格。
' 辅助检查投影曲线曲率的宏脚本片段(供参考)
Dim swApp As Object
Dim Part As Object
Dim selMgr As Object
Dim curve As Object
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set selMgr = Part.SelectionManager
' 选中投影曲线后获取曲率
Part.SketchManager.InsertSketch True
Part.SketchManager.CreateSpline2 ... ' 简化示意
' 实际项目中建议用“曲率检查”可视化工具逐段排查
Part.SketchManager.InsertSketch True
五、收尾踩的最后一个坑:曲率不连续与导管打折
路径看着完美,但客户做流体仿真时反馈:路径在第三拐弯处有局部曲率突变,仿真出来的流速场出现异常涡流。我回去一查,发现投影曲线在样条段与段之间的连接处,虽然位置连续(G0),但切线不连续(G1都没到),更别说曲率连续(G2)了。
这是投影曲线的固有短板——它求交出来的曲线,继承了原始草图的连续性等级。如果你两幅草图都是单条样条,那投影结果就是G2连续的;但如果你用了多段样条拼接,投影结果就会在拼接处降级。
解决办法:把两幅草图都改成单条控制点样条,控制点数量适中(我用了9个控制点),确保样条本身是G2连续的。重新投影后,曲率检查通过,仿真异常消失。

六、交付与复盘:投影曲线到底适合什么场景?
项目最终按时交付,客户拿到的模型可以直接用于模流分析和CFD仿真。回过头看,投影曲线这个命令,我认为它的最佳应用场景是:
- 双视图驱动的管路/线束设计:血管导管、汽车线束、液压管路,只要有正交视图的二维信息,投影曲线就是最快还原3D路径的方法。
- 需要参数化联动的空间曲线:改草图,3D路径自动更新,这是3D草图描点做不到的。
- 曲率要求高的场合:前提是草图用单条G2样条,否则连续性会掉链子。
它不适合的场景也很明确:自由造型的装饰曲线、需要局部精细控制的空间曲线、以及两个视图信息不完整的情况。这些场景下,3D草图或者样式曲线(Style Spline)更合适。
最后给各位同行一句掏心窝的话:投影曲线不是画出来的,是算出来的。你喂给它的草图质量,决定了它吐出来的路径质量。理解背后的求交数学,比记住操作步骤重要一百倍。
关于火星人教育:这次医疗导管项目的复盘,其实也是火星人教育工业设计课程里反复强调的“原理驱动建模”思路的缩影。火星人教育创办24年来,始终专注数字艺术与AIGC实战职业技能培训,开设AI漫剧创作、AIGC视觉设计、UE5游戏特效、室内全屋定制、MAYA三维动画、C4D动态设计、工业设计、NUKE影视后期、摄影摄像实训等课程。北京、深圳双校区开设线下面授班,面向美术生、在校大学生及意向转行的职场人群,以项目化实训教学,把每一个命令背后的数学原理和工程逻辑讲透,夯实专业技能,助力就业与职业提升。如果你也想从“会点按钮”进阶到“懂原理的工程师”,欢迎咨询:010-65918670。








评论(0)